* 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
Removes the GitHub notebook-repo integration that only existed to pin/browse notebook repositories. Deletes src/GitHub/, the GitHub controls/panes, GitHubUtils, JunoUtils, and the connectToGitHub webpack entry. Decouples NotebookManager, useNotebook, the resource tree, and Explorer from GitHub wiring. Trims JunoClient's GitHub-only methods while keeping the Schema and gallery methods. Removes GitHub config fields from ConfigContext and strips the dead github:// branches from NotebookUtil.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Adding further console logging but also fixed lines with JSON.stringify(error)
* Added retry mechanism for GETs for armRequest workflow
* Moved stringifyError into its own file as it was causing strict compile issues in ErrorHandlingUtils
* Removing temporary debug logging
* Undoing eslint change as well
* Adding further console logging but also fixed lines with JSON.stringify(error)
* Added retry mechanism for GETs for armRequest workflow
* Moved stringifyError into its own file as it was causing strict compile issues in ErrorHandlingUtils
* Security hardening for Try Cosmos DB connection string flow
- Validate connection string format via parseConnectionString before accepting postMessage
- Restrict localhost:12900 in allowedHostedExplorerEndpoints to development builds only
- Export App component for testability with null-check on render target
- Add 12 unit tests covering origin validation, format validation, and message handling
* Fix HostedExplorer test mock types for compile
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Reapply "MSAL browser migration changes"
This reverts commit 60a65efb7b.
* Fix redirect URI for localhost
* Fix URI for logout and other minor fix
* Remove unnecessary files
* Fix tests
* Fix tests
* Run npm format
* Address comments
* Address comment
* Add copilot instructions and skills for build and tests.
* Add dev-server skill.
* Auth Util changes to fix Entra login while running from copilot.
* Fix lint issue.
* Handle partition key path with white space
* add whitespace test case for pkey
* remove trailing whitespace
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Added health metrics for application load
* Added health metrics for application load
* Fix unit tests
* Added more metrics
* Added few comments
* Added DatabaseLoad Scenario and address comments
* Fix unit tests
* fix unit tests
* Fix unit tests
* fix unit tests
* fix the mock
* Fix unit tests
* Fixes an issue where tab titles were not truncating when characters used 4 bytes for encoding.
* Changed substringUtf method to be more accurate and added comments
* 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>
* Add multiple languages for Full Text Search Policy
* fix tests
* show multiple languages for multi language support enabled accounts
* addressed comments
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* Refactor logic for determining if we should use data plane RBAC to a
common function.
* Support RBAC for gremlin API.
* Refactor to use common function.
* Fix unit tests.
* Move test function inside test scope.
* Minor clean ups.
* Reinstate utf8ToB64 function in case this breaks a corner case.
* Cleaning up unused config from portal backend migration.
* Remove config used during backend migration.
* Add backend endpoint override from config.json.
* Add AAD and ARM endpoint overrides from config.json.
* Add GRAPH_ENDPOINT override from config.json.
* Remove unused catalog api version.
* Remove isTerminalEnabled from config. Cannot find reference in DE, DE Release, or Frontend.
* Fix mongo client unit tests.
* Removing BackendApi from constants since no longer referenced in the codebase.
* Talked with Tara and added the CATALOG_API_VERSION back to the config and substituted out the hard coded string it was intended to replace.
* Include existing portal backend endpoints in default allow list.
* Add localhost:1234 endpoint for Mongo unit tests.
* Removing old backend local test endpoint from backend endpoint list.
* [accessibility-2278267]:[Supporting the platform - Azure Cosmos DB - Data Explorer]: All the controls present under 'Data Explorer' page are truncated after setting the viewport to 320*256 pixel.
* feat: implement zoom level hook and update components for responsive design.
* Format fixed.
* feat: add conditionalClass utility and refactor className assignments for improved readability.
---------
Co-authored-by: Satyapriya Bai <v-satybai@microsoft.com>
* remove old portal backend endpoints
* format
* fix tests
* remove Materialized Views from createResourceTokenTreeNodes
* add portal FE back to defaultAllowedBackendEndpoints
---------
Co-authored-by: Asier Isayas <aisayas@microsoft.com>
* fix partition key missing not being able to load the document
* Implement E2E tests for documents with different partitionkeys
* Implement E2E tests for documents with different partitionkeys
* Implement E2E tests for documents with different partitionkeys
* Updated snapshot
* Updated tests for MongoRU and add create/delete tests
* Fixing system partition key showing up in Data Explorer
* fix partition key missing not being able to load the document
* Implement E2E tests for documents with different partitionkeys
* Implement E2E tests for documents with different partitionkeys
* Implement E2E tests for documents with different partitionkeys
* Updated snapshot
* Fix input element pattern matching and add validation reporting for
cases where the element is not within a form element.
* Update test snapshots.
* Remove old code and fix trigger error message.
* Move id validation to a util class.
* Add unit tests, fix standalone function, rename constants.