@memberjunction/server 5.12.0 → 5.14.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.
- package/dist/agents/skip-sdk.d.ts +8 -0
- package/dist/agents/skip-sdk.d.ts.map +1 -1
- package/dist/agents/skip-sdk.js +19 -0
- package/dist/agents/skip-sdk.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -89
- package/dist/index.js.map +1 -1
- package/dist/middleware/BaseServerMiddleware.d.ts +103 -0
- package/dist/middleware/BaseServerMiddleware.d.ts.map +1 -0
- package/dist/middleware/BaseServerMiddleware.js +104 -0
- package/dist/middleware/BaseServerMiddleware.js.map +1 -0
- package/dist/middleware/MJTenantFilterMiddleware.d.ts +22 -0
- package/dist/middleware/MJTenantFilterMiddleware.d.ts.map +1 -0
- package/dist/middleware/MJTenantFilterMiddleware.js +41 -0
- package/dist/middleware/MJTenantFilterMiddleware.js.map +1 -0
- package/dist/middleware/index.d.ts +3 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +3 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataResolver.js +2 -1
- package/dist/resolvers/GetDataResolver.js.map +1 -1
- package/dist/resolvers/{CreateQueryResolver.d.ts → QuerySystemUserResolver.d.ts} +26 -82
- package/dist/resolvers/QuerySystemUserResolver.d.ts.map +1 -0
- package/dist/resolvers/{CreateQueryResolver.js → QuerySystemUserResolver.js} +123 -486
- package/dist/resolvers/QuerySystemUserResolver.js.map +1 -0
- package/dist/resolvers/TestQuerySQLResolver.d.ts +54 -0
- package/dist/resolvers/TestQuerySQLResolver.d.ts.map +1 -0
- package/dist/resolvers/TestQuerySQLResolver.js +189 -0
- package/dist/resolvers/TestQuerySQLResolver.js.map +1 -0
- package/package.json +59 -59
- package/src/__tests__/bcsaas-integration.test.ts +1 -1
- package/src/agents/skip-sdk.ts +22 -0
- package/src/index.ts +111 -96
- package/src/middleware/BaseServerMiddleware.ts +141 -0
- package/src/middleware/MJTenantFilterMiddleware.ts +39 -0
- package/src/middleware/index.ts +2 -0
- package/src/resolvers/GetDataResolver.ts +2 -1
- package/src/resolvers/{CreateQueryResolver.ts → QuerySystemUserResolver.ts} +143 -413
- package/src/resolvers/TestQuerySQLResolver.ts +149 -0
- package/dist/hooks.d.ts +0 -65
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js +0 -14
- package/dist/hooks.js.map +0 -1
- package/dist/resolvers/CreateQueryResolver.d.ts.map +0 -1
- package/dist/resolvers/CreateQueryResolver.js.map +0 -1
- package/dist/test-dynamic-plugin.d.ts +0 -6
- package/dist/test-dynamic-plugin.d.ts.map +0 -1
- package/dist/test-dynamic-plugin.js +0 -18
- package/dist/test-dynamic-plugin.js.map +0 -1
- package/src/hooks.ts +0 -77
- package/src/test-dynamic-plugin.ts +0 -36
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for server middleware that intercepts the MJServer request pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Subclasses register via @RegisterClass(BaseServerMiddleware, key) and are
|
|
5
|
+
* discovered by serve() via ClassFactory.GetAllRegistrations().
|
|
6
|
+
*
|
|
7
|
+
* Key-based deduplication: If two middleware classes register with the same key,
|
|
8
|
+
* ClassFactory returns the highest-priority one -- the other is replaced.
|
|
9
|
+
* This is how BCSaaS replaces MJ's built-in tenant filtering.
|
|
10
|
+
*
|
|
11
|
+
* For adding new routes/endpoints (webhooks, bot endpoints), see
|
|
12
|
+
* ServerExtensionsCore and BaseServerExtension (PR #2037).
|
|
13
|
+
* BaseServerMiddleware is for intercepting the existing pipeline, not adding to it.
|
|
14
|
+
*/
|
|
15
|
+
import type { RequestHandler, ErrorRequestHandler, Application } from 'express';
|
|
16
|
+
import type { ApolloServerPlugin } from '@apollo/server';
|
|
17
|
+
import type { GraphQLSchema } from 'graphql';
|
|
18
|
+
import type { RunViewParams, UserInfo, BaseEntity, RunViewResult } from '@memberjunction/core';
|
|
19
|
+
export declare abstract class BaseServerMiddleware {
|
|
20
|
+
/**
|
|
21
|
+
* Human-readable label for logging (e.g., 'mj:tenantFilter', 'bcsaas').
|
|
22
|
+
*/
|
|
23
|
+
abstract get Label(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Whether this middleware is active. Override to check config, env vars, etc.
|
|
26
|
+
* Disabled middleware classes are never instantiated or activated by serve().
|
|
27
|
+
* Default: true.
|
|
28
|
+
*/
|
|
29
|
+
get Enabled(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Optional async initialization (read config, warm caches, etc.).
|
|
32
|
+
* Called by serve() after instantiation, before middleware/hooks are extracted.
|
|
33
|
+
*/
|
|
34
|
+
Initialize(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Express middleware applied BEFORE authentication.
|
|
37
|
+
* Runs after compression but before OAuth/REST/GraphQL routes.
|
|
38
|
+
* Use for: rate limiting, request logging, custom headers.
|
|
39
|
+
*/
|
|
40
|
+
GetPreAuthMiddleware(): RequestHandler[];
|
|
41
|
+
/**
|
|
42
|
+
* Express middleware that runs AFTER authentication has resolved UserInfo.
|
|
43
|
+
* The authenticated user payload is available at req.userPayload.
|
|
44
|
+
* Use for: tenant context resolution, org membership loading.
|
|
45
|
+
*/
|
|
46
|
+
GetPostAuthMiddleware(): RequestHandler[];
|
|
47
|
+
/**
|
|
48
|
+
* Express middleware/error handlers applied AFTER all routes.
|
|
49
|
+
* Use for: catch-all error handlers, response logging.
|
|
50
|
+
*/
|
|
51
|
+
GetPostRouteMiddleware(): (RequestHandler | ErrorRequestHandler)[];
|
|
52
|
+
/**
|
|
53
|
+
* Optional escape hatch for advanced Express app configuration.
|
|
54
|
+
* Called once during server setup with the Express app instance.
|
|
55
|
+
* Use for: trust proxy settings, custom CORS, body parser config.
|
|
56
|
+
* Return undefined to skip (default).
|
|
57
|
+
*/
|
|
58
|
+
ConfigureExpressApp?(app: Application): void | Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Additional Apollo Server plugins merged with built-in plugins.
|
|
61
|
+
* Use for: query tracing, caching, custom error formatting.
|
|
62
|
+
*/
|
|
63
|
+
GetApolloPlugins(): ApolloServerPlugin[];
|
|
64
|
+
/**
|
|
65
|
+
* Schema transformers applied after built-in directive transformers.
|
|
66
|
+
* Use for: custom directives, schema stitching, field-level auth.
|
|
67
|
+
*/
|
|
68
|
+
GetSchemaTransformers(): ((schema: GraphQLSchema) => GraphQLSchema)[];
|
|
69
|
+
/**
|
|
70
|
+
* Additional TypeGraphQL resolver glob paths to include in the Apollo schema.
|
|
71
|
+
* serve() collects these from all active middleware and adds them to the
|
|
72
|
+
* resolvers array passed to buildSchema().
|
|
73
|
+
*
|
|
74
|
+
* Return absolute glob paths (use `path.join(__dirname, ...)` or equivalent).
|
|
75
|
+
*
|
|
76
|
+
* Use for: Open App resolvers, domain-specific GraphQL queries/mutations
|
|
77
|
+
* that live outside MJServer's built-in resolver set.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* GetResolverPaths(): string[] {
|
|
82
|
+
* return [path.join(__dirname, 'resolvers', '*Resolver.{js,ts}')];
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
GetResolverPaths(): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Hook that runs before a RunView operation. Can modify the RunViewParams
|
|
89
|
+
* (e.g., injecting tenant filters) before execution.
|
|
90
|
+
*/
|
|
91
|
+
PreRunView(params: RunViewParams, contextUser: UserInfo | undefined): RunViewParams | Promise<RunViewParams>;
|
|
92
|
+
/**
|
|
93
|
+
* Hook that runs after a RunView operation completes. Can modify the result
|
|
94
|
+
* (e.g., filtering or augmenting data) before it is returned to the caller.
|
|
95
|
+
*/
|
|
96
|
+
PostRunView(params: RunViewParams, results: RunViewResult, contextUser: UserInfo | undefined): RunViewResult | Promise<RunViewResult>;
|
|
97
|
+
/**
|
|
98
|
+
* Hook that runs before a Save operation on a BaseEntity.
|
|
99
|
+
* Return true to allow, false to reject silently, or a string to reject with that error message.
|
|
100
|
+
*/
|
|
101
|
+
PreSave(entity: BaseEntity, contextUser: UserInfo | undefined): boolean | string | Promise<boolean | string>;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=BaseServerMiddleware.d.ts.map
|
|
@@ -0,0 +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;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;;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;;;;;OAKG;IACH,mBAAmB,CAAC,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;;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;;;OAGG;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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for server middleware that intercepts the MJServer request pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Subclasses register via @RegisterClass(BaseServerMiddleware, key) and are
|
|
5
|
+
* discovered by serve() via ClassFactory.GetAllRegistrations().
|
|
6
|
+
*
|
|
7
|
+
* Key-based deduplication: If two middleware classes register with the same key,
|
|
8
|
+
* ClassFactory returns the highest-priority one -- the other is replaced.
|
|
9
|
+
* This is how BCSaaS replaces MJ's built-in tenant filtering.
|
|
10
|
+
*
|
|
11
|
+
* For adding new routes/endpoints (webhooks, bot endpoints), see
|
|
12
|
+
* ServerExtensionsCore and BaseServerExtension (PR #2037).
|
|
13
|
+
* BaseServerMiddleware is for intercepting the existing pipeline, not adding to it.
|
|
14
|
+
*/
|
|
15
|
+
export class BaseServerMiddleware {
|
|
16
|
+
/**
|
|
17
|
+
* Whether this middleware is active. Override to check config, env vars, etc.
|
|
18
|
+
* Disabled middleware classes are never instantiated or activated by serve().
|
|
19
|
+
* Default: true.
|
|
20
|
+
*/
|
|
21
|
+
get Enabled() { return true; }
|
|
22
|
+
// --- Lifecycle ---
|
|
23
|
+
/**
|
|
24
|
+
* Optional async initialization (read config, warm caches, etc.).
|
|
25
|
+
* Called by serve() after instantiation, before middleware/hooks are extracted.
|
|
26
|
+
*/
|
|
27
|
+
async Initialize() { }
|
|
28
|
+
// --- Express Middleware ---
|
|
29
|
+
// Each method corresponds to a named slot in the request pipeline.
|
|
30
|
+
// Override to contribute middleware at that stage.
|
|
31
|
+
// Default implementations return empty arrays (no-op).
|
|
32
|
+
/**
|
|
33
|
+
* Express middleware applied BEFORE authentication.
|
|
34
|
+
* Runs after compression but before OAuth/REST/GraphQL routes.
|
|
35
|
+
* Use for: rate limiting, request logging, custom headers.
|
|
36
|
+
*/
|
|
37
|
+
GetPreAuthMiddleware() { return []; }
|
|
38
|
+
/**
|
|
39
|
+
* Express middleware that runs AFTER authentication has resolved UserInfo.
|
|
40
|
+
* The authenticated user payload is available at req.userPayload.
|
|
41
|
+
* Use for: tenant context resolution, org membership loading.
|
|
42
|
+
*/
|
|
43
|
+
GetPostAuthMiddleware() { return []; }
|
|
44
|
+
/**
|
|
45
|
+
* Express middleware/error handlers applied AFTER all routes.
|
|
46
|
+
* Use for: catch-all error handlers, response logging.
|
|
47
|
+
*/
|
|
48
|
+
GetPostRouteMiddleware() { return []; }
|
|
49
|
+
// --- Apollo / GraphQL Extensions ---
|
|
50
|
+
/**
|
|
51
|
+
* Additional Apollo Server plugins merged with built-in plugins.
|
|
52
|
+
* Use for: query tracing, caching, custom error formatting.
|
|
53
|
+
*/
|
|
54
|
+
GetApolloPlugins() { return []; }
|
|
55
|
+
/**
|
|
56
|
+
* Schema transformers applied after built-in directive transformers.
|
|
57
|
+
* Use for: custom directives, schema stitching, field-level auth.
|
|
58
|
+
*/
|
|
59
|
+
GetSchemaTransformers() { return []; }
|
|
60
|
+
// --- Resolver Discovery ---
|
|
61
|
+
/**
|
|
62
|
+
* Additional TypeGraphQL resolver glob paths to include in the Apollo schema.
|
|
63
|
+
* serve() collects these from all active middleware and adds them to the
|
|
64
|
+
* resolvers array passed to buildSchema().
|
|
65
|
+
*
|
|
66
|
+
* Return absolute glob paths (use `path.join(__dirname, ...)` or equivalent).
|
|
67
|
+
*
|
|
68
|
+
* Use for: Open App resolvers, domain-specific GraphQL queries/mutations
|
|
69
|
+
* that live outside MJServer's built-in resolver set.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* GetResolverPaths(): string[] {
|
|
74
|
+
* return [path.join(__dirname, 'resolvers', '*Resolver.{js,ts}')];
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
GetResolverPaths() { return []; }
|
|
79
|
+
// --- Data Hooks ---
|
|
80
|
+
// Override any of these to intercept data operations.
|
|
81
|
+
// Default implementations are pass-through (no-op).
|
|
82
|
+
/**
|
|
83
|
+
* Hook that runs before a RunView operation. Can modify the RunViewParams
|
|
84
|
+
* (e.g., injecting tenant filters) before execution.
|
|
85
|
+
*/
|
|
86
|
+
PreRunView(params, contextUser) {
|
|
87
|
+
return params;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Hook that runs after a RunView operation completes. Can modify the result
|
|
91
|
+
* (e.g., filtering or augmenting data) before it is returned to the caller.
|
|
92
|
+
*/
|
|
93
|
+
PostRunView(params, results, contextUser) {
|
|
94
|
+
return results;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Hook that runs before a Save operation on a BaseEntity.
|
|
98
|
+
* Return true to allow, false to reject silently, or a string to reject with that error message.
|
|
99
|
+
*/
|
|
100
|
+
PreSave(entity, contextUser) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=BaseServerMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseServerMiddleware.js","sourceRoot":"","sources":["../../src/middleware/BaseServerMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAgB,oBAAoB;IAQtC;;;;OAIG;IACH,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAEvC,oBAAoB;IAEpB;;;OAGG;IACH,KAAK,CAAC,UAAU,KAA2C,CAAC;IAE5D,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;IAYjF,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;;;OAGG;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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MJ's built-in multi-tenancy middleware.
|
|
3
|
+
*
|
|
4
|
+
* Registers with key 'mj:tenantFilter' so that downstream layers (e.g., BCSaaS)
|
|
5
|
+
* can replace it by registering with the same key at higher ClassFactory priority.
|
|
6
|
+
*
|
|
7
|
+
* Conditionally enabled via configInfo.multiTenancy?.enabled.
|
|
8
|
+
*/
|
|
9
|
+
import { BaseServerMiddleware } from './BaseServerMiddleware.js';
|
|
10
|
+
import type { RequestHandler } from 'express';
|
|
11
|
+
import type { RunViewParams, UserInfo, BaseEntity } from '@memberjunction/core';
|
|
12
|
+
export declare class MJTenantFilterMiddleware extends BaseServerMiddleware {
|
|
13
|
+
get Label(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Only active when multiTenancy is enabled in config.
|
|
16
|
+
*/
|
|
17
|
+
get Enabled(): boolean;
|
|
18
|
+
GetPostAuthMiddleware(): RequestHandler[];
|
|
19
|
+
PreRunView(params: RunViewParams, contextUser: UserInfo | undefined): RunViewParams | Promise<RunViewParams>;
|
|
20
|
+
PreSave(entity: BaseEntity, contextUser: UserInfo | undefined): boolean | string | Promise<boolean | string>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MJTenantFilterMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJTenantFilterMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/MJTenantFilterMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhF,qBACa,wBAAyB,SAAQ,oBAAoB;IAC9D,IAAI,KAAK,IAAI,MAAM,CAA8B;IAEjD;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,qBAAqB,IAAI,cAAc,EAAE;IAIzC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAI5G,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;CAG/G"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MJ's built-in multi-tenancy middleware.
|
|
3
|
+
*
|
|
4
|
+
* Registers with key 'mj:tenantFilter' so that downstream layers (e.g., BCSaaS)
|
|
5
|
+
* can replace it by registering with the same key at higher ClassFactory priority.
|
|
6
|
+
*
|
|
7
|
+
* Conditionally enabled via configInfo.multiTenancy?.enabled.
|
|
8
|
+
*/
|
|
9
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
10
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
11
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
12
|
+
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;
|
|
13
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
+
};
|
|
15
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
16
|
+
import { BaseServerMiddleware } from './BaseServerMiddleware.js';
|
|
17
|
+
import { configInfo } from '../config.js';
|
|
18
|
+
import { createTenantMiddleware, createTenantPreRunViewHook, createTenantPreSaveHook } from '../multiTenancy/index.js';
|
|
19
|
+
let MJTenantFilterMiddleware = class MJTenantFilterMiddleware extends BaseServerMiddleware {
|
|
20
|
+
get Label() { return 'mj:tenantFilter'; }
|
|
21
|
+
/**
|
|
22
|
+
* Only active when multiTenancy is enabled in config.
|
|
23
|
+
*/
|
|
24
|
+
get Enabled() {
|
|
25
|
+
return configInfo.multiTenancy?.enabled ?? false;
|
|
26
|
+
}
|
|
27
|
+
GetPostAuthMiddleware() {
|
|
28
|
+
return [createTenantMiddleware(configInfo.multiTenancy)];
|
|
29
|
+
}
|
|
30
|
+
PreRunView(params, contextUser) {
|
|
31
|
+
return createTenantPreRunViewHook(configInfo.multiTenancy)(params, contextUser);
|
|
32
|
+
}
|
|
33
|
+
PreSave(entity, contextUser) {
|
|
34
|
+
return createTenantPreSaveHook(configInfo.multiTenancy)(entity, contextUser);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
MJTenantFilterMiddleware = __decorate([
|
|
38
|
+
RegisterClass(BaseServerMiddleware, 'mj:tenantFilter')
|
|
39
|
+
], MJTenantFilterMiddleware);
|
|
40
|
+
export { MJTenantFilterMiddleware };
|
|
41
|
+
//# sourceMappingURL=MJTenantFilterMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJTenantFilterMiddleware.js","sourceRoot":"","sources":["../../src/middleware/MJTenantFilterMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAKhH,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,oBAAoB;IAC9D,IAAI,KAAK,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAEjD;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC;IACrD,CAAC;IAED,qBAAqB;QACjB,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,YAAa,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,MAAqB,EAAE,WAAiC;QAC/D,OAAO,0BAA0B,CAAC,UAAU,CAAC,YAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,CAAC,MAAkB,EAAE,WAAiC;QACzD,OAAO,uBAAuB,CAAC,UAAU,CAAC,YAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;CACJ,CAAA;AArBY,wBAAwB;IADpC,aAAa,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;GAC1C,wBAAwB,CAqBpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetDataResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/GetDataResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"GetDataResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/GetDataResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,qBACa,gBAAgB;IAEzB,KAAK,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD,qBACa,iBAAiB;IAE1B,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,aAAa,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAEjC;;OAEG;IAEH,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;CAC9B;AAED,qBACa,sBAAsB;IAE/B,OAAO,EAAE,OAAO,CAAC;IAGjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACrC;AAED,qBACa,sBAAsB;IAE/B,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,EAAE,MAAM,CAAC;IAGnB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE,2BAA2B,EAAE,CAAC;CACzC;AAED,qBACa,2BAA2B;IAEpC,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,EAAE,OAAO,CAAC;IAGpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,eAAe;IACxB;;;;OAIG;IAGG,OAAO,CACyB,KAAK,EAAE,gBAAgB,EACtD,OAAO,EAAE,UAAU,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAmGvB,cAAc,CACb,OAAO,EAAE,UAAU,GACvB,OAAO,CAAC,sBAAsB,CAAC;CAkCrC;AAGD,qBAAa,WAAW;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,IAAI,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;CACnB;AACD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC;IACtB,SAAS,EAAE,WAAW,EAAE,CAAC;CAC5B;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA+B,EAAE,gBAAgB,CAAC,EAAE,GAAG,GAAG,kBAAkB,CAezI;AACD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,QAQ9C;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,WAExC;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,WAMzC;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,QAW5D"}
|
|
@@ -11,7 +11,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
13
|
import { Arg, Ctx, Field, InputType, ObjectType, Query } from 'type-graphql';
|
|
14
|
-
import { LogError, LogStatus
|
|
14
|
+
import { LogError, LogStatus } from '@memberjunction/core';
|
|
15
|
+
import { QueryCompositionEngine } from '@memberjunction/generic-database-provider';
|
|
15
16
|
import { RequireSystemUser } from '../directives/RequireSystemUser.js';
|
|
16
17
|
import { v4 as uuidv4 } from 'uuid';
|
|
17
18
|
import { GetReadOnlyDataSource, GetReadOnlyProvider } from '../util.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetDataResolver.js","sourceRoot":"","sources":["../../src/resolvers/GetDataResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAY,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"GetDataResolver.js","sourceRoot":"","sources":["../../src/resolvers/GetDataResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PubSubEngine } from 'type-graphql';
|
|
2
2
|
import { AppContext } from '../types.js';
|
|
3
3
|
import { UserInfo, DatabaseProviderBase } from '@memberjunction/core';
|
|
4
|
-
import { MJQueryResolver } from '../generated/generated.js';
|
|
4
|
+
import { MJQueryResolver, MJQuery_ } from '../generated/generated.js';
|
|
5
5
|
import { DeleteOptionsInput } from '../generic/DeleteOptionsInput.js';
|
|
6
6
|
/**
|
|
7
7
|
* Query status enumeration for GraphQL
|
|
@@ -56,84 +56,18 @@ export declare class UpdateQuerySystemUserInput {
|
|
|
56
56
|
CacheMaxSize?: number;
|
|
57
57
|
Permissions?: QueryPermissionInputType[];
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
SourceEntity?: string;
|
|
69
|
-
SourceFieldName?: string;
|
|
70
|
-
IsComputed: boolean;
|
|
71
|
-
ComputationDescription?: string;
|
|
72
|
-
IsSummary?: boolean;
|
|
73
|
-
SummaryDescription?: string;
|
|
74
|
-
}
|
|
75
|
-
export declare class QueryParameterType {
|
|
76
|
-
ID: string;
|
|
77
|
-
QueryID: string;
|
|
78
|
-
Name: string;
|
|
79
|
-
Description?: string;
|
|
80
|
-
Type: string;
|
|
81
|
-
IsRequired: boolean;
|
|
82
|
-
DefaultValue?: string;
|
|
83
|
-
SampleValue?: string;
|
|
84
|
-
ValidationFilters?: string;
|
|
85
|
-
}
|
|
86
|
-
export declare class MJQueryEntityType {
|
|
87
|
-
ID: string;
|
|
88
|
-
QueryID: string;
|
|
89
|
-
EntityID: string;
|
|
90
|
-
Entity?: string;
|
|
91
|
-
}
|
|
92
|
-
export declare class QueryPermissionType {
|
|
93
|
-
ID: string;
|
|
94
|
-
QueryID: string;
|
|
95
|
-
RoleID: string;
|
|
96
|
-
Role?: string;
|
|
97
|
-
}
|
|
98
|
-
export declare class CreateQueryResultType {
|
|
99
|
-
Success: boolean;
|
|
100
|
-
ErrorMessage?: string;
|
|
101
|
-
ID?: string;
|
|
102
|
-
Name?: string;
|
|
103
|
-
Description?: string;
|
|
104
|
-
CategoryID?: string;
|
|
105
|
-
Category?: string;
|
|
106
|
-
SQL?: string;
|
|
107
|
-
Status?: string;
|
|
108
|
-
QualityRank?: number;
|
|
109
|
-
EmbeddingVector?: string;
|
|
110
|
-
EmbeddingModelID?: string;
|
|
111
|
-
EmbeddingModelName?: string;
|
|
112
|
-
TechnicalDescription?: string;
|
|
113
|
-
Fields?: QueryFieldType[];
|
|
114
|
-
Parameters?: QueryParameterType[];
|
|
115
|
-
Entities?: MJQueryEntityType[];
|
|
116
|
-
Permissions?: QueryPermissionType[];
|
|
117
|
-
}
|
|
118
|
-
export declare class UpdateQueryResultType {
|
|
59
|
+
/**
|
|
60
|
+
* Consolidated result type for Create and Update query mutations.
|
|
61
|
+
* Composes the CodeGen-generated MJQuery_ type so that new entity fields
|
|
62
|
+
* are automatically available in the GraphQL schema without manual sync.
|
|
63
|
+
*
|
|
64
|
+
* On success, Query contains the full query data (scalars + related entities).
|
|
65
|
+
* On failure, Query is null and ErrorMessage describes the problem.
|
|
66
|
+
*/
|
|
67
|
+
export declare class QueryMutationResultType {
|
|
119
68
|
Success: boolean;
|
|
120
69
|
ErrorMessage?: string;
|
|
121
|
-
|
|
122
|
-
Name?: string;
|
|
123
|
-
Description?: string;
|
|
124
|
-
CategoryID?: string;
|
|
125
|
-
Category?: string;
|
|
126
|
-
SQL?: string;
|
|
127
|
-
Status?: string;
|
|
128
|
-
QualityRank?: number;
|
|
129
|
-
EmbeddingVector?: string;
|
|
130
|
-
EmbeddingModelID?: string;
|
|
131
|
-
EmbeddingModelName?: string;
|
|
132
|
-
TechnicalDescription?: string;
|
|
133
|
-
Fields?: QueryFieldType[];
|
|
134
|
-
Parameters?: QueryParameterType[];
|
|
135
|
-
Entities?: MJQueryEntityType[];
|
|
136
|
-
Permissions?: QueryPermissionType[];
|
|
70
|
+
Query?: MJQuery_;
|
|
137
71
|
}
|
|
138
72
|
export declare class DeleteQueryResultType {
|
|
139
73
|
Success: boolean;
|
|
@@ -152,15 +86,25 @@ export declare class MJQueryResolverExtended extends MJQueryResolver {
|
|
|
152
86
|
* @param context - Application context containing user information
|
|
153
87
|
* @returns CreateQueryResultType with success status and query data
|
|
154
88
|
*/
|
|
155
|
-
CreateQuerySystemUser(input: CreateQuerySystemUserInput, context: AppContext, pubSub: PubSubEngine): Promise<
|
|
156
|
-
|
|
89
|
+
CreateQuerySystemUser(input: CreateQuerySystemUserInput, context: AppContext, pubSub: PubSubEngine): Promise<QueryMutationResultType>;
|
|
90
|
+
/**
|
|
91
|
+
* Maps an MJQueryEntityServer (with loaded related metadata) to a QueryMutationResultType.
|
|
92
|
+
* Uses entity.GetAll() for scalar fields so that new CodeGen-generated fields are included
|
|
93
|
+
* automatically without manual updates. Related entity arrays are mapped explicitly.
|
|
94
|
+
*/
|
|
95
|
+
private buildSuccessResult;
|
|
96
|
+
private mapFields;
|
|
97
|
+
private mapParameters;
|
|
98
|
+
private mapEntities;
|
|
99
|
+
private mapPermissions;
|
|
100
|
+
protected createPermissions(p: DatabaseProviderBase, permissions: QueryPermissionInputType[], queryID: string, contextUser: UserInfo): Promise<void>;
|
|
157
101
|
/**
|
|
158
102
|
* Updates an existing query with the provided attributes. This mutation is restricted to system users only.
|
|
159
103
|
* @param input - UpdateQuerySystemUserInput containing the query ID and fields to update
|
|
160
104
|
* @param context - Application context containing user information
|
|
161
105
|
* @returns UpdateQueryResultType with success status and updated query data including related entities
|
|
162
106
|
*/
|
|
163
|
-
UpdateQuerySystemUser(input: UpdateQuerySystemUserInput, context: AppContext, pubSub: PubSubEngine): Promise<
|
|
107
|
+
UpdateQuerySystemUser(input: UpdateQuerySystemUserInput, context: AppContext, pubSub: PubSubEngine): Promise<QueryMutationResultType>;
|
|
164
108
|
/**
|
|
165
109
|
* Deletes a query by ID. This mutation is restricted to system users only.
|
|
166
110
|
* @param ID - The ID of the query to delete
|
|
@@ -185,7 +129,7 @@ export declare class MJQueryResolverExtended extends MJQueryResolver {
|
|
|
185
129
|
* @param queryName - Name of the query to find
|
|
186
130
|
* @param categoryID - Category ID (can be null)
|
|
187
131
|
* @param contextUser - User context for database operations
|
|
188
|
-
* @returns The matching query
|
|
132
|
+
* @returns The matching query row or null if not found
|
|
189
133
|
*/
|
|
190
134
|
private findExistingQuery;
|
|
191
135
|
/**
|
|
@@ -198,4 +142,4 @@ export declare class MJQueryResolverExtended extends MJQueryResolver {
|
|
|
198
142
|
*/
|
|
199
143
|
private findCategoryByNameAndParent;
|
|
200
144
|
}
|
|
201
|
-
//# sourceMappingURL=
|
|
145
|
+
//# sourceMappingURL=QuerySystemUserResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuerySystemUserResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/QuerySystemUserResolver.ts"],"names":[],"mappings":"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"}
|