@memberjunction/server 5.16.0 → 5.18.0

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.
@@ -0,0 +1,424 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ /**
14
+ * RSUResolver — GraphQL API for the Runtime Schema Update pipeline.
15
+ *
16
+ * Exposes:
17
+ * - Query: RuntimeSchemaUpdateStatus — current RSU system status
18
+ * - Mutation: RunRuntimeSchemaUpdate — execute the full RSU pipeline
19
+ * - Mutation: PreviewRuntimeSchemaUpdate — dry-run preview
20
+ *
21
+ * All mutations require system user authorization.
22
+ */
23
+ import { Arg, Ctx, Field, InputType, Mutation, ObjectType, Query, Resolver, Int, } from 'type-graphql';
24
+ import { RequireSystemUser } from '../directives/RequireSystemUser.js';
25
+ import { RuntimeSchemaManager, } from '@memberjunction/schema-engine';
26
+ import { readFileSync, existsSync } from 'node:fs';
27
+ // ─── RSU Input Types ─────────────────────────────────────────────────
28
+ let RSUMetadataFileInput = class RSUMetadataFileInput {
29
+ };
30
+ __decorate([
31
+ Field(() => String),
32
+ __metadata("design:type", String)
33
+ ], RSUMetadataFileInput.prototype, "Path", void 0);
34
+ __decorate([
35
+ Field(() => String),
36
+ __metadata("design:type", String)
37
+ ], RSUMetadataFileInput.prototype, "Content", void 0);
38
+ RSUMetadataFileInput = __decorate([
39
+ InputType()
40
+ ], RSUMetadataFileInput);
41
+ export { RSUMetadataFileInput };
42
+ let RSUPipelineInputGQL = class RSUPipelineInputGQL {
43
+ };
44
+ __decorate([
45
+ Field(() => String, { description: 'The migration SQL to execute' }),
46
+ __metadata("design:type", String)
47
+ ], RSUPipelineInputGQL.prototype, "MigrationSQL", void 0);
48
+ __decorate([
49
+ Field(() => String, { description: 'Descriptive name for this schema change' }),
50
+ __metadata("design:type", String)
51
+ ], RSUPipelineInputGQL.prototype, "Description", void 0);
52
+ __decorate([
53
+ Field(() => [String], { description: 'Tables being created or modified' }),
54
+ __metadata("design:type", Array)
55
+ ], RSUPipelineInputGQL.prototype, "AffectedTables", void 0);
56
+ __decorate([
57
+ Field(() => String, { nullable: true, description: 'additionalSchemaInfo JSON for soft FKs' }),
58
+ __metadata("design:type", String)
59
+ ], RSUPipelineInputGQL.prototype, "AdditionalSchemaInfo", void 0);
60
+ __decorate([
61
+ Field(() => [RSUMetadataFileInput], { nullable: true, description: 'Metadata JSON files for mj-sync' }),
62
+ __metadata("design:type", Array)
63
+ ], RSUPipelineInputGQL.prototype, "MetadataFiles", void 0);
64
+ __decorate([
65
+ Field(() => Boolean, { nullable: true, description: 'Skip git commit/push step' }),
66
+ __metadata("design:type", Boolean)
67
+ ], RSUPipelineInputGQL.prototype, "SkipGitCommit", void 0);
68
+ __decorate([
69
+ Field(() => Boolean, { nullable: true, description: 'Skip MJAPI restart' }),
70
+ __metadata("design:type", Boolean)
71
+ ], RSUPipelineInputGQL.prototype, "SkipRestart", void 0);
72
+ RSUPipelineInputGQL = __decorate([
73
+ InputType()
74
+ ], RSUPipelineInputGQL);
75
+ export { RSUPipelineInputGQL };
76
+ // ─── Output Types ────────────────────────────────────────────────────
77
+ let RSUPipelineStepGQL = class RSUPipelineStepGQL {
78
+ };
79
+ __decorate([
80
+ Field(() => String),
81
+ __metadata("design:type", String)
82
+ ], RSUPipelineStepGQL.prototype, "Name", void 0);
83
+ __decorate([
84
+ Field(() => String),
85
+ __metadata("design:type", String)
86
+ ], RSUPipelineStepGQL.prototype, "Status", void 0);
87
+ __decorate([
88
+ Field(() => Int),
89
+ __metadata("design:type", Number)
90
+ ], RSUPipelineStepGQL.prototype, "DurationMs", void 0);
91
+ __decorate([
92
+ Field(() => String),
93
+ __metadata("design:type", String)
94
+ ], RSUPipelineStepGQL.prototype, "Message", void 0);
95
+ RSUPipelineStepGQL = __decorate([
96
+ ObjectType()
97
+ ], RSUPipelineStepGQL);
98
+ export { RSUPipelineStepGQL };
99
+ let RSUPipelineResultGQL = class RSUPipelineResultGQL {
100
+ };
101
+ __decorate([
102
+ Field(() => Boolean),
103
+ __metadata("design:type", Boolean)
104
+ ], RSUPipelineResultGQL.prototype, "Success", void 0);
105
+ __decorate([
106
+ Field(() => String, { nullable: true }),
107
+ __metadata("design:type", String)
108
+ ], RSUPipelineResultGQL.prototype, "BranchName", void 0);
109
+ __decorate([
110
+ Field(() => String, { nullable: true }),
111
+ __metadata("design:type", String)
112
+ ], RSUPipelineResultGQL.prototype, "MigrationFilePath", void 0);
113
+ __decorate([
114
+ Field(() => Int, { nullable: true }),
115
+ __metadata("design:type", Number)
116
+ ], RSUPipelineResultGQL.prototype, "EntitiesProcessed", void 0);
117
+ __decorate([
118
+ Field(() => Boolean),
119
+ __metadata("design:type", Boolean)
120
+ ], RSUPipelineResultGQL.prototype, "APIRestarted", void 0);
121
+ __decorate([
122
+ Field(() => Boolean),
123
+ __metadata("design:type", Boolean)
124
+ ], RSUPipelineResultGQL.prototype, "GitCommitSuccess", void 0);
125
+ __decorate([
126
+ Field(() => [RSUPipelineStepGQL]),
127
+ __metadata("design:type", Array)
128
+ ], RSUPipelineResultGQL.prototype, "Steps", void 0);
129
+ __decorate([
130
+ Field(() => String, { nullable: true }),
131
+ __metadata("design:type", String)
132
+ ], RSUPipelineResultGQL.prototype, "ErrorMessage", void 0);
133
+ __decorate([
134
+ Field(() => String, { nullable: true }),
135
+ __metadata("design:type", String)
136
+ ], RSUPipelineResultGQL.prototype, "ErrorStep", void 0);
137
+ RSUPipelineResultGQL = __decorate([
138
+ ObjectType()
139
+ ], RSUPipelineResultGQL);
140
+ export { RSUPipelineResultGQL };
141
+ let RSUPipelineBatchResultGQL = class RSUPipelineBatchResultGQL {
142
+ };
143
+ __decorate([
144
+ Field(() => [RSUPipelineResultGQL]),
145
+ __metadata("design:type", Array)
146
+ ], RSUPipelineBatchResultGQL.prototype, "Results", void 0);
147
+ __decorate([
148
+ Field(() => Int),
149
+ __metadata("design:type", Number)
150
+ ], RSUPipelineBatchResultGQL.prototype, "SuccessCount", void 0);
151
+ __decorate([
152
+ Field(() => Int),
153
+ __metadata("design:type", Number)
154
+ ], RSUPipelineBatchResultGQL.prototype, "FailureCount", void 0);
155
+ __decorate([
156
+ Field(() => Int),
157
+ __metadata("design:type", Number)
158
+ ], RSUPipelineBatchResultGQL.prototype, "TotalCount", void 0);
159
+ RSUPipelineBatchResultGQL = __decorate([
160
+ ObjectType()
161
+ ], RSUPipelineBatchResultGQL);
162
+ export { RSUPipelineBatchResultGQL };
163
+ let RSUPreviewResultGQL = class RSUPreviewResultGQL {
164
+ };
165
+ __decorate([
166
+ Field(() => String),
167
+ __metadata("design:type", String)
168
+ ], RSUPreviewResultGQL.prototype, "MigrationSQL", void 0);
169
+ __decorate([
170
+ Field(() => [String]),
171
+ __metadata("design:type", Array)
172
+ ], RSUPreviewResultGQL.prototype, "AffectedTables", void 0);
173
+ __decorate([
174
+ Field(() => [String]),
175
+ __metadata("design:type", Array)
176
+ ], RSUPreviewResultGQL.prototype, "ValidationErrors", void 0);
177
+ __decorate([
178
+ Field(() => Boolean),
179
+ __metadata("design:type", Boolean)
180
+ ], RSUPreviewResultGQL.prototype, "WouldExecute", void 0);
181
+ RSUPreviewResultGQL = __decorate([
182
+ ObjectType()
183
+ ], RSUPreviewResultGQL);
184
+ export { RSUPreviewResultGQL };
185
+ let RSUStatusGQL = class RSUStatusGQL {
186
+ };
187
+ __decorate([
188
+ Field(() => Boolean),
189
+ __metadata("design:type", Boolean)
190
+ ], RSUStatusGQL.prototype, "Enabled", void 0);
191
+ __decorate([
192
+ Field(() => Boolean),
193
+ __metadata("design:type", Boolean)
194
+ ], RSUStatusGQL.prototype, "Running", void 0);
195
+ __decorate([
196
+ Field(() => Boolean),
197
+ __metadata("design:type", Boolean)
198
+ ], RSUStatusGQL.prototype, "OutOfSync", void 0);
199
+ __decorate([
200
+ Field(() => Date, { nullable: true }),
201
+ __metadata("design:type", Date)
202
+ ], RSUStatusGQL.prototype, "OutOfSyncSince", void 0);
203
+ __decorate([
204
+ Field(() => Date, { nullable: true }),
205
+ __metadata("design:type", Date)
206
+ ], RSUStatusGQL.prototype, "LastRunAt", void 0);
207
+ __decorate([
208
+ Field(() => String, { nullable: true }),
209
+ __metadata("design:type", String)
210
+ ], RSUStatusGQL.prototype, "LastRunResult", void 0);
211
+ RSUStatusGQL = __decorate([
212
+ ObjectType()
213
+ ], RSUStatusGQL);
214
+ export { RSUStatusGQL };
215
+ let RSUQueueStatusGQL = class RSUQueueStatusGQL {
216
+ };
217
+ __decorate([
218
+ Field(() => Int),
219
+ __metadata("design:type", Number)
220
+ ], RSUQueueStatusGQL.prototype, "PendingCount", void 0);
221
+ __decorate([
222
+ Field(() => Boolean),
223
+ __metadata("design:type", Boolean)
224
+ ], RSUQueueStatusGQL.prototype, "IsCycleRunning", void 0);
225
+ RSUQueueStatusGQL = __decorate([
226
+ ObjectType()
227
+ ], RSUQueueStatusGQL);
228
+ export { RSUQueueStatusGQL };
229
+ // ─── Resolver ────────────────────────────────────────────────────────
230
+ let RSUResolver = class RSUResolver {
231
+ /**
232
+ * Query: Get current RSU system status.
233
+ * Available to any authenticated user (status is informational).
234
+ */
235
+ RuntimeSchemaUpdateStatus() {
236
+ const rsm = RuntimeSchemaManager.Instance;
237
+ const status = rsm.GetStatus();
238
+ return {
239
+ Enabled: status.Enabled,
240
+ Running: status.Running,
241
+ OutOfSync: status.OutOfSync,
242
+ OutOfSyncSince: status.OutOfSyncSince,
243
+ LastRunAt: status.LastRunAt,
244
+ LastRunResult: status.LastRunResult,
245
+ };
246
+ }
247
+ /**
248
+ * Query: Tail the RSU pipeline log file. Returns the last N lines.
249
+ */
250
+ RuntimeSchemaUpdateLogTail(lines) {
251
+ try {
252
+ const logPath = `${process.env.RSU_WORK_DIR || process.cwd()}/rsu-pipeline.log`;
253
+ if (!existsSync(logPath))
254
+ return ['(no log file found)'];
255
+ const content = readFileSync(logPath, 'utf-8');
256
+ const allLines = content.split('\n').filter(l => l.trim());
257
+ const maxLines = Math.min(Math.max(lines, 1), 1000);
258
+ return allLines.slice(-maxLines);
259
+ }
260
+ catch (e) {
261
+ return [`Error reading log: ${e.message}`];
262
+ }
263
+ }
264
+ /**
265
+ * Query: Get RSU CodeGen queue status.
266
+ * Shows how many requests are pending and whether a cycle is running.
267
+ */
268
+ RuntimeSchemaUpdateQueueStatus() {
269
+ const rsm = RuntimeSchemaManager.Instance;
270
+ return {
271
+ PendingCount: 0, // Batching is explicit via RunPipelineBatch — no implicit queue
272
+ IsCycleRunning: rsm.IsRunning,
273
+ };
274
+ }
275
+ /**
276
+ * Mutation: Execute the full RSU pipeline.
277
+ * Requires system user authorization.
278
+ */
279
+ async RunRuntimeSchemaUpdate(input, _ctx) {
280
+ const rsm = RuntimeSchemaManager.Instance;
281
+ const pipelineInput = {
282
+ MigrationSQL: input.MigrationSQL,
283
+ Description: input.Description,
284
+ AffectedTables: input.AffectedTables,
285
+ AdditionalSchemaInfo: input.AdditionalSchemaInfo ?? undefined,
286
+ MetadataFiles: input.MetadataFiles?.map(mf => ({ Path: mf.Path, Content: mf.Content })),
287
+ SkipGitCommit: input.SkipGitCommit ?? undefined,
288
+ SkipRestart: input.SkipRestart ?? undefined,
289
+ };
290
+ const result = await rsm.RunPipeline(pipelineInput);
291
+ return {
292
+ Success: result.Success,
293
+ BranchName: result.BranchName,
294
+ MigrationFilePath: result.MigrationFilePath,
295
+ EntitiesProcessed: result.EntitiesProcessed,
296
+ APIRestarted: result.APIRestarted,
297
+ GitCommitSuccess: result.GitCommitSuccess,
298
+ Steps: result.Steps.map(s => ({
299
+ Name: s.Name,
300
+ Status: s.Status,
301
+ DurationMs: s.DurationMs,
302
+ Message: s.Message,
303
+ })),
304
+ ErrorMessage: result.ErrorMessage,
305
+ ErrorStep: result.ErrorStep,
306
+ };
307
+ }
308
+ /**
309
+ * Mutation: Execute the RSU pipeline for a batch of inputs.
310
+ * All migrations execute under one lock, then one CodeGen/compile/restart/git.
311
+ * Per-item migration results + shared post-migration result.
312
+ */
313
+ async RunRuntimeSchemaUpdateBatch(inputs, _ctx) {
314
+ const rsm = RuntimeSchemaManager.Instance;
315
+ const pipelineInputs = inputs.map(input => ({
316
+ MigrationSQL: input.MigrationSQL,
317
+ Description: input.Description,
318
+ AffectedTables: input.AffectedTables,
319
+ AdditionalSchemaInfo: input.AdditionalSchemaInfo ?? undefined,
320
+ MetadataFiles: input.MetadataFiles?.map(mf => ({ Path: mf.Path, Content: mf.Content })),
321
+ SkipGitCommit: input.SkipGitCommit ?? undefined,
322
+ SkipRestart: input.SkipRestart ?? undefined,
323
+ }));
324
+ const batchResult = await rsm.RunPipelineBatch(pipelineInputs);
325
+ return {
326
+ Results: batchResult.Results.map(result => ({
327
+ Success: result.Success,
328
+ BranchName: result.BranchName,
329
+ MigrationFilePath: result.MigrationFilePath,
330
+ EntitiesProcessed: result.EntitiesProcessed,
331
+ APIRestarted: result.APIRestarted,
332
+ GitCommitSuccess: result.GitCommitSuccess,
333
+ Steps: result.Steps.map(s => ({
334
+ Name: s.Name,
335
+ Status: s.Status,
336
+ DurationMs: s.DurationMs,
337
+ Message: s.Message,
338
+ })),
339
+ ErrorMessage: result.ErrorMessage,
340
+ ErrorStep: result.ErrorStep,
341
+ })),
342
+ SuccessCount: batchResult.SuccessCount,
343
+ FailureCount: batchResult.FailureCount,
344
+ TotalCount: batchResult.TotalCount,
345
+ };
346
+ }
347
+ /**
348
+ * Mutation: Preview mode — validate SQL and return what would happen.
349
+ * Requires system user authorization.
350
+ */
351
+ PreviewRuntimeSchemaUpdate(input, _ctx) {
352
+ const rsm = RuntimeSchemaManager.Instance;
353
+ const pipelineInput = {
354
+ MigrationSQL: input.MigrationSQL,
355
+ Description: input.Description,
356
+ AffectedTables: input.AffectedTables,
357
+ };
358
+ const preview = rsm.Preview(pipelineInput);
359
+ return {
360
+ MigrationSQL: preview.MigrationSQL,
361
+ AffectedTables: preview.AffectedTables,
362
+ ValidationErrors: preview.ValidationErrors,
363
+ WouldExecute: preview.WouldExecute,
364
+ };
365
+ }
366
+ };
367
+ __decorate([
368
+ Query(() => RSUStatusGQL, { description: 'Returns the current Runtime Schema Update status' }),
369
+ __metadata("design:type", Function),
370
+ __metadata("design:paramtypes", []),
371
+ __metadata("design:returntype", RSUStatusGQL)
372
+ ], RSUResolver.prototype, "RuntimeSchemaUpdateStatus", null);
373
+ __decorate([
374
+ Query(() => [String], { description: 'Returns recent lines from the RSU pipeline log' }),
375
+ __param(0, Arg('lines', () => Int, { defaultValue: 100 })),
376
+ __metadata("design:type", Function),
377
+ __metadata("design:paramtypes", [Number]),
378
+ __metadata("design:returntype", Array)
379
+ ], RSUResolver.prototype, "RuntimeSchemaUpdateLogTail", null);
380
+ __decorate([
381
+ Query(() => RSUQueueStatusGQL, { description: 'Returns the RSU pipeline status' }),
382
+ __metadata("design:type", Function),
383
+ __metadata("design:paramtypes", []),
384
+ __metadata("design:returntype", RSUQueueStatusGQL)
385
+ ], RSUResolver.prototype, "RuntimeSchemaUpdateQueueStatus", null);
386
+ __decorate([
387
+ Mutation(() => RSUPipelineResultGQL, {
388
+ description: 'Execute the Runtime Schema Update pipeline. Requires system user.',
389
+ }),
390
+ RequireSystemUser(),
391
+ __param(0, Arg('input', () => RSUPipelineInputGQL)),
392
+ __param(1, Ctx()),
393
+ __metadata("design:type", Function),
394
+ __metadata("design:paramtypes", [RSUPipelineInputGQL, Object]),
395
+ __metadata("design:returntype", Promise)
396
+ ], RSUResolver.prototype, "RunRuntimeSchemaUpdate", null);
397
+ __decorate([
398
+ Mutation(() => RSUPipelineBatchResultGQL, {
399
+ description: 'Execute Runtime Schema Update for a batch of inputs. Requires system user.',
400
+ }),
401
+ RequireSystemUser(),
402
+ __param(0, Arg('inputs', () => [RSUPipelineInputGQL])),
403
+ __param(1, Ctx()),
404
+ __metadata("design:type", Function),
405
+ __metadata("design:paramtypes", [Array, Object]),
406
+ __metadata("design:returntype", Promise)
407
+ ], RSUResolver.prototype, "RunRuntimeSchemaUpdateBatch", null);
408
+ __decorate([
409
+ Mutation(() => RSUPreviewResultGQL, {
410
+ description: 'Preview Runtime Schema Update without executing. Requires system user.',
411
+ }),
412
+ RequireSystemUser(),
413
+ __param(0, Arg('input', () => RSUPipelineInputGQL)),
414
+ __param(1, Ctx()),
415
+ __metadata("design:type", Function),
416
+ __metadata("design:paramtypes", [RSUPipelineInputGQL, Object]),
417
+ __metadata("design:returntype", RSUPreviewResultGQL)
418
+ ], RSUResolver.prototype, "PreviewRuntimeSchemaUpdate", null);
419
+ RSUResolver = __decorate([
420
+ Resolver()
421
+ ], RSUResolver);
422
+ export { RSUResolver };
423
+ export default RSUResolver;
424
+ //# sourceMappingURL=RSUResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RSUResolver.js","sourceRoot":"","sources":["../../src/resolvers/RSUResolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/server",
3
- "version": "5.16.0",
3
+ "version": "5.18.0",
4
4
  "description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./src/index.ts",
@@ -27,67 +27,72 @@
27
27
  "@as-integrations/express5": "^1.0.0",
28
28
  "@graphql-tools/schema": "latest",
29
29
  "@graphql-tools/utils": "^11.0.0",
30
- "@memberjunction/actions": "5.16.0",
31
- "@memberjunction/actions-base": "5.16.0",
32
- "@memberjunction/actions-apollo": "5.16.0",
33
- "@memberjunction/actions-bizapps-accounting": "5.16.0",
34
- "@memberjunction/actions-bizapps-crm": "5.16.0",
35
- "@memberjunction/actions-bizapps-formbuilders": "5.16.0",
36
- "@memberjunction/actions-bizapps-lms": "5.16.0",
37
- "@memberjunction/actions-bizapps-social": "5.16.0",
38
- "@memberjunction/ai": "5.16.0",
39
- "@memberjunction/ai-mcp-client": "5.16.0",
40
- "@memberjunction/ai-agent-manager": "5.16.0",
41
- "@memberjunction/ai-agent-manager-actions": "5.16.0",
42
- "@memberjunction/ai-agents": "5.16.0",
43
- "@memberjunction/ai-core-plus": "5.16.0",
44
- "@memberjunction/ai-prompts": "5.16.0",
45
- "@memberjunction/ai-provider-bundle": "5.16.0",
46
- "@memberjunction/ai-vectors-pinecone": "5.16.0",
47
- "@memberjunction/aiengine": "5.16.0",
48
- "@memberjunction/auth-providers": "5.16.0",
49
- "@memberjunction/communication-ms-graph": "5.16.0",
50
- "@memberjunction/communication-sendgrid": "5.16.0",
51
- "@memberjunction/communication-types": "5.16.0",
52
- "@memberjunction/component-registry-client-sdk": "5.16.0",
53
- "@memberjunction/config": "5.16.0",
54
- "@memberjunction/core": "5.16.0",
55
- "@memberjunction/core-actions": "5.16.0",
56
- "@memberjunction/core-entities": "5.16.0",
57
- "@memberjunction/core-entities-server": "5.16.0",
58
- "@memberjunction/data-context": "5.16.0",
59
- "@memberjunction/data-context-server": "5.16.0",
60
- "@memberjunction/doc-utils": "5.16.0",
61
- "@memberjunction/api-keys": "5.16.0",
62
- "@memberjunction/encryption": "5.16.0",
63
- "@memberjunction/entity-communications-base": "5.16.0",
64
- "@memberjunction/entity-communications-server": "5.16.0",
65
- "@memberjunction/external-change-detection": "5.16.0",
66
- "@memberjunction/generic-database-provider": "5.16.0",
67
- "@memberjunction/global": "5.16.0",
68
- "@memberjunction/graphql-dataprovider": "5.16.0",
69
- "@memberjunction/integration-engine": "5.16.0",
70
- "@memberjunction/integration-schema-builder": "5.16.0",
71
- "@memberjunction/interactive-component-types": "5.16.0",
72
- "@memberjunction/computer-use-engine": "5.16.0",
73
- "@memberjunction/notifications": "5.16.0",
74
- "@memberjunction/queue": "5.16.0",
75
- "@memberjunction/redis-provider": "5.16.0",
76
- "@memberjunction/scheduling-actions": "5.16.0",
77
- "@memberjunction/scheduling-base-types": "5.16.0",
78
- "@memberjunction/scheduling-engine": "5.16.0",
79
- "@memberjunction/scheduling-engine-base": "5.16.0",
80
- "@memberjunction/skip-types": "5.16.0",
81
- "@memberjunction/sqlserver-dataprovider": "5.16.0",
82
- "@memberjunction/storage": "5.16.0",
83
- "@memberjunction/templates": "5.16.0",
84
- "@memberjunction/testing-engine": "5.16.0",
85
- "@memberjunction/testing-engine-base": "5.16.0",
86
- "@memberjunction/version-history": "5.16.0",
30
+ "@memberjunction/actions": "5.18.0",
31
+ "@memberjunction/actions-apollo": "5.18.0",
32
+ "@memberjunction/actions-base": "5.18.0",
33
+ "@memberjunction/actions-bizapps-accounting": "5.18.0",
34
+ "@memberjunction/actions-bizapps-crm": "5.18.0",
35
+ "@memberjunction/actions-bizapps-formbuilders": "5.18.0",
36
+ "@memberjunction/actions-bizapps-lms": "5.18.0",
37
+ "@memberjunction/actions-bizapps-social": "5.18.0",
38
+ "@memberjunction/ai": "5.18.0",
39
+ "@memberjunction/ai-agent-manager": "5.18.0",
40
+ "@memberjunction/ai-agent-manager-actions": "5.18.0",
41
+ "@memberjunction/ai-agents": "5.18.0",
42
+ "@memberjunction/ai-core-plus": "5.18.0",
43
+ "@memberjunction/ai-mcp-client": "5.18.0",
44
+ "@memberjunction/ai-prompts": "5.18.0",
45
+ "@memberjunction/ai-provider-bundle": "5.18.0",
46
+ "@memberjunction/ai-vectors-pinecone": "5.18.0",
47
+ "@memberjunction/aiengine": "5.18.0",
48
+ "@memberjunction/api-keys": "5.18.0",
49
+ "@memberjunction/auth-providers": "5.18.0",
50
+ "@memberjunction/codegen-lib": "5.18.0",
51
+ "@memberjunction/communication-ms-graph": "5.18.0",
52
+ "@memberjunction/communication-sendgrid": "5.18.0",
53
+ "@memberjunction/communication-types": "5.18.0",
54
+ "@memberjunction/component-registry-client-sdk": "5.18.0",
55
+ "@memberjunction/computer-use-engine": "5.18.0",
56
+ "@memberjunction/config": "5.18.0",
57
+ "@memberjunction/core": "5.18.0",
58
+ "@memberjunction/core-actions": "5.18.0",
59
+ "@memberjunction/core-entities": "5.18.0",
60
+ "@memberjunction/core-entities-server": "5.18.0",
61
+ "@memberjunction/data-context": "5.18.0",
62
+ "@memberjunction/data-context-server": "5.18.0",
63
+ "@memberjunction/doc-utils": "5.18.0",
64
+ "@memberjunction/encryption": "5.18.0",
65
+ "@memberjunction/entity-communications-base": "5.18.0",
66
+ "@memberjunction/entity-communications-server": "5.18.0",
67
+ "@memberjunction/external-change-detection": "5.18.0",
68
+ "@memberjunction/generic-database-provider": "5.18.0",
69
+ "@memberjunction/global": "5.18.0",
70
+ "@memberjunction/graphql-dataprovider": "5.18.0",
71
+ "@memberjunction/integration-engine": "5.18.0",
72
+ "@memberjunction/integration-schema-builder": "5.18.0",
73
+ "@memberjunction/interactive-component-types": "5.18.0",
74
+ "@memberjunction/notifications": "5.18.0",
75
+ "@memberjunction/postgresql-dataprovider": "5.18.0",
76
+ "@memberjunction/queue": "5.18.0",
77
+ "@memberjunction/redis-provider": "5.18.0",
78
+ "@memberjunction/scheduling-actions": "5.18.0",
79
+ "@memberjunction/scheduling-base-types": "5.18.0",
80
+ "@memberjunction/scheduling-engine": "5.18.0",
81
+ "@memberjunction/scheduling-engine-base": "5.18.0",
82
+ "@memberjunction/server-extensions-core": "5.18.0",
83
+ "@memberjunction/skip-types": "5.18.0",
84
+ "@memberjunction/sql-dialect": "5.18.0",
85
+ "@memberjunction/sqlserver-dataprovider": "5.18.0",
86
+ "@memberjunction/storage": "5.18.0",
87
+ "@memberjunction/templates": "5.18.0",
88
+ "@memberjunction/testing-engine": "5.18.0",
89
+ "@memberjunction/testing-engine-base": "5.18.0",
90
+ "@memberjunction/version-history": "5.18.0",
87
91
  "@types/compression": "^1.8.1",
88
92
  "@types/cors": "^2.8.19",
89
93
  "@types/jsonwebtoken": "9.0.10",
90
94
  "@types/node": "24.10.11",
95
+ "@types/pg": "^8.11.11",
91
96
  "@types/ws": "8.18.1",
92
97
  "axios": "^1.13.4",
93
98
  "body-parser": "^2.2.2",
@@ -108,10 +113,7 @@
108
113
  "jwks-rsa": "^3.2.2",
109
114
  "lru-cache": "^11.2.5",
110
115
  "mssql": "^12.2.0",
111
- "@memberjunction/postgresql-dataprovider": "5.16.0",
112
- "@memberjunction/sql-dialect": "5.16.0",
113
116
  "pg": "^8.13.3",
114
- "@types/pg": "^8.11.11",
115
117
  "reflect-metadata": "0.2.2",
116
118
  "rxjs": "^7.8.2",
117
119
  "type-graphql": "2.0.0-beta.3",
@@ -33,6 +33,7 @@ import { request as httpRequest } from 'http';
33
33
  import { request as httpsRequest } from 'https';
34
34
  import { gzip as gzipCompress, createGunzip } from 'zlib';
35
35
  import { configInfo, baseUrl, publicUrl, graphqlPort, graphqlRootPath, apiKey as callbackAPIKey } from '../config.js';
36
+ import { getDbType } from '../index.js';
36
37
  import { GetAIAPIKey } from '@memberjunction/ai';
37
38
  import { AIEngine } from '@memberjunction/aiengine';
38
39
  import { CopyScalarsAndArrays, UUIDsEqual } from '@memberjunction/global';
@@ -371,7 +372,8 @@ export class SkipSDK {
371
372
  callingServerURL: baseRequest.callingServerURL,
372
373
  callingServerAPIKey: baseRequest.callingServerAPIKey,
373
374
  callingServerAccessToken: baseRequest.callingServerAccessToken,
374
- externalReferenceID
375
+ externalReferenceID,
376
+ databasePlatform: getDbType()
375
377
  };
376
378
 
377
379
  return request;
package/src/config.ts CHANGED
@@ -185,6 +185,13 @@ const telemetrySchema = z.object({
185
185
  level: z.enum(['minimal', 'standard', 'verbose', 'debug']).optional().default('standard'),
186
186
  });
187
187
 
188
+ const serverExtensionSchema = z.object({
189
+ Enabled: z.boolean().default(true),
190
+ DriverClass: z.string(),
191
+ RootPath: z.string(),
192
+ Settings: z.record(z.unknown()).default({})
193
+ }).passthrough();
194
+
188
195
  const configInfoSchema = z.object({
189
196
  userHandling: userHandlingInfoSchema,
190
197
  databaseSettings: databaseSettingsInfoSchema,
@@ -198,6 +205,7 @@ const configInfoSchema = z.object({
198
205
  telemetry: telemetrySchema.optional().default({}),
199
206
  queryDialects: queryDialectSchema.optional().default({}),
200
207
  multiTenancy: multiTenancySchema.optional().default({}),
208
+ serverExtensions: z.array(serverExtensionSchema).optional().default([]),
201
209
 
202
210
  apiKey: z.string().optional(),
203
211
  baseUrl: z.string().default('http://localhost'),
@@ -243,6 +251,7 @@ export type ScheduledJobsConfig = z.infer<typeof scheduledJobsSchema>;
243
251
  export type TelemetryConfig = z.infer<typeof telemetrySchema>;
244
252
  export type QueryDialectConfig = z.infer<typeof queryDialectSchema>;
245
253
  export type MultiTenancyConfig = z.infer<typeof multiTenancySchema>;
254
+ export type ServerExtensionConfig = z.infer<typeof serverExtensionSchema>;
246
255
  export type ConfigInfo = z.infer<typeof configInfoSchema>;
247
256
 
248
257
  /**