* Add Cosmos DB Shell (NoSQL) support to Cloud Shell
Adds Cosmos DB (NoSQL) support to the Cloud Shell experience and wires up authentication for RBAC / local-auth-disabled accounts:
- Enable the Open Cosmos DB Shell button behind the enableCloudShell feature flag.
- Bootstrap .NET SDK 10 in Cloud Shell before installing the CosmosDBShell tool.
- Force gateway connection mode and add --verbose to surface connection errors.
- Select Entra ID vs account-key auth via isCloudShellEntraAuthEnabled (covers dataplane RBAC and disableLocalAuth accounts).
- Acquire a data-plane-scoped Entra token on demand when no cached aadToken exists, and omit --connect-tenant so a missing token falls through to DefaultAzureCredential (Cloud Shell az session) instead of interactive/device-code auth.
* Fix popup_window_error in CosmosDB Cloud Shell Entra auth
Acquiring an Entra token on demand via acquireMsalTokenForAccount triggered a browser loginPopup (even in silent mode when no MSAL account was cached), which fails with popup_window_error inside the hosted Cloud Shell context. getKey now returns the cached userContext.aadToken when present, or an empty string otherwise. With no token exported, the CosmosDBShell tool falls through to DefaultAzureCredential, which uses the Cloud Shell's signed-in az session.
* Force --connect-azure-cli whenever no credential env var is exported
In Azure Cloud Shell, DefaultAzureCredential tries ManagedIdentityCredential first, which cannot mint a token for the *.documents.azure.com audience (AudienceNotSupported). Force AzureCliCredential via --connect-azure-cli whenever no key/token env var is exported, covering both the Entra-no-token and key-auth-empty-key cases. Also auto-update the CosmosDBShell tool so cached installs pick up the new flag.
* Silently mint a Cosmos data-plane token for the Cloud Shell Entra path
A disableLocalAuth Cosmos account whose Data Explorer session is still in key mode has no cached userContext.aadToken, and the ephemeral Cloud Shell can obtain a Cosmos token from neither its managed identity (AudienceNotSupported for *.documents.azure.com) nor its az session (not logged in). Mint a Cosmos-scoped token in the browser and export it via COSMOSDB_SHELL_TOKEN. The acquisition is guarded on an existing cached MSAL account so it can never trigger an interactive popup, and any failure returns an empty string so the tool falls back to --connect-azure-cli.
* Only accept Y/N at the Cloud Shell consent prompt
askConfirmation now ignores any key that is not Y or N instead of treating every non-Y key as a decline, so an accidental keypress no longer aborts the Cloud Shell consent flow. Also add diagnostic warnings on the Cloud Shell token path so the browser console reveals whether the silent Cosmos token mint was skipped (no cached MSAL account) or returned empty.
* Use device-code auth when Cloud Shell has no token
* Pass the Data Explorer credential to the Cosmos DB shell instead of signing in interactively
Azure Cloud Shell cannot authenticate to Cosmos DB on its own: its managed identity
is rejected with AudienceNotSupported for the *.documents.azure.com audience, its az
session is not signed in, and neither the interactive browser nor the device-code flow
is usable from the embedded terminal.
Resolve the credential in Data Explorer and hand it to the shell out-of-band:
- getCosmosDBShellCredential() returns an Entra ID data-plane token (cached aadToken,
or one minted silently only when an MSAL account already exists so it can never
trigger a popup), falling back to the account master key unless local auth is
disabled. It reports which kind it resolved so the correct env var is exported.
- CosmosDBShellHandler exports COSMOSDB_SHELL_TOKEN or COSMOSDB_SHELL_ACCOUNT_KEY and
drops every credential flag, so the tool always lands on a terminal, non-interactive
step of its credential chain.
- When nothing can be resolved, print actionable guidance instead of launching the
tool with no credential.
* Fix TS7011 in ShellTypeFactory tests by typing the mocked getAllAccounts
The empty array literal in the getMsalInstance mock had no contextual type, so
tsc inferred an implicit any[] return under noImplicitAny. Route every mock
through a typed mockMsalAccounts helper.
* Reuse DE's cached credential for Cosmos DB Shell; add read-only key fallback
* Deliver Cosmos DB Shell key as a full connection string; harden key resolution
* Surface the specific reason a Cosmos DB Shell credential could not be resolved
* Deliver Cosmos DB Shell credential inline (export+connect on one line), mirroring Mongo handler
* Log which Cosmos DB Shell credential kind was resolved for debugging
* Increase ARM timeout for Cloud Shell provisioning calls to avoid spurious abort errors
* Gate Cosmos DB Shell button behind enableCosmosDBShell feature flag
* Fix TS2741: add missing enableCosmosDBShell to Features test fixture
* Scale the number of test accounts used for SQL tests to one per shard.
* Set PLAYWRIGHT_SHARD_INDEX environment variable in CI workflow.
* Add log statement for the shared index and selected account.
* Remove console log.
* Fix order of accounts so that shard index maps to same account index.
* Try to fix the SQL account scope in ci.yml
* Get tokens for all accounts and use the shard index to pick which one.
* Set tokens without loop.
* Handcode the token use in tests.
* Fix database creation.
* Add debug for rbac token issues.
* Common function for retrieving NoSQL token.
* Disable eslint rule for noconsole temporarily.
* Move getNoSqlRbacToken to separate file.
* Fix ref to new function.
* mock Resource Graph API — fires on auto-subscription selection to populate account dropdown
* Code tidy-up.
* Fix build errors.
* Remove deprecated getDbAccountAllowedStatus from PhoenixClient
The getDbAccountAllowedStatus endpoint is no longer available. All callers
now assume a Forbidden result, meaning isPhoenixNotebooks and
isPhoenixFeatures are always false.
- Remove getDbAccountAllowedStatus() from PhoenixClient
- Simplify getPhoenixStatus() in useNotebook to set both flags to false
- Remove IDbAccountAllow interface from DataModels
- Remove PhoenixDBAccountAllowed and CheckPhoenixStatus telemetry actions
- Clean up unused imports
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Revert removal of enum values, to be safe.
---------
Co-authored-by: Bikram Choudhury <bchoudhury@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* default throughput bucket
* nit
* show inactive buckets
* add e2e tests for default throughput bucket
* for test sql containers, use throughput of 4000
* remove container throughput on creation
* added offer throughput
* add default throughput bucket info link
* add text localization
* upgrade playwright
* Fix flaky permissionsScreen test by using unrouteAll with ignoreErrors
* fix: move container creation to beforeAll to reduce CI shard timeout
* remove comment
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* DDM login issue fixed while logging in via connection string
* Removed isPolicyEnabled. The includePaths field should be mandatory and, if present, must be an array
* updated the included value validation and excluded to be optional
---------
Co-authored-by: Sakshi Gupta <sakshig@microsoft.com>
* First dark theme commits for command bar
* Updated theme on sidebar
* Updated tabs, sidebar, splash screen
* settings theme changes
* Dark theme applied to Monaco editor
* Dark theme to stored procedures
* Fixed sidebar scroll
* Updated scroll issue in sidebar
* Command bar items fixed
* Fixed lint errors
* fixed lint errors
* settings side panel fixed
* Second last iteration for css
* Fixed all the issues of css
* Updated the theme icon for now on DE to change the theme from portal/DE itself
* Formatting issue resolved
* Remove CloudShellTerminalComponent changes - revert to master version
* Fixed test issue
* Fixed formatting issue
* Fix tests: update snapshots and revert xterm imports for compatibility
* Fix xterm imports in CloudShellTerminalComponent to use @xterm packages
* Fix Cloud Shell component imports for compatibility
* Update test snapshots
* Fix xterm package consistency across all CloudShell components
* Fix TypeScript compilation errors in CloudShell components and query Documents
- Standardized xterm package imports across CloudShell components to use legacy 'xterm' package
- Fixed Terminal type compatibility issues in CommonUtils.tsx
- Added type casting for enableQueryControl property in queryDocuments.ts to handle Azure Cosmos SDK interface limitations
- Applied code formatting to ensure consistency
* Update failing snapshot tests
- Updated TreeNodeComponent snapshot tests for loading states
- Updated ThroughputInputAutoPilotV3Component snapshots for number formatting changes (10,00,000 -> 1,000,000)
- All snapshot tests now pass
* Fixed test issue
* Fixed test issue
* Updated the buttons for theme
* Updated the Theme changes based on portal theme changes
* Updated review comments
* Updated the duplicate code and fixed the fabric react error
* Few places styling added and resolving few comments
* Fixed errors
* Fixed comments
* Fixed comments
* Fixed comments
* Fixed full text policy issue for mongoru accounts
* Resolved comments for class Name and few others
* Added css for homepage in ru accounts
* Final commit with all the feedback issues resolved
* Lint error resolved
* Updated the review comments and few Ui issues
* Resolved review comments and changed header bg and active state color
* Moved svg code to different file and imported
* css fixed for the hpome page boxed for ru account
* Lint errors
* Fixed boxes issue in ru accounts
* Handled the initial theme from the portal
* Updated snap
* Update snapshots for TreeNodeComponent and CreateCopyJobScreensProvider tests
* Fix duplicate DataExplorerRoot test id causing Playwright strict mode violation
* Fix locale-dependent number formatting in ThroughputInputAutoPilotV3Component
---------
Co-authored-by: Sakshi Gupta <sakshig+microsoft@microsoft.com>
Co-authored-by: Sakshi Gupta <sakshig@microsoft.com>
* adding sessionId to UserContext
* add session id
* add session id to settings pane and fix npm run compile
* Add conditional for Portal
* set default session id on userContext init
* fix tests
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Initial dev for container copy
* remove padding from label
* Added Copy Job prerequisites screen
* Added hooks to evaluate reader role access
* added copyjob pre-requsite screen along with it's validations
* Added monitor copy job list screen
* added copy job list refresh and reset functionality
* remove arm token dependency
* fetch account details from account id instead of context
* Fix lint & typescript checks
* show copyjob screen from portal navigation
* adding copy job details screen
* remove duplicate code & show sql accounts only
* ui fixes for list job page
* pending icon
* copy job details screen ui
* reset .vscode/settings.json
* Fixed existing UTs
* disabling action buttons until it's in progress
* fixed formatting
* Adding loader on submit button and show job creation errors in the panel itself
* updating disabling action menu item logic
* added custom pager
* fix lint and ts errors
* updating file names and removing comments
* remove comments
* modularize the arom common code
* Adding content and removing tooltip
* updating job details screen
* updating online copy enabled screen
* Adding below changes
- Don't show permission screen for same account in offline mode
- Don't show identity permissions for same account in online mode
- Show error message if selected containers are identical
- Update abort signal messages
* added feedback code from explorer
* Add tooltips and long polling
- Added tooltips to permission sections
- Implemented long polling for PITR and online copy enabled sections
- Long polling automatically stops after 15 minutes
- After polling ends, a refresh button will be displayed
---------
Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in>
* updated the validation logic as per BE values(policyFormatVersion will be removed from BE)
* removed field
* updated all test
---------
Co-authored-by: Sakshi Gupta <sakshig@microsoft.com>
* ddm for DE for noSQL
* ddm for DE for noSQL
* ddm for DE for noSQL
* ddm fix for the default case and test fix
* formatting issue
* updated the text change
* added validation errors
---------
Co-authored-by: Sakshi Gupta <sakshig@microsoft.com>
* Send message to Fabric when container is updated (via settings, created or deleted).
* Fix format
---------
Co-authored-by: Laurent Nguyen <languye@microsoft.com>
* Acquire token for NoSQL account prior to running tests.
* Change client id to user assigned managed identity.
* Change to use managed identity. Add token variables for gremlin and
tables.
* Add RBAC details to test README.
* Add token for SQL readonly database. Skip resource token tests when RBAC
enabled.
* Use hardcoded account name for sql readonly.
* Use specific tag for sql readonly.
* Remove comment.
* Add vector index shard key
* npm run format
* rename shard key to vector index shard key
* add tooltip for quantization byte size
* change text for GSI and container in VectorEmbedding Policy
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Hide entire Accordion of options in Settings Pane
* In PartitionKeyComponent hide "Change partition key" label when read-only.
* Create sample data container with correct pkey
* Add unit tests to PartitionKeyComponent
* Fix format
* fix unit test snapshot
* Add Fabric message to open Settings to given tab id
* Improve syntax on message contract
* Remove "(preview)" in partition key tab title in Settings Tab
* Implement dialog to import sample data
* Fix format
* Cosmetic fixes
* fix: update help link to point to the new documentation URL
---------
Co-authored-by: Sevo Kukol <sevoku@microsoft.com>
* Implement fabric native path
* Fix default values to work with current fabric clients
* Fix Fabric native mode
* Fix unit test
* export Fabric context
* Dynamically close Home tab for Mirrored databases in Fabric rather than conditional init (which doesn't work for Native)
* For Fabric native, don't show "Delete Database" in context menu and reading databases should return the database from the context.
* Update to V3 messaging
* For data plane operations, skip ARM for Fabric native. Refine the tests for fabric to make the distinction between mirrored key, mirrored AAD and native. Fix FabricUtil to strict compile.
* Add support for refreshing access tokens
* Buf fix: don't wait for refresh is async
* Fix format
* Fix strict compile issue
---------
Co-authored-by: Laurent Nguyen <languye@microsoft.com>
* Default to new backend endpoint if the endpoint in current context does not match existing set in constants.
* Remove some env references.
* Added comments with reasoning for selecting new backend by default.
* Update comment.
* Remove all references to useNewPortalBackendEndpoint now that old backend is disabled in all environments.
* Resolve lint issues.
* Removed references to old backend from Cassandra and Mongo Apis
* fix unit tests
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Added throughput bucketing
* fix bugs
* enable/disable per autoscale selection
* Added logic
* change query bucket to group
* Updated to a tab
* Fixed unit tests
* Edit package-lock
* Compile build fix
* fix unit tests
* moving the throughput bucket flag to the client generation level
* assign default throughput based on workload type
* combined common logic
* fix unit tests
* add tests
* update tests
* npm run format
* Update ci.yml
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Removed NPS Survey from DE since it has been moved to the Overview Blade
* Added ExplorerBindings back
* Moved applyExplorerBindings back to original place
* Persist query multiple query texts
* Save multiple query tab histories
* Save and restore states for QueryTab and DocumentsTab for SQL and Mongo
* Enable Collection Scale/Settings restore
* Persist documents tab current filter
* Fix DocumentsTab conflict resolve mistake
* Remove unused variable
* Fix e2e test
* Fix e2e localStorage reference
* Try clearing local storage via playwright page
* Clear local storage after opening page
* Move restore flag behind feature flag. Whitelist restorable tabs in for Fabric. Restore e2e tests.
* Fix typo
* Fix: avoid setting undefined for preferredSize for the <Allotment.Pane>
* Add comments
* Move restore tabs after knockout configure step from Explorer constructor (which could be called multiple times)
* Replaced monaco editor on Container Vector Policy tab with controls same as on create container ux
* Adds vector embedding policy to container management. Adds FullTextSearch to both add container and container management.
* Fixing unit tests and formatting issues
* More fixes
* Updating full text controls based on feedback
* Minor updates
* Editing test to fix compile issue
* Minor fix
* Adding paths for jest to ignore transform due to recent changes in upstream dependencies
* Adding mock to temporarily get unit tests to pass
* Hiding FTS feature behind the new EnableNoSQLFullTextSearch capability
* Fix API endpoint for CassandraProxy query API
* activate Mongo Proxy and Cassandra Proxy in Prod
* Add CP Prod endpoint
* Run npm format and tests
* Revert code
* fix bug that blocked local mongo proxy and cassandra proxy development
* Add prod endpoint
* fix pr check tests
* Remove prod
* Remove prod endpoint
* Remove dev endpoint
* Support data plane RBAC
* Support data plane RBAC
* Add additional changes for Portal RBAC functionality
* Remove unnecessary code
* Remove unnecessary code
* Add code to fix VCoreMongo/PG bug
* Address feedback
* Add more logs for RBAC feature
* Add more logs for RBAC features
* Add AAD endpoints for all environments
* Add AAD endpoints
* Run npm format
* Support multi-tenant switching for Data Plane RBAC
* Remove tenantID duplicates
---------
Co-authored-by: Senthamil Sindhu <sindhuba@microsoft.com>
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Fix API endpoint for CassandraProxy query API
* activate Mongo Proxy and Cassandra Proxy in Prod
* Add CP Prod endpoint
* Run npm format and tests
* Revert code
* fix bug that blocked local mongo proxy and cassandra proxy development
* Add prod endpoint
* fix pr check tests
* Remove prod
* Remove prod endpoint
* Remove dev endpoint
* Support data plane RBAC
* Support data plane RBAC
* Add additional changes for Portal RBAC functionality
* Remove unnecessary code
* Remove unnecessary code
* Add code to fix VCoreMongo/PG bug
* Address feedback
* Add more logs for RBAC feature
* Add more logs for RBAC features
* Add AAD endpoints for all environments
* Add AAD endpoints
* Run npm format
* Support multi-tenant switching for Data plane RBAC
* Run npm format
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Update message de->fabric to v3
* Reinstate get authorization token path which doesn't get called every 5 minutes anymore
* Remove obsolete comment
* Add missing types
* Fix format
* Fix build issue
* Revert "Reinstate get authorization token path which doesn't get called every 5 minutes anymore"
This reverts commit a3f3511043.
* Keep 3 old fabric message types enums for compatibility with the portal
* Re-add warning comment about not changing existing message type enums
---------
Co-authored-by: Laurent Nguyen <languye@microsoft.com>