dynsvcdiscovery 0.9.0
See the version list below for details.
dotnet tool install --global dynsvcdiscovery --version 0.9.0
dotnet new tool-manifest
dotnet tool install --local dynsvcdiscovery --version 0.9.0
#tool dotnet:?package=dynsvcdiscovery&version=0.9.0
nuke :add-package dynsvcdiscovery --version 0.9.0
Dynamics 365 Service Endpoint Discovery Tool
A CLI+GUI tool to explore Dynamics 365 Finance & Operations APIs. We use the service discovery endpoints to build a map of available services, then query the relevant SOAP endpoints to build best-guess type definitions for the data contracts used in the requests.
⚠️ Warning ⚠️
Excessive use of this tool can result in HTTP 429 responses. Consider using the filtering options to reduce redundant requests.
⬇️⌨️ Installation (CLI)
Install as a .NET tool:
dotnet tool install -g dynsvcdiscovery
Compile from source:
make install
⬇️🖼️ Installation (GUI)
Download the latest release (MSIX bundled).
Run Install.ps1, or trust the certificate and run the MSIX file manually.
📐 Setup
You'll need an Azure application which can communicate with your Dynamics 365 instance. If you don't have one, here's how you can set one up:
- Create an Azure Application and configure it to communicate with your Dynamics environment.
- Under Overview, copy the Application (client) ID. Save this for later.
- Staying under Overview, copy the Directory (tenant) ID. Save this for later.
- Under Manage > Certificates & secrets, add a new client secret. Save this for later.
- Under Manage > API Permissions, add the permission Ax.FullAccess (you can search for it using its service principal ID, f92c3f85-4759-4901-810d-5da8943dea39). Grant admin consent for your organisation.
- In Dynamics, navigate to System Administration > Setup > Entra ID Applications, and add a new record with the Application (client) ID, assigned to an appropriate user. Remember to click "Save"!
⌨️ Usage
Using only required parameters will map all discoverable service endpoints.
dynsvcdiscovery \
-c '<your-client-id>' \
-s '<your-client-secret>' \
-r 'https://<your-org-id>.operations.dynamics.com' \
-t 'https://login.microsoftonline.com/<your-tenant-id>/oauth2/token'
Additional options and sub-commands can be found using dynsvcdiscovery -?.
🐛 Debug
Failed HTTP requests are not treated as errors. Instead, their relevent group/service/operation is left unpopulated.
To diagnose errors, set the log level to Warning and redirect standard error to a different destination.
dynsvcdiscovery \
-csrt ... \
--log-level Warning \
>services.json \
2>dynsvcdiscovery.log
For more verbose results, set the log level to Trace. You may also want to use --log-stream 2|StdErr to divert all logging to the error stream, so as not to interfere with the collection you're exporting.
✏️ Contributors' Notice
The use of AI-generated code is strictly prohibited in this repository. See CONTRIBUTING.md.
🪪 License
This code is released under the MIT license. See LICENSE.md.
🔒 Security
Please report any security concerns to the maintainer of this repository via email. See SECURITY.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.