For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Microsoft Copilot Studio
Connect Solo Enterprise for agentregistry to a Microsoft Copilot Studio environment so that you can discover deployed agents and monitor them in the registry UI.
This guide walks you through how to connect Solo Enterprise for agentregistry to Microsoft Copilot Studio, so that you can discover deployed agents and add them as instances to the registry Instances view in the registry UI.
Note
Solo Enterprise for agentregistry does not create or deploy Copilot Studio agents. The MicrosoftCopilotStudio runtime is a discovery-only runtime. For more information, see the Runtime concepts and Runtime architectures.
Before you begin
Set up an OIDC provider. This guide assumes that you installed Keycloak. Make sure to follow the General setup tab to install Keycloak with the required realm settings, clients, and secrets.
Make sure that you have access to a Power Platform environment with Dataverse enabled, and sufficient permissions to register an Entra app and administer the environment.
Step 1: Create an Entra app registration
The Entra app registration is the service identity that Solo Enterprise for agentregistry uses to authenticate with Microsoft. When the registry syncs agents from your Power Platform environment, it uses the app registration’s client ID and secret to request a token from Microsoft Entra. The registry then calls the Dataverse Web API with that token to discover Copilot Studio agents.
In this step, you create the Entra app registration and generate the client secret.
Log in to the Azure portal and go to Microsoft Entra ID → +Add → App registrations.
Create your app registration.
- Enter a name for the app, such as
agentregistry-copilot. - Choose the account type that can access your app.
- Leave the redirect URI blank. Then, click Register.
- Enter a name for the app, such as
On the overview page for your Entra app, get the Application (client) ID and Directory (tenant) ID and save them as environment variables.
export AZURE_TENANT_ID=<directory-tenant-ID> export AZURE_CLIENT_ID=<application-client-ID>Go to Manage → Certificates & secrets → + New client secret. Set an expiration date for your certificate, and click Add.
Copy the secret Value immediately as it is only shown once and save it in an environment variable.
export AZURE_CLIENT_SECRET=<client-secret-value>Store the client secret value in a Solo Enterprise for agentregistry Secret. This way, the value is written to the server-side secret backend and never stored in plain text in your runtime.
arctl apply -f - <<EOF apiVersion: ar.dev/v1alpha1 kind: Secret metadata: name: microsoft-copilot-creds spec: type: Opaque stringData: clientSecret: "${AZURE_CLIENT_SECRET}" EOFExample output:
✓ Secret/microsoft-copilot-creds createdVerify that the Secret is created.
arctl get secret microsoft-copilot-credsExample output:
NAME TYPE DATA microsoft-copilot-creds Opaque 1
Step 2: Find your Power Platform environment details
Every Copilot Studio agent lives inside a Power Platform environment. The environment is an isolated container that groups apps, flows, and data for a team or business unit and is backed by its own Dataverse database instance that stores the Copilot Studio agent definitions as bot records. When Solo Enterprise for agentregistry syncs a Copilot Studio runtime, it queries the Dataverse Web API of that specific environment to list those bot records and surface them as instances in the registry UI.
To sync Copilot bot records, Solo Enterprise for agentregistry requires the environment ID (GUID) that your agents are deployed in and the Dataverse Web API URL that this environment is connected to.
- Open the Power Platform admin center at admin.powerplatform.microsoft.com.
- Go to Manage → Environments and open the environment that contains your Copilot Studio agents. If you don’t have one, click New, select the environment type, region, and name for your environment. Then, click Save.
- On the environment details page, copy the Environment ID and Environment URL and save them as environment variables. Note that if you created an environment for the first time, you might need to provision a Dataverse backend for that environment before you can proceed.
export POWER_PLATFORM_ENVIRONMENT_ID=<environment-id> export DATAVERSE_ENDPOINT=https://<org>.crm.dynamics.com
Step 3: Register the app as a Dataverse application user
When Solo Enterprise for agentregistry syncs agents from the Copilot Studio runtime, it calls the Dataverse Web API to list bot records from the Bot table. A bot record represents a Copilot Studio agent definition. Dataverse has its own permission model that is separate from Azure RBAC. By default, Microsoft Entra apps do not have access to the Dataverse API. To grant access, you create a Dataverse application user that links the Entra app to a Dataverse identity, and then assign that identity a security role that permits reading records from the Bot table.
- From the Power Platform admin center at admin.powerplatform.microsoft.com, select Manage and open the environment that you created or selected earlier.
- Click Settings → Users + permissions → Application users → + New app user.
- Click + Add an app, search for and select the Entra app registration that you created, and select Add.
- Set your Business unit.
- Click the edit icon under Security roles and assign a role that grants read access to the Bot table. For testing purposes, use System Administrator. For the least privilege, create a custom role with read permissions for the Bot table instead. Then, click Save.
Note
Only one application user can exist per Entra app and environment. You must repeat these steps for each Power Platform environment that you want to discover agents from.
Step 4: Register the MicrosoftCopilotStudio runtime
Register the Power Platform environment as a discovery runtime in Solo Enterprise for agentregistry. The runtime uses the Entra client-credentials flow to call the Dataverse Web API and sync Copilot Studio agents as deployed instances into the registry UI.
Create the
MicrosoftCopilotStudioruntime.arctl apply -f - <<EOF apiVersion: ar.dev/v1alpha1 kind: Runtime metadata: name: copilot-studio spec: type: MicrosoftCopilotStudio config: environmentId: "${POWER_PLATFORM_ENVIRONMENT_ID}" dataEndpoint: "${DATAVERSE_ENDPOINT}" auth: oidc: issuer: "https://login.microsoftonline.com/${AZURE_TENANT_ID}/v2.0" clientId: "${AZURE_CLIENT_ID}" clientSecretRef: name: microsoft-copilot-creds key: clientSecret EOFField Description typeSet to MicrosoftCopilotStudioto enable the Copilot Studio discovery provider.config.environmentIdThe Power Platform environment GUID from Step 2. config.dataEndpointThe Dataverse Web API URL for your environment ( https://<org>.crm.dynamics.com).config.auth.oidc.issuerThe Microsoft Entra OIDC issuer URL for your tenant. Follows the format https://login.microsoftonline.com/<directory-tenant-id>/v2.0.config.auth.oidc.clientIdThe Application (client) ID from your Entra app registration. config.auth.oidc.clientSecretRefA reference to the Solo Enterprise for agentregistry Secretthat holds the Entra client secret value.Example output:
✓ Runtime/copilot-studio createdGet the details of your runtime and verify that the runtime shows a successful sync with your configured Power Platform environment. If an issue occurs during the sync, the error is listed in the runtime status.
arctl get runtime copilot-studio -o yamlExample output:
status: conditions: - lastTransitionTime: "2026-07-01T13:27:21.915068044Z" reason: SyncOK status: "True" type: Synced details: runtimeSync: lastSyncStatus: ok lastSyncedAt: "2026-07-01T13:40:43Z"
Congratulations! You successfully set up Solo Enterprise for agentregistry and connected it to a Microsoft Copilot Studio environment. Your Copilot Studio agents are now discoverable and visible in the registry UI.