@@ -126,6 +126,55 @@ const WithAtlasProviders: React.FC<{ children: React.ReactNode }> = ({
126126 ) ;
127127} ;
128128
129+ const WithConnectionsProvider : React . FC < {
130+ appName : string ;
131+ autoconnectId ?: string ;
132+ onFailToLoadConnections : ( err : Error ) => void ;
133+ children : React . ReactNode ;
134+ } > = ( { appName, autoconnectId, onFailToLoadConnections, children } ) => {
135+ const logger = useCompassWebLogger ( { } ) ;
136+
137+ return (
138+ < CompassConnections
139+ appName = { appName }
140+ onFailToLoadConnections = { onFailToLoadConnections }
141+ // Compass Web runs in browser environments where system CA certificates
142+ // are not available, so we disable useSystemCA
143+ useSystemCA = { false }
144+ onExtraConnectionDataRequest = { ( ) => {
145+ return Promise . resolve ( [ { } , null ] as [
146+ Record < string , unknown > ,
147+ null
148+ ] ) ;
149+ } }
150+ onAutoconnectInfoRequest = { ( connectionStore ) => {
151+ if ( autoconnectId ) {
152+ return connectionStore . loadAll ( ) . then (
153+ ( connections ) => {
154+ return connections . find (
155+ ( connectionInfo ) => connectionInfo . id === autoconnectId
156+ ) ;
157+ } ,
158+ ( err ) => {
159+ const { log, mongoLogId } = logger ;
160+ log . warn (
161+ mongoLogId ( 1_001_000_329 ) ,
162+ 'Compass Web' ,
163+ 'Could not load connections when trying to autoconnect' ,
164+ { err : err . message }
165+ ) ;
166+ return undefined ;
167+ }
168+ ) ;
169+ }
170+ return Promise . resolve ( undefined ) ;
171+ } }
172+ >
173+ { children }
174+ </ CompassConnections >
175+ ) ;
176+ } ;
177+
129178const WithStorageProviders = createServiceProvider (
130179 function WithStorageProviders ( {
131180 orgId,
@@ -556,38 +605,10 @@ const CompassWeb = ({
556605 originForPrompt = "atlas-data-explorer"
557606 appNameForPrompt = { APP_NAMES_FOR_PROMPT . DataExplorer }
558607 >
559- < CompassConnections
608+ < WithConnectionsProvider
560609 appName = { appName ?? 'Compass Web' }
610+ autoconnectId = { autoconnectId }
561611 onFailToLoadConnections = { onFailToLoadConnections }
562- onExtraConnectionDataRequest = { ( ) => {
563- return Promise . resolve ( [ { } , null ] as [
564- Record < string , unknown > ,
565- null
566- ] ) ;
567- } }
568- onAutoconnectInfoRequest = { ( connectionStore ) => {
569- if ( autoconnectId ) {
570- return connectionStore . loadAll ( ) . then (
571- ( connections ) => {
572- return connections . find (
573- ( connectionInfo ) =>
574- connectionInfo . id === autoconnectId
575- ) ;
576- } ,
577- ( err ) => {
578- const { log, mongoLogId } = logger ;
579- log . warn (
580- mongoLogId ( 1_001_000_329 ) ,
581- 'Compass Web' ,
582- 'Could not load connections when trying to autoconnect' ,
583- { err : err . message }
584- ) ;
585- return undefined ;
586- }
587- ) ;
588- }
589- return Promise . resolve ( undefined ) ;
590- } }
591612 >
592613 < CompassInstanceStorePlugin >
593614 < FieldStorePlugin >
@@ -611,7 +632,7 @@ const CompassWeb = ({
611632 isCloudOptIn = { true }
612633 />
613634 </ CompassInstanceStorePlugin >
614- </ CompassConnections >
635+ </ WithConnectionsProvider >
615636 </ CompassAssistantProvider >
616637 </ AtlasCloudConnectionStorageProvider >
617638 </ DataModelStorageServiceProviderWeb >
0 commit comments