@memberjunction/server 6.2.0-edge.6 → 6.2.0-edge.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/agentSessions/BridgeHostInstance.d.ts +8 -3
- package/dist/agentSessions/BridgeHostInstance.d.ts.map +1 -1
- package/dist/agentSessions/BridgeHostInstance.js +14 -4
- package/dist/agentSessions/BridgeHostInstance.js.map +1 -1
- package/dist/agentSessions/HandoffOfferExpiry.d.ts +10 -0
- package/dist/agentSessions/HandoffOfferExpiry.d.ts.map +1 -0
- package/dist/agentSessions/HandoffOfferExpiry.js +18 -0
- package/dist/agentSessions/HandoffOfferExpiry.js.map +1 -0
- package/dist/agentSessions/ReturningVisitorRecap.js +1 -0
- package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
- package/dist/agentSessions/SessionJanitor.d.ts +31 -8
- package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
- package/dist/agentSessions/SessionJanitor.js +85 -41
- package/dist/agentSessions/SessionJanitor.js.map +1 -1
- package/dist/agentSessions/SessionManager.d.ts +14 -4
- package/dist/agentSessions/SessionManager.d.ts.map +1 -1
- package/dist/agentSessions/SessionManager.js +28 -4
- package/dist/agentSessions/SessionManager.js.map +1 -1
- package/dist/agentSessions/conversationBrowsers.d.ts +61 -0
- package/dist/agentSessions/conversationBrowsers.d.ts.map +1 -0
- package/dist/agentSessions/conversationBrowsers.js +118 -0
- package/dist/agentSessions/conversationBrowsers.js.map +1 -0
- package/dist/agentSessions/sessionDeadline.d.ts +43 -0
- package/dist/agentSessions/sessionDeadline.d.ts.map +1 -0
- package/dist/agentSessions/sessionDeadline.js +68 -0
- package/dist/agentSessions/sessionDeadline.js.map +1 -0
- package/dist/auth/APIKeyScopeAuth.d.ts.map +1 -1
- package/dist/auth/APIKeyScopeAuth.js +5 -4
- package/dist/auth/APIKeyScopeAuth.js.map +1 -1
- package/dist/auth/loginEmailResolution.d.ts +41 -0
- package/dist/auth/loginEmailResolution.d.ts.map +1 -0
- package/dist/auth/loginEmailResolution.js +47 -0
- package/dist/auth/loginEmailResolution.js.map +1 -0
- package/dist/auth/magicLink/MagicLinkKeys.d.ts +50 -2
- package/dist/auth/magicLink/MagicLinkKeys.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkKeys.js +129 -12
- package/dist/auth/magicLink/MagicLinkKeys.js.map +1 -1
- package/dist/auth/magicLink/MagicLinkRouter.d.ts +3 -0
- package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkRouter.js +23 -5
- package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
- package/dist/auth/magicLink/MagicLinkService.d.ts +39 -5
- package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkService.js +221 -9
- package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
- package/dist/auth/magicLink/index.d.ts +1 -1
- package/dist/auth/magicLink/index.d.ts.map +1 -1
- package/dist/auth/magicLink/index.js +1 -1
- package/dist/auth/magicLink/index.js.map +1 -1
- package/dist/auth/magicLink/redeemLanding.d.ts +2 -2
- package/dist/auth/magicLink/redeemLanding.d.ts.map +1 -1
- package/dist/auth/magicLink/redeemLanding.js +7 -4
- package/dist/auth/magicLink/redeemLanding.js.map +1 -1
- package/dist/auth/magicLink/types.d.ts +27 -3
- package/dist/auth/magicLink/types.d.ts.map +1 -1
- package/dist/auth/magicLink/types.js +0 -4
- package/dist/auth/magicLink/types.js.map +1 -1
- package/dist/auth/newUsers.d.ts.map +1 -1
- package/dist/auth/newUsers.js +1 -0
- package/dist/auth/newUsers.js.map +1 -1
- package/dist/backgroundSweepConfigUnits.d.ts +231 -0
- package/dist/backgroundSweepConfigUnits.d.ts.map +1 -0
- package/dist/backgroundSweepConfigUnits.js +180 -0
- package/dist/backgroundSweepConfigUnits.js.map +1 -0
- package/dist/broadcast/BaseCacheInvalidationBroadcastProvider.d.ts.map +1 -1
- package/dist/broadcast/BaseCacheInvalidationBroadcastProvider.js +2 -1
- package/dist/broadcast/BaseCacheInvalidationBroadcastProvider.js.map +1 -1
- package/dist/config.d.ts +906 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +59 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +41 -12
- package/dist/context.js.map +1 -1
- package/dist/coreRoutes.d.ts +3 -1
- package/dist/coreRoutes.d.ts.map +1 -1
- package/dist/coreRoutes.js +6 -4
- package/dist/coreRoutes.js.map +1 -1
- package/dist/generated/graphql-schemas/__mj.d.ts +1072 -5
- package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
- package/dist/generated/graphql-schemas/__mj.js +10174 -4618
- package/dist/generated/graphql-schemas/__mj.js.map +1 -1
- package/dist/generic/OrphanedConversationDetailReconciler.d.ts +11 -0
- package/dist/generic/OrphanedConversationDetailReconciler.d.ts.map +1 -1
- package/dist/generic/OrphanedConversationDetailReconciler.js +27 -1
- package/dist/generic/OrphanedConversationDetailReconciler.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +50 -5
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +329 -132
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +4 -0
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +47 -7
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/globalCors.d.ts.map +1 -1
- package/dist/globalCors.js +1 -0
- package/dist/globalCors.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +201 -43
- package/dist/index.js.map +1 -1
- package/dist/integration/ConnectionPause.d.ts +121 -0
- package/dist/integration/ConnectionPause.d.ts.map +1 -0
- package/dist/integration/ConnectionPause.js +183 -0
- package/dist/integration/ConnectionPause.js.map +1 -0
- package/dist/integration/CustomColumnPromoter.d.ts +72 -6
- package/dist/integration/CustomColumnPromoter.d.ts.map +1 -1
- package/dist/integration/CustomColumnPromoter.js +87 -46
- package/dist/integration/CustomColumnPromoter.js.map +1 -1
- package/dist/integration/EntityMapLifecycle.d.ts +78 -4
- package/dist/integration/EntityMapLifecycle.d.ts.map +1 -1
- package/dist/integration/EntityMapLifecycle.js +199 -5
- package/dist/integration/EntityMapLifecycle.js.map +1 -1
- package/dist/integration/InactiveRowWarnings.d.ts +31 -0
- package/dist/integration/InactiveRowWarnings.d.ts.map +1 -1
- package/dist/integration/InactiveRowWarnings.js +29 -0
- package/dist/integration/InactiveRowWarnings.js.map +1 -1
- package/dist/integration/ObjectNamesByID.d.ts +28 -0
- package/dist/integration/ObjectNamesByID.d.ts.map +1 -0
- package/dist/integration/ObjectNamesByID.js +87 -0
- package/dist/integration/ObjectNamesByID.js.map +1 -0
- package/dist/integration/PostRestartIntrospect.d.ts +26 -0
- package/dist/integration/PostRestartIntrospect.d.ts.map +1 -0
- package/dist/integration/PostRestartIntrospect.js +27 -0
- package/dist/integration/PostRestartIntrospect.js.map +1 -0
- package/dist/integration/RSUPostRestartProgress.d.ts +176 -0
- package/dist/integration/RSUPostRestartProgress.d.ts.map +1 -0
- package/dist/integration/RSUPostRestartProgress.js +323 -0
- package/dist/integration/RSUPostRestartProgress.js.map +1 -0
- package/dist/integration/RSUProgressBridge.d.ts +41 -2
- package/dist/integration/RSUProgressBridge.d.ts.map +1 -1
- package/dist/integration/RSUProgressBridge.js +84 -1
- package/dist/integration/RSUProgressBridge.js.map +1 -1
- package/dist/integration/RunArtifactAuthorization.d.ts +39 -0
- package/dist/integration/RunArtifactAuthorization.d.ts.map +1 -0
- package/dist/integration/RunArtifactAuthorization.js +45 -0
- package/dist/integration/RunArtifactAuthorization.js.map +1 -0
- package/dist/integration/SchemaRefreshLaunch.d.ts +9 -0
- package/dist/integration/SchemaRefreshLaunch.d.ts.map +1 -1
- package/dist/integration/SchemaRefreshLaunch.js +3 -2
- package/dist/integration/SchemaRefreshLaunch.js.map +1 -1
- package/dist/integration/ScopedFieldsForBuild.d.ts +46 -0
- package/dist/integration/ScopedFieldsForBuild.d.ts.map +1 -0
- package/dist/integration/ScopedFieldsForBuild.js +91 -0
- package/dist/integration/ScopedFieldsForBuild.js.map +1 -0
- package/dist/integration/TargetConfigGuard.d.ts +40 -0
- package/dist/integration/TargetConfigGuard.d.ts.map +1 -0
- package/dist/integration/TargetConfigGuard.js +40 -0
- package/dist/integration/TargetConfigGuard.js.map +1 -0
- package/dist/logging/StartupLogger.d.ts +50 -0
- package/dist/logging/StartupLogger.d.ts.map +1 -1
- package/dist/logging/StartupLogger.js +15 -22
- package/dist/logging/StartupLogger.js.map +1 -1
- package/dist/middleware/BaseServerMiddleware.d.ts +21 -3
- package/dist/middleware/BaseServerMiddleware.d.ts.map +1 -1
- package/dist/middleware/BaseServerMiddleware.js +4 -2
- package/dist/middleware/BaseServerMiddleware.js.map +1 -1
- package/dist/realtimeSessions/ownedRealtimeSession.d.ts.map +1 -1
- package/dist/realtimeSessions/ownedRealtimeSession.js +2 -3
- package/dist/realtimeSessions/ownedRealtimeSession.js.map +1 -1
- package/dist/realtimeSessions/sessionAccess.d.ts +15 -0
- package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -1
- package/dist/realtimeSessions/sessionAccess.js +22 -0
- package/dist/realtimeSessions/sessionAccess.js.map +1 -1
- package/dist/realtimeWidget/WidgetSessionService.d.ts.map +1 -1
- package/dist/realtimeWidget/WidgetSessionService.js +2 -0
- package/dist/realtimeWidget/WidgetSessionService.js.map +1 -1
- package/dist/realtimeWidget/visitorIdentity.d.ts.map +1 -1
- package/dist/realtimeWidget/visitorIdentity.js +1 -0
- package/dist/realtimeWidget/visitorIdentity.js.map +1 -1
- package/dist/realtimeWidget/widgetCore.d.ts.map +1 -1
- package/dist/realtimeWidget/widgetCore.js +4 -7
- package/dist/realtimeWidget/widgetCore.js.map +1 -1
- package/dist/realtimeWidget/widgetGuestElevation.js +1 -0
- package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
- package/dist/requestOrigin.d.ts +22 -0
- package/dist/requestOrigin.d.ts.map +1 -0
- package/dist/requestOrigin.js +60 -0
- package/dist/requestOrigin.js.map +1 -0
- package/dist/resolvers/AgentRunStatusPublisher.d.ts +10 -0
- package/dist/resolvers/AgentRunStatusPublisher.d.ts.map +1 -1
- package/dist/resolvers/AgentRunStatusPublisher.js +18 -2
- package/dist/resolvers/AgentRunStatusPublisher.js.map +1 -1
- package/dist/resolvers/AgentSessionResolver.d.ts.map +1 -1
- package/dist/resolvers/AgentSessionResolver.js +6 -2
- package/dist/resolvers/AgentSessionResolver.js.map +1 -1
- package/dist/resolvers/AutotagPipelineResolver.d.ts +1 -1
- package/dist/resolvers/AutotagPipelineResolver.d.ts.map +1 -1
- package/dist/resolvers/AutotagPipelineResolver.js +61 -16
- package/dist/resolvers/AutotagPipelineResolver.js.map +1 -1
- package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -1
- package/dist/resolvers/ConversationRunEventsResolver.js +2 -0
- package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -1
- package/dist/resolvers/ExecuteRemoteOperationResolver.d.ts +6 -0
- package/dist/resolvers/ExecuteRemoteOperationResolver.d.ts.map +1 -1
- package/dist/resolvers/ExecuteRemoteOperationResolver.js +30 -7
- package/dist/resolvers/ExecuteRemoteOperationResolver.js.map +1 -1
- package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataResolver.js +34 -13
- package/dist/resolvers/GetDataResolver.js.map +1 -1
- package/dist/resolvers/InfoResolver.js +1 -1
- package/dist/resolvers/InfoResolver.js.map +1 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +401 -11
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.js +2690 -1305
- package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
- package/dist/resolvers/MCPResolver.d.ts.map +1 -1
- package/dist/resolvers/MCPResolver.js +13 -2
- package/dist/resolvers/MCPResolver.js.map +1 -1
- package/dist/resolvers/QuerySystemUserResolver.d.ts +38 -1
- package/dist/resolvers/QuerySystemUserResolver.d.ts.map +1 -1
- package/dist/resolvers/QuerySystemUserResolver.js +181 -88
- package/dist/resolvers/QuerySystemUserResolver.js.map +1 -1
- package/dist/resolvers/RealtimeBridgeResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeBridgeResolver.js +1 -0
- package/dist/resolvers/RealtimeBridgeResolver.js.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts +6 -0
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.js +36 -5
- package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts +62 -10
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts.map +1 -1
- package/dist/resolvers/RemoteBrowserActionResolver.js +217 -34
- package/dist/resolvers/RemoteBrowserActionResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts +24 -8
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +185 -67
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/RunAIPromptResolver.d.ts +5 -3
- package/dist/resolvers/RunAIPromptResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIPromptResolver.js +19 -18
- package/dist/resolvers/RunAIPromptResolver.js.map +1 -1
- package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
- package/dist/resolvers/RunTemplateResolver.js +3 -1
- package/dist/resolvers/RunTemplateResolver.js.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.js +7 -8
- package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
- package/dist/resolvers/TagGovernanceResolver.d.ts +12 -0
- package/dist/resolvers/TagGovernanceResolver.d.ts.map +1 -1
- package/dist/resolvers/TagGovernanceResolver.js +84 -0
- package/dist/resolvers/TagGovernanceResolver.js.map +1 -1
- package/dist/resolvers/TelemetryResolver.d.ts +13 -8
- package/dist/resolvers/TelemetryResolver.d.ts.map +1 -1
- package/dist/resolvers/TelemetryResolver.js +40 -9
- package/dist/resolvers/TelemetryResolver.js.map +1 -1
- package/dist/resolvers/meetingRecordingRegistration.d.ts.map +1 -1
- package/dist/resolvers/meetingRecordingRegistration.js +2 -0
- package/dist/resolvers/meetingRecordingRegistration.js.map +1 -1
- package/dist/resolvers/meetings/meetingMutations.d.ts.map +1 -1
- package/dist/resolvers/meetings/meetingMutations.js +34 -4
- package/dist/resolvers/meetings/meetingMutations.js.map +1 -1
- package/dist/rest/MediaAccessKeys.d.ts.map +1 -1
- package/dist/rest/MediaAccessKeys.js +6 -2
- package/dist/rest/MediaAccessKeys.js.map +1 -1
- package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -1
- package/dist/rest/OAuthCallbackHandler.js +11 -5
- package/dist/rest/OAuthCallbackHandler.js.map +1 -1
- package/dist/rest/RealtimeRecordingHandler.d.ts +3 -3
- package/dist/rest/RealtimeRecordingHandler.d.ts.map +1 -1
- package/dist/rest/RealtimeRecordingHandler.js +2 -4
- package/dist/rest/RealtimeRecordingHandler.js.map +1 -1
- package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
- package/dist/rest/ViewOperationsHandler.js +2 -1
- package/dist/rest/ViewOperationsHandler.js.map +1 -1
- package/dist/rest/setupRESTEndpoints.d.ts +3 -1
- package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
- package/dist/rest/setupRESTEndpoints.js +11 -2
- package/dist/rest/setupRESTEndpoints.js.map +1 -1
- package/dist/services/DurableEntityActionTaskSubmitter.d.ts.map +1 -1
- package/dist/services/DurableEntityActionTaskSubmitter.js +6 -1
- package/dist/services/DurableEntityActionTaskSubmitter.js.map +1 -1
- package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphActionRunner.js +2 -26
- package/dist/services/TaskGraphActionRunner.js.map +1 -1
- package/dist/services/TaskGraphAgentRunner.d.ts +6 -0
- package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphAgentRunner.js +38 -0
- package/dist/services/TaskGraphAgentRunner.js.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.js +1 -0
- package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
- package/dist/services/WorkQueueHostService.d.ts +2 -1
- package/dist/services/WorkQueueHostService.d.ts.map +1 -1
- package/dist/services/WorkQueueHostService.js +19 -4
- package/dist/services/WorkQueueHostService.js.map +1 -1
- package/dist/services/workQueueConfig.d.ts +2 -2
- package/dist/services/workQueueConfig.js +5 -5
- package/dist/services/workQueueConfig.js.map +1 -1
- package/dist/sharedCache.js +1 -1
- package/dist/sharedCache.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +55 -2
- package/dist/util.js.map +1 -1
- package/package.json +107 -100
- package/src/__tests__/APIKeyScopeAuth.test.ts +4 -8
- package/src/__tests__/ActiveOperations.test.ts +68 -0
- package/src/__tests__/AgentSessionResolver.ownership.test.ts +13 -0
- package/src/__tests__/AssertTargetConfigs.test.ts +75 -0
- package/src/__tests__/BatchApplyParity.test.ts +109 -0
- package/src/__tests__/BridgeHostInstance.test.ts +42 -0
- package/src/__tests__/CollectInactiveRowWarnings.test.ts +115 -0
- package/src/__tests__/ConnectionPause.test.ts +192 -0
- package/src/__tests__/ConnectionPauseResolver.test.ts +166 -0
- package/src/__tests__/ConnectionPauseSave.test.ts +143 -0
- package/src/__tests__/CustomColumnPromoterCompletion.test.ts +142 -0
- package/src/__tests__/DeleteConnectionRemovesPerConnectionCatalog.test.ts +51 -0
- package/src/__tests__/DetachedDiscoveryStart.test.ts +65 -0
- package/src/__tests__/DurableEntityActionTaskSubmitter.test.ts +73 -0
- package/src/__tests__/EntityMapLifecycle.rekey.test.ts +252 -0
- package/src/__tests__/ExecuteRemoteOperationResolver.test.ts +213 -0
- package/src/__tests__/HandoffOfferExpiry.test.ts +40 -0
- package/src/__tests__/IntegrationRunArtifactAuthorization.test.ts +126 -0
- package/src/__tests__/MagicLinkKeys.test.ts +102 -0
- package/src/__tests__/MediaAccessKeys.test.ts +57 -10
- package/src/__tests__/NewArrivalsDefaultDisabled.test.ts +50 -0
- package/src/__tests__/ObjectNamesByID.test.ts +176 -0
- package/src/__tests__/PostRestartMapsInCatalogScope.test.ts +146 -0
- package/src/__tests__/QuerySystemUserResolver.childRows.test.ts +80 -0
- package/src/__tests__/QuerySystemUserResolver.collision.test.ts +200 -0
- package/src/__tests__/QuerySystemUserResolver.permissions.test.ts +132 -0
- package/src/__tests__/RSUPostRestartProgress.test.ts +343 -0
- package/src/__tests__/RSUProgressBridge.test.ts +188 -5
- package/src/__tests__/RSUStartupSweepWiring.test.ts +30 -0
- package/src/__tests__/ReactivateRefreshMessage.test.ts +10 -3
- package/src/__tests__/RealtimeClientSessionResolver.test.ts +22 -0
- package/src/__tests__/{RefreshAdoptsNewColumns.test.ts → RefreshReportsNewColumns.test.ts} +25 -16
- package/src/__tests__/RemoteBrowserActionRecovery.test.ts +287 -0
- package/src/__tests__/RemoteBrowserActionResolver.goalRunLink.test.ts +3 -0
- package/src/__tests__/RemoteBrowserActionResolver.ownership.test.ts +6 -4
- package/src/__tests__/RemoteBrowserAudioStream.test.ts +3 -0
- package/src/__tests__/RemoteBrowserSnapshot.test.ts +3 -0
- package/src/__tests__/ResolverBase.clientOldValues.test.ts +327 -26
- package/src/__tests__/ResolverBase.diagnosticSenderRegistrations.test.ts +26 -0
- package/src/__tests__/ResolverBase.encryptedApiZeroReencrypt.test.ts +307 -0
- package/src/__tests__/ResolverBase.entityMessageRelay.test.ts +53 -2
- package/src/__tests__/ResolverBase.includeBinaryFields.test.ts +60 -0
- package/src/__tests__/RunAIAgentResolver.branch.test.ts +4 -0
- package/src/__tests__/RunAIAgentResolver.consultPredecessor.test.ts +289 -0
- package/src/__tests__/RunAIAgentResolver.handoff.test.ts +649 -0
- package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +2 -0
- package/src/__tests__/RunAIAgentResolver.runDataGuard.test.ts +2 -0
- package/src/__tests__/RunAIAgentResolver.stoppedPredecessor.test.ts +87 -12
- package/src/__tests__/RunAIAgentResolver.streaming.test.ts +28 -4
- package/src/__tests__/SchemaEvolutionCustomColumns.test.ts +119 -0
- package/src/__tests__/SchemaRefreshLaunch.test.ts +24 -2
- package/src/__tests__/ScopedFieldsForBuild.test.ts +192 -0
- package/src/__tests__/SessionJanitor.test.ts +195 -4
- package/src/__tests__/SessionManager.test.ts +69 -0
- package/src/__tests__/TagGovernanceAndAutotagResolvers.test.ts +261 -0
- package/src/__tests__/TagGovernanceResolver.test.ts +60 -2
- package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +2 -2
- package/src/__tests__/TaskGraphAgentRunner.test.ts +272 -16
- package/src/__tests__/ViewOperationsHandler.test.ts +2 -5
- package/src/__tests__/WorkQueueHostService.test.ts +25 -7
- package/src/__tests__/backgroundSweepConfigUnits.test.ts +153 -0
- package/src/__tests__/contextRequestOrigin.test.ts +105 -0
- package/src/__tests__/conversationBrowsers.test.ts +62 -0
- package/src/__tests__/globalCors.test.ts +12 -0
- package/src/__tests__/magicLinkExtensionCapabilities.test.ts +413 -0
- package/src/__tests__/orphanedConversationDetailReconciler.start.test.ts +82 -0
- package/src/__tests__/ownedRealtimeSession.test.ts +14 -0
- package/src/__tests__/realtimeRecordingHandler.test.ts +7 -2
- package/src/__tests__/realtimeSessions/sessionAccess.test.ts +79 -1
- package/src/__tests__/requestOrigin.test.ts +104 -0
- package/src/__tests__/review-capture-valid-token-log.test.ts +98 -0
- package/src/__tests__/runStreams.fieldSecurity.test.ts +5 -5
- package/src/__tests__/securityHardeningPr6034.test.ts +120 -0
- package/src/__tests__/sessionDeadline.test.ts +51 -0
- package/src/__tests__/sharedCache.test.ts +11 -0
- package/src/__tests__/unifiedAuth.test.ts +73 -1
- package/src/agentSessions/BridgeHostInstance.ts +20 -5
- package/src/agentSessions/HandoffOfferExpiry.ts +18 -0
- package/src/agentSessions/ReturningVisitorRecap.ts +1 -0
- package/src/agentSessions/SessionJanitor.ts +92 -42
- package/src/agentSessions/SessionManager.ts +38 -8
- package/src/agentSessions/conversationBrowsers.ts +143 -0
- package/src/agentSessions/sessionDeadline.ts +81 -0
- package/src/auth/APIKeyScopeAuth.ts +5 -4
- package/src/auth/__tests__/loginEmailResolution.test.ts +67 -0
- package/src/auth/loginEmailResolution.ts +67 -0
- package/src/auth/magicLink/MagicLinkKeys.ts +146 -14
- package/src/auth/magicLink/MagicLinkRouter.ts +33 -6
- package/src/auth/magicLink/MagicLinkService.ts +250 -10
- package/src/auth/magicLink/index.ts +1 -1
- package/src/auth/magicLink/redeemLanding.ts +7 -4
- package/src/auth/magicLink/types.ts +28 -3
- package/src/auth/newUsers.ts +1 -0
- package/src/backgroundSweepConfigUnits.ts +213 -0
- package/src/broadcast/BaseCacheInvalidationBroadcastProvider.ts +2 -1
- package/src/config.ts +69 -0
- package/src/context.ts +46 -15
- package/src/coreRoutes.ts +14 -7
- package/src/generated/graphql-schemas/__mj.ts +10360 -6479
- package/src/generic/OrphanedConversationDetailReconciler.ts +32 -1
- package/src/generic/ResolverBase.ts +422 -143
- package/src/generic/RunViewResolver.ts +96 -49
- package/src/globalCors.ts +1 -0
- package/src/index.ts +246 -44
- package/src/integration/ConnectionPause.ts +222 -0
- package/src/integration/CustomColumnPromoter.ts +123 -53
- package/src/integration/EntityMapLifecycle.ts +229 -6
- package/src/integration/InactiveRowWarnings.ts +50 -0
- package/src/integration/ObjectNamesByID.ts +97 -0
- package/src/integration/PostRestartIntrospect.ts +49 -0
- package/src/integration/RSUPostRestartProgress.ts +359 -0
- package/src/integration/RSUProgressBridge.ts +85 -2
- package/src/integration/RunArtifactAuthorization.ts +65 -0
- package/src/integration/SchemaRefreshLaunch.ts +12 -2
- package/src/integration/ScopedFieldsForBuild.ts +113 -0
- package/src/integration/TargetConfigGuard.ts +71 -0
- package/src/logging/StartupLogger.ts +24 -0
- package/src/middleware/BaseServerMiddleware.ts +20 -3
- package/src/realtimeSessions/ownedRealtimeSession.ts +2 -6
- package/src/realtimeSessions/sessionAccess.ts +30 -0
- package/src/realtimeWidget/WidgetSessionService.ts +2 -0
- package/src/realtimeWidget/visitorIdentity.ts +1 -0
- package/src/realtimeWidget/widgetCore.ts +4 -8
- package/src/realtimeWidget/widgetGuestElevation.ts +1 -0
- package/src/requestOrigin.ts +64 -0
- package/src/resolvers/AgentRunStatusPublisher.ts +27 -2
- package/src/resolvers/AgentSessionResolver.ts +6 -2
- package/src/resolvers/AutotagPipelineResolver.ts +59 -14
- package/src/resolvers/ConversationRunEventsResolver.ts +2 -0
- package/src/resolvers/ExecuteRemoteOperationResolver.ts +41 -9
- package/src/resolvers/GetDataResolver.ts +35 -13
- package/src/resolvers/InfoResolver.ts +1 -1
- package/src/resolvers/IntegrationDiscoveryResolver.ts +1522 -203
- package/src/resolvers/MCPResolver.ts +15 -2
- package/src/resolvers/QuerySystemUserResolver.ts +211 -100
- package/src/resolvers/RealtimeBridgeResolver.ts +1 -0
- package/src/resolvers/RealtimeClientSessionResolver.ts +40 -7
- package/src/resolvers/RemoteBrowserActionResolver.ts +242 -32
- package/src/resolvers/RunAIAgentResolver.ts +265 -86
- package/src/resolvers/RunAIPromptResolver.ts +18 -18
- package/src/resolvers/RunTemplateResolver.ts +3 -1
- package/src/resolvers/SqlLoggingConfigResolver.ts +7 -9
- package/src/resolvers/TagGovernanceResolver.ts +65 -0
- package/src/resolvers/TelemetryResolver.ts +44 -9
- package/src/resolvers/__tests__/GetDataResolver.tokens.test.ts +52 -0
- package/src/resolvers/meetingRecordingRegistration.ts +2 -0
- package/src/resolvers/meetings/meetingMutations.ts +37 -7
- package/src/rest/MediaAccessKeys.ts +6 -2
- package/src/rest/OAuthCallbackHandler.ts +13 -5
- package/src/rest/RealtimeRecordingHandler.ts +5 -9
- package/src/rest/ViewOperationsHandler.ts +2 -1
- package/src/rest/setupRESTEndpoints.ts +11 -2
- package/src/services/DurableEntityActionTaskSubmitter.ts +10 -2
- package/src/services/TaskGraphActionRunner.ts +2 -23
- package/src/services/TaskGraphAgentRunner.ts +43 -0
- package/src/services/TaskGraphContinuationDeliverer.ts +1 -0
- package/src/services/WorkQueueHostService.ts +26 -4
- package/src/services/workQueueConfig.ts +5 -5
- package/src/sharedCache.ts +1 -1
- package/src/types.ts +18 -0
- package/src/util.ts +55 -3
- package/src/services/TaskOrchestration-Integration.md +0 -188
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Who may read an integration run artifact.
|
|
3
|
+
*
|
|
4
|
+
* A security boundary, kept in its own module so the rule is stated once, testable on its own, and
|
|
5
|
+
* not buried among a resolver's several thousand lines.
|
|
6
|
+
*/
|
|
7
|
+
import { IntegrationProgressReader } from '@memberjunction/integration-progress-artifacts';
|
|
8
|
+
/**
|
|
9
|
+
* Authorizes a caller for a run artifact against EVERY connection the run touched.
|
|
10
|
+
*
|
|
11
|
+
* ── The rule ───────────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
* A run is readable only if the caller is authorized for ALL of its connections. Not any — all.
|
|
13
|
+
*
|
|
14
|
+
* Most runs touch exactly one connection and the rule collapses to the obvious check. But a schema
|
|
15
|
+
* update (RSU) run is a BATCH: the pipeline takes N inputs, and those inputs may legitimately
|
|
16
|
+
* belong to different connectors. A run artifact is one undivided event stream — its migration
|
|
17
|
+
* descriptions, affected table names and error messages interleave every connection in the batch,
|
|
18
|
+
* and there is no mechanism to serve a caller a partial view of it. "Authorized for any one of
|
|
19
|
+
* them" would therefore hand connection A's schema-change descriptions to a user who only holds
|
|
20
|
+
* rights on connection B. AND is the only rule that cannot leak; a cross-tenant batch simply
|
|
21
|
+
* becomes readable to nobody but a caller holding rights to both, which is the correct conservative
|
|
22
|
+
* answer rather than a silent disclosure.
|
|
23
|
+
*
|
|
24
|
+
* A run with NO connection identity is denied: non-tenant-scoped artifacts are not exposed through
|
|
25
|
+
* the per-company endpoints, and that must not change as a side effect of runs gaining a set.
|
|
26
|
+
*
|
|
27
|
+
* Short-circuits on the first denial, so an unauthorized caller cannot use the number of permission
|
|
28
|
+
* lookups to probe which connections a run covers.
|
|
29
|
+
*/
|
|
30
|
+
export async function AuthorizeRunArtifact(manifest, canReadCompanyIntegration) {
|
|
31
|
+
// Reads the SET, not the singular field: a batch spanning connections leaves the singular field
|
|
32
|
+
// deliberately empty, and testing only that would make such a run look connection-less — and so
|
|
33
|
+
// unreadable to everyone, including its rightful owner.
|
|
34
|
+
const companyIntegrationIDs = IntegrationProgressReader.CompanyIntegrationIDsFor(manifest);
|
|
35
|
+
if (companyIntegrationIDs.length === 0) {
|
|
36
|
+
return { Authorized: false };
|
|
37
|
+
}
|
|
38
|
+
for (const companyIntegrationID of companyIntegrationIDs) {
|
|
39
|
+
if (!await canReadCompanyIntegration(companyIntegrationID)) {
|
|
40
|
+
return { Authorized: false, DeniedCompanyIntegrationID: companyIntegrationID };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return { Authorized: true };
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=RunArtifactAuthorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunArtifactAuthorization.js","sourceRoot":"","sources":["../../src/integration/RunArtifactAuthorization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAmB3F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAAgC,EAChC,yBAAsD;IAEtD,gGAAgG;IAChG,gGAAgG;IAChG,wDAAwD;IACxD,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC3F,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IACD,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,yBAAyB,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,CAAC;QACnF,CAAC;IACL,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -29,6 +29,15 @@ export interface SchemaRefreshSummaryLike {
|
|
|
29
29
|
FailureMessage?: string;
|
|
30
30
|
ObjectsCreated: number;
|
|
31
31
|
ObjectsUpdated: number;
|
|
32
|
+
/**
|
|
33
|
+
* FIELD counts, not an optional nicety: a connector whose objects are PRESUPPOSED (declared in
|
|
34
|
+
* its own metadata) creates no objects on any run, so the object counts of a refresh that
|
|
35
|
+
* created 69 fields and updated 487 are "0 and 0" — which reads as "the refresh found nothing".
|
|
36
|
+
* Both counts were already carried on the pipeline result; only this type stopped them reaching
|
|
37
|
+
* the sentence.
|
|
38
|
+
*/
|
|
39
|
+
FieldsCreated: number;
|
|
40
|
+
FieldsUpdated: number;
|
|
32
41
|
UnresolvedObjects: string[];
|
|
33
42
|
}
|
|
34
43
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaRefreshLaunch.d.ts","sourceRoot":"","sources":["../../src/integration/SchemaRefreshLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACrC,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"SchemaRefreshLaunch.d.ts","sourceRoot":"","sources":["../../src/integration/SchemaRefreshLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACrC,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAYD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CACxC,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,wBAAwB,GAAG,SAAS,GAC9C,MAAM,CAMR;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAEtF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,GAAG,MAAM,CAK5F"}
|
|
@@ -14,8 +14,9 @@ function describeFinishedRefresh(summary) {
|
|
|
14
14
|
if (!summary.Succeeded) {
|
|
15
15
|
return `schema refresh FAILED (${summary.FailureMessage ?? 'no reason reported'}) — see run ${summary.RunID}`;
|
|
16
16
|
}
|
|
17
|
-
return `schema refresh: ${summary.ObjectsCreated} created, ` +
|
|
18
|
-
`${summary.ObjectsUpdated} updated, ${summary.
|
|
17
|
+
return `schema refresh: ${summary.ObjectsCreated} objects created, ` +
|
|
18
|
+
`${summary.ObjectsUpdated} updated, ${summary.FieldsCreated} fields created, ` +
|
|
19
|
+
`${summary.FieldsUpdated} updated, ${summary.UnresolvedObjects.length} PK-unresolved`;
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Builds the human-facing `Message` for IntegrationCreateConnection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaRefreshLaunch.js","sourceRoot":"","sources":["../../src/integration/SchemaRefreshLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"SchemaRefreshLaunch.js","sourceRoot":"","sources":["../../src/integration/SchemaRefreshLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkCH,0FAA0F;AAC1F,SAAS,uBAAuB,CAAC,OAAiC;IAC9D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,0BAA0B,OAAO,CAAC,cAAc,IAAI,oBAAoB,eAAe,OAAO,CAAC,KAAK,EAAE,CAAC;IAClH,CAAC;IACD,OAAO,mBAAmB,OAAO,CAAC,cAAc,oBAAoB;QAChE,GAAG,OAAO,CAAC,cAAc,aAAa,OAAO,CAAC,aAAa,mBAAmB;QAC9E,GAAG,OAAO,CAAC,aAAa,aAAa,OAAO,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAAC;AAC9F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CACxC,cAAuB,EACvB,OAA6C;IAE7C,IAAI,CAAC,OAAO;QAAE,OAAO,oCAAoC,CAAC;IAC1D,MAAM,OAAO,GAAG,qBAAqB,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC7E,kGAAkG;IAClG,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,GAAG,OAAO,uCAAuC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChG,OAAO,GAAG,OAAO,KAAK,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAiC;IAC1E,OAAO,YAAY,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACrD,OAAO,8CAA8C,KAAK,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA6C;IAChF,IAAI,CAAC,OAAO;QAAE,OAAO,aAAa,CAAC;IACnC,kGAAkG;IAClG,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,kDAAkD,OAAO,CAAC,KAAK,EAAE,CAAC;IACjG,OAAO,gBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The FIELD rows a schema build materializes, for a connection with its own catalog.
|
|
3
|
+
*
|
|
4
|
+
* A schema build (ApplySchema, ApplyAll, ApplyAllBatch, the connector build, schema evolution)
|
|
5
|
+
* reconstructs the source schema from persisted catalog rows and hands it to SchemaBuilder. It used
|
|
6
|
+
* to read each object's fields from the engine's in-memory catalog. Once a connection's field rows
|
|
7
|
+
* are no longer held resident — they are warmed per object on demand, and the only site that warms
|
|
8
|
+
* them is the sync loop — that read answers `[]` for every object of the connection, and an object
|
|
9
|
+
* with no fields materializes nothing. Observed on a per-connection catalog (364 objects, 7,230
|
|
10
|
+
* active fields): the apply logged "Reusing 364 persisted IOs", then ran a migration with an empty
|
|
11
|
+
* table list in 4 ms — no CREATE, no ALTER, no error.
|
|
12
|
+
*
|
|
13
|
+
* So the build reads the connection's field rows itself: one read per {@link SCOPED_FIELDS_CHUNK}
|
|
14
|
+
* objects, plain rows, bypassing the query cache (an answer cached before discovery's persist is the
|
|
15
|
+
* empty set), and without the row cap (one object can carry thousands of fields). A failed read
|
|
16
|
+
* THROWS: an empty answer here is exactly what produced the zero-table apply.
|
|
17
|
+
*
|
|
18
|
+
* Outside a per-connection scope — or for a connection without its own catalog — this returns
|
|
19
|
+
* `null`, and the build reads the shared catalog from memory exactly as before.
|
|
20
|
+
*/
|
|
21
|
+
import { type UserInfo } from '@memberjunction/core';
|
|
22
|
+
import type { MJIntegrationObjectFieldEntity } from '@memberjunction/core-entities';
|
|
23
|
+
import { IntegrationEngineBase, type CompanyIntegrationObjectFieldRow } from '@memberjunction/integration-engine-base';
|
|
24
|
+
/**
|
|
25
|
+
* What a schema build — and a refresh's re-key check — reads off a field row. The shared entity and
|
|
26
|
+
* the per-connection row both satisfy it.
|
|
27
|
+
*/
|
|
28
|
+
export type BuildFieldRow = Pick<MJIntegrationObjectFieldEntity, 'Name' | 'DisplayName' | 'Description' | 'Type' | 'IsRequired' | 'AllowsNull' | 'Length' | 'Precision' | 'Scale' | 'DefaultValue' | 'IsPrimaryKey' | 'IsUniqueKey' | 'IsReadOnly' | 'RelatedIntegrationObjectID' | 'Status' | 'Sequence'>;
|
|
29
|
+
/** A connection's field rows, keyed by lower-cased per-connection object id. */
|
|
30
|
+
export type ScopedBuildFields = Map<string, CompanyIntegrationObjectFieldRow[]>;
|
|
31
|
+
/** Objects per read. Each read is one `IN (…)` list, so this bounds the filter's length. */
|
|
32
|
+
export declare const SCOPED_FIELDS_CHUNK = 200;
|
|
33
|
+
/**
|
|
34
|
+
* Loads the field rows of the connection in catalog scope for a schema build, or returns `null`
|
|
35
|
+
* when the build should read the shared catalog (no scope, or no per-connection catalog).
|
|
36
|
+
*
|
|
37
|
+
* @throws PER_CONNECTION_FIELDS_UNREADABLE when a read fails — never an empty answer.
|
|
38
|
+
*/
|
|
39
|
+
export declare function LoadScopedFieldsForBuild(integrationID: string, user: UserInfo): Promise<ScopedBuildFields | null>;
|
|
40
|
+
/**
|
|
41
|
+
* The fields a build reads for one object: the connection's rows when they were loaded, the
|
|
42
|
+
* engine's catalog otherwise. With loaded rows the engine is not consulted at all, so a cold
|
|
43
|
+
* per-connection field cache cannot empty the build.
|
|
44
|
+
*/
|
|
45
|
+
export declare function FieldsForBuild(objectID: string, scoped: ScopedBuildFields | null | undefined, engine: IntegrationEngineBase): BuildFieldRow[];
|
|
46
|
+
//# sourceMappingURL=ScopedFieldsForBuild.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopedFieldsForBuild.d.ts","sourceRoot":"","sources":["../../src/integration/ScopedFieldsForBuild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EACH,qBAAqB,EAErB,KAAK,gCAAgC,EACxC,MAAM,yCAAyC,CAAC;AAGjD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC5B,8BAA8B,EAC9B,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,GACpG,OAAO,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,4BAA4B,GAAG,QAAQ,GAClH,UAAU,CACf,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,gCAAgC,EAAE,CAAC,CAAC;AAEhF,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAKvC;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA+BvH;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,qBAAqB,GAAG,aAAa,EAAE,CAG7I"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The FIELD rows a schema build materializes, for a connection with its own catalog.
|
|
3
|
+
*
|
|
4
|
+
* A schema build (ApplySchema, ApplyAll, ApplyAllBatch, the connector build, schema evolution)
|
|
5
|
+
* reconstructs the source schema from persisted catalog rows and hands it to SchemaBuilder. It used
|
|
6
|
+
* to read each object's fields from the engine's in-memory catalog. Once a connection's field rows
|
|
7
|
+
* are no longer held resident — they are warmed per object on demand, and the only site that warms
|
|
8
|
+
* them is the sync loop — that read answers `[]` for every object of the connection, and an object
|
|
9
|
+
* with no fields materializes nothing. Observed on a per-connection catalog (364 objects, 7,230
|
|
10
|
+
* active fields): the apply logged "Reusing 364 persisted IOs", then ran a migration with an empty
|
|
11
|
+
* table list in 4 ms — no CREATE, no ALTER, no error.
|
|
12
|
+
*
|
|
13
|
+
* So the build reads the connection's field rows itself: one read per {@link SCOPED_FIELDS_CHUNK}
|
|
14
|
+
* objects, plain rows, bypassing the query cache (an answer cached before discovery's persist is the
|
|
15
|
+
* empty set), and without the row cap (one object can carry thousands of fields). A failed read
|
|
16
|
+
* THROWS: an empty answer here is exactly what produced the zero-table apply.
|
|
17
|
+
*
|
|
18
|
+
* Outside a per-connection scope — or for a connection without its own catalog — this returns
|
|
19
|
+
* `null`, and the build reads the shared catalog from memory exactly as before.
|
|
20
|
+
*/
|
|
21
|
+
import { RunView } from '@memberjunction/core';
|
|
22
|
+
import { IntegrationEngineBase, ENTITY_COMPANY_INTEGRATION_OBJECT_FIELDS, } from '@memberjunction/integration-engine-base';
|
|
23
|
+
import { CurrentCatalogCI } from '@memberjunction/integration-engine';
|
|
24
|
+
/** Objects per read. Each read is one `IN (…)` list, so this bounds the filter's length. */
|
|
25
|
+
export const SCOPED_FIELDS_CHUNK = 200;
|
|
26
|
+
/**
|
|
27
|
+
* Loads the field rows of the connection in catalog scope for a schema build, or returns `null`
|
|
28
|
+
* when the build should read the shared catalog (no scope, or no per-connection catalog).
|
|
29
|
+
*
|
|
30
|
+
* @throws PER_CONNECTION_FIELDS_UNREADABLE when a read fails — never an empty answer.
|
|
31
|
+
*/
|
|
32
|
+
export async function LoadScopedFieldsForBuild(integrationID, user) {
|
|
33
|
+
const ciID = CurrentCatalogCI();
|
|
34
|
+
if (!ciID)
|
|
35
|
+
return null;
|
|
36
|
+
const engine = IntegrationEngineBase.Instance;
|
|
37
|
+
if (!engine.HasCompanyIntegrationCatalog(ciID))
|
|
38
|
+
return null;
|
|
39
|
+
const objects = engine.GetActiveIntegrationObjects(integrationID);
|
|
40
|
+
const byObject = new Map();
|
|
41
|
+
const rv = new RunView();
|
|
42
|
+
for (let i = 0; i < objects.length; i += SCOPED_FIELDS_CHUNK) {
|
|
43
|
+
const chunk = objects.slice(i, i + SCOPED_FIELDS_CHUNK);
|
|
44
|
+
const ids = chunk.map(o => `'${String(o.ID).replace(/'/g, "''")}'`).join(',');
|
|
45
|
+
const res = await rv.RunView({
|
|
46
|
+
EntityName: ENTITY_COMPANY_INTEGRATION_OBJECT_FIELDS,
|
|
47
|
+
ExtraFilter: `CompanyIntegrationObjectID IN (${ids})`,
|
|
48
|
+
ResultType: 'simple',
|
|
49
|
+
BypassCache: true,
|
|
50
|
+
IgnoreMaxRows: true,
|
|
51
|
+
}, user);
|
|
52
|
+
if (!res?.Success) {
|
|
53
|
+
throw new Error(`PER_CONNECTION_FIELDS_UNREADABLE: could not read the field rows of connection ${ciID} ` +
|
|
54
|
+
`(objects ${i + 1}-${i + chunk.length} of ${objects.length}): ${res?.ErrorMessage ?? 'unknown error'}. ` +
|
|
55
|
+
`Refusing to build a schema from an empty field list.`);
|
|
56
|
+
}
|
|
57
|
+
for (const row of res.Results ?? [])
|
|
58
|
+
addRow(byObject, row);
|
|
59
|
+
}
|
|
60
|
+
const rowCount = [...byObject.values()].reduce((n, rows) => n + rows.length, 0);
|
|
61
|
+
console.log(`[LoadScopedFieldsForBuild] connection ${ciID}: ${rowCount} field rows for ${byObject.size} of ${objects.length} active objects`);
|
|
62
|
+
return byObject;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The fields a build reads for one object: the connection's rows when they were loaded, the
|
|
66
|
+
* engine's catalog otherwise. With loaded rows the engine is not consulted at all, so a cold
|
|
67
|
+
* per-connection field cache cannot empty the build.
|
|
68
|
+
*/
|
|
69
|
+
export function FieldsForBuild(objectID, scoped, engine) {
|
|
70
|
+
if (scoped)
|
|
71
|
+
return scoped.get(String(objectID).trim().toLowerCase()) ?? [];
|
|
72
|
+
return engine.GetIntegrationObjectFields(objectID);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Files one stored row under its object, deriving the two legacy names the build reads
|
|
76
|
+
* (`IntegrationObjectID`, `RelatedIntegrationObjectID`) exactly as the engine's projection does.
|
|
77
|
+
*/
|
|
78
|
+
function addRow(byObject, row) {
|
|
79
|
+
const key = String(row.CompanyIntegrationObjectID).trim().toLowerCase();
|
|
80
|
+
const projected = {
|
|
81
|
+
...row,
|
|
82
|
+
IntegrationObjectID: row.CompanyIntegrationObjectID,
|
|
83
|
+
RelatedIntegrationObjectID: row.RelatedCompanyIntegrationObjectID ?? null,
|
|
84
|
+
};
|
|
85
|
+
const bucket = byObject.get(key);
|
|
86
|
+
if (bucket)
|
|
87
|
+
bucket.push(projected);
|
|
88
|
+
else
|
|
89
|
+
byObject.set(key, [projected]);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=ScopedFieldsForBuild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopedFieldsForBuild.js","sourceRoot":"","sources":["../../src/integration/ScopedFieldsForBuild.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refuses a schema build whose selected objects produced no target table.
|
|
3
|
+
*
|
|
4
|
+
* `buildTargetConfigs` drops a selected object that is not in the source schema, has no fields or
|
|
5
|
+
* has no primary key, and logs each drop — but every execution caller then built and ran a migration
|
|
6
|
+
* anyway. With nothing accepted that migration is a header-only file: RSU wrote it, opened and merged
|
|
7
|
+
* a PR, ran CodeGen, redeployed Explorer, and the sync "completed" over zero entity maps, every signal
|
|
8
|
+
* green. Seen 2026-10-29 on a PropFuel connection: three selections requested, three dropped as
|
|
9
|
+
* notInSchema, three empty migrations committed.
|
|
10
|
+
*
|
|
11
|
+
* A caller that asked for tables and gets none has failed, and should hear so with the names it asked
|
|
12
|
+
* for and why each was dropped — in the error itself, because an API or UI caller cannot read the
|
|
13
|
+
* server log line that used to be the only place the reasons appeared. Preview is deliberately not
|
|
14
|
+
* gated: an empty preview is an honest answer.
|
|
15
|
+
*/
|
|
16
|
+
import type { TargetTableConfig } from '@memberjunction/integration-schema-builder';
|
|
17
|
+
/** Why `buildTargetConfigs` left each selected object out. */
|
|
18
|
+
export interface TargetConfigDrops {
|
|
19
|
+
NotInSchema: string[];
|
|
20
|
+
NoFields: string[];
|
|
21
|
+
NoPrimaryKey: string[];
|
|
22
|
+
}
|
|
23
|
+
/** How many names one list in the error shows before summarising the rest — the summary log's cap. */
|
|
24
|
+
export declare const TARGET_CONFIG_NAME_SAMPLE = 5;
|
|
25
|
+
/** An empty set of drop lists, for `buildTargetConfigs` to fill. */
|
|
26
|
+
export declare function NewTargetConfigDrops(): TargetConfigDrops;
|
|
27
|
+
/** `a, b, c, d, e and 163 more` — so a large selection cannot make a multi-KB error. */
|
|
28
|
+
export declare function SampleNames(names: ReadonlyArray<string>): string;
|
|
29
|
+
/**
|
|
30
|
+
* Throws `NO_TARGET_TABLES` when objects were selected and none produced a target table.
|
|
31
|
+
*
|
|
32
|
+
* @param drops why each object was dropped; without it the error lists the three possible reasons.
|
|
33
|
+
* @param alreadyCommitted what the caller had already written before the build, for a caller that
|
|
34
|
+
* cannot honestly say "Nothing was applied" (schema evolution persists the catalog and disables the
|
|
35
|
+
* removed objects' maps first).
|
|
36
|
+
*/
|
|
37
|
+
export declare function AssertTargetConfigs(objects: ReadonlyArray<{
|
|
38
|
+
SourceObjectName: string;
|
|
39
|
+
}>, targetConfigs: ReadonlyArray<TargetTableConfig>, sourceType: string, drops?: TargetConfigDrops, alreadyCommitted?: string): void;
|
|
40
|
+
//# sourceMappingURL=TargetConfigGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TargetConfigGuard.d.ts","sourceRoot":"","sources":["../../src/integration/TargetConfigGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,sGAAsG;AACtG,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,oEAAoE;AACpE,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAIhE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,aAAa,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,EACpD,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAC/C,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,iBAAiB,EACzB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,IAAI,CASN"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** How many names one list in the error shows before summarising the rest — the summary log's cap. */
|
|
2
|
+
export const TARGET_CONFIG_NAME_SAMPLE = 5;
|
|
3
|
+
/** An empty set of drop lists, for `buildTargetConfigs` to fill. */
|
|
4
|
+
export function NewTargetConfigDrops() {
|
|
5
|
+
return { NotInSchema: [], NoFields: [], NoPrimaryKey: [] };
|
|
6
|
+
}
|
|
7
|
+
/** `a, b, c, d, e and 163 more` — so a large selection cannot make a multi-KB error. */
|
|
8
|
+
export function SampleNames(names) {
|
|
9
|
+
const head = names.slice(0, TARGET_CONFIG_NAME_SAMPLE).join(', ');
|
|
10
|
+
const rest = names.length - TARGET_CONFIG_NAME_SAMPLE;
|
|
11
|
+
return rest > 0 ? `${head} and ${rest} more` : head;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Throws `NO_TARGET_TABLES` when objects were selected and none produced a target table.
|
|
15
|
+
*
|
|
16
|
+
* @param drops why each object was dropped; without it the error lists the three possible reasons.
|
|
17
|
+
* @param alreadyCommitted what the caller had already written before the build, for a caller that
|
|
18
|
+
* cannot honestly say "Nothing was applied" (schema evolution persists the catalog and disables the
|
|
19
|
+
* removed objects' maps first).
|
|
20
|
+
*/
|
|
21
|
+
export function AssertTargetConfigs(objects, targetConfigs, sourceType, drops, alreadyCommitted) {
|
|
22
|
+
if (objects.length === 0 || targetConfigs.length > 0)
|
|
23
|
+
return;
|
|
24
|
+
const reasons = drops ? describeDrops(drops) : '';
|
|
25
|
+
throw new Error(`NO_TARGET_TABLES: none of the ${objects.length} selected object(s) for ${sourceType} produced a target table ` +
|
|
26
|
+
`(${SampleNames(objects.map(o => o.SourceObjectName))}). ` +
|
|
27
|
+
(reasons || 'Each was dropped as not in the source schema, without fields, or without a primary key.') +
|
|
28
|
+
` ${alreadyCommitted ?? 'Nothing was applied.'} Re-run discovery for this connection and apply again.`);
|
|
29
|
+
}
|
|
30
|
+
function describeDrops(drops) {
|
|
31
|
+
const parts = [];
|
|
32
|
+
if (drops.NotInSchema.length > 0)
|
|
33
|
+
parts.push(`not in the source schema: ${SampleNames(drops.NotInSchema)}`);
|
|
34
|
+
if (drops.NoFields.length > 0)
|
|
35
|
+
parts.push(`no fields: ${SampleNames(drops.NoFields)}`);
|
|
36
|
+
if (drops.NoPrimaryKey.length > 0)
|
|
37
|
+
parts.push(`no primary key: ${SampleNames(drops.NoPrimaryKey)}`);
|
|
38
|
+
return parts.length > 0 ? `Dropped as ${parts.join('; ')}.` : '';
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=TargetConfigGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TargetConfigGuard.js","sourceRoot":"","sources":["../../src/integration/TargetConfigGuard.ts"],"names":[],"mappings":"AAwBA,sGAAsG;AACtG,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C,oEAAoE;AACpE,MAAM,UAAU,oBAAoB;IAChC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,KAA4B;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,yBAAyB,CAAC;IACtD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAC/B,OAAoD,EACpD,aAA+C,EAC/C,UAAkB,EAClB,KAAyB,EACzB,gBAAyB;IAEzB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,IAAI,KAAK,CACX,iCAAiC,OAAO,CAAC,MAAM,2BAA2B,UAAU,2BAA2B;QAC/G,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,KAAK;QAC1D,CAAC,OAAO,IAAI,yFAAyF,CAAC;QACtG,IAAI,gBAAgB,IAAI,sBAAsB,wDAAwD,CACzG,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,6BAA6B,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5G,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACpG,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -8,6 +8,42 @@
|
|
|
8
8
|
* Ordering (ascending): `minimal` < `standard` < `verbose` < `debug`.
|
|
9
9
|
*/
|
|
10
10
|
export type ServerLogLevel = 'minimal' | 'standard' | 'verbose' | 'debug';
|
|
11
|
+
/**
|
|
12
|
+
* A single captured startup phase timing (e.g. "DB Pool Connect: 412ms").
|
|
13
|
+
* Buffered during startup and either printed individually (verbose+) or
|
|
14
|
+
* collapsed into the one-line `Startup` summary (standard).
|
|
15
|
+
*/
|
|
16
|
+
type PhaseTiming = {
|
|
17
|
+
/** Human-readable phase label. */
|
|
18
|
+
Label: string;
|
|
19
|
+
/** Elapsed milliseconds for the phase. */
|
|
20
|
+
Ms: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Fields gathered during startup that are rendered into the compact
|
|
24
|
+
* `standard`-level summary block. All optional — the renderer degrades
|
|
25
|
+
* gracefully when a field was never set.
|
|
26
|
+
*/
|
|
27
|
+
type StartupSummaryData = {
|
|
28
|
+
/** Server package version (e.g. "5.40.2"); omitted from the header if absent. */
|
|
29
|
+
Version?: string;
|
|
30
|
+
/** Database platform label, e.g. "SQL Server" or "PostgreSQL". */
|
|
31
|
+
DbPlatform?: string;
|
|
32
|
+
/** Database connection string fragment, e.g. "localhost:1433/MJ_DB". */
|
|
33
|
+
DbConnection?: string;
|
|
34
|
+
/** Count of entities loaded into metadata. */
|
|
35
|
+
EntityCount?: number;
|
|
36
|
+
/** Absolute path to the resolved config file (omitted from the block if absent). */
|
|
37
|
+
ConfigPath?: string;
|
|
38
|
+
/** Names of registered auth providers. */
|
|
39
|
+
AuthProviders: string[];
|
|
40
|
+
/** Whether the REST API is enabled. */
|
|
41
|
+
RestEnabled?: boolean;
|
|
42
|
+
/** Count of active scheduled jobs (or 0 / suspended). */
|
|
43
|
+
ScheduledJobCount?: number;
|
|
44
|
+
/** Public URL the server is ready at. */
|
|
45
|
+
ReadyUrl?: string;
|
|
46
|
+
};
|
|
11
47
|
/**
|
|
12
48
|
* MJServer-local startup + per-request log gating helper.
|
|
13
49
|
*
|
|
@@ -30,7 +66,20 @@ export type ServerLogLevel = 'minimal' | 'standard' | 'verbose' | 'debug';
|
|
|
30
66
|
* logger.PrintSummary();
|
|
31
67
|
* ```
|
|
32
68
|
*/
|
|
69
|
+
export type StartupSummarySnapshot = {
|
|
70
|
+
Level: ServerLogLevel;
|
|
71
|
+
Summary: Readonly<StartupSummaryData>;
|
|
72
|
+
PhaseTimings: ReadonlyArray<PhaseTiming>;
|
|
73
|
+
TotalStartupMs: number;
|
|
74
|
+
};
|
|
33
75
|
export declare class StartupLogger {
|
|
76
|
+
private static _lastSnapshot;
|
|
77
|
+
/**
|
|
78
|
+
* Returns a read-only snapshot of the most recent server startup summary,
|
|
79
|
+
* used by diagnostic health snapshots to report startup phase durations without
|
|
80
|
+
* mutating or re-running startup logic.
|
|
81
|
+
*/
|
|
82
|
+
static GetLastStartupSnapshot(): StartupSummarySnapshot | null;
|
|
34
83
|
private readonly resolvedLevel;
|
|
35
84
|
private readonly phaseTimings;
|
|
36
85
|
private readonly summary;
|
|
@@ -176,4 +225,5 @@ export declare class StartupLogger {
|
|
|
176
225
|
/** ` Ready <url>`. */
|
|
177
226
|
private buildReadyLine;
|
|
178
227
|
}
|
|
228
|
+
export {};
|
|
179
229
|
//# sourceMappingURL=StartupLogger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartupLogger.d.ts","sourceRoot":"","sources":["../../src/logging/StartupLogger.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StartupLogger.d.ts","sourceRoot":"","sources":["../../src/logging/StartupLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,29 +8,16 @@ const LEVEL_RANK = {
|
|
|
8
8
|
verbose: 2,
|
|
9
9
|
debug: 3,
|
|
10
10
|
};
|
|
11
|
-
/**
|
|
12
|
-
* MJServer-local startup + per-request log gating helper.
|
|
13
|
-
*
|
|
14
|
-
* Holds the resolved {@link ServerLogLevel} (from `telemetry.level`) and exposes
|
|
15
|
-
* a small surface for level-gated logging, startup phase-timing capture, and the
|
|
16
|
-
* compact summary block printed once at the end of boot.
|
|
17
|
-
*
|
|
18
|
-
* This is deliberately NOT a `BaseSingleton` and does NOT touch
|
|
19
|
-
* `@memberjunction/core` logging internals — it is a thin, process-local gate
|
|
20
|
-
* that wraps `console.*` / `LogStatus`. The point is the *gating*, not a new
|
|
21
|
-
* logging framework.
|
|
22
|
-
*
|
|
23
|
-
* Usage:
|
|
24
|
-
* ```ts
|
|
25
|
-
* const logger = new StartupLogger();
|
|
26
|
-
* logger.LogIf('verbose', 'Registered auth provider: azure');
|
|
27
|
-
* const t = logger.StartPhase();
|
|
28
|
-
* // ... work ...
|
|
29
|
-
* logger.EndPhase('DB Pool Connect', t);
|
|
30
|
-
* logger.PrintSummary();
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
11
|
export class StartupLogger {
|
|
12
|
+
static { this._lastSnapshot = null; }
|
|
13
|
+
/**
|
|
14
|
+
* Returns a read-only snapshot of the most recent server startup summary,
|
|
15
|
+
* used by diagnostic health snapshots to report startup phase durations without
|
|
16
|
+
* mutating or re-running startup logic.
|
|
17
|
+
*/
|
|
18
|
+
static GetLastStartupSnapshot() {
|
|
19
|
+
return StartupLogger._lastSnapshot;
|
|
20
|
+
}
|
|
34
21
|
/**
|
|
35
22
|
* @param level Optional explicit level override (primarily for tests).
|
|
36
23
|
* When omitted, the level is resolved from config.
|
|
@@ -225,6 +212,12 @@ export class StartupLogger {
|
|
|
225
212
|
// Clear the transient spinner before any block output so the line it
|
|
226
213
|
// occupied is replaced cleanly by the summary.
|
|
227
214
|
this.StopBoot();
|
|
215
|
+
StartupLogger._lastSnapshot = {
|
|
216
|
+
Level: this.resolvedLevel,
|
|
217
|
+
Summary: { ...this.summary, AuthProviders: [...this.summary.AuthProviders] },
|
|
218
|
+
PhaseTimings: this.phaseTimings.map((p) => ({ ...p })),
|
|
219
|
+
TotalStartupMs: performance.now(),
|
|
220
|
+
};
|
|
228
221
|
if (this.resolvedLevel === 'minimal') {
|
|
229
222
|
this.printReadyLineOnly();
|
|
230
223
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartupLogger.js","sourceRoot":"","sources":["../../src/logging/StartupLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,GAAG,MAAM,KAAK,CAAC;AActB,wEAAwE;AACxE,MAAM,UAAU,GAAmC;IACjD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;CACT,CAAC;
|
|
1
|
+
{"version":3,"file":"StartupLogger.js","sourceRoot":"","sources":["../../src/logging/StartupLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,21 @@ import type { RequestHandler, ErrorRequestHandler, Application } from 'express';
|
|
|
16
16
|
import type { ApolloServerPlugin } from '@apollo/server';
|
|
17
17
|
import type { GraphQLSchema } from 'graphql';
|
|
18
18
|
import type { RunViewParams, UserInfo, BaseEntity, RunViewResult } from '@memberjunction/core';
|
|
19
|
+
/**
|
|
20
|
+
* What the server hands each middleware at startup.
|
|
21
|
+
*/
|
|
22
|
+
export interface ServerMiddlewareContext {
|
|
23
|
+
/**
|
|
24
|
+
* Builds the path of a route under MJAPI's base path (`MJAPI_BASE_PATH`).
|
|
25
|
+
* `subpath` must start with `/`. Use it for every route a middleware registers or compares against.
|
|
26
|
+
* With `{ absolute: true }` it returns the public URL of the route (`MJAPI_PUBLIC_URL` + subpath).
|
|
27
|
+
* The options type is written out here, not imported from `apiRoot.ts`: packages that read this
|
|
28
|
+
* file's types from source must not compile `config.ts`.
|
|
29
|
+
*/
|
|
30
|
+
ApiRoute: (subpath: string, options?: {
|
|
31
|
+
absolute?: boolean;
|
|
32
|
+
}) => string;
|
|
33
|
+
}
|
|
19
34
|
export declare abstract class BaseServerMiddleware {
|
|
20
35
|
/**
|
|
21
36
|
* Human-readable label for logging (e.g., 'mj:tenantFilter', 'bcsaas').
|
|
@@ -29,9 +44,11 @@ export declare abstract class BaseServerMiddleware {
|
|
|
29
44
|
get Enabled(): boolean;
|
|
30
45
|
/**
|
|
31
46
|
* Optional async initialization (read config, warm caches, etc.).
|
|
32
|
-
* Called by serve() after instantiation, before middleware/hooks are extracted
|
|
47
|
+
* Called by serve() after instantiation, before middleware/hooks are extracted,
|
|
48
|
+
* so a context stored here is available to every other hook.
|
|
49
|
+
* @param context - The server's route builder. serve() always passes it.
|
|
33
50
|
*/
|
|
34
|
-
Initialize(): Promise<void>;
|
|
51
|
+
Initialize(context?: ServerMiddlewareContext): Promise<void>;
|
|
35
52
|
/**
|
|
36
53
|
* Express middleware applied BEFORE authentication.
|
|
37
54
|
* Runs after compression but before OAuth/REST/GraphQL routes.
|
|
@@ -54,8 +71,9 @@ export declare abstract class BaseServerMiddleware {
|
|
|
54
71
|
* Called once during server setup with the Express app instance.
|
|
55
72
|
* Use for: trust proxy settings, custom CORS, body parser config.
|
|
56
73
|
* Return undefined to skip (default).
|
|
74
|
+
* @param context - The server's route builder. serve() always passes it.
|
|
57
75
|
*/
|
|
58
|
-
ConfigureExpressApp?(app: Application): void | Promise<void>;
|
|
76
|
+
ConfigureExpressApp?(app: Application, context?: ServerMiddlewareContext): void | Promise<void>;
|
|
59
77
|
/**
|
|
60
78
|
* Additional Apollo Server plugins merged with built-in plugins.
|
|
61
79
|
* Use for: query tracing, caching, custom error formatting.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseServerMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/BaseServerMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/F,8BAAsB,oBAAoB;IAGtC;;OAEG;IACH,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC;IAE7B;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAAiB;IAIvC
|
|
1
|
+
{"version":3,"file":"BaseServerMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/BaseServerMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/F;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;CAC3E;AAED,8BAAsB,oBAAoB;IAGtC;;OAEG;IACH,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC;IAE7B;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAAiB;IAIvC;;;;;OAKG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE;;;;OAIG;IACH,oBAAoB,IAAI,cAAc,EAAE;IAExC;;;;OAIG;IACH,qBAAqB,IAAI,cAAc,EAAE;IAEzC;;;OAGG;IACH,sBAAsB,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,EAAE;IAIlE;;;;;;OAMG;IACH,mBAAmB,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/F;;;OAGG;IACH,gBAAgB,IAAI,kBAAkB,EAAE;IAExC;;;OAGG;IACH,qBAAqB,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,aAAa,CAAC,EAAE;IAIrE;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAM5B;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAI5G;;;;;;;;OAQG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrI;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;CAG/G"}
|
|
@@ -22,9 +22,11 @@ export class BaseServerMiddleware {
|
|
|
22
22
|
// --- Lifecycle ---
|
|
23
23
|
/**
|
|
24
24
|
* Optional async initialization (read config, warm caches, etc.).
|
|
25
|
-
* Called by serve() after instantiation, before middleware/hooks are extracted
|
|
25
|
+
* Called by serve() after instantiation, before middleware/hooks are extracted,
|
|
26
|
+
* so a context stored here is available to every other hook.
|
|
27
|
+
* @param context - The server's route builder. serve() always passes it.
|
|
26
28
|
*/
|
|
27
|
-
async Initialize() { }
|
|
29
|
+
async Initialize(context) { }
|
|
28
30
|
// --- Express Middleware ---
|
|
29
31
|
// Each method corresponds to a named slot in the request pipeline.
|
|
30
32
|
// Override to contribute middleware at that stage.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseServerMiddleware.js","sourceRoot":"","sources":["../../src/middleware/BaseServerMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"BaseServerMiddleware.js","sourceRoot":"","sources":["../../src/middleware/BaseServerMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAqBH,MAAM,OAAgB,oBAAoB;IAQtC;;;;OAIG;IACH,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAEvC,oBAAoB;IAEpB;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAAiC,IAA0C,CAAC;IAE7F,6BAA6B;IAC7B,mEAAmE;IACnE,mDAAmD;IACnD,uDAAuD;IAEvD;;;;OAIG;IACH,oBAAoB,KAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;IAEvD;;;;OAIG;IACH,qBAAqB,KAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;IAExD;;;OAGG;IACH,sBAAsB,KAA+C,OAAO,EAAE,CAAC,CAAC,CAAC;IAajF,sCAAsC;IAEtC;;;OAGG;IACH,gBAAgB,KAA2B,OAAO,EAAE,CAAC,CAAC,CAAC;IAEvD;;;OAGG;IACH,qBAAqB,KAAmD,OAAO,EAAE,CAAC,CAAC,CAAC;IAEpF,6BAA6B;IAE7B;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,KAAe,OAAO,EAAE,CAAC,CAAC,CAAC;IAE3C,qBAAqB;IACrB,sDAAsD;IACtD,oDAAoD;IAEpD;;;OAGG;IACH,UAAU,CAAC,MAAqB,EAAE,WAAiC;QAC/D,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,MAAqB,EAAE,OAAsB,EAAE,WAAiC;QACxF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,MAAkB,EAAE,WAAiC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownedRealtimeSession.d.ts","sourceRoot":"","sources":["../../src/realtimeSessions/ownedRealtimeSession.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,iBAAiB,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAK5E,gEAAgE;AAChE,qBAAa,4BAA6B,SAAQ,KAAK;aACvB,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM;CAIrD;AAED,qKAAqK;AACrK,qBAAa,6BAA8B,SAAQ,KAAK;aACxB,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM;CAIrD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"ownedRealtimeSession.d.ts","sourceRoot":"","sources":["../../src/realtimeSessions/ownedRealtimeSession.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,iBAAiB,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAK5E,gEAAgE;AAChE,qBAAa,4BAA6B,SAAQ,KAAK;aACvB,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM;CAIrD;AAED,qKAAqK;AACrK,qBAAa,6BAA8B,SAAQ,KAAK;aACxB,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM;CAIrD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CAmBjC"}
|