@forestadmin/agent-bff 1.19.0 → 1.20.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/cli-core.js +9 -7
- package/dist/context/build-context.d.ts +49 -0
- package/dist/context/build-context.js +85 -0
- package/dist/context/context-routes-middleware.d.ts +8 -0
- package/dist/context/context-routes-middleware.js +21 -0
- package/dist/http/agent-route-helpers.d.ts +2 -0
- package/dist/http/agent-route-helpers.js +10 -3
- package/dist/openapi/openapi-document.js +24 -5
- package/dist/openapi/schemas.d.ts +46 -0
- package/dist/openapi/schemas.js +92 -2
- package/dist/read-model/capabilities-cache.d.ts +1 -0
- package/dist/read-model/capabilities-cache.js +1 -1
- package/dist/read-model/read-model-store.d.ts +7 -0
- package/dist/read-model/read-model-store.js +8 -4
- package/dist/read-model/read-model.d.ts +2 -1
- package/dist/read-model/read-model.js +8 -1
- package/package.json +3 -3
package/dist/cli-core.js
CHANGED
|
@@ -49,6 +49,7 @@ const api_key_middleware_1 = __importDefault(require("./api-key/api-key-middlewa
|
|
|
49
49
|
const resolve_cache_1 = __importDefault(require("./api-key/resolve-cache"));
|
|
50
50
|
const auth_mode_middleware_1 = __importDefault(require("./auth/auth-mode-middleware"));
|
|
51
51
|
const env_config_1 = require("./config/env-config");
|
|
52
|
+
const context_routes_middleware_1 = __importDefault(require("./context/context-routes-middleware"));
|
|
52
53
|
const cors_middleware_1 = __importDefault(require("./cors/cors-middleware"));
|
|
53
54
|
const per_key_origin_1 = __importDefault(require("./cors/per-key-origin"));
|
|
54
55
|
const data_routes_middleware_1 = __importDefault(require("./data/data-routes-middleware"));
|
|
@@ -106,7 +107,7 @@ async function buildOAuthMiddlewares(config, logger) {
|
|
|
106
107
|
const oauthConfig = resolveOAuthConfig(config);
|
|
107
108
|
if (!oauthConfig) {
|
|
108
109
|
logger('Warn', 'OAuth routes disabled: required configuration is missing');
|
|
109
|
-
return [];
|
|
110
|
+
return { middlewares: [] };
|
|
110
111
|
}
|
|
111
112
|
const { forestServerUrl, forestEnvSecret, forestAppUrl, forestAuthSecret, tokenEncryptionKey } = oauthConfig;
|
|
112
113
|
const serverClient = new forest_server_client_1.default({ forestServerUrl, envSecret: forestEnvSecret });
|
|
@@ -124,7 +125,7 @@ async function buildOAuthMiddlewares(config, logger) {
|
|
|
124
125
|
environmentId,
|
|
125
126
|
logger,
|
|
126
127
|
});
|
|
127
|
-
return [oauthRoutes];
|
|
128
|
+
return { middlewares: [oauthRoutes], environmentId };
|
|
128
129
|
}
|
|
129
130
|
function resolveApiKeyConfig(config) {
|
|
130
131
|
const { forestServerUrl, forestEnvSecret, forestAuthSecret } = config;
|
|
@@ -221,7 +222,7 @@ function buildAgentRouteMiddlewares(bundle, config, logger) {
|
|
|
221
222
|
(0, action_routes_middleware_1.default)({ store, agentUrl, timeoutMs, logger }),
|
|
222
223
|
];
|
|
223
224
|
}
|
|
224
|
-
function buildAgentMiddlewares(config, logger) {
|
|
225
|
+
function buildAgentMiddlewares(config, logger, environmentId) {
|
|
225
226
|
const { forestAuthSecret, defaultTimezone } = config;
|
|
226
227
|
if (!forestAuthSecret) {
|
|
227
228
|
logger('Warn', 'Agent edge disabled: FOREST_AUTH_SECRET is missing');
|
|
@@ -237,6 +238,7 @@ function buildAgentMiddlewares(config, logger) {
|
|
|
237
238
|
apiKeyStep,
|
|
238
239
|
(0, per_key_origin_1.default)(),
|
|
239
240
|
(0, openapi_routes_1.default)({ version: version_1.default, enabled: config.openapiEnabled, source }),
|
|
241
|
+
...(bundle ? [(0, context_routes_middleware_1.default)({ store: bundle.store, environmentId })] : []),
|
|
240
242
|
(0, timezone_middleware_1.default)({ defaultTimezone }),
|
|
241
243
|
...buildAgentRouteMiddlewares(bundle, config, logger),
|
|
242
244
|
];
|
|
@@ -249,14 +251,14 @@ async function runCli(env, logger = (0, console_logger_1.default)()) {
|
|
|
249
251
|
entries: config.invalidAllowedOrigins,
|
|
250
252
|
});
|
|
251
253
|
}
|
|
252
|
-
const
|
|
253
|
-
const agentMiddlewares = buildAgentMiddlewares(config, logger);
|
|
254
|
+
const oauth = await buildOAuthMiddlewares(config, logger);
|
|
255
|
+
const agentMiddlewares = buildAgentMiddlewares(config, logger, oauth.environmentId);
|
|
254
256
|
const agentErrorMiddleware = agentMiddlewares.length > 0 ? [agentScoped((0, error_middleware_1.default)({ logger }))] : [];
|
|
255
257
|
const middlewares = [
|
|
256
258
|
(0, cors_middleware_1.default)({ allowedOrigins: config.allowedOrigins }),
|
|
257
259
|
...agentErrorMiddleware,
|
|
258
260
|
(0, bodyparser_1.bodyParser)({ jsonLimit: body_limit_1.default }),
|
|
259
|
-
...
|
|
261
|
+
...oauth.middlewares,
|
|
260
262
|
// Outside the agent-scoped chain on purpose: the viewer is a public page, the document it fetches
|
|
261
263
|
// is not. Gated on the edge being mounted too, like the error middleware above: with no agent
|
|
262
264
|
// chain there is no document to fetch, and the page would only ever reach a bare Koa 404.
|
|
@@ -281,4 +283,4 @@ function reportFatalError(err) {
|
|
|
281
283
|
process.stderr.write(`Error: ${(0, errors_1.extractErrorMessage)(err)}\n`);
|
|
282
284
|
process.exitCode = 1;
|
|
283
285
|
}
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxT0Esa0RBRUM7QUEyRUQseUJBMENDO0FBRUQsNENBR0M7QUExVkQsZ0RBQTZDO0FBRTdDLGlHQUE2RTtBQUM3RSwrRUFBNEQ7QUFDNUQsb0VBQTJEO0FBQzNELDRGQUF3RTtBQUN4RSw4RUFBb0Q7QUFDcEQsc0ZBQWtFO0FBQ2xFLDRFQUF5RDtBQUN6RCx1RkFBbUU7QUFDbkUsb0RBQWtEO0FBQ2xELG9HQUFnRjtBQUNoRiw2RUFBMEQ7QUFDMUQsMkVBQWlFO0FBQ2pFLDJGQUF1RTtBQUN2RSxxRUFBa0Q7QUFDbEQscUNBQStDO0FBQy9DLDBEQUFxRDtBQUNyRCw2RUFBbUQ7QUFDbkQsbUVBQTJDO0FBQzNDLCtFQUE0RDtBQUM1RCx3RkFBOEQ7QUFDOUQsd0VBQXFEO0FBQ3JELDBFQUErRDtBQUMvRCx3RUFBcUQ7QUFDckQsMkVBQTZFO0FBQzdFLHdGQUErRDtBQUMvRCwwRkFBaUU7QUFDakUsZ0hBQTRGO0FBQzVGLHVGQUE2RDtBQUM3RCx5RkFBc0U7QUFDdEUsd0RBQWdDO0FBRWhDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFekMsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsVUFBc0I7SUFDekMsT0FBTyxLQUFLLFVBQVUsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUViLE9B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
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { FieldType } from '../read-model/capabilities-cache';
|
|
2
|
+
import type ReadModel from '../read-model/read-model';
|
|
3
|
+
import type { RelationshipType } from '../read-model/read-model';
|
|
4
|
+
import type { ForestSchemaAction, ForestSchemaCollection } from '@forestadmin/forestadmin-client';
|
|
5
|
+
export interface ContextActionField {
|
|
6
|
+
field: string;
|
|
7
|
+
type: FieldType;
|
|
8
|
+
isRequired?: boolean;
|
|
9
|
+
defaultValue?: unknown;
|
|
10
|
+
enums?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface ContextAction {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
type: ForestSchemaAction['type'];
|
|
16
|
+
fields: ContextActionField[];
|
|
17
|
+
}
|
|
18
|
+
export interface ContextValidation {
|
|
19
|
+
type: string;
|
|
20
|
+
value?: unknown;
|
|
21
|
+
}
|
|
22
|
+
export interface ContextField {
|
|
23
|
+
field: string;
|
|
24
|
+
type: FieldType;
|
|
25
|
+
relationship?: RelationshipType;
|
|
26
|
+
reference?: string;
|
|
27
|
+
inverseOf?: string;
|
|
28
|
+
polymorphicTargets?: string[];
|
|
29
|
+
isPrimaryKey?: boolean;
|
|
30
|
+
isRequired?: boolean;
|
|
31
|
+
isReadOnly?: boolean;
|
|
32
|
+
enums?: string[];
|
|
33
|
+
validations?: ContextValidation[];
|
|
34
|
+
}
|
|
35
|
+
export interface ContextCollection {
|
|
36
|
+
name: string;
|
|
37
|
+
fields: ContextField[];
|
|
38
|
+
actions: ContextAction[];
|
|
39
|
+
}
|
|
40
|
+
export interface ContextMeta {
|
|
41
|
+
schemaRevision: number;
|
|
42
|
+
environmentId?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface AgentContext {
|
|
45
|
+
collections: ContextCollection[];
|
|
46
|
+
meta: ContextMeta;
|
|
47
|
+
}
|
|
48
|
+
export default function buildContext(collections: ForestSchemaCollection[], readModel: ReadModel, meta: ContextMeta): AgentContext;
|
|
49
|
+
//# sourceMappingURL=build-context.d.ts.map
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = buildContext;
|
|
4
|
+
function toArray(value) {
|
|
5
|
+
return Array.isArray(value) ? value : [];
|
|
6
|
+
}
|
|
7
|
+
function toContextValidations(validations) {
|
|
8
|
+
return toArray(validations)
|
|
9
|
+
.filter((entry) => typeof entry === 'object' &&
|
|
10
|
+
entry !== null &&
|
|
11
|
+
typeof entry.type === 'string')
|
|
12
|
+
.map(entry => 'value' in entry ? { type: entry.type, value: entry.value } : { type: entry.type });
|
|
13
|
+
}
|
|
14
|
+
function toContextField(field) {
|
|
15
|
+
const serialized = { field: field.field, type: field.type };
|
|
16
|
+
if (field.relationship)
|
|
17
|
+
serialized.relationship = field.relationship;
|
|
18
|
+
if (field.reference)
|
|
19
|
+
serialized.reference = field.reference;
|
|
20
|
+
if (field.inverseOf)
|
|
21
|
+
serialized.inverseOf = field.inverseOf;
|
|
22
|
+
const polymorphicTargets = toArray(field.polymorphicReferencedModels);
|
|
23
|
+
if (polymorphicTargets.length > 0)
|
|
24
|
+
serialized.polymorphicTargets = [...polymorphicTargets];
|
|
25
|
+
if (field.isPrimaryKey)
|
|
26
|
+
serialized.isPrimaryKey = true;
|
|
27
|
+
if (field.isRequired)
|
|
28
|
+
serialized.isRequired = true;
|
|
29
|
+
if (field.isReadOnly)
|
|
30
|
+
serialized.isReadOnly = true;
|
|
31
|
+
if (Array.isArray(field.enums))
|
|
32
|
+
serialized.enums = [...field.enums];
|
|
33
|
+
const validations = toContextValidations(field.validations);
|
|
34
|
+
if (validations.length > 0)
|
|
35
|
+
serialized.validations = validations;
|
|
36
|
+
return serialized;
|
|
37
|
+
}
|
|
38
|
+
function toContextActionField(field) {
|
|
39
|
+
const serialized = { field: field.field, type: field.type };
|
|
40
|
+
if (field.isRequired !== undefined)
|
|
41
|
+
serialized.isRequired = field.isRequired;
|
|
42
|
+
if (field.defaultValue !== undefined)
|
|
43
|
+
serialized.defaultValue = field.defaultValue;
|
|
44
|
+
if (Array.isArray(field.enums))
|
|
45
|
+
serialized.enums = [...field.enums];
|
|
46
|
+
return serialized;
|
|
47
|
+
}
|
|
48
|
+
function toContextAction(action) {
|
|
49
|
+
return {
|
|
50
|
+
id: action.id,
|
|
51
|
+
name: action.name,
|
|
52
|
+
type: action.type,
|
|
53
|
+
fields: toArray(action.fields)
|
|
54
|
+
.filter(field => typeof field === 'object' && field !== null)
|
|
55
|
+
.map(toContextActionField),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function toContextCollection(collection, readModel) {
|
|
59
|
+
const allowedActions = readModel.getActionEndpoints()[collection.name] ?? {};
|
|
60
|
+
return {
|
|
61
|
+
name: collection.name,
|
|
62
|
+
fields: toArray(collection.fields)
|
|
63
|
+
.filter(field => typeof field === 'object' && field !== null)
|
|
64
|
+
.map(toContextField),
|
|
65
|
+
actions: toArray(collection.actions)
|
|
66
|
+
.filter(action => {
|
|
67
|
+
const allowed = allowedActions[action?.name];
|
|
68
|
+
return allowed !== undefined && allowed.id === action.id;
|
|
69
|
+
})
|
|
70
|
+
.map(toContextAction),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function toContextMeta({ schemaRevision, environmentId }) {
|
|
74
|
+
const meta = { schemaRevision };
|
|
75
|
+
if (environmentId !== undefined)
|
|
76
|
+
meta.environmentId = environmentId;
|
|
77
|
+
return meta;
|
|
78
|
+
}
|
|
79
|
+
function buildContext(collections, readModel, meta) {
|
|
80
|
+
return {
|
|
81
|
+
collections: collections.map(collection => toContextCollection(collection, readModel)),
|
|
82
|
+
meta: toContextMeta(meta),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2J1aWxkLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzSkEsK0JBU0M7QUFwR0QsU0FBUyxPQUFPLENBQUksS0FBNkI7SUFDL0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBSUQsU0FBUyxvQkFBb0IsQ0FBQyxXQUF5QztJQUNyRSxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDeEIsTUFBTSxDQUNMLENBQUMsS0FBSyxFQUE4QyxFQUFFLENBQ3BELE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxPQUFRLEtBQTRCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDekQ7U0FDQSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDWCxPQUFPLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FDbkYsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUF5QjtJQUMvQyxNQUFNLFVBQVUsR0FBaUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTFFLElBQUksS0FBSyxDQUFDLFlBQVk7UUFBRSxVQUFVLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDckUsSUFBSSxLQUFLLENBQUMsU0FBUztRQUFFLFVBQVUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUM1RCxJQUFJLEtBQUssQ0FBQyxTQUFTO1FBQUUsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBRTVELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3RFLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxVQUFVLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUM7SUFFM0YsSUFBSSxLQUFLLENBQUMsWUFBWTtRQUFFLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3ZELElBQUksS0FBSyxDQUFDLFVBQVU7UUFBRSxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNuRCxJQUFJLEtBQUssQ0FBQyxVQUFVO1FBQUUsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFFbkQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFBRSxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFcEUsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFFakUsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsS0FBMkM7SUFDdkUsTUFBTSxVQUFVLEdBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVoRixJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUztRQUFFLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUM3RSxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUztRQUFFLFVBQVUsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztJQUNuRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUFFLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwRSxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsTUFBMEI7SUFDakQsT0FBTztRQUNMLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtRQUNiLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO2FBQzVELEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLFVBQWtDLEVBQ2xDLFNBQW9CO0lBRXBCLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFN0UsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDL0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7YUFDNUQsR0FBRyxDQUFDLGNBQWMsQ0FBQztRQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUU3QyxPQUFPLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzNELENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxlQUFlLENBQUM7S0FDeEIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWU7SUFDbkUsTUFBTSxJQUFJLEdBQWdCLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFFN0MsSUFBSSxhQUFhLEtBQUssU0FBUztRQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBRXBFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQXdCLFlBQVksQ0FDbEMsV0FBcUMsRUFDckMsU0FBb0IsRUFDcEIsSUFBaUI7SUFFakIsT0FBTztRQUNMLFdBQVcsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDO0tBQzFCLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type ReadModelStore from '../read-model/read-model-store';
|
|
2
|
+
import type { Middleware } from 'koa';
|
|
3
|
+
export interface ContextRoutesMiddlewareOptions {
|
|
4
|
+
store: ReadModelStore;
|
|
5
|
+
environmentId?: number;
|
|
6
|
+
}
|
|
7
|
+
export default function createContextRoutesMiddleware({ store, environmentId, }: ContextRoutesMiddlewareOptions): Middleware;
|
|
8
|
+
//# sourceMappingURL=context-routes-middleware.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = createContextRoutesMiddleware;
|
|
7
|
+
const build_context_1 = __importDefault(require("./build-context"));
|
|
8
|
+
const agent_route_helpers_1 = require("../http/agent-route-helpers");
|
|
9
|
+
const CONTEXT_ROUTE = '/agent/v1/context';
|
|
10
|
+
function createContextRoutesMiddleware({ store, environmentId, }) {
|
|
11
|
+
return async function contextRoutesMiddleware(ctx, next) {
|
|
12
|
+
if (ctx.path !== CONTEXT_ROUTE || ctx.method !== 'GET') {
|
|
13
|
+
await next();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const { collections, readModel, revision } = await (0, agent_route_helpers_1.resolveSchemaSnapshot)(store);
|
|
17
|
+
ctx.status = 200;
|
|
18
|
+
ctx.body = (0, build_context_1.default)(collections, readModel, { schemaRevision: revision, environmentId });
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1yb3V0ZXMtbWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2NvbnRleHQtcm91dGVzLW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFhQSxnREFnQkM7QUExQkQsb0VBQTJDO0FBQzNDLHFFQUFvRTtBQUVwRSxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQztBQU8xQyxTQUF3Qiw2QkFBNkIsQ0FBQyxFQUNwRCxLQUFLLEVBQ0wsYUFBYSxHQUNrQjtJQUMvQixPQUFPLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsSUFBSTtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUViLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFBLDJDQUFxQixFQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhGLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBQSx1QkFBWSxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { Logger } from '../ports/logger-port';
|
|
2
2
|
import type ReadModel from '../read-model/read-model';
|
|
3
3
|
import type ReadModelStore from '../read-model/read-model-store';
|
|
4
|
+
import type { SchemaSnapshot } from '../read-model/read-model-store';
|
|
4
5
|
import type { Context } from 'koa';
|
|
5
6
|
export declare function decodeSegment(raw: string, label: string): string;
|
|
7
|
+
export declare function resolveSchemaSnapshot(store: ReadModelStore): Promise<SchemaSnapshot>;
|
|
6
8
|
export declare function resolveReadModel(store: ReadModelStore): Promise<ReadModel>;
|
|
7
9
|
export declare function requireAgentToken(ctx: Context): string;
|
|
8
10
|
export declare function callAgent<T>(fn: () => Promise<T>, logger: Logger): Promise<T>;
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.decodeSegment = decodeSegment;
|
|
7
|
+
exports.resolveSchemaSnapshot = resolveSchemaSnapshot;
|
|
7
8
|
exports.resolveReadModel = resolveReadModel;
|
|
8
9
|
exports.requireAgentToken = requireAgentToken;
|
|
9
10
|
exports.callAgent = callAgent;
|
|
@@ -19,9 +20,9 @@ function decodeSegment(raw, label) {
|
|
|
19
20
|
throw (0, bff_local_errors_1.invalidRequest)(`Malformed ${label} in path`);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
async function
|
|
23
|
+
async function mapSchemaFailure(read) {
|
|
23
24
|
try {
|
|
24
|
-
return await
|
|
25
|
+
return await read();
|
|
25
26
|
}
|
|
26
27
|
catch (error) {
|
|
27
28
|
if (error instanceof errors_1.default)
|
|
@@ -29,6 +30,12 @@ async function resolveReadModel(store) {
|
|
|
29
30
|
throw error;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
33
|
+
async function resolveSchemaSnapshot(store) {
|
|
34
|
+
return mapSchemaFailure(() => store.getSchemaSnapshot());
|
|
35
|
+
}
|
|
36
|
+
async function resolveReadModel(store) {
|
|
37
|
+
return mapSchemaFailure(() => store.getReadModel());
|
|
38
|
+
}
|
|
32
39
|
function requireAgentToken(ctx) {
|
|
33
40
|
const token = ctx.state.agentToken;
|
|
34
41
|
if (!token)
|
|
@@ -45,4 +52,4 @@ async function callAgent(fn, logger) {
|
|
|
45
52
|
throw (0, agent_error_mapper_1.mapAgentError)(error, { logger });
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtcm91dGUtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odHRwL2FnZW50LXJvdXRlLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFXQSxzQ0FNQztBQVdELHNEQUVDO0FBRUQsNENBRUM7QUFFRCw4Q0FLQztBQUlELDhCQU1DO0FBN0NELDZEQUFxRDtBQUNyRCxxREFBZ0Q7QUFDaEQseURBQXVFO0FBQ3ZFLGtFQUEwRDtBQUUxRCxTQUFnQixhQUFhLENBQUMsR0FBVyxFQUFFLEtBQWE7SUFDdEQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsTUFBTSxJQUFBLGlDQUFjLEVBQUMsYUFBYSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGdCQUFnQixDQUFJLElBQXNCO0lBQ3ZELElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLGdCQUFzQjtZQUFFLE1BQU0sSUFBQSxvQ0FBaUIsR0FBRSxDQUFDO1FBQ3ZFLE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUscUJBQXFCLENBQUMsS0FBcUI7SUFDL0QsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsS0FBcUI7SUFDMUQsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsR0FBWTtJQUM1QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQWdDLENBQUM7SUFDekQsSUFBSSxDQUFDLEtBQUs7UUFBRSxNQUFNLElBQUEsNkJBQVksRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRXhFLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELG1HQUFtRztBQUNuRyw2REFBNkQ7QUFDdEQsS0FBSyxVQUFVLFNBQVMsQ0FBSSxFQUFvQixFQUFFLE1BQWM7SUFDckUsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFBLGtDQUFhLEVBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -26,7 +26,7 @@ const ERROR_STATUSES = {
|
|
|
26
26
|
415: 'The request declares a character set the server cannot decode. Other content types are NOT rejected: a form-urlencoded body is parsed and validated like JSON (its values arrive as strings, so typed fields such as page.limit fail with 400), while any other non-JSON content type is read as an absent body, silently dropping filters and pagination',
|
|
27
27
|
422: 'A field is unknown, not filterable, or is a nested relation path',
|
|
28
28
|
429: 'The agent rate-limited the request',
|
|
29
|
-
500: 'The agent payload could not be mapped to the BFF contract',
|
|
29
|
+
500: 'The agent payload could not be mapped to the BFF contract, or the BFF hit an unexpected error',
|
|
30
30
|
501: 'The BFF is running without an agent configured, so the proxy is not implemented',
|
|
31
31
|
502: 'The agent could not be reached',
|
|
32
32
|
503: 'The agent schema is unavailable, the agent returned a 5xx, or the API key could not be resolved',
|
|
@@ -203,9 +203,8 @@ function generateOpenApiDocument(version, unfolding) {
|
|
|
203
203
|
registry.registerComponent('securitySchemes', SESSION_SCHEME, {
|
|
204
204
|
type: 'http',
|
|
205
205
|
scheme: 'bearer',
|
|
206
|
-
description: 'Mode 1: the BFF session token issued after the OAuth login.
|
|
207
|
-
'
|
|
208
|
-
'OAuth principal, so no operation lists it yet. Use the API key today.',
|
|
206
|
+
description: 'Mode 1: the BFF session token issued after the OAuth login. Accepted on the context ' +
|
|
207
|
+
'contract; the data and action routes advertise the API key only.',
|
|
209
208
|
});
|
|
210
209
|
registry.registerComponent('securitySchemes', API_KEY_SCHEME, {
|
|
211
210
|
type: 'apiKey',
|
|
@@ -213,6 +212,26 @@ function generateOpenApiDocument(version, unfolding) {
|
|
|
213
212
|
name: 'X-Forest-Bff-Key',
|
|
214
213
|
description: 'Mode 2: a BFF API key. Never send both this and an Authorization header.',
|
|
215
214
|
});
|
|
215
|
+
registry.registerPath({
|
|
216
|
+
method: 'get',
|
|
217
|
+
path: `${exports.ROUTE_PREFIX}/context`,
|
|
218
|
+
operationId: 'getContext',
|
|
219
|
+
summary: 'Read the exposed schema contract',
|
|
220
|
+
security: [{ [SESSION_SCHEME]: [] }, { [API_KEY_SCHEME]: [] }],
|
|
221
|
+
request: {},
|
|
222
|
+
responses: {
|
|
223
|
+
200: {
|
|
224
|
+
description: 'The exposed schema: collections, typed fields, relations and actions',
|
|
225
|
+
content: { 'application/json': { schema: schemas_1.ContextResponseSchema } },
|
|
226
|
+
},
|
|
227
|
+
400: errorRefs.byStatus['400'],
|
|
228
|
+
401: errorRefs.byStatus['401'],
|
|
229
|
+
403: errorRefs.byStatus['403'],
|
|
230
|
+
500: errorRefs.byStatus['500'],
|
|
231
|
+
501: errorRefs.byStatus['501'],
|
|
232
|
+
503: errorRefs.byStatus['503'],
|
|
233
|
+
},
|
|
234
|
+
});
|
|
216
235
|
if (unfolding) {
|
|
217
236
|
(0, unfolded_paths_1.default)({
|
|
218
237
|
registry,
|
|
@@ -270,4 +289,4 @@ function generateOpenApiDocument(version, unfolding) {
|
|
|
270
289
|
function serializeOpenApi(document) {
|
|
271
290
|
return JSON.stringify(document, null, 2);
|
|
272
291
|
}
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS1kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL29wZW5hcGktZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBMlFBLDBEQW1GQztBQUVELDRDQUVDO0FBL1ZELG1FQUFzRjtBQUV0RixzRUFBNkM7QUFDN0MsdUNBVW1CO0FBQ25CLHNFQUFxRDtBQUNyRCwrQ0FBa0M7QUFDbEMsb0VBQTRDO0FBRS9CLFFBQUEsZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUMxQixRQUFBLFlBQVksR0FBRyxXQUFXLENBQUM7QUFFeEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUVuQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRTVDLE1BQU0sY0FBYyxHQUEyQjtJQUM3QyxHQUFHLEVBQUUseVFBQXlRO0lBQzlRLEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0MsR0FBRyxFQUFFLDBPQUEwTztJQUMvTyxHQUFHLEVBQUUseUNBQXlDO0lBQzlDLEdBQUcsRUFBRSw2Q0FBNkMsb0JBQVUsRUFBRTtJQUM5RCxHQUFHLEVBQUUsMlZBQTJWO0lBQ2hXLEdBQUcsRUFBRSxrRUFBa0U7SUFDdkUsR0FBRyxFQUFFLG9DQUFvQztJQUN6QyxHQUFHLEVBQUUsMkRBQTJEO0lBQ2hFLEdBQUcsRUFBRSxpRkFBaUY7SUFDdEYsR0FBRyxFQUFFLGdDQUFnQztJQUNyQyxHQUFHLEVBQUUsaUdBQWlHO0NBQ3ZHLENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUNsQyw2RkFBNkY7SUFDN0YsaUVBQWlFLENBQUM7QUFFcEUsTUFBTSxrQkFBa0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUNoRSxNQUFNLDhCQUE4QixHQUFHLCtDQUErQyxDQUFDO0FBRXZGLE1BQU0sbUNBQW1DLEdBQUcseUJBQXlCLENBQUM7QUFFdEUsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixhQUFhLEVBQUU7UUFDYixXQUFXLEVBQUUsOEVBQThFO1FBQzNGLFFBQVEsRUFBRSxLQUFLO1FBQ2YsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQWtCLEVBQUU7S0FDckM7Q0FDRixDQUFDO0FBU0YsbUdBQW1HO0FBQ25HLG9HQUFvRztBQUNwRyxrRkFBa0Y7QUFDbEYsU0FBUyxzQkFBc0IsQ0FDN0IsUUFBeUIsRUFDekIsUUFBa0IsRUFDbEIsaUJBQTBCO0lBRTFCLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLDZCQUFtQixDQUFDLENBQUM7SUFFeEQsTUFBTSxRQUFRLEdBQWdDLEVBQUUsQ0FBQztJQUVqRCxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFdkYsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxNQUFNLEVBQUUsRUFBRTtZQUMzRSxXQUFXO1lBQ1gsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1lBQ3pFLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0QsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNULENBQUMsQ0FBQyxDQUFDO0lBRUgsMkZBQTJGO0lBQzNGLCtFQUErRTtJQUMvRSxJQUFJLENBQUMsaUJBQWlCO1FBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUV0RixRQUFRLENBQUMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLHdDQUE4QixDQUFDLENBQUM7SUFFOUUsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQ3hELFdBQVcsRUFDWCxtQ0FBbUMsRUFDbkM7UUFDRSxXQUFXLEVBQUUsOEJBQThCO1FBQzNDLE9BQU8sRUFBRTtZQUNQLGtCQUFrQixFQUFFO2dCQUNsQixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw4QkFBOEIsRUFBRSxDQUFDO2lCQUNoRjthQUNGO1NBQ0Y7S0FDRixDQUNGLENBQUMsR0FBRyxDQUFDO0lBRU4sT0FBTyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsSUFBdUIsRUFDdkIsY0FBdUI7SUFFdkIsT0FBTyxjQUFjO1FBQ25CLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1FBQ3pELENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFdBQVcsR0FBRztJQUNsQixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7Q0FDTixDQUFDO0FBY0YsTUFBTSxNQUFNLEdBQXNCO0lBQ2hDO1FBQ0UsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsYUFBYTtRQUMxQixPQUFPLEVBQUUsOEJBQThCO1FBQ3ZDLE9BQU8sRUFBRSwyQkFBaUI7UUFDMUIsUUFBUSxFQUFFLDRCQUFrQjtRQUM1QixtQkFBbUIsRUFBRSxtQkFBbUI7UUFDeEMsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3ZCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLFdBQVcsRUFBRSxjQUFjO1FBQzNCLE9BQU8sRUFBRSwrQkFBK0I7UUFDeEMsT0FBTyxFQUFFLDRCQUFrQjtRQUMzQixRQUFRLEVBQUUsNkJBQW1CO1FBQzdCLG1CQUFtQixFQUFFLDJCQUEyQjtRQUNoRCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7S0FDdkI7SUFDRDtRQUNFLElBQUksRUFBRSx5Q0FBeUM7UUFDL0MsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxPQUFPLEVBQUUsb0NBQW9DO1FBQzdDLE9BQU8sRUFBRSxtQ0FBeUI7UUFDbEMsUUFBUSxFQUFFLDRCQUFrQjtRQUM1QixtQkFBbUIsRUFBRSwyQkFBMkI7UUFDaEQsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQztRQUNsQyxZQUFZLEVBQUUsSUFBSTtLQUNuQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLDBDQUEwQztRQUNoRCxXQUFXLEVBQUUscUJBQXFCO1FBQ2xDLE9BQU8sRUFBRSxxQ0FBcUM7UUFDOUMsT0FBTyxFQUFFLG9DQUEwQjtRQUNuQyxRQUFRLEVBQUUsNkJBQW1CO1FBQzdCLG1CQUFtQixFQUFFLG1DQUFtQztRQUN4RCxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQ2xDLFlBQVksRUFBRSxJQUFJO0tBQ25CO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUNBQXFDO1FBQzNDLFdBQVcsRUFBRSxlQUFlO1FBQzVCLE9BQU8sRUFBRSxrQ0FBa0M7UUFDM0MsT0FBTyxFQUFFLDZCQUFtQjtRQUM1QixRQUFRLEVBQUUsZUFBQyxDQUFDLE9BQU8sRUFBRTtRQUNyQixtQkFBbUIsRUFBRSx3QkFBd0I7UUFDN0MsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUNoQyxZQUFZLEVBQUUsSUFBSTtLQUNuQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLHdDQUF3QztRQUM5QyxXQUFXLEVBQUUsZUFBZTtRQUM1QixPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLE9BQU8sRUFBRSw2QkFBbUI7UUFDNUIsUUFBUSxFQUFFLGVBQUMsQ0FBQyxPQUFPLEVBQUU7UUFDckIsbUJBQW1CLEVBQUUsOEJBQThCO1FBQ25ELE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUM7UUFDaEMsWUFBWSxFQUFFLElBQUk7UUFDbEIsY0FBYyxFQUFFLElBQUk7S0FDckI7Q0FDRixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBMkI7SUFDakQsVUFBVSxFQUFFLGtEQUFrRDtJQUM5RCxRQUFRLEVBQUUsd0VBQXdFO0lBQ2xGLE1BQU0sRUFBRSxxRkFBcUY7Q0FDOUYsQ0FBQztBQUVGLFNBQVMsV0FBVyxDQUFDLEtBQWU7SUFDbEMsT0FBTyxlQUFDLENBQUMsTUFBTSxDQUNiLE1BQU0sQ0FBQyxXQUFXLENBQ2hCLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3pGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxvR0FBb0c7QUFDcEcsK0VBQStFO0FBQy9FLE1BQU0seUJBQXlCLEdBQUcsaUJBQWlCLENBQUM7QUFFcEQsTUFBTSxlQUFlLEdBQUcsZUFBQztLQUN0QixNQUFNLEVBQUU7S0FDUixRQUFRLEVBQUU7S0FDVixPQUFPLENBQUM7SUFDUCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtJQUNsRCxXQUFXLEVBQ1QscUZBQXFGO1FBQ3JGLCtCQUErQjtDQUNsQyxDQUFDLENBQUM7QUFFTCxNQUFNLGtCQUFrQixHQUN0Qiw2RkFBNkY7SUFDN0YsK0ZBQStGO0lBQy9GLGlHQUFpRztJQUNqRywrRkFBK0Y7SUFDL0YsOEZBQThGO0lBQzlGLGdCQUFnQixDQUFDO0FBRW5CLE1BQU0sbUJBQW1CLEdBQ3ZCLGdHQUFnRztJQUNoRyw0RkFBNEY7SUFDNUYsMkZBQTJGO0lBQzNGLGtEQUFrRCxDQUFDO0FBRXJELE1BQU0sb0JBQW9CLEdBQ3hCLGlHQUFpRztJQUNqRyw0RkFBNEY7SUFDNUYsaUdBQWlHO0lBQ2pHLDBGQUEwRjtJQUMxRiwrRkFBK0Y7SUFDL0YseUZBQXlGO0lBQ3pGLGlHQUFpRztJQUNqRyw2RkFBNkY7SUFDN0Ysc0VBQXNFLENBQUM7QUFFekUsU0FBZ0IsdUJBQXVCLENBQUMsT0FBZSxFQUFFLFNBQXFCO0lBQzVFLE1BQU0sUUFBUSxHQUFHLElBQUksZ0NBQWUsRUFBRSxDQUFDO0lBQ3ZDLE1BQU0sVUFBVSxHQUNkLFNBQVMsS0FBSyxTQUFTO1FBQ3ZCLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUUsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RSxNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBRWhHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUU7UUFDNUQsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsUUFBUTtRQUNoQixXQUFXLEVBQ1QsMEZBQTBGO1lBQzFGLHVGQUF1RjtZQUN2Rix1RUFBdUU7S0FDMUUsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLGNBQWMsRUFBRTtRQUM1RCxJQUFJLEVBQUUsUUFBUTtRQUNkLEVBQUUsRUFBRSxRQUFRO1FBQ1osSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsMEVBQTBFO0tBQ3hGLENBQUMsQ0FBQztJQUVILElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxJQUFBLHdCQUFxQixFQUNuQjtZQUNFLFFBQVE7WUFDUixJQUFJLEVBQUUsSUFBSSx3QkFBYSxDQUFDLFFBQVEsQ0FBQztZQUNqQyxNQUFNLEVBQUUsb0JBQVk7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsY0FBYztZQUNkLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO1NBQzVFLEVBQ0QsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsUUFBUSxDQUFDLFlBQVksQ0FBQztnQkFDcEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLEdBQUcsb0JBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNwQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxjQUFjO29CQUN2QixJQUFJLEVBQUU7d0JBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxZQUFZLEtBQUssSUFBSTt3QkFDckMsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO3FCQUMzRDtpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsR0FBRyxFQUFFO3dCQUNILFdBQVcsRUFBRSxLQUFLLENBQUMsbUJBQW1CO3dCQUN0QyxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUU7cUJBQzVEO29CQUNELEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQztpQkFDNUQ7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLElBQUksb0NBQW1CLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBQ3BFLE9BQU8sRUFBRSx1QkFBZTtRQUN4QixrR0FBa0c7UUFDbEcsaUdBQWlHO1FBQ2pHLG9EQUFvRDtRQUNwRCxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixXQUFXLEVBQUUseUNBQXlDLElBQUksQ0FBQyxTQUFTLENBQ2xFLFVBQVUsQ0FBQyxJQUFJLENBQ2hCLGNBQWM7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxFQUFFO1lBQ0osS0FBSyxFQUFFLFlBQVk7WUFDbkIsT0FBTztZQUNQLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLDJDQUEyQyxFQUFFO1lBQzlFLFdBQVcsRUFBRSxHQUNYLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLG1CQUNyQyxJQUFJLGtCQUFrQixFQUFFO1NBQ3pCO1FBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7S0FDeEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLFFBQXVCO0lBQ3RELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMifQ==
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS1kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL29wZW5hcGktZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBNFFBLDBEQXVHQztBQUVELDRDQUVDO0FBcFhELG1FQUFzRjtBQUV0RixzRUFBNkM7QUFDN0MsdUNBV21CO0FBQ25CLHNFQUFxRDtBQUNyRCwrQ0FBa0M7QUFDbEMsb0VBQTRDO0FBRS9CLFFBQUEsZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUMxQixRQUFBLFlBQVksR0FBRyxXQUFXLENBQUM7QUFFeEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUVuQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRTVDLE1BQU0sY0FBYyxHQUEyQjtJQUM3QyxHQUFHLEVBQUUseVFBQXlRO0lBQzlRLEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0MsR0FBRyxFQUFFLDBPQUEwTztJQUMvTyxHQUFHLEVBQUUseUNBQXlDO0lBQzlDLEdBQUcsRUFBRSw2Q0FBNkMsb0JBQVUsRUFBRTtJQUM5RCxHQUFHLEVBQUUsMlZBQTJWO0lBQ2hXLEdBQUcsRUFBRSxrRUFBa0U7SUFDdkUsR0FBRyxFQUFFLG9DQUFvQztJQUN6QyxHQUFHLEVBQUUsK0ZBQStGO0lBQ3BHLEdBQUcsRUFBRSxpRkFBaUY7SUFDdEYsR0FBRyxFQUFFLGdDQUFnQztJQUNyQyxHQUFHLEVBQUUsaUdBQWlHO0NBQ3ZHLENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUNsQyw2RkFBNkY7SUFDN0YsaUVBQWlFLENBQUM7QUFFcEUsTUFBTSxrQkFBa0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUNoRSxNQUFNLDhCQUE4QixHQUFHLCtDQUErQyxDQUFDO0FBRXZGLE1BQU0sbUNBQW1DLEdBQUcseUJB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
|
|
@@ -79,6 +79,52 @@ export declare const CountResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
79
79
|
count: z.ZodNull;
|
|
80
80
|
countStatus: z.ZodLiteral<"deactivated">;
|
|
81
81
|
}, z.core.$strip>]>;
|
|
82
|
+
export declare const ContextResponseSchema: z.ZodObject<{
|
|
83
|
+
collections: z.ZodArray<z.ZodObject<{
|
|
84
|
+
name: z.ZodString;
|
|
85
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
86
|
+
field: z.ZodString;
|
|
87
|
+
type: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
88
|
+
relationship: z.ZodOptional<z.ZodEnum<{
|
|
89
|
+
HasMany: "HasMany";
|
|
90
|
+
BelongsToMany: "BelongsToMany";
|
|
91
|
+
BelongsTo: "BelongsTo";
|
|
92
|
+
HasOne: "HasOne";
|
|
93
|
+
}>>;
|
|
94
|
+
reference: z.ZodOptional<z.ZodString>;
|
|
95
|
+
inverseOf: z.ZodOptional<z.ZodString>;
|
|
96
|
+
polymorphicTargets: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
97
|
+
isPrimaryKey: z.ZodOptional<z.ZodBoolean>;
|
|
98
|
+
isRequired: z.ZodOptional<z.ZodBoolean>;
|
|
99
|
+
isReadOnly: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
enums: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
101
|
+
validations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
102
|
+
type: z.ZodString;
|
|
103
|
+
value: z.ZodOptional<z.ZodUnknown>;
|
|
104
|
+
}, z.core.$strip>>>;
|
|
105
|
+
}, z.core.$strip>>;
|
|
106
|
+
actions: z.ZodArray<z.ZodObject<{
|
|
107
|
+
id: z.ZodString;
|
|
108
|
+
name: z.ZodString;
|
|
109
|
+
type: z.ZodEnum<{
|
|
110
|
+
single: "single";
|
|
111
|
+
bulk: "bulk";
|
|
112
|
+
global: "global";
|
|
113
|
+
}>;
|
|
114
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
115
|
+
field: z.ZodString;
|
|
116
|
+
type: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
117
|
+
isRequired: z.ZodOptional<z.ZodBoolean>;
|
|
118
|
+
defaultValue: z.ZodOptional<z.ZodUnknown>;
|
|
119
|
+
enums: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
120
|
+
}, z.core.$strip>>;
|
|
121
|
+
}, z.core.$strip>>;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
meta: z.ZodObject<{
|
|
124
|
+
schemaRevision: z.ZodNumber;
|
|
125
|
+
environmentId: z.ZodOptional<z.ZodNumber>;
|
|
126
|
+
}, z.core.$strip>;
|
|
127
|
+
}, z.core.$strip>;
|
|
82
128
|
export declare const ErrorResponseSchema: z.ZodObject<{
|
|
83
129
|
error: z.ZodObject<{
|
|
84
130
|
type: z.ZodString;
|
package/dist/openapi/schemas.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OPERATORS = exports.ParentIdSchema = exports.ConditionTreeSchema = exports.MessagelessErrorResponseSchema = exports.ErrorResponseSchema = exports.CountResponseSchema = exports.ListResponseSchema = exports.ActionRequestSchema = exports.RelationCountRequestSchema = exports.RelationListRequestSchema = exports.CountRequestSchema = exports.ListRequestSchema = exports.TimezoneSchema = exports.PageSchema = exports.SortClauseSchema = void 0;
|
|
3
|
+
exports.OPERATORS = exports.ParentIdSchema = exports.ConditionTreeSchema = exports.MessagelessErrorResponseSchema = exports.ErrorResponseSchema = exports.ContextResponseSchema = exports.CountResponseSchema = exports.ListResponseSchema = exports.ActionRequestSchema = exports.RelationCountRequestSchema = exports.RelationListRequestSchema = exports.CountRequestSchema = exports.ListRequestSchema = exports.TimezoneSchema = exports.PageSchema = exports.SortClauseSchema = void 0;
|
|
4
4
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
5
5
|
const zod_openapi_1 = require("./zod-openapi");
|
|
6
|
+
const read_model_1 = require("../read-model/read-model");
|
|
6
7
|
const capabilities_validator_1 = require("../validation/capabilities-validator");
|
|
7
8
|
const OPERATORS = [...datasource_toolkit_1.allOperators];
|
|
8
9
|
exports.OPERATORS = OPERATORS;
|
|
@@ -118,6 +119,95 @@ exports.CountResponseSchema = zod_openapi_1.z
|
|
|
118
119
|
description: 'Two shapes only: a number with `available`, or null with `deactivated` when the ' +
|
|
119
120
|
'collection disables count. The pair never disagrees.',
|
|
120
121
|
});
|
|
122
|
+
const ContextFieldTypeSchema = zod_openapi_1.z
|
|
123
|
+
.lazy(() => zod_openapi_1.z.union([
|
|
124
|
+
zod_openapi_1.z.string(),
|
|
125
|
+
zod_openapi_1.z.array(ContextFieldTypeSchema),
|
|
126
|
+
zod_openapi_1.z.object({
|
|
127
|
+
fields: zod_openapi_1.z.array(zod_openapi_1.z.object({
|
|
128
|
+
field: zod_openapi_1.z.string(),
|
|
129
|
+
type: ContextFieldTypeSchema,
|
|
130
|
+
enums: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
|
|
131
|
+
})),
|
|
132
|
+
}),
|
|
133
|
+
]))
|
|
134
|
+
.openapi('ContextFieldType', {
|
|
135
|
+
description: 'The field type, passed through from the agent wire format without normalization: a string ' +
|
|
136
|
+
'for a primitive, an array of types for an array field, or an object carrying `fields` for ' +
|
|
137
|
+
'a composite. A composite sub-field carries its own `type`, recursively, and its own ' +
|
|
138
|
+
'`enums` when it is an enum. A consumer that only understands primitives should ignore the ' +
|
|
139
|
+
'other two rather than fail.',
|
|
140
|
+
});
|
|
141
|
+
const ContextValidationSchema = zod_openapi_1.z
|
|
142
|
+
.object({ type: zod_openapi_1.z.string(), value: zod_openapi_1.z.unknown().optional() })
|
|
143
|
+
.openapi('ContextValidation', {
|
|
144
|
+
description: 'A validation rule as the agent states it. `type` is the Forest wording (`is like`, `is ' +
|
|
145
|
+
'present`, `is longer than`, …) and `value` is passed through unchanged, so its shape ' +
|
|
146
|
+
'follows the rule: a number for a length rule, a date for a comparison. On `is like` it is ' +
|
|
147
|
+
'the JavaScript **literal** form of the regular expression — slashes included, and flags ' +
|
|
148
|
+
'after the closing one (`/^data:.*;base64,.*/`, but also `/^a|b|c$/g`). Parse it as a ' +
|
|
149
|
+
'literal, splitting on the LAST slash to separate pattern from flags; stripping the outer ' +
|
|
150
|
+
'characters instead leaves the flags inside the pattern, which then matches nothing. A ' +
|
|
151
|
+
'rule with no operand carries no `value`.',
|
|
152
|
+
});
|
|
153
|
+
const ContextFieldSchema = zod_openapi_1.z.object({
|
|
154
|
+
field: zod_openapi_1.z.string(),
|
|
155
|
+
type: ContextFieldTypeSchema,
|
|
156
|
+
relationship: zod_openapi_1.z.enum(read_model_1.RELATIONSHIP_TYPES).optional(),
|
|
157
|
+
reference: zod_openapi_1.z.string().optional(),
|
|
158
|
+
inverseOf: zod_openapi_1.z.string().optional(),
|
|
159
|
+
polymorphicTargets: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
|
|
160
|
+
isPrimaryKey: zod_openapi_1.z.boolean().optional(),
|
|
161
|
+
isRequired: zod_openapi_1.z.boolean().optional(),
|
|
162
|
+
isReadOnly: zod_openapi_1.z.boolean().optional(),
|
|
163
|
+
enums: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
|
|
164
|
+
validations: zod_openapi_1.z.array(ContextValidationSchema).optional(),
|
|
165
|
+
});
|
|
166
|
+
const ContextActionSchema = zod_openapi_1.z.object({
|
|
167
|
+
id: zod_openapi_1.z.string(),
|
|
168
|
+
name: zod_openapi_1.z.string(),
|
|
169
|
+
type: zod_openapi_1.z.enum(['single', 'bulk', 'global']),
|
|
170
|
+
fields: zod_openapi_1.z.array(zod_openapi_1.z.object({
|
|
171
|
+
field: zod_openapi_1.z.string(),
|
|
172
|
+
type: ContextFieldTypeSchema,
|
|
173
|
+
isRequired: zod_openapi_1.z.boolean().optional(),
|
|
174
|
+
defaultValue: zod_openapi_1.z.unknown().optional(),
|
|
175
|
+
enums: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
|
|
176
|
+
})),
|
|
177
|
+
});
|
|
178
|
+
exports.ContextResponseSchema = zod_openapi_1.z
|
|
179
|
+
.object({
|
|
180
|
+
collections: zod_openapi_1.z.array(zod_openapi_1.z.object({
|
|
181
|
+
name: zod_openapi_1.z.string(),
|
|
182
|
+
fields: zod_openapi_1.z.array(ContextFieldSchema),
|
|
183
|
+
actions: zod_openapi_1.z.array(ContextActionSchema),
|
|
184
|
+
})),
|
|
185
|
+
meta: zod_openapi_1.z.object({ schemaRevision: zod_openapi_1.z.number(), environmentId: zod_openapi_1.z.number().optional() }),
|
|
186
|
+
})
|
|
187
|
+
.openapi('ContextResponse', {
|
|
188
|
+
description: 'Everything the agent schema exposes: collection names, typed fields with their relation ' +
|
|
189
|
+
'markers, and the custom actions that carry an endpoint. Field types are passed through ' +
|
|
190
|
+
'from the agent wire format, so a type is a string, an array of types, or a composite ' +
|
|
191
|
+
'object. A `Binary` column is advertised as `String`, because that is what it is on the ' +
|
|
192
|
+
'wire — the bytes travel as a data uri or as hex — so `type` alone does not tell a text ' +
|
|
193
|
+
'field from an encoded one: read `validations` for that. `reference` keeps the raw agent ' +
|
|
194
|
+
'form, the foreign collection and the key joined by a dot — the collection name may itself ' +
|
|
195
|
+
'contain dots, so drop only the trailing segment to recover it. A target named by ' +
|
|
196
|
+
'`reference` or `polymorphicTargets` is NOT guaranteed to appear in `collections[]`: the ' +
|
|
197
|
+
'schema describes a field as the agent declares it, and a relation can point at a ' +
|
|
198
|
+
'collection this document does not expose. Cross a target against `collections[]` before ' +
|
|
199
|
+
'following it — unlike the per-collection route documents, nothing here is dropped for ' +
|
|
200
|
+
'pointing outside the served set. ' +
|
|
201
|
+
'The document carries no rendering, project or team identity, and the only environment ' +
|
|
202
|
+
'datum is `meta.environmentId` below. It is served to both auth modes — an OAuth session ' +
|
|
203
|
+
'and a BFF API key get the same document. It is NOT filtered by the caller permissions: ' +
|
|
204
|
+
'it describes the whole exposed schema minus the endpoint-less actions, so cross it with ' +
|
|
205
|
+
'`/agent/v1/permissions` to know what the caller may actually ' +
|
|
206
|
+
'see. `meta.schemaRevision` increments whenever the BFF refreshes its schema, and resets ' +
|
|
207
|
+
'when the BFF restarts. `meta.environmentId` is the environment the BFF resolved at boot ' +
|
|
208
|
+
'from its own secret — it is telemetry, not a routing input, and it is absent when the ' +
|
|
209
|
+
'deployment runs without the OAuth configuration.',
|
|
210
|
+
});
|
|
121
211
|
exports.ErrorResponseSchema = zod_openapi_1.z
|
|
122
212
|
.object({
|
|
123
213
|
error: zod_openapi_1.z.object({
|
|
@@ -139,4 +229,4 @@ exports.MessagelessErrorResponseSchema = zod_openapi_1.z
|
|
|
139
229
|
.openapi('MessagelessErrorResponse', {
|
|
140
230
|
description: 'The unsupported-action-result body, which carries no message field unlike every other error.',
|
|
141
231
|
});
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL3NjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQStEO0FBRS9ELCtDQUFrQztBQUNsQyx5REFBOEQ7QUFDOUQsaUZBQXdFO0FBRXhFLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxpQ0FBWSxDQUEwQixDQUFDO0FBNlFmLDhCQUFTO0FBM1F2RCxNQUFNLHVCQUF1QixHQUFHLGVBQUM7S0FDOUIsTUFBTSxDQUFDO0lBQ04sS0FBSyxFQUFFLGVBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsUUFBUSxFQUFFLGVBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzNCLEtBQUssRUFBRSxlQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzlCLENBQUM7S0FDRCxPQUFPLENBQUMsbUJBQW1CLEVBQUU7SUFDNUIsV0FBVyxFQUNULDBGQUEwRjtRQUMxRixxRkFBcUY7Q0FDeEYsQ0FBQyxDQUFDO0FBRUwsTUFBTSxtQkFBbUIsR0FBYyxlQUFDO0tBQ3JDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDVCxlQUFDLENBQUMsS0FBSyxDQUFDO0lBQ04sdUJBQXVCO0lBQ3ZCLGVBQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxVQUFVLEVBQUUsZUFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqQyxVQUFVLEVBQUUsZUFBQyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztLQUN6QyxDQUFDO0NBQ0gsQ0FBQyxDQUNIO0tBQ0EsT0FBTyxDQUFDLGVBQWUsRUFBRTtJQUN4QixXQUFXLEVBQ1QsdUZBQXVGO1FBQ3ZGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsUUFBUSx5Q0FBZ0IsNERBQTREO1FBQ3BGLDJGQUEyRjtDQUM5RixDQUFDLENBQUM7QUE4T0ksa0RBQW1CO0FBNU9mLFFB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
|
|
@@ -44,4 +44,4 @@ class CapabilitiesCache {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
exports.default = CapabilitiesCache;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlYWQtbW9kZWwvY2FwYWJpbGl0aWVzLWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQTRDO0FBNkI1Qzs7O0dBR0c7QUFDSCxNQUFxQixpQkFBaUI7SUFRcEMsWUFBWSxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBRyx5QkFBVSxLQUErQixFQUFFO1FBSmhFLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUN4QyxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFDbkUsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUdyQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQWtCLEVBQUUsT0FBNEI7UUFDeEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFFNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxPQUFPO1lBQUUsT0FBTyxPQUFPLENBQUM7UUFFNUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM1QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO2FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNiLHlGQUF5RjtZQUN6RixxRkFBcUY7WUFDckYsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEUsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQzthQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFckMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUE3Q0Qsb0NBNkNDIn0=
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type CapabilitiesCache from './capabilities-cache';
|
|
2
2
|
import type { CapabilitiesFetcher, CapabilitiesResult } from './capabilities-cache';
|
|
3
3
|
import type SchemaCache from './schema-cache';
|
|
4
|
+
import type { ForestSchemaCollection } from '@forestadmin/forestadmin-client';
|
|
4
5
|
import ReadModel from './read-model';
|
|
6
|
+
export interface SchemaSnapshot {
|
|
7
|
+
collections: ForestSchemaCollection[];
|
|
8
|
+
readModel: ReadModel;
|
|
9
|
+
revision: number;
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* Single owner of the coupled schema + capabilities lifecycle. A successful schema refresh (a bump
|
|
7
13
|
* of the cache `revision`) rebuilds the read-model and clears capabilities atomically, so the
|
|
@@ -14,6 +20,7 @@ export default class ReadModelStore {
|
|
|
14
20
|
private readModel;
|
|
15
21
|
constructor(schemaCache: SchemaCache, capabilitiesCache: CapabilitiesCache);
|
|
16
22
|
getReadModel(): Promise<ReadModel>;
|
|
23
|
+
getSchemaSnapshot(): Promise<SchemaSnapshot>;
|
|
17
24
|
/**
|
|
18
25
|
* Returns the capabilities together with the read-model they belong to, so a caller cannot mix a
|
|
19
26
|
* read-model captured earlier (allow-list, primary keys) with capabilities from a newer schema
|
|
@@ -18,13 +18,17 @@ class ReadModelStore {
|
|
|
18
18
|
this.capabilitiesCache = capabilitiesCache;
|
|
19
19
|
}
|
|
20
20
|
async getReadModel() {
|
|
21
|
+
return (await this.getSchemaSnapshot()).readModel;
|
|
22
|
+
}
|
|
23
|
+
async getSchemaSnapshot() {
|
|
21
24
|
const collections = await this.schemaCache.get();
|
|
22
|
-
|
|
25
|
+
const { revision } = this.schemaCache;
|
|
26
|
+
if (revision !== this.builtRevision || !this.readModel) {
|
|
23
27
|
this.readModel = new read_model_1.default(collections);
|
|
24
|
-
this.builtRevision =
|
|
28
|
+
this.builtRevision = revision;
|
|
25
29
|
this.capabilitiesCache.clear();
|
|
26
30
|
}
|
|
27
|
-
return this.readModel;
|
|
31
|
+
return { collections, readModel: this.readModel, revision };
|
|
28
32
|
}
|
|
29
33
|
/**
|
|
30
34
|
* Returns the capabilities together with the read-model they belong to, so a caller cannot mix a
|
|
@@ -55,4 +59,4 @@ class ReadModelStore {
|
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
exports.default = ReadModelStore;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1tb2RlbC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWFkLW1vZGVsL3JlYWQtbW9kZWwtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSw4REFBcUM7QUFFckMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFRakM7Ozs7R0FJRztBQUNILE1BQXFCLGNBQWM7SUFPakMsWUFBWSxXQUF3QixFQUFFLGlCQUFvQztRQUhsRSxrQkFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLGNBQVMsR0FBcUIsSUFBSSxDQUFDO1FBR3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRXRDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLG9CQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsVUFBa0IsRUFDbEIsT0FBNEIsRUFDNUIsWUFBWSxHQUFHLHNCQUFzQjtRQUVyQyxJQUFJLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUNiLG1FQUFtRSxVQUFVLEdBQUcsQ0FDakYsQ0FBQztRQUNKLENBQUM7UUFFRCxvRkFBb0Y7UUFDcEYsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUzRSw2RkFBNkY7UUFDN0YsaUdBQWlHO1FBQ2pHLCtGQUErRjtRQUMvRiw4RkFBOEY7UUFDOUYsNkZBQTZGO1FBQzdGLHVEQUF1RDtRQUN2RCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFsRUQsaUNBa0VDIn0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ActionEndpointsByCollection } from '@forestadmin/agent-client';
|
|
2
2
|
import type { ForestSchemaCollection } from '@forestadmin/forestadmin-client';
|
|
3
|
-
export
|
|
3
|
+
export declare const RELATIONSHIP_TYPES: readonly ["BelongsTo", "HasOne", "HasMany", "BelongsToMany"];
|
|
4
|
+
export type RelationshipType = (typeof RELATIONSHIP_TYPES)[number];
|
|
4
5
|
export type RelationTarget = {
|
|
5
6
|
type: RelationshipType;
|
|
6
7
|
polymorphic: false;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RELATIONSHIP_TYPES = void 0;
|
|
4
|
+
exports.RELATIONSHIP_TYPES = [
|
|
5
|
+
'BelongsTo',
|
|
6
|
+
'HasOne',
|
|
7
|
+
'HasMany',
|
|
8
|
+
'BelongsToMany',
|
|
9
|
+
];
|
|
3
10
|
// Only to-many relations expose list/count on the agent; to-one relations get update-relation only.
|
|
4
11
|
// A polymorphic relation carrying multiple targets is always the to-one (PolymorphicManyToOne) side.
|
|
5
12
|
// The data routes and the OpenAPI unfolding both resolve listability here, so a relation can never be
|
|
@@ -139,4 +146,4 @@ class ReadModel {
|
|
|
139
146
|
}
|
|
140
147
|
}
|
|
141
148
|
exports.default = ReadModel;
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWFkLW1vZGVsL3JlYWQtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR2EsUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxXQUFXO0lBQ1gsUUFBUTtJQUNSLFNBQVM7SUFDVCxlQUFlO0NBQzZELENBQUM7QUFZL0Usb0dBQW9HO0FBQ3BHLHFHQUFxRztBQUNyRyxzR0FBc0c7QUFDdEcsb0VBQW9FO0FBQ3BFLFNBQVMsZ0JBQWdCLENBQUMsTUFBc0I7SUFDOUMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3ZDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxlQUFlO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFOUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEtBQXdCO0lBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXJDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFFaEMsSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0RixPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQiwwRkFBMEY7UUFDMUYseUZBQXlGO1FBQ3pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/agent-bff",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"forest-bff": "dist/cli.js"
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@asteasolutions/zod-to-openapi": "8.5.0",
|
|
36
|
-
"@forestadmin/agent-client": "1.14.
|
|
36
|
+
"@forestadmin/agent-client": "1.14.1",
|
|
37
37
|
"@forestadmin/datasource-toolkit": "1.55.0",
|
|
38
|
-
"@forestadmin/forestadmin-client": "1.
|
|
38
|
+
"@forestadmin/forestadmin-client": "1.43.0",
|
|
39
39
|
"@koa/bodyparser": "^6.1.0",
|
|
40
40
|
"jsonwebtoken": "^9.0.3",
|
|
41
41
|
"koa": "^3.0.1",
|