@memberjunction/server 6.1.0-edge.2 → 6.1.0-edge.4

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.
Files changed (210) hide show
  1. package/LICENSE +180 -4
  2. package/dist/agentSessions/SessionManager.d.ts +19 -5
  3. package/dist/agentSessions/SessionManager.d.ts.map +1 -1
  4. package/dist/agentSessions/SessionManager.js +27 -9
  5. package/dist/agentSessions/SessionManager.js.map +1 -1
  6. package/dist/auth/AuthProviderCatalogRouter.d.ts +31 -0
  7. package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -0
  8. package/dist/auth/AuthProviderCatalogRouter.js +69 -0
  9. package/dist/auth/AuthProviderCatalogRouter.js.map +1 -0
  10. package/dist/auth/AuthProviderEngine.d.ts +96 -0
  11. package/dist/auth/AuthProviderEngine.d.ts.map +1 -0
  12. package/dist/auth/AuthProviderEngine.js +245 -0
  13. package/dist/auth/AuthProviderEngine.js.map +1 -0
  14. package/dist/auth/index.d.ts +12 -0
  15. package/dist/auth/index.d.ts.map +1 -1
  16. package/dist/auth/index.js +57 -13
  17. package/dist/auth/index.js.map +1 -1
  18. package/dist/auth/initializeProviders.d.ts +64 -1
  19. package/dist/auth/initializeProviders.d.ts.map +1 -1
  20. package/dist/auth/initializeProviders.js +117 -5
  21. package/dist/auth/initializeProviders.js.map +1 -1
  22. package/dist/auth/scopeLimitedPrincipal.d.ts +39 -0
  23. package/dist/auth/scopeLimitedPrincipal.d.ts.map +1 -0
  24. package/dist/auth/scopeLimitedPrincipal.js +49 -0
  25. package/dist/auth/scopeLimitedPrincipal.js.map +1 -0
  26. package/dist/config.d.ts +89 -0
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +52 -35
  29. package/dist/config.js.map +1 -1
  30. package/dist/context.d.ts.map +1 -1
  31. package/dist/context.js +21 -1
  32. package/dist/context.js.map +1 -1
  33. package/dist/entitySubclasses/MJEntityPermissionEntityServer.server.d.ts.map +1 -1
  34. package/dist/entitySubclasses/MJEntityPermissionEntityServer.server.js +8 -7
  35. package/dist/entitySubclasses/MJEntityPermissionEntityServer.server.js.map +1 -1
  36. package/dist/generated/generated.d.ts +619 -1597
  37. package/dist/generated/generated.d.ts.map +1 -1
  38. package/dist/generated/generated.js +3341 -17021
  39. package/dist/generated/generated.js.map +1 -1
  40. package/dist/generic/ResolverBase.d.ts +28 -1
  41. package/dist/generic/ResolverBase.d.ts.map +1 -1
  42. package/dist/generic/ResolverBase.js +57 -8
  43. package/dist/generic/ResolverBase.js.map +1 -1
  44. package/dist/generic/RunViewResolver.d.ts +4 -0
  45. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  46. package/dist/generic/RunViewResolver.js +31 -0
  47. package/dist/generic/RunViewResolver.js.map +1 -1
  48. package/dist/index.d.ts +3 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +147 -14
  51. package/dist/index.js.map +1 -1
  52. package/dist/integration/CustomColumnPromoter.d.ts +79 -15
  53. package/dist/integration/CustomColumnPromoter.d.ts.map +1 -1
  54. package/dist/integration/CustomColumnPromoter.js +472 -97
  55. package/dist/integration/CustomColumnPromoter.js.map +1 -1
  56. package/dist/integration/InactiveRowWarnings.d.ts +48 -0
  57. package/dist/integration/InactiveRowWarnings.d.ts.map +1 -0
  58. package/dist/integration/InactiveRowWarnings.js +57 -0
  59. package/dist/integration/InactiveRowWarnings.js.map +1 -0
  60. package/dist/integration/RSUProgressBridge.d.ts +83 -0
  61. package/dist/integration/RSUProgressBridge.d.ts.map +1 -0
  62. package/dist/integration/RSUProgressBridge.js +230 -0
  63. package/dist/integration/RSUProgressBridge.js.map +1 -0
  64. package/dist/integration/SchemaRefreshLaunch.d.ts +62 -0
  65. package/dist/integration/SchemaRefreshLaunch.d.ts.map +1 -0
  66. package/dist/integration/SchemaRefreshLaunch.js +67 -0
  67. package/dist/integration/SchemaRefreshLaunch.js.map +1 -0
  68. package/dist/providerConfigUnits.d.ts +20 -0
  69. package/dist/providerConfigUnits.d.ts.map +1 -0
  70. package/dist/providerConfigUnits.js +22 -0
  71. package/dist/providerConfigUnits.js.map +1 -0
  72. package/dist/resolvers/AdhocQueryResolver.d.ts +4 -0
  73. package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
  74. package/dist/resolvers/AdhocQueryResolver.js +20 -6
  75. package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
  76. package/dist/resolvers/FileResolver.d.ts +34 -4
  77. package/dist/resolvers/FileResolver.d.ts.map +1 -1
  78. package/dist/resolvers/FileResolver.js +218 -28
  79. package/dist/resolvers/FileResolver.js.map +1 -1
  80. package/dist/resolvers/IdentityClaimRedemptionResolver.d.ts +37 -0
  81. package/dist/resolvers/IdentityClaimRedemptionResolver.d.ts.map +1 -0
  82. package/dist/resolvers/IdentityClaimRedemptionResolver.js +220 -0
  83. package/dist/resolvers/IdentityClaimRedemptionResolver.js.map +1 -0
  84. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +108 -3
  85. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
  86. package/dist/resolvers/IntegrationDiscoveryResolver.js +374 -87
  87. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
  88. package/dist/resolvers/QueryResolver.d.ts +5 -4
  89. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  90. package/dist/resolvers/QueryResolver.js +29 -14
  91. package/dist/resolvers/QueryResolver.js.map +1 -1
  92. package/dist/resolvers/QuerySystemUserResolver.d.ts +12 -3
  93. package/dist/resolvers/QuerySystemUserResolver.d.ts.map +1 -1
  94. package/dist/resolvers/QuerySystemUserResolver.js +33 -14
  95. package/dist/resolvers/QuerySystemUserResolver.js.map +1 -1
  96. package/dist/resolvers/RunAIAgentResolver.d.ts +3 -1
  97. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  98. package/dist/resolvers/RunAIAgentResolver.js +20 -7
  99. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  100. package/dist/resolvers/TaskGraphFrameResolver.d.ts +18 -0
  101. package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
  102. package/dist/resolvers/TaskGraphFrameResolver.js +75 -0
  103. package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
  104. package/dist/resolvers/UserResolver.d.ts +19 -17
  105. package/dist/resolvers/UserResolver.d.ts.map +1 -1
  106. package/dist/resolvers/UserResolver.js +66 -67
  107. package/dist/resolvers/UserResolver.js.map +1 -1
  108. package/dist/resolvers/currentUserRoles.d.ts +19 -0
  109. package/dist/resolvers/currentUserRoles.d.ts.map +1 -0
  110. package/dist/resolvers/currentUserRoles.js +36 -0
  111. package/dist/resolvers/currentUserRoles.js.map +1 -0
  112. package/dist/resolvers/meetingRecordingRegistration.d.ts.map +1 -1
  113. package/dist/resolvers/meetingRecordingRegistration.js +3 -6
  114. package/dist/resolvers/meetingRecordingRegistration.js.map +1 -1
  115. package/dist/rest/MediaAccessKeys.d.ts +17 -0
  116. package/dist/rest/MediaAccessKeys.d.ts.map +1 -1
  117. package/dist/rest/MediaAccessKeys.js +42 -1
  118. package/dist/rest/MediaAccessKeys.js.map +1 -1
  119. package/dist/rest/MediaStreamHandler.d.ts +3 -2
  120. package/dist/rest/MediaStreamHandler.d.ts.map +1 -1
  121. package/dist/rest/MediaStreamHandler.js +83 -2
  122. package/dist/rest/MediaStreamHandler.js.map +1 -1
  123. package/dist/rest/OAuthCallbackHandler.d.ts +49 -1
  124. package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -1
  125. package/dist/rest/OAuthCallbackHandler.js +129 -43
  126. package/dist/rest/OAuthCallbackHandler.js.map +1 -1
  127. package/dist/rest/UploadTokenManager.d.ts +90 -0
  128. package/dist/rest/UploadTokenManager.d.ts.map +1 -0
  129. package/dist/rest/UploadTokenManager.js +156 -0
  130. package/dist/rest/UploadTokenManager.js.map +1 -0
  131. package/dist/services/IntegrationSyncWorkerService.d.ts +48 -0
  132. package/dist/services/IntegrationSyncWorkerService.d.ts.map +1 -0
  133. package/dist/services/IntegrationSyncWorkerService.js +132 -0
  134. package/dist/services/IntegrationSyncWorkerService.js.map +1 -0
  135. package/dist/services/StartTaskGraphDispatcher.d.ts +0 -10
  136. package/dist/services/StartTaskGraphDispatcher.d.ts.map +1 -1
  137. package/dist/services/StartTaskGraphDispatcher.js +21 -1
  138. package/dist/services/StartTaskGraphDispatcher.js.map +1 -1
  139. package/dist/services/TaskGraphAgentRunner.d.ts +7 -0
  140. package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
  141. package/dist/services/TaskGraphAgentRunner.js +23 -0
  142. package/dist/services/TaskGraphAgentRunner.js.map +1 -1
  143. package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
  144. package/dist/services/TaskGraphContinuationDeliverer.js +12 -1
  145. package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
  146. package/dist/types.d.ts +14 -0
  147. package/dist/types.d.ts.map +1 -1
  148. package/dist/types.js.map +1 -1
  149. package/package.json +92 -92
  150. package/src/__tests__/APIKeyScopeAuth.test.ts +475 -0
  151. package/src/__tests__/AdhocQueryResolver.scopeGuard.test.ts +84 -0
  152. package/src/__tests__/AuthProviderEngine.test.ts +278 -0
  153. package/src/__tests__/CustomColumnPromoterOnePass.test.ts +387 -0
  154. package/src/__tests__/EntityCRUDHandler.test.ts +378 -0
  155. package/src/__tests__/InactiveRowWarnings.test.ts +87 -0
  156. package/src/__tests__/IntegrationSyncWorkerService.test.ts +275 -0
  157. package/src/__tests__/OAuthCallbackHandler.openRedirect.test.ts +117 -0
  158. package/src/__tests__/OAuthCallbackHandler.xss.test.ts +4 -1
  159. package/src/__tests__/RESTEndpointHandler.test.ts +672 -0
  160. package/src/__tests__/RSUProgressBridge.test.ts +250 -0
  161. package/src/__tests__/ReactivateRefreshMessage.test.ts +85 -0
  162. package/src/__tests__/RealtimeBridgeResolver.test.ts +10 -2
  163. package/src/__tests__/ResolverBase.filterEscaping.test.ts +147 -0
  164. package/src/__tests__/SchemaRefreshLaunch.test.ts +114 -0
  165. package/src/__tests__/SessionManager.test.ts +55 -0
  166. package/src/__tests__/UserResolver.currentUser.test.ts +87 -0
  167. package/src/__tests__/ViewOperationsHandler.test.ts +277 -0
  168. package/src/__tests__/config-units.test.ts +74 -0
  169. package/src/__tests__/initializeProviders.refresh.test.ts +146 -0
  170. package/src/__tests__/mjapi-bootstrap.test.ts +0 -6
  171. package/src/__tests__/newUsers.test.ts +726 -0
  172. package/src/__tests__/uploadTokenManager.test.ts +159 -0
  173. package/src/agentSessions/SessionManager.ts +27 -9
  174. package/src/auth/AuthProviderCatalogRouter.ts +76 -0
  175. package/src/auth/AuthProviderEngine.ts +253 -0
  176. package/src/auth/index.ts +60 -15
  177. package/src/auth/initializeProviders.ts +128 -7
  178. package/src/auth/scopeLimitedPrincipal.ts +50 -0
  179. package/src/config.ts +55 -36
  180. package/src/context.ts +26 -2
  181. package/src/entitySubclasses/MJEntityPermissionEntityServer.server.ts +8 -7
  182. package/src/generated/generated.ts +2347 -10551
  183. package/src/generic/ResolverBase.ts +67 -8
  184. package/src/generic/RunViewResolver.ts +31 -0
  185. package/src/index.ts +165 -16
  186. package/src/integration/CustomColumnPromoter.ts +520 -98
  187. package/src/integration/InactiveRowWarnings.ts +85 -0
  188. package/src/integration/RSUProgressBridge.ts +248 -0
  189. package/src/integration/SchemaRefreshLaunch.ts +93 -0
  190. package/src/providerConfigUnits.ts +21 -0
  191. package/src/resolvers/AdhocQueryResolver.ts +21 -6
  192. package/src/resolvers/FileResolver.ts +200 -40
  193. package/src/resolvers/IdentityClaimRedemptionResolver.ts +184 -0
  194. package/src/resolvers/IntegrationDiscoveryResolver.ts +390 -71
  195. package/src/resolvers/QueryResolver.ts +25 -11
  196. package/src/resolvers/QuerySystemUserResolver.ts +28 -13
  197. package/src/resolvers/RunAIAgentResolver.ts +21 -6
  198. package/src/resolvers/TaskGraphFrameResolver.ts +67 -0
  199. package/src/resolvers/UserResolver.ts +99 -60
  200. package/src/resolvers/currentUserRoles.ts +47 -0
  201. package/src/resolvers/meetingRecordingRegistration.ts +3 -7
  202. package/src/rest/MediaAccessKeys.ts +47 -1
  203. package/src/rest/MediaStreamHandler.ts +98 -3
  204. package/src/rest/OAuthCallbackHandler.ts +149 -41
  205. package/src/rest/UploadTokenManager.ts +211 -0
  206. package/src/services/IntegrationSyncWorkerService.ts +141 -0
  207. package/src/services/StartTaskGraphDispatcher.ts +21 -1
  208. package/src/services/TaskGraphAgentRunner.ts +23 -0
  209. package/src/services/TaskGraphContinuationDeliverer.ts +11 -1
  210. package/src/types.ts +14 -0
@@ -1,13 +1,41 @@
1
1
  import { configInfo } from '../config.js';
2
- import { LogError } from '@memberjunction/core';
2
+ import { LogError, LogStatus, LogStatusEx } from '@memberjunction/core';
3
3
  import { AuthProviderFactory } from '@memberjunction/auth-providers';
4
+ import { AuthProviderEngine } from './AuthProviderEngine.js';
4
5
  /**
5
- * Initialize authentication providers from configuration
6
+ * Initialize authentication providers from configuration.
7
+ *
8
+ * Registers everything declared in `mj.config.cjs`'s `authProviders` array. This remains the
9
+ * baseline path and runs on every boot: it needs no database, so it is what lets the server
10
+ * authenticate even when metadata is unreachable.
11
+ *
12
+ * Providers defined in the `MJ: Authentication Providers` catalog are layered on top by
13
+ * {@link initializeAuthProvidersFromMetadata}, which runs later in startup once a database
14
+ * connection and a system user exist.
6
15
  */
7
16
  export function initializeAuthProviders() {
8
17
  const factory = AuthProviderFactory.Instance;
9
18
  // Clear any existing providers
10
19
  factory.clear();
20
+ // Environment-derived providers are DEFAULTS: each provider class maps its own variables via
21
+ // the ConfigFromEnvironment hook, and they apply only when the config file declares no
22
+ // providers of its own. That mirrors the previous behaviour exactly — the env block used to sit
23
+ // in DEFAULT_SERVER_CONFIG, and mergeConfigs replaces (rather than concatenates) arrays, so an
24
+ // explicit `authProviders` in mj.config.cjs has always suppressed the env-derived set.
25
+ //
26
+ // Written back into configInfo.authProviders rather than kept local because that array is the
27
+ // live registry other code reads and appends to (registerMagicLinkAuthProvider pushes into it so
28
+ // a later re-initialize keeps magic-link).
29
+ if (!configInfo.authProviders || configInfo.authProviders.length === 0) {
30
+ const discovered = AuthProviderFactory.DiscoverFromEnvironment();
31
+ if (discovered.length > 0) {
32
+ configInfo.authProviders = discovered;
33
+ LogStatusEx({
34
+ message: `[Auth] Configured ${discovered.length} provider(s) from environment variables: ${discovered.map((p) => p.name).join(', ')}`,
35
+ verboseOnly: true
36
+ });
37
+ }
38
+ }
11
39
  // Initialize providers from authProviders config
12
40
  if (configInfo.authProviders && configInfo.authProviders.length > 0) {
13
41
  for (const providerConfig of configInfo.authProviders) {
@@ -23,9 +51,93 @@ export function initializeAuthProviders() {
23
51
  }
24
52
  }
25
53
  }
26
- // Validate we have at least one provider
27
- if (!factory.hasProviders()) {
28
- LogError('No authentication providers configured. Please configure authProviders array in mj.config.cjs');
54
+ // NOTE: the "no providers configured" check deliberately does NOT live here any more — see
55
+ // validateAuthProvidersRegistered(). A metadata-only deployment legitimately has an empty
56
+ // authProviders array at this point, and erroring here would cry wolf on every boot.
57
+ }
58
+ /**
59
+ * Layers the metadata provider catalog on top of the config-declared providers.
60
+ *
61
+ * Called after the data provider and system user are available. Metadata rows are registered in
62
+ * addition to — not instead of — the config-declared ones: a deployment mid-migration may
63
+ * legitimately have both, and a name collision resolves to the metadata row because it registers
64
+ * last and `AuthProviderFactory.register` keys by provider name.
65
+ *
66
+ * Never throws. An unreachable or empty catalog leaves the config-declared providers exactly as
67
+ * they were, which is what makes adopting this feature a no-op for existing deployments and keeps
68
+ * a metadata problem from turning into a lockout.
69
+ *
70
+ * @returns the number of providers registered from metadata.
71
+ */
72
+ export async function initializeAuthProvidersFromMetadata(contextUser, provider) {
73
+ try {
74
+ await AuthProviderEngine.Instance.Config(false, contextUser, provider);
75
+ const count = await AuthProviderEngine.Instance.RegisterAll(contextUser);
76
+ if (count > 0) {
77
+ LogStatus(`[Auth] ${count} authentication provider(s) registered from metadata.`);
78
+ }
79
+ return count;
80
+ }
81
+ catch (error) {
82
+ const message = error instanceof Error ? error.message : String(error);
83
+ LogError(`[Auth] Could not load the authentication provider catalog from metadata (${message}). Continuing with providers from mj.config.cjs.`);
84
+ return 0;
85
+ }
86
+ }
87
+ /**
88
+ * Rebuilds the provider registry from scratch: config-declared providers first, then the
89
+ * metadata catalog layered on top — the same two-source order as startup.
90
+ *
91
+ * This is THE entry point for reacting to a catalog edit at runtime (an admin page's Save
92
+ * button, a future invalidation hook). A full rebuild is required because the factory caches
93
+ * issuer→provider resolutions, so an edited row would otherwise keep serving its old
94
+ * configuration until the process restarted. It lives here rather than on `AuthProviderEngine`
95
+ * because a bare `factory.clear()` + metadata re-registration would silently drop everything
96
+ * the config path registered — magic-link included — and no caller should have to know to put
97
+ * those back. `initializeAuthProviders()` clears the factory itself, so no separate clear step
98
+ * exists for a caller to forget.
99
+ *
100
+ * **Failure policy: abort-before-mutate.** Everything that can throw — the catalog reload and
101
+ * the permission probe on its result — runs BEFORE the factory is touched, so a failed refresh
102
+ * leaves the registry serving the previous (stale but complete) provider set and surfaces the
103
+ * error to the caller. This is deliberately the opposite of `initializeAuthProvidersFromMetadata`,
104
+ * which swallows metadata failures: at boot there is no previous registry to preserve and a
105
+ * metadata problem must not become a lockout, while at refresh time there is one and the caller
106
+ * (an admin UI) wants the error. That difference in failure policy is why this function does not
107
+ * simply delegate to its sibling.
108
+ *
109
+ * Known limitation, acceptable for an admin-triggered operation: metadata providers are absent
110
+ * from the registry for the duration of `RegisterAll`'s per-row config builds (config-declared
111
+ * providers are restored synchronously). A request bearing a metadata-declared IdP's token in
112
+ * that window is rejected. If a caller ever needs an atomic swap, build the configs first and
113
+ * register them in one synchronous pass.
114
+ *
115
+ * @returns the number of providers registered from metadata after the refresh.
116
+ */
117
+ export async function refreshAuthProviders(contextUser, provider) {
118
+ await AuthProviderEngine.Instance.Config(true, contextUser, provider);
119
+ // Probe the reloaded catalog BEFORE clearing anything: reading Providers throws
120
+ // PermissionConstrainedError when the load was skipped for permission reasons, and that
121
+ // failure must abort the refresh while the registry is still intact.
122
+ const pendingRows = AuthProviderEngine.Instance.Providers.length;
123
+ initializeAuthProviders();
124
+ const count = await AuthProviderEngine.Instance.RegisterAll(contextUser);
125
+ LogStatus(`[Auth] Provider registry refreshed — ${count} of ${pendingRows} metadata provider(s) registered on top of the config-declared set.`);
126
+ return count;
127
+ }
128
+ /**
129
+ * Reports whether any provider is registered, from either source, and logs a diagnostic when none
130
+ * is.
131
+ *
132
+ * Split out from {@link initializeAuthProviders} because "no providers" is only genuinely wrong
133
+ * once BOTH sources have had their turn.
134
+ */
135
+ export function validateAuthProvidersRegistered() {
136
+ const hasProviders = AuthProviderFactory.Instance.hasProviders();
137
+ if (!hasProviders) {
138
+ LogError('No authentication providers are configured. Define them in the "MJ: Authentication Providers" metadata entity, ' +
139
+ 'or in the authProviders array in mj.config.cjs.');
29
140
  }
141
+ return hasProviders;
30
142
  }
31
143
  //# sourceMappingURL=initializeProviders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initializeProviders.js","sourceRoot":"","sources":["../../src/auth/initializeProviders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC;IAE7C,+BAA+B;IAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,iDAAiD;IACjD,IAAI,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,KAAK,MAAM,cAAc,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,cAAc,CAAC,cAAoC,CAAC,CAAC;gBAC1F,sFAAsF;gBACtF,mFAAmF;gBACnF,6CAA6C;gBAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,sCAAsC,cAAc,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QAC5B,QAAQ,CAAC,+FAA+F,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"initializeProviders.js","sourceRoot":"","sources":["../../src/auth/initializeProviders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { UserInfo } from '@memberjunction/core';
2
+ /**
3
+ * True when a session's read authority is deliberately narrower than the role grant it
4
+ * authenticates with — i.e. the principal is confined by per-session scope rather than by
5
+ * its roles alone.
6
+ *
7
+ * Two such principals exist today, both from the magic-link surface:
8
+ *
9
+ * - **Anonymous magic-link guests** (`IsMagicLinkAnonymous`) authenticate as the *shared*
10
+ * Anonymous principal, so their role grant is common to every guest. What separates one
11
+ * guest from another is not the role — it is the per-session scope.
12
+ * - **Resource-scoped magic-link sessions** (`MagicLinkScope`) hold a normal role, pinned to
13
+ * one shared resource (and its FK-reachable dependents) for the life of the session.
14
+ *
15
+ * In both cases the confinement is expressed as row-level-security filter tokens
16
+ * (`{{ScopeResourceID}}` / `{{ScopeResourceType}}`) that the entity-read path substitutes.
17
+ * That means the confinement only exists on code paths that go **through** entity
18
+ * permissions and RLS — `RunView`, `BaseEntity`, the generated resolvers. Any path that
19
+ * reaches the database *around* those layers (raw SQL on the read-only pool, for instance)
20
+ * sees no scope at all, so such a path must refuse these principals outright rather than
21
+ * assume a filter it never applies.
22
+ *
23
+ * Callers should treat a `true` result as "not permitted here", never as "apply a narrower
24
+ * filter" — a caller that could narrow correctly would not need this predicate.
25
+ *
26
+ * @param user the principal to classify. A missing principal returns `true`: an
27
+ * unidentifiable session is the one case where the scope certainly cannot be
28
+ * established, so it fails closed.
29
+ * @returns `true` when the principal is scope-limited (or unidentifiable), else `false`.
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * if (IsScopeLimitedPrincipal(context.userPayload?.userRecord)) {
34
+ * return this.buildErrorResult('Not permitted for scope-limited sessions.');
35
+ * }
36
+ * ```
37
+ */
38
+ export declare function IsScopeLimitedPrincipal(user: UserInfo | undefined | null): boolean;
39
+ //# sourceMappingURL=scopeLimitedPrincipal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeLimitedPrincipal.d.ts","sourceRoot":"","sources":["../../src/auth/scopeLimitedPrincipal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAWlF"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * True when a session's read authority is deliberately narrower than the role grant it
3
+ * authenticates with — i.e. the principal is confined by per-session scope rather than by
4
+ * its roles alone.
5
+ *
6
+ * Two such principals exist today, both from the magic-link surface:
7
+ *
8
+ * - **Anonymous magic-link guests** (`IsMagicLinkAnonymous`) authenticate as the *shared*
9
+ * Anonymous principal, so their role grant is common to every guest. What separates one
10
+ * guest from another is not the role — it is the per-session scope.
11
+ * - **Resource-scoped magic-link sessions** (`MagicLinkScope`) hold a normal role, pinned to
12
+ * one shared resource (and its FK-reachable dependents) for the life of the session.
13
+ *
14
+ * In both cases the confinement is expressed as row-level-security filter tokens
15
+ * (`{{ScopeResourceID}}` / `{{ScopeResourceType}}`) that the entity-read path substitutes.
16
+ * That means the confinement only exists on code paths that go **through** entity
17
+ * permissions and RLS — `RunView`, `BaseEntity`, the generated resolvers. Any path that
18
+ * reaches the database *around* those layers (raw SQL on the read-only pool, for instance)
19
+ * sees no scope at all, so such a path must refuse these principals outright rather than
20
+ * assume a filter it never applies.
21
+ *
22
+ * Callers should treat a `true` result as "not permitted here", never as "apply a narrower
23
+ * filter" — a caller that could narrow correctly would not need this predicate.
24
+ *
25
+ * @param user the principal to classify. A missing principal returns `true`: an
26
+ * unidentifiable session is the one case where the scope certainly cannot be
27
+ * established, so it fails closed.
28
+ * @returns `true` when the principal is scope-limited (or unidentifiable), else `false`.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * if (IsScopeLimitedPrincipal(context.userPayload?.userRecord)) {
33
+ * return this.buildErrorResult('Not permitted for scope-limited sessions.');
34
+ * }
35
+ * ```
36
+ */
37
+ export function IsScopeLimitedPrincipal(user) {
38
+ if (!user) {
39
+ return true; // no identifiable principal — fail closed
40
+ }
41
+ if (user.IsMagicLinkAnonymous) {
42
+ return true;
43
+ }
44
+ const scope = user.MagicLinkScope;
45
+ // An empty scope object carries no confinement; only a populated one does. (Truthiness
46
+ // of the object alone would classify `{}` as scoped and lock out a session that is not.)
47
+ return !!(scope?.ResourceID || scope?.ResourceType);
48
+ }
49
+ //# sourceMappingURL=scopeLimitedPrincipal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeLimitedPrincipal.js","sourceRoot":"","sources":["../../src/auth/scopeLimitedPrincipal.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAiC;IACrE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,IAAI,CAAC,CAAC,0CAA0C;IAC3D,CAAC;IACD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,uFAAuF;IACvF,yFAAyF;IACzF,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,YAAY,CAAC,CAAC;AACxD,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,7 +1,19 @@
1
1
  import { z } from 'zod';
2
2
  declare const userHandlingInfoSchema: z.ZodObject<{
3
3
  autoCreateNewUsers: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
4
+ /** When true, auto-provisioning is restricted to the domains in `newUserAuthorizedDomains`. */
4
5
  newUserLimitedToAuthorizedDomains: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
6
+ /**
7
+ * Authorized **email domains** for auto-provisioned users — e.g. `['example.com', '*.example.org']`.
8
+ *
9
+ * These are matched against the domain of the email address in the verified identity token, NOT
10
+ * against the browser `Origin` / frontend hostname. If you are upgrading from a build that
11
+ * compared these to the request origin, replace any frontend hostnames here (`app.example.com`,
12
+ * `localhost`) with the email domains your users actually sign in with.
13
+ *
14
+ * `*` wildcards are supported and match in full: `*.example.com` matches `mail.example.com` but
15
+ * NOT `example.com` — list both if you need both.
16
+ */
5
17
  newUserAuthorizedDomains: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
6
18
  newUserRoles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
7
19
  updateCacheWhenNotFound: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -332,6 +344,32 @@ declare const scheduledJobsSchema: z.ZodObject<{
332
344
  defaultLockTimeout?: number;
333
345
  staleLockCleanupInterval?: number;
334
346
  }>;
347
+ /**
348
+ * Integration sync worker (PR 1 item 8). When enabled, this process polls
349
+ * `CompanyIntegrationRun` for `Status='Queued'` rows, atomically claims them, executes
350
+ * the sync, and releases. The claim sproc is the mutual exclusion, so any number of
351
+ * processes may run a worker against the same database.
352
+ */
353
+ declare const integrationSyncWorkerSchema: z.ZodObject<{
354
+ /** Master switch — off by default so existing deployments keep running syncs inline. */
355
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
356
+ /** Email of the user the worker executes syncs as. */
357
+ systemUserEmail: z.ZodDefault<z.ZodOptional<z.ZodString>>;
358
+ /** How often to poll the queue, in ms. */
359
+ pollingIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
360
+ /** Maximum runs this worker executes concurrently. */
361
+ maxConcurrentRuns: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
362
+ }, "strip", z.ZodTypeAny, {
363
+ enabled?: boolean;
364
+ systemUserEmail?: string;
365
+ pollingIntervalMs?: number;
366
+ maxConcurrentRuns?: number;
367
+ }, {
368
+ enabled?: boolean;
369
+ systemUserEmail?: string;
370
+ pollingIntervalMs?: number;
371
+ maxConcurrentRuns?: number;
372
+ }>;
335
373
  declare const queryDialectSchema: z.ZodObject<{
336
374
  /** When true, saving a Query entity auto-generates QuerySQL entries for configured target dialects */
337
375
  autoConvertOnSave: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
@@ -1764,7 +1802,19 @@ declare const telephonySchema: z.ZodObject<{
1764
1802
  declare const configInfoSchema: z.ZodObject<{
1765
1803
  userHandling: z.ZodObject<{
1766
1804
  autoCreateNewUsers: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1805
+ /** When true, auto-provisioning is restricted to the domains in `newUserAuthorizedDomains`. */
1767
1806
  newUserLimitedToAuthorizedDomains: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1807
+ /**
1808
+ * Authorized **email domains** for auto-provisioned users — e.g. `['example.com', '*.example.org']`.
1809
+ *
1810
+ * These are matched against the domain of the email address in the verified identity token, NOT
1811
+ * against the browser `Origin` / frontend hostname. If you are upgrading from a build that
1812
+ * compared these to the request origin, replace any frontend hostnames here (`app.example.com`,
1813
+ * `localhost`) with the email domains your users actually sign in with.
1814
+ *
1815
+ * `*` wildcards are supported and match in full: `*.example.com` matches `mail.example.com` but
1816
+ * NOT `example.com` — list both if you need both.
1817
+ */
1768
1818
  newUserAuthorizedDomains: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1769
1819
  newUserRoles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1770
1820
  updateCacheWhenNotFound: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -2963,6 +3013,26 @@ declare const configInfoSchema: z.ZodObject<{
2963
3013
  defaultLockTimeout?: number;
2964
3014
  staleLockCleanupInterval?: number;
2965
3015
  }>>>;
3016
+ integrationSyncWorker: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3017
+ /** Master switch — off by default so existing deployments keep running syncs inline. */
3018
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3019
+ /** Email of the user the worker executes syncs as. */
3020
+ systemUserEmail: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3021
+ /** How often to poll the queue, in ms. */
3022
+ pollingIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3023
+ /** Maximum runs this worker executes concurrently. */
3024
+ maxConcurrentRuns: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3025
+ }, "strip", z.ZodTypeAny, {
3026
+ enabled?: boolean;
3027
+ systemUserEmail?: string;
3028
+ pollingIntervalMs?: number;
3029
+ maxConcurrentRuns?: number;
3030
+ }, {
3031
+ enabled?: boolean;
3032
+ systemUserEmail?: string;
3033
+ pollingIntervalMs?: number;
3034
+ maxConcurrentRuns?: number;
3035
+ }>>>;
2966
3036
  telemetry: z.ZodDefault<z.ZodOptional<z.ZodObject<{
2967
3037
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
2968
3038
  level: z.ZodDefault<z.ZodOptional<z.ZodEnum<["minimal", "standard", "verbose", "debug"]>>>;
@@ -3452,6 +3522,12 @@ declare const configInfoSchema: z.ZodObject<{
3452
3522
  defaultLockTimeout?: number;
3453
3523
  staleLockCleanupInterval?: number;
3454
3524
  };
3525
+ integrationSyncWorker?: {
3526
+ enabled?: boolean;
3527
+ systemUserEmail?: string;
3528
+ pollingIntervalMs?: number;
3529
+ maxConcurrentRuns?: number;
3530
+ };
3455
3531
  telemetry?: {
3456
3532
  enabled?: boolean;
3457
3533
  level?: "minimal" | "standard" | "verbose" | "debug";
@@ -3727,6 +3803,12 @@ declare const configInfoSchema: z.ZodObject<{
3727
3803
  defaultLockTimeout?: number;
3728
3804
  staleLockCleanupInterval?: number;
3729
3805
  };
3806
+ integrationSyncWorker?: {
3807
+ enabled?: boolean;
3808
+ systemUserEmail?: string;
3809
+ pollingIntervalMs?: number;
3810
+ maxConcurrentRuns?: number;
3811
+ };
3730
3812
  telemetry?: {
3731
3813
  enabled?: string | number | boolean;
3732
3814
  level?: "minimal" | "standard" | "verbose" | "debug";
@@ -3835,6 +3917,7 @@ export type SqlLoggingInfo = z.infer<typeof sqlLoggingSchema>;
3835
3917
  export type AuthProviderConfig = z.infer<typeof authProviderSchema>;
3836
3918
  export type ComponentRegistryConfig = z.infer<typeof componentRegistrySchema>;
3837
3919
  export type ScheduledJobsConfig = z.infer<typeof scheduledJobsSchema>;
3920
+ export type IntegrationSyncWorkerConfig = z.infer<typeof integrationSyncWorkerSchema>;
3838
3921
  export type TelemetryConfig = z.infer<typeof telemetrySchema>;
3839
3922
  export type QueryDialectConfig = z.infer<typeof queryDialectSchema>;
3840
3923
  export type MultiTenancyConfig = z.infer<typeof multiTenancySchema>;
@@ -4059,6 +4142,12 @@ export declare function loadConfig(): {
4059
4142
  defaultLockTimeout?: number;
4060
4143
  staleLockCleanupInterval?: number;
4061
4144
  };
4145
+ integrationSyncWorker?: {
4146
+ enabled?: boolean;
4147
+ systemUserEmail?: string;
4148
+ pollingIntervalMs?: number;
4149
+ maxConcurrentRuns?: number;
4150
+ };
4062
4151
  telemetry?: {
4063
4152
  enabled?: boolean;
4064
4153
  level?: "minimal" | "standard" | "verbose" | "debug";
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -5,7 +5,19 @@ import { mergeConfigs, parseBooleanEnv } from '@memberjunction/config';
5
5
  const explorer = cosmiconfigSync('mj', { searchStrategy: 'global' });
6
6
  const userHandlingInfoSchema = z.object({
7
7
  autoCreateNewUsers: z.boolean().optional().default(false),
8
+ /** When true, auto-provisioning is restricted to the domains in `newUserAuthorizedDomains`. */
8
9
  newUserLimitedToAuthorizedDomains: z.boolean().optional().default(false),
10
+ /**
11
+ * Authorized **email domains** for auto-provisioned users — e.g. `['example.com', '*.example.org']`.
12
+ *
13
+ * These are matched against the domain of the email address in the verified identity token, NOT
14
+ * against the browser `Origin` / frontend hostname. If you are upgrading from a build that
15
+ * compared these to the request origin, replace any frontend hostnames here (`app.example.com`,
16
+ * `localhost`) with the email domains your users actually sign in with.
17
+ *
18
+ * `*` wildcards are supported and match in full: `*.example.com` matches `mail.example.com` but
19
+ * NOT `example.com` — list both if you need both.
20
+ */
9
21
  newUserAuthorizedDomains: z.array(z.string()).optional().default([]),
10
22
  newUserRoles: z.array(z.string()).optional().default([]),
11
23
  updateCacheWhenNotFound: z.boolean().optional().default(false),
@@ -118,6 +130,22 @@ const scheduledJobsSchema = z.object({
118
130
  defaultLockTimeout: z.number().optional().default(600000), // 10 minutes in ms
119
131
  staleLockCleanupInterval: z.number().optional().default(300000), // 5 minutes in ms
120
132
  });
133
+ /**
134
+ * Integration sync worker (PR 1 item 8). When enabled, this process polls
135
+ * `CompanyIntegrationRun` for `Status='Queued'` rows, atomically claims them, executes
136
+ * the sync, and releases. The claim sproc is the mutual exclusion, so any number of
137
+ * processes may run a worker against the same database.
138
+ */
139
+ const integrationSyncWorkerSchema = z.object({
140
+ /** Master switch — off by default so existing deployments keep running syncs inline. */
141
+ enabled: z.boolean().optional().default(false),
142
+ /** Email of the user the worker executes syncs as. */
143
+ systemUserEmail: z.string().optional().default('system@memberjunction.org'),
144
+ /** How often to poll the queue, in ms. */
145
+ pollingIntervalMs: z.number().optional().default(15000),
146
+ /** Maximum runs this worker executes concurrently. */
147
+ maxConcurrentRuns: z.number().optional().default(3),
148
+ });
121
149
  const queryDialectSchema = z.object({
122
150
  /** When true, saving a Query entity auto-generates QuerySQL entries for configured target dialects */
123
151
  autoConvertOnSave: zodBooleanWithTransforms().default(false),
@@ -469,6 +497,7 @@ const configInfoSchema = z.object({
469
497
  authProviders: z.array(authProviderSchema).optional(),
470
498
  componentRegistries: z.array(componentRegistrySchema).optional(),
471
499
  scheduledJobs: scheduledJobsSchema.optional().default({}),
500
+ integrationSyncWorker: integrationSyncWorkerSchema.optional().default({}),
472
501
  telemetry: telemetrySchema.optional().default({}),
473
502
  queryDialects: queryDialectSchema.optional().default({}),
474
503
  multiTenancy: multiTenancySchema.optional().default({}),
@@ -598,6 +627,13 @@ export const DEFAULT_SERVER_CONFIG = {
598
627
  defaultLockTimeout: 600000,
599
628
  staleLockCleanupInterval: 300000
600
629
  },
630
+ // Integration sync worker defaults (off — syncs run inline unless a worker is enabled)
631
+ integrationSyncWorker: {
632
+ enabled: false,
633
+ systemUserEmail: 'not.set@nowhere.com',
634
+ pollingIntervalMs: 15000,
635
+ maxConcurrentRuns: 3
636
+ },
601
637
  // Telemetry defaults
602
638
  telemetry: {
603
639
  enabled: true,
@@ -620,41 +656,22 @@ export const DEFAULT_SERVER_CONFIG = {
620
656
  logVariables: parseBooleanEnv(process.env.MJ_LOG_GRAPHQL_VARIABLES),
621
657
  },
622
658
  },
623
- // Auth providers (environment-driven)
624
- authProviders: [
625
- // Microsoft Azure AD / Entra ID
626
- process.env.TENANT_ID && process.env.WEB_CLIENT_ID ? {
627
- name: 'azure',
628
- type: 'msal',
629
- issuer: `https://login.microsoftonline.com/${process.env.TENANT_ID}/v2.0`,
630
- audience: process.env.WEB_CLIENT_ID,
631
- jwksUri: `https://login.microsoftonline.com/${process.env.TENANT_ID}/discovery/v2.0/keys`,
632
- clientId: process.env.WEB_CLIENT_ID,
633
- tenantId: process.env.TENANT_ID
634
- } : null,
635
- // Auth0
636
- process.env.AUTH0_DOMAIN && process.env.AUTH0_CLIENT_ID ? {
637
- name: 'auth0',
638
- type: 'auth0',
639
- issuer: `https://${process.env.AUTH0_DOMAIN}/`,
640
- audience: process.env.AUTH0_CLIENT_ID,
641
- jwksUri: `https://${process.env.AUTH0_DOMAIN}/.well-known/jwks.json`,
642
- clientId: process.env.AUTH0_CLIENT_ID,
643
- clientSecret: process.env.AUTH0_CLIENT_SECRET,
644
- domain: process.env.AUTH0_DOMAIN
645
- } : null,
646
- // AWS Cognito
647
- process.env.COGNITO_USER_POOL_ID && process.env.COGNITO_CLIENT_ID && process.env.AWS_REGION ? {
648
- name: 'cognito',
649
- type: 'cognito',
650
- issuer: `https://cognito-idp.${process.env.AWS_REGION}.amazonaws.com/${process.env.COGNITO_USER_POOL_ID}`,
651
- audience: process.env.COGNITO_CLIENT_ID,
652
- jwksUri: `https://cognito-idp.${process.env.AWS_REGION}.amazonaws.com/${process.env.COGNITO_USER_POOL_ID}/.well-known/jwks.json`,
653
- clientId: process.env.COGNITO_CLIENT_ID,
654
- region: process.env.AWS_REGION,
655
- userPoolId: process.env.COGNITO_USER_POOL_ID
656
- } : null,
657
- ].filter(Boolean),
659
+ // Auth providers.
660
+ //
661
+ // Empty by design. This used to be a hard-coded block that enumerated Entra / Auth0 / Cognito
662
+ // inline and built each config from its environment variables. That made env-var configuration
663
+ // a closed domain: a third-party provider could register a driver class and take a metadata row
664
+ // or an explicit entry here, but it could never offer the "set two variables and you're done"
665
+ // experience, because the enumeration lived in core.
666
+ //
667
+ // Each provider class now owns its own mapping via the optional static
668
+ // `ConfigFromEnvironment` (see IEnvironmentConfigurableProvider in @memberjunction/auth-providers),
669
+ // and `initializeAuthProviders()` collects them through the ClassFactory registry.
670
+ //
671
+ // Discovery cannot happen here: this literal is evaluated when config.ts is imported, which is
672
+ // BEFORE @memberjunction/auth-providers loads and the driver classes register. It is deferred to
673
+ // registration time, where the registry is populated.
674
+ authProviders: [],
658
675
  };
659
676
  /**
660
677
  * Absolute path to the resolved config file, captured during {@link loadConfig}.