Commit Graph

1802 Commits

Author SHA1 Message Date
Asier Isayas d764cb22fb Use dedicated accounts for connection string tests 2026-09-16 13:18:11 -07:00
Asier Isayas 3e6bf226ad Merge branch 'master' of https://github.com/Azure/cosmos-explorer into users/aisayas/mongo-cassandra-connectionstring-login-e2etests 2026-09-15 11:45:37 -07:00
dependabot[bot] b16229d1f8 Bump browserslist from 4.28.1 to 4.28.9 (#2585)
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.1 to 4.28.9.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.28.1...4.28.9)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-version: 4.28.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-11 11:16:12 -07:00
dependabot[bot] fc03bb3423 Bump @xmldom/xmldom from 0.8.13 to 0.8.15 (#2584)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.8.13 to 0.8.15.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.8.13...0.8.15)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-version: 0.8.15
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-10 14:20:42 -07:00
olprod f032a18107 Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2577277 (#2488)
* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2550970

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2552493

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2553780

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2555570

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2557396

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2559084

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2566214

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2567719

* Localized file check-in by OneLocBuild Task: Build definition ID 13114: Build ID 2569196

---------

Co-authored-by: sunghyunkang1111 <114709653+sunghyunkang1111@users.noreply.github.com>
2026-09-10 12:10:44 -05:00
Asier Isayas fa68880370 Handle Mongo firewall account in test explorer
Treat the Mongo connection-string firewall test account as a connection-string-only account in the shared E2E URL helper.
2026-09-09 07:33:46 -07:00
Asier Isayas 503fec0010 Address connection string login review feedback
Clarify Mongo and Cassandra E2E test comments and retain formatting in the resolved connection flow.
2026-09-09 07:22:16 -07:00
Asier Isayas a2f6fbf2f5 Merge branch 'master' of https://github.com/Azure/cosmos-explorer into users/aisayas/mongo-cassandra-connectionstring-login-e2etests 2026-09-09 07:11:53 -07:00
Asier Isayas c1a6cf6ecd Add Mongo and Cassandra connection string E2E tests
Add connection-string data-plane coverage for Mongo and Cassandra, including Mongo firewall rejection coverage and the supporting E2E account/command helpers. Remove an unused import left by the merged login error handling.
2026-09-09 06:56:55 -07:00
dependabot[bot] 1f04f0ae76 Bump fast-uri from 3.1.5 to 3.1.7 (#2582)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.5 to 3.1.7.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.5...v3.1.7)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-03 17:01:01 -07:00
jawelton74 5080e516d7 Update preview site URL (#2572)
* Update all preview website URL references to the new URL.

* Remove az cli config.

* Fix formatting.

* Fix new preview URL in ConfigContext
2026-09-02 13:28:31 -07:00
jawelton74 325abbdff5 Pin GitHub Actions to full-length commit SHAs (#2574)
Co-authored-by: Dan Fiedler <danfiedler@microsoft.com>
2026-09-01 08:40:33 -07:00
asier-isayas a825a7ddc5 Support Sovereign/PPE endpoint zones for connection string login + E2E test for SQL account with public network access disabled (#2568)
* Support sovereign/PPE endpoint zones for connection string login

Move the hardcoded account endpoint suffixes out of Constants and into ConfigContext so connection string login works in sovereign clouds and PPE, and widen ConnectionStringParser to accept every configured zone.

Surface Portal Backend rejections in the hosted connect form: read the body off the Response that fetchEncryptedToken throws, and offer a firewall help link on a 403.

Add an E2E test covering SQL connection string login against an account with public network access disabled.

* Harden connection string DNS zone matching

Detect PPE accounts from Mongo and Cassandra connection strings, build their document endpoint from the matched zone, match the PPE suffix on a label boundary, and escape every regex metacharacter in config-supplied zones. Drop the sqlx.cosmosdb.azure.com zone, which is not a real SQL zone.

* Mock web-vitals globally in test setup

ScenarioMonitor subscribes to web-vitals when it is imported, so the onTTFB timer can throw during any suite that outlives it. Mocking it in setupTests.ts keeps that out of individual test files.

* Improve connection string login feedback

* Preserve connection restriction check order

* Flatten connection login error handling

---------

Co-authored-by: Asier Isayas <aisayas@microsoft.com>
2026-08-31 07:35:54 -07:00
jawelton74 49a2ad491a Fix js-yaml Dependabot alert (#2571)
Update ESLint's transitive js-yaml copies to a patched version that addresses CVE-2026-59869.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e102d1bf-4540-4ab5-9dd2-f82fe0267005
2026-08-31 06:30:06 -07:00
dependabot[bot] f30a613ab3 Bump serialize-javascript, terser-webpack-plugin and copy-webpack-plugin (#2525)
Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) to 7.1.0 and updates ancestor dependencies [serialize-javascript](https://github.com/yahoo/serialize-javascript), [terser-webpack-plugin](https://github.com/webpack/minimizer-webpack-plugin) and [copy-webpack-plugin](https://github.com/webpack/copy-webpack-plugin). These dependencies need to be updated together.


Updates `serialize-javascript` from 6.0.2 to 7.1.0
- [Release notes](https://github.com/yahoo/serialize-javascript/releases)
- [Commits](https://github.com/yahoo/serialize-javascript/compare/v6.0.2...v7.1.0)

Updates `terser-webpack-plugin` from 5.3.16 to 5.6.1
- [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.3.16...v5.6.1)

Updates `copy-webpack-plugin` from 11.0.0 to 14.0.0
- [Release notes](https://github.com/webpack/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/copy-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/copy-webpack-plugin/compare/v11.0.0...v14.0.0)

Updates `terser-webpack-plugin` from 5.3.9 to 5.6.1
- [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.3.16...v5.6.1)

---
updated-dependencies:
- dependency-name: copy-webpack-plugin
  dependency-version: 14.0.0
  dependency-type: direct:production
- dependency-name: serialize-javascript
  dependency-version: 7.0.6
  dependency-type: indirect
- dependency-name: terser-webpack-plugin
  dependency-version: 5.6.1
  dependency-type: indirect
- dependency-name: terser-webpack-plugin
  dependency-version: 5.6.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-27 12:25:57 -07:00
Asier Isayas 49ecdb3f98 Merge remote-tracking branch 'origin/users/aisayas/sql-connection-string-login-zones' into users/aisayas/sql-connectionstring-login 2026-08-27 13:06:03 -04:00
asier-isayas 13c9feebd8 Merge branch 'master' into users/aisayas/sql-connection-string-login-zones 2026-08-27 12:51:12 -04:00
jawelton74 d1c122d300 Update to Node.js 22 (#2567)
* Update project to Node.js 22

Standardize local development and GitHub Actions on Node.js 22.x. Update Node typings to the latest release compatible with the project's TypeScript 4.9 compiler.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3d0e0c37-ce73-44b6-a068-e24e87cf8fbd

* Remove .nvmrc created by copilot.

---------

Copilot-Session: 3d0e0c37-ce73-44b6-a068-e24e87cf8fbd
2026-08-27 08:40:59 -07:00
Asier Isayas 5fe07c2523 Improve connection string login feedback 2026-08-27 11:03:49 -04:00
asier-isayas ea056bfaeb Merge branch 'master' into users/aisayas/sql-connection-string-login-zones 2026-08-27 09:55:19 -04:00
jawelton74 f8cfb33618 Remove Phoenix and notebooks (Phase 5) (#2561)
* Remove Phoenix and notebook core

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4e4f2ebd-f2f8-4c2b-b63d-40e1a2b1c662

* Fix merge issue.

---------

Copilot-Session: 4e4f2ebd-f2f8-4c2b-b63d-40e1a2b1c662
2026-08-26 13:42:14 -07:00
Asier Isayas b2d40ad9ce Mock web-vitals globally in test setup
ScenarioMonitor subscribes to web-vitals when it is imported, so the onTTFB timer can throw during any suite that outlives it. Mocking it in setupTests.ts keeps that out of individual test files.
2026-08-26 15:31:55 -04:00
Asier Isayas 527fc2c48c Harden connection string DNS zone matching
Detect PPE accounts from Mongo and Cassandra connection strings, build their document endpoint from the matched zone, match the PPE suffix on a label boundary, and escape every regex metacharacter in config-supplied zones. Drop the sqlx.cosmosdb.azure.com zone, which is not a real SQL zone.
2026-08-26 14:28:32 -04:00
Asier Isayas 7649070811 Support sovereign/PPE endpoint zones for connection string login
Move the hardcoded account endpoint suffixes out of Constants and into ConfigContext so connection string login works in sovereign clouds and PPE, and widen ConnectionStringParser to accept every configured zone.

Surface Portal Backend rejections in the hosted connect form: read the body off the Response that fetchEncryptedToken throws, and offer a firewall help link on a 403.

Add an E2E test covering SQL connection string login against an account with public network access disabled.
2026-08-26 13:05:32 -04:00
dependabot[bot] c375830699 Bump http-proxy-middleware from 2.0.9 to 2.0.10 (#2563)
Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.9 to 2.0.10.
- [Release notes](https://github.com/chimurai/http-proxy-middleware/releases)
- [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.10/CHANGELOG.md)
- [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.9...v2.0.10)

---
updated-dependencies:
- dependency-name: http-proxy-middleware
  dependency-version: 2.0.10
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-21 10:04:38 -07:00
asier-isayas 4d9921180d Add client-side connection-string login for SQL, Tables, and Gremlin (#2559)
* Add client-side connection-string login for SQL, Tables, and Gremlin

SQL, Tables, and Gremlin now sign data-plane requests client-side with the account key and skip the Portal Backend proxy (generatetoken/accessinputmetadata/authorizationtokens). Adds client-side host/account validation mirroring the backend ValidateHostAndAccount, plus a real CosmosClient connectivity probe that gates opening the Data Explorer. Mongo and Cassandra continue to use the encrypted-token proxy path.

* Localize connection-string login validation and connectivity messages

Move the hardcoded SQL/Tables/Gremlin connection-string login strings into en/Resources.json and reference them via the type-safe Keys object (t(Keys.connectExplorer.errors.*)).

* Drop unused mongodb:// branch from endpoint host extraction

* Remove Data Explorer references from connectivity probe comment

* Reword proxy reference in ConnectionString comment

* Fix trailing whitespace in connectivity probe comment

* Send connection string in Authorization header for Mongo/Cassandra token request

* Add E2E connection string login tests for SQL, Gremlin, and Tables

* Add wrong account key test for SQL connection string login

* Add access token to authorization header for encrypted token flow

* Wire connection string login E2E tests to dedicated connstring accounts in CI

Add TestAuthType and fold connection-string account resolution into getAccountName; seed and target the dedicated *-connstring accounts in CI while falling back to the standard per-API account locally.

* Handle connection string account types in getTestExplorerUrl switch

* Move globalThis.crypto polyfill to fx.ts so it runs for all specs

* Remove connection string validation for connection string login

- Remove validateDirectConnectionStringLogin and its helpers (extractEndpointHostFromConnectionString, extractHostToken, directLoginAllowlistedEndpointZones)
- Remove old extractMasterKeyfromConnectionString (Gremlin-specific), rename extractAccountKeyFromConnectionString to extractMasterKeyfromConnectionString
- Change validateDirectConnectionStringConnectivity to throw on error instead of returning string|undefined
- Simplify direct-login flow: submit connection string to CosmosClient as-is, no format or endpoint validation
- Keep connectivity pre-check (throws if CosmosClient cannot reach account)
- Remove 6 unused localization keys for validation errors
- Update tests to match new behavior

* Send authorization header for connection string login backend calls

* Simplify connection string login error handling

- Lift the login error state into HostedExplorer so failures from the connect form and from a postMessage login share one source of truth

- Show the message returned by the service instead of falling back to a generic unreachable message

- Move isAuthorizationError into AuthorizationUtils alongside the other shared auth helpers

- Widen getErrorMessage to accept unknown so catch variables no longer need a cast

- Show the connect screen error tooltip beside the icon and widen it so long service messages fit

- Consolidate the repeated account lookup and login steps in the SQL connection string spec

* Consolidate hosted login account metadata into a single state

Encrypted-token and direct connection-string logins now write to one accountMetadata state instead of two, which also fixes the connect form staying mounted after a successful SQL/Tables/Gremlin login. Deletes the now-unused useTokenMetadata hook and moves fetchAccessData to Platform/Hosted/Helpers/PortalAccessData.ts.

* Accept connection string logins without validating them

SQL, Tables, and Gremlin logins probed the account before signing in, so a user whose key was wrong or whose account was unreachable was blocked at the connect form. The probe is now gone: the connection string is accepted as-is and any bad key surfaces on the data-plane requests made from inside the explorer.

Removes validateDirectConnectionStringConnectivity, isAuthorizationError, and the connectExplorer.errors.connectFailed string along with their tests.

Also takes documentEndpoint straight from the AccountEndpoint in SQL and Gremlin connection strings instead of rebuilding it from the account name and a hardcoded DNS zone. Tables still derives it, since a Tables connection string only carries the table endpoint.

* Keep the connect form login error local to ConnectExplorer

The error state was lifted into HostedExplorer so a postMessage login could report failures, which meant the connect screen needed a second copy of the error markup for the AAD view. That copy fell outside the connectExplorerContent selector the tooltip styles are scoped to, so it rendered the message as unstyled inline text.

Move the state back into ConnectExplorer and let connectWithConnectionString log the failure as it did before. A failed postMessage login still leaves the user on the connect screen either way.

* Move Portal Backend calls into a PortalBackendClient helper

fetchEncryptedToken and isAccountRestrictedForConnectionStringLogin lived in ConnectExplorer.tsx, so HostedExplorer imported a network call from a React component. Merge them with fetchAccessData into src/Platform/Hosted/Helpers/PortalBackendClient.ts along with the PortalBackendError type, leaving ConnectExplorer as UI only.

* Leave the encrypted token login path as it is on master

The direct connection string login work does not change how Mongo and Cassandra logins fail, so drop the 401/403 handling this branch added around fetchEncryptedToken along with the now unused isAuthorizationError helper.

* Move the Portal Backend connection string calls out of Helpers

Helpers holds pure string utilities, and every other *Client in the repo sits at its domain root, so name the module for the endpoints it wraps and place it beside HostedUtils. Also drop the branch's ConnectScreen.less tooltip restyle, which was unrelated to connection string login.

* Move the Portal Backend client to Common

The module is a plain service client with no dependency on the hosted platform, and CosmosClient and MetricEvents already hand roll their own Portal Backend calls, so Common is where a shared client belongs.

* Add an E2E test that SQL connection string login skips the Portal Backend

Nothing asserted the defining behavior of the direct login path, so reverting the short-circuit in connectWithConnectionString would have gone unnoticed. The listener filters on the connectionstring route so it covers both generatetoken and accessinputmetadata, and leaves the account restriction check alone since that still runs for every API.

* Refer to the Table API as Table in comments

The comments added by this branch alternated between Table and Tables when naming the API alongside SQL and Gremlin. TablesDB is left alone since that is the literal database name, as is the plural noun where it refers to actual tables.

---------

Co-authored-by: Asier Isayas <aisayas@microsoft.com>
2026-08-20 07:59:52 -07:00
dependabot[bot] 086c17ecff Bump ws from 8.20.1 to 8.21.3 (#2562)
Bumps [ws](https://github.com/websockets/ws) from 8.20.1 to 8.21.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.20.1...8.21.3)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 8.21.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-19 16:23:18 -07:00
Asier Isayas 0f0e58740d Refer to the Table API as Table in comments
The comments added by this branch alternated between Table and Tables when naming the API alongside SQL and Gremlin. TablesDB is left alone since that is the literal database name, as is the plural noun where it refers to actual tables.
2026-08-19 16:05:28 -07:00
Asier Isayas 3005ebd02d Add an E2E test that SQL connection string login skips the Portal Backend
Nothing asserted the defining behavior of the direct login path, so reverting the short-circuit in connectWithConnectionString would have gone unnoticed. The listener filters on the connectionstring route so it covers both generatetoken and accessinputmetadata, and leaves the account restriction check alone since that still runs for every API.
2026-08-19 16:01:41 -07:00
Asier Isayas adc28d8082 Move the Portal Backend client to Common
The module is a plain service client with no dependency on the hosted platform, and CosmosClient and MetricEvents already hand roll their own Portal Backend calls, so Common is where a shared client belongs.
2026-08-19 15:37:51 -07:00
Asier Isayas 87c600809f Move the Portal Backend connection string calls out of Helpers
Helpers holds pure string utilities, and every other *Client in the repo sits at its domain root, so name the module for the endpoints it wraps and place it beside HostedUtils. Also drop the branch's ConnectScreen.less tooltip restyle, which was unrelated to connection string login.
2026-08-19 15:19:21 -07:00
Asier Isayas 16126995f7 Leave the encrypted token login path as it is on master
The direct connection string login work does not change how Mongo and Cassandra logins fail, so drop the 401/403 handling this branch added around fetchEncryptedToken along with the now unused isAuthorizationError helper.
2026-08-19 14:29:24 -07:00
Asier Isayas 5218c75ca0 Merge branch 'users/aisayas/sql-connectionstring-login' of https://github.com/Azure/cosmos-explorer into users/aisayas/sql-connectionstring-login 2026-08-19 13:05:06 -07:00
asier-isayas cf50eedbba Merge branch 'master' into users/aisayas/sql-connectionstring-login 2026-08-19 13:04:34 -07:00
Asier Isayas 9e39285340 Move Portal Backend calls into a PortalBackendClient helper
fetchEncryptedToken and isAccountRestrictedForConnectionStringLogin lived in ConnectExplorer.tsx, so HostedExplorer imported a network call from a React component. Merge them with fetchAccessData into src/Platform/Hosted/Helpers/PortalBackendClient.ts along with the PortalBackendError type, leaving ConnectExplorer as UI only.
2026-08-19 13:03:03 -07:00
Asier Isayas 9dccd066c2 Keep the connect form login error local to ConnectExplorer
The error state was lifted into HostedExplorer so a postMessage login could report failures, which meant the connect screen needed a second copy of the error markup for the AAD view. That copy fell outside the connectExplorerContent selector the tooltip styles are scoped to, so it rendered the message as unstyled inline text.

Move the state back into ConnectExplorer and let connectWithConnectionString log the failure as it did before. A failed postMessage login still leaves the user on the connect screen either way.
2026-08-19 09:22:11 -07:00
Asier Isayas 2e979a9b65 Accept connection string logins without validating them
SQL, Tables, and Gremlin logins probed the account before signing in, so a user whose key was wrong or whose account was unreachable was blocked at the connect form. The probe is now gone: the connection string is accepted as-is and any bad key surfaces on the data-plane requests made from inside the explorer.

Removes validateDirectConnectionStringConnectivity, isAuthorizationError, and the connectExplorer.errors.connectFailed string along with their tests.

Also takes documentEndpoint straight from the AccountEndpoint in SQL and Gremlin connection strings instead of rebuilding it from the account name and a hardcoded DNS zone. Tables still derives it, since a Tables connection string only carries the table endpoint.
2026-08-19 08:42:35 -07:00
dependabot[bot] 73efa98abc Bump axios from 1.16.0 to 1.19.0 (#2539)
Bumps [axios](https://github.com/axios/axios) from 1.16.0 to 1.19.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.16.0...v1.19.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-19 06:15:34 -07:00
Asier Isayas b4a8e78fed Consolidate hosted login account metadata into a single state
Encrypted-token and direct connection-string logins now write to one accountMetadata state instead of two, which also fixes the connect form staying mounted after a successful SQL/Tables/Gremlin login. Deletes the now-unused useTokenMetadata hook and moves fetchAccessData to Platform/Hosted/Helpers/PortalAccessData.ts.
2026-08-18 10:05:12 -07:00
asier-isayas f03539d713 Merge branch 'master' into users/aisayas/sql-connectionstring-login 2026-08-18 09:24:08 -07:00
Asier Isayas 913dd3dcbf Simplify connection string login error handling
- Lift the login error state into HostedExplorer so failures from the connect form and from a postMessage login share one source of truth

- Show the message returned by the service instead of falling back to a generic unreachable message

- Move isAuthorizationError into AuthorizationUtils alongside the other shared auth helpers

- Widen getErrorMessage to accept unknown so catch variables no longer need a cast

- Show the connect screen error tooltip beside the icon and widen it so long service messages fit

- Consolidate the repeated account lookup and login steps in the SQL connection string spec
2026-08-18 09:23:23 -07:00
dependabot[bot] fb8a85b84c Bump postcss from 8.5.15 to 8.5.26 (#2550)
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.26.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.15...8.5.26)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.25
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-18 08:04:09 -07:00
dependabot[bot] 61ac2189f0 Bump fast-uri from 3.1.2 to 3.1.5 (#2551)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.5.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 16:45:22 -07:00
Asier Isayas 4c9167f5fd Send authorization header for connection string login backend calls 2026-08-17 09:41:38 -07:00
Asier Isayas ea42796379 Remove connection string validation for connection string login
- Remove validateDirectConnectionStringLogin and its helpers (extractEndpointHostFromConnectionString, extractHostToken, directLoginAllowlistedEndpointZones)
- Remove old extractMasterKeyfromConnectionString (Gremlin-specific), rename extractAccountKeyFromConnectionString to extractMasterKeyfromConnectionString
- Change validateDirectConnectionStringConnectivity to throw on error instead of returning string|undefined
- Simplify direct-login flow: submit connection string to CosmosClient as-is, no format or endpoint validation
- Keep connectivity pre-check (throws if CosmosClient cannot reach account)
- Remove 6 unused localization keys for validation errors
- Update tests to match new behavior
2026-08-17 06:47:47 -07:00
Mike Krüger 0b38a6be4d Fix casing of Cosmos DB Shell command bar button label (#2552)
* Fix casing of Cosmos DB Shell command bar button label

* Capitalize Shell in all terminal button labels for consistency
2026-08-17 11:13:21 +02:00
Mike Krüger 12ad23a061 Sync CloudShell backend PTY size on terminal resize (#2553)
* Sync CloudShell backend PTY size on terminal resize

Resizing the browser window only re-fit the local xterm; the remote shell kept its original column count, so typed input wrapped/broke at the wrong column. Add resizeTerminal() client call to the CloudShell terminals/{id}/size endpoint and register a debounced terminal.onResize handler that pushes new dimensions to the backend.

* Add unit tests for registerTerminalResizeHandler (debounce, no-op skip, error handling)

* Fix resizeTerminal success test: stub a successful fetch response
2026-08-17 10:15:33 +02:00
asier-isayas a2d24cc972 Merge branch 'master' into users/aisayas/sql-connectionstring-login 2026-08-14 14:29:29 -04:00
dependabot[bot] 2834bf0fd4 Bump immutable from 4.0.0-rc.12 to 4.3.9 (#2547)
Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.0.0-rc.12 to 4.3.9.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/immutable-js/immutable-js/compare/v4.0.0-rc.12...v4.3.9)

---
updated-dependencies:
- dependency-name: immutable
  dependency-version: 4.3.9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-14 10:09:42 -07:00
asier-isayas 48c3960ba0 Merge branch 'master' into users/aisayas/sql-connectionstring-login 2026-08-14 10:27:48 -04:00