GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||
GeezerVison is showing github.com — feat(credentials): Microsoft app credentials for Power BI and Azure Data Explorer, with national clouds by waleedlatif1 · Pull Request #9931 · simstudioai/sim Conversation
Collaborator
Summary
Not in this PR (design memos):
Product update (if relevant)
Type of Change
Testing
Checklist
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
All reported issues were addressed across 51 files
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
[High impact] The PR appears safe to merge; no new actionable issues were found. SummaryAdds Microsoft app credentials for Power BI and a new saved-credential Azure Data Explorer block.
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
…l national cloud Microsoft app credentials resolve each service's token audience from one table and cache minted tokens per credential, stored-secret version, and audience, so services that need a different resource no longer share a Graph-or-Dataverse key. A credential can name a national cloud (US Government GCC High or DoD, or China); its Entra endpoint, certificate assertion audience, and save-time Graph check follow that cloud. Global credentials store no cloud field, so existing secrets and older workers read them exactly as before, and Graph and Dataverse services refuse a national-cloud credential because their tools call the global cloud.
The Power BI service offers the Microsoft app credential beside its delegated OAuth connection. A run or selector with an app credential gets an app-only token for the Power BI REST API audience (https://analysis.windows.net/powerbi/api/.default), cached apart from the credential's Graph token; national-cloud credentials are refused because the tools call api.powerbi.com. Delegated connections and every tool's params are unchanged. The Power BI integration suite proves a run and a selector end to end with a persisted app credential.
Adds azure_data_explorer_v2, a credential-only successor whose picker selects a Microsoft app credential (client secret, certificate, or keyless federated credential) in place of the inline tenant ID, client ID, and client secret. The executor authorizes the credential and the operation mints a token for the cluster each call names: the audience is the allowlisted cluster (or resource override) host as https://<host>, and the credential's cloud must be one that host belongs to, so a US Government or China cluster takes a matching national-cloud credential. Inline secrets are never read on that path. The legacy block keeps its inline fields and behavior and is marked legacy with azure_data_explorer_v2 as its replacement. The connect dialog gains a Cloud choice; a global credential's payload and stored secret are unchanged.
…and scope the ADX operation - Token cache key is named before decrypting, so a cached token skips the decrypt and parse; Azure Data Explorer authorization no longer decrypts, and its cluster key includes the resource's clouds. - The ADX operation re-checks the credential against the run's workspace or organization, as the AWS operation path does. - A credential in the wrong Microsoft cloud is refused as cloud_mismatch with its own message instead of "reconnect the credential"; ADX tool errors come from the refusal code, not log detail. - The operation-minted service comes from the shared ADX credential config. - Reconnect reopens a national-cloud credential on its stored cloud. - China signs in at login.partner.microsoftonline.cn (Entra national-cloud reference) for both ADX auth paths; Kusto authorities derive from MICROSOFT_CLOUDS. - Drop the one-line ADX operations passthrough; refresh TSDoc and the Power BI description.
…r Dataverse as a cloud mismatch
…gh one per-provider map
…e a cross-cloud ADX resource A Microsoft app reconnect now waits for the stored cloud, or asks for one when it cannot be read (an organization credential or a failed lookup), instead of saving as global. The ADX schema refuses a resource override whose cloud differs from the cluster's before any credential is decrypted, and the Power BI description says app credentials run in the global cloud only.
c7a71c9 to
5e55a34
Compare
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cubic-dev-ai review this PR |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
1 issue found across 51 files
Confidence score: 3/5
apps/sim/lib/oauth/oauth.ts, Power BI is registered for Global only, but its credential modal offers all four clouds, so users can select an unsupported cloud. Filter the options for Power BI or register the additional clouds server-side.
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/sim/lib/oauth/oauth.ts">
<violation number="1" location="apps/sim/lib/oauth/oauth.ts:656">
P2: Power BI is registered as Global-only on the server, but this change exposes the app credential modal for it, and that modal offers all four clouds. Filter the cloud options per service, or limit Power BI to the Global cloud, so a national-cloud Power BI credential cannot be created.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| providerId: 'azure-data-explorer', | ||
| icon: AzureDataExplorerIcon, | ||
| baseProviderIcon: MicrosoftIcon, | ||
| serviceAccountProviderId: 'microsoft-app-service-account', |
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
P2: Power BI is registered as Global-only on the server, but this change exposes the app credential modal for it, and that modal offers all four clouds. Filter the cloud options per service, or limit Power BI to the Global cloud, so a national-cloud Power BI credential cannot be created.
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At apps/sim/lib/oauth/oauth.ts, line 656:
<comment>Power BI is registered as Global-only on the server, but this change exposes the app credential modal for it, and that modal offers all four clouds. Filter the cloud options per service, or limit Power BI to the Global cloud, so a national-cloud Power BI credential cannot be created.</comment>
<file context>
@@ -645,6 +646,17 @@ export const OAUTH_PROVIDERS: Record<string, OAuthProviderConfig> = {
+ providerId: 'azure-data-explorer',
+ icon: AzureDataExplorerIcon,
+ baseProviderIcon: MicrosoftIcon,
+ serviceAccountProviderId: 'microsoft-app-service-account',
+ authType: 'service_account',
+ scopes: [],
</file context>
Sorry, something went wrong.
There was an error while loading. Please reload this page.
5e55a344
Deployed
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.