@forestadmin/agent-bff 1.30.0 → 1.30.2
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/action/action-routes-middleware.js +8 -1
- package/dist/context/build-context.d.ts +1 -0
- package/dist/context/build-context.js +18 -4
- package/dist/data/agent-query.js +23 -3
- package/dist/data/data-routes-middleware.js +7 -2
- package/dist/data/pack-id.d.ts +6 -1
- package/dist/data/pack-id.js +96 -3
- package/dist/data/response-mappers.js +2 -2
- package/dist/http/agent-error-mapper.js +42 -27
- package/dist/openapi/collect-unfolding.js +23 -9
- package/dist/openapi/schemas.d.ts +1 -0
- package/dist/openapi/schemas.js +22 -3
- package/dist/openapi/unfolded-document.js +7 -2
- package/dist/openapi/unfolded-paths.js +96 -16
- package/dist/openapi/unfolding.d.ts +12 -0
- package/dist/openapi/unfolding.js +1 -1
- package/dist/read-model/agent-capabilities-fetcher.d.ts +6 -1
- package/dist/read-model/agent-capabilities-fetcher.js +88 -6
- package/dist/read-model/capabilities-cache.d.ts +1 -0
- package/dist/read-model/capabilities-cache.js +1 -1
- package/dist/read-model/forest-schema-client.d.ts +3 -3
- package/dist/read-model/forest-schema-client.js +2 -2
- package/dist/read-model/read-model-store.d.ts +2 -1
- package/dist/read-model/read-model-store.js +3 -3
- package/dist/read-model/read-model.d.ts +34 -0
- package/dist/read-model/read-model.js +79 -4
- package/dist/read-model/schema-cache.d.ts +17 -1
- package/dist/read-model/schema-cache.js +19 -6
- package/dist/read-model/synthesize-capabilities.d.ts +35 -0
- package/dist/read-model/synthesize-capabilities.js +133 -0
- package/dist/validation/capabilities-validator.d.ts +6 -4
- package/dist/validation/capabilities-validator.js +12 -1
- package/dist/validation/operator-normalizer.d.ts +0 -6
- package/dist/validation/operator-normalizer.js +6 -14
- package/dist/validation/validation-errors.d.ts +1 -0
- package/dist/validation/validation-errors.js +7 -1
- package/package.json +3 -3
|
@@ -57,13 +57,25 @@ function documentedOperators(collection, field, operators, logger) {
|
|
|
57
57
|
}
|
|
58
58
|
return (0, operator_normalizer_1.toCanonicalOperatorSet)(normalized);
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* The filterable subset, plus whether a field was dropped as undocumentable rather than as genuinely
|
|
62
|
+
* not filterable. The caller needs the two apart: a field with no operator is an ANSWER the document
|
|
63
|
+
* can state, while a field dropped for operator skew leaves the filterable set incomplete, and an
|
|
64
|
+
* incomplete set that ends up empty must not be documented as "nothing is filterable".
|
|
65
|
+
*/
|
|
60
66
|
function collectFilterableFields(collection, capabilities, logger) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
const fields = [];
|
|
68
|
+
let undocumentable = false;
|
|
69
|
+
for (const field of capabilities.fields) {
|
|
70
|
+
if ((field.operators?.length ?? 0) > 0) {
|
|
71
|
+
const operators = documentedOperators(collection, field.name, field.operators, logger);
|
|
72
|
+
if (operators === null)
|
|
73
|
+
undocumentable = true;
|
|
74
|
+
else
|
|
75
|
+
fields.push({ name: field.name, operators });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return { fields, undocumentable };
|
|
67
79
|
}
|
|
68
80
|
async function collectFields(collection, { store, capabilitiesFetcher, logger }) {
|
|
69
81
|
try {
|
|
@@ -74,10 +86,12 @@ async function collectFields(collection, { store, capabilitiesFetcher, logger })
|
|
|
74
86
|
});
|
|
75
87
|
return UNTYPED('no_fields');
|
|
76
88
|
}
|
|
89
|
+
const filterable = collectFilterableFields(collection, capabilities, logger);
|
|
77
90
|
return {
|
|
78
|
-
projectable: capabilities.fields.map(({ name, type }) =>
|
|
79
|
-
filterable:
|
|
91
|
+
projectable: capabilities.fields.map(({ name, type, sortable }) => sortable === false ? { name, type, sortable } : { name, type }),
|
|
92
|
+
filterable: filterable.fields,
|
|
80
93
|
degraded: null,
|
|
94
|
+
...(filterable.undocumentable ? { undocumentableFilter: true } : {}),
|
|
81
95
|
};
|
|
82
96
|
}
|
|
83
97
|
catch (error) {
|
|
@@ -146,4 +160,4 @@ async function collectUnfolding(options) {
|
|
|
146
160
|
}));
|
|
147
161
|
return { collections };
|
|
148
162
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdC11bmZvbGRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlbmFwaS9jb2xsZWN0LXVuZm9sZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEwTkEsbUNBZ0JDO0FBNU5ELHNDQUFnRDtBQUNoRCx5REFBOEQ7QUFDOUQsMkVBQThGO0FBRTlGLG9HQUFvRztBQUNwRyxrR0FBa0c7QUFDbEcsa0ZBQWtGO0FBQ3JFLFFBQUEsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO0FBVTNDLEtBQUssVUFBVSxrQkFBa0IsQ0FDL0IsS0FBVSxFQUNWLEtBQWEsRUFDYixHQUE0QjtJQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWYsaUdBQWlHO0lBQ2pHLCtDQUErQztJQUMvQyxNQUFNLE1BQU0sR0FBRyxLQUFLLElBQW1CLEVBQUU7UUFDdkMsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRW5DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNyQixNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sTUFBTSxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUVqRixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFzQyxF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
|
|
@@ -139,6 +139,7 @@ export declare const ContextResponseSchema: z.ZodObject<{
|
|
|
139
139
|
inverseOf: z.ZodOptional<z.ZodString>;
|
|
140
140
|
polymorphicTargets: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
141
141
|
isPrimaryKey: z.ZodOptional<z.ZodBoolean>;
|
|
142
|
+
isPrimaryKeyDerived: z.ZodOptional<z.ZodBoolean>;
|
|
142
143
|
isRequired: z.ZodOptional<z.ZodBoolean>;
|
|
143
144
|
isReadOnly: z.ZodOptional<z.ZodBoolean>;
|
|
144
145
|
enums: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
package/dist/openapi/schemas.js
CHANGED
|
@@ -222,7 +222,14 @@ exports.ForestRecordMetaSchema = zod_openapi_1.z
|
|
|
222
222
|
description: 'The record identity, unpacked from the agent id. A composite primary key carries one ' +
|
|
223
223
|
'entry per column. The values are TYPED here — a Number key column is a number — whereas ' +
|
|
224
224
|
'the record carries the same id as a string under `id`, so comparing the two forms ' +
|
|
225
|
-
'without coercion fails.'
|
|
225
|
+
'without coercion fails. One exception to the per-column promise: against a schema that ' +
|
|
226
|
+
'declares no primary key at all, this carries the agent id whole under the name `id`, ' +
|
|
227
|
+
'never split per column — the schema published no key, so its real shape is unknown and a ' +
|
|
228
|
+
'composite one would stay packed, separator included. That `id` is a real column only when ' +
|
|
229
|
+
'the schema declares a field of that name; otherwise it is not a column at all and the ' +
|
|
230
|
+
'context marks no field as the key. When it does declare one, the context flags it ' +
|
|
231
|
+
'`isPrimaryKeyDerived`, meaning the key is a guess and a filter on it may match nothing. ' +
|
|
232
|
+
'Filter on a field the context lists, never on a key name read back here.',
|
|
226
233
|
});
|
|
227
234
|
exports.ListResponseSchema = zod_openapi_1.z
|
|
228
235
|
.object({
|
|
@@ -232,7 +239,9 @@ exports.ListResponseSchema = zod_openapi_1.z
|
|
|
232
239
|
.openapi('ListResponse', {
|
|
233
240
|
description: 'Records are flat, each carrying a `__forest` envelope. A record always holds `id`, the ' +
|
|
234
241
|
`agent id as a string — a composite key is its values joined by \`${pack_id_1.PACKED_ID_SEPARATOR}\` — ` +
|
|
235
|
-
'while `__forest.primaryKey` holds that same id typed and split per column
|
|
242
|
+
'while `__forest.primaryKey` holds that same id typed and split per column — with the one ' +
|
|
243
|
+
'exception `ForestRecordMeta` describes, where the name it carries is not a column. ' +
|
|
244
|
+
'The list never ' +
|
|
236
245
|
'carries a total: call the count endpoint for that, which is why `countStatus` is always ' +
|
|
237
246
|
'`not_requested`. ' +
|
|
238
247
|
'It is always one page, not guaranteed to be the whole collection: a request that omitted ' +
|
|
@@ -290,6 +299,16 @@ const ContextFieldSchema = zod_openapi_1.z.object({
|
|
|
290
299
|
inverseOf: zod_openapi_1.z.string().optional(),
|
|
291
300
|
polymorphicTargets: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
|
|
292
301
|
isPrimaryKey: zod_openapi_1.z.boolean().optional(),
|
|
302
|
+
isPrimaryKeyDerived: zod_openapi_1.z
|
|
303
|
+
.boolean()
|
|
304
|
+
.optional()
|
|
305
|
+
.openapi({
|
|
306
|
+
description: 'Set only alongside `isPrimaryKey`, when the schema declared no primary key at all and ' +
|
|
307
|
+
'the BFF derived one from a field named `id`. The key is then a GUESS: it is what ' +
|
|
308
|
+
'`__forest.primaryKey` carries, but nothing confirms it is the column the records are ' +
|
|
309
|
+
'really keyed on, so a filter on it can answer 200 with no row. Use it to read record ' +
|
|
310
|
+
'identities, not to filter by identity.',
|
|
311
|
+
}),
|
|
293
312
|
isRequired: zod_openapi_1.z.boolean().optional(),
|
|
294
313
|
isReadOnly: zod_openapi_1.z.boolean().optional(),
|
|
295
314
|
enums: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
|
|
@@ -452,4 +471,4 @@ exports.OpenapiDisabledErrorResponseSchema = zod_openapi_1.z
|
|
|
452
471
|
'the shared envelope: the thrower passes none, so declaring the field would send a client ' +
|
|
453
472
|
'looking for something the runtime never emits.',
|
|
454
473
|
});
|
|
455
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL3NjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQStEO0FBRS9ELCtDQUFrQztBQUNsQyw2Q0FBc0Q7QUFDdEQsNkRBWWlDO0FBQ2pDLGtGQUE4RTtBQUM5RSx5REFBOEQ7QUFDOUQsaUZBQXdFO0FBRXhFLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxpQ0FBWSxDQUEwQixDQUFDO0FBc2hCZiw4QkFBUztBQXBoQnZELE1BQU0sdUJBQXVCLEdBQUcsZUFBQztLQUM5QixZQUFZLENBQUM7SUFDWixLQUFLLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixRQUFRLEVBQUUsZUFBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0IsS0FBSyxFQUFFLGVBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDOUIsQ0FBQztLQUNELE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtJQUM1QixXQUFXLEVBQ1QsMEZBQTBGO1FBQzFGLHFGQUFxRjtDQUN4RixDQUFDLENBQUM7QUFFTCxNQUFNLG1CQUFtQixHQUFjLGVBQUM7S0FDckMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUNULGVBQUMsQ0FBQyxLQUFLLENBQUM7SUFDTix1QkFBdUI7SUFDdkIsZUFBQyxDQUFDLFlBQVksQ0FBQztRQUNiLFVBQVUsRUFBRSxlQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLFVBQVUsRUFBRSxlQUFDLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO0tBQ3pDLENBQUM7SUFDRixlQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztDQUNuQixDQUFDLENBQ0g7S0FDQSxPQUFPLENBQUMsZUFBZSxFQUFFO0lBQ3hCLFdBQVcsRUFDVCwyRkFBMkY7UUFDM0YsMkRBQTJEO1FBQzNELHVGQUF1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
|
|
474
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL3NjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQStEO0FBRS9ELCtDQUFrQztBQUNsQyw2Q0FBc0Q7QUFDdEQsNkRBWWlDO0FBQ2pDLGtGQUE4RTtBQUM5RSx5REFBOEQ7QUFDOUQsaUZBQXdFO0FBRXhFLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxpQ0FBWSxDQUEwQixDQUFDO0FBMGlCZiw4QkFBUztBQXhpQnZELE1BQU0sdUJBQXVCLEdBQUcsZUFBQztLQUM5QixZQUFZLENBQUM7SUFDWixLQUFLLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixRQUFRLEVBQUUsZUFBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0IsS0FBSyxFQUFFLGVBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDOUIsQ0FBQztLQUNELE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtJQUM1QixXQUFXLEVBQ1QsMEZBQTBGO1FBQzFGLHFGQUFxRjtDQUN4RixDQUFDLENBQUM7QUFFTCxNQUFNLG1CQUFtQixHQUFjLGVBQUM7S0FDckMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUNULGVBQUMsQ0FBQyxLQUFLLENBQUM7SUFDTix1QkFBdUI7SUFDdkIsZUFBQyxDQUFDLFlBQVksQ0FBQztRQUNiLFVBQVUsRUFBRSxlQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLFVBQVUsRUFBRSxlQUFDLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO0tBQ3pDLENBQUM7SUFDRixlQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztDQUNuQixDQUFDLENBQ0g7S0FDQSxPQUFPLENBQUMsZUFBZSxFQUFFO0lBQ3hCLFdBQVcsRUFDVCwyRkFBMkY7UUFDM0YsMkRBQTJEO1FBQzNELHVGQUF1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
|
|
@@ -13,7 +13,12 @@ async function buildUnfoldedDocument(source, readModel, token, { version, hasAiQ
|
|
|
13
13
|
const unfolding = await (0, collect_unfolding_1.default)({
|
|
14
14
|
readModel,
|
|
15
15
|
store: source.store,
|
|
16
|
-
capabilitiesFetcher: (0, agent_capabilities_fetcher_1.default)({
|
|
16
|
+
capabilitiesFetcher: (0, agent_capabilities_fetcher_1.default)({
|
|
17
|
+
transport: source.transport,
|
|
18
|
+
token,
|
|
19
|
+
store: source.store,
|
|
20
|
+
logger: source.logger,
|
|
21
|
+
}),
|
|
17
22
|
logger: source.logger,
|
|
18
23
|
});
|
|
19
24
|
return {
|
|
@@ -48,4 +53,4 @@ function issueOpenApiAgentToken(authSecret) {
|
|
|
48
53
|
},
|
|
49
54
|
});
|
|
50
55
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5mb2xkZWQtZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlbmFwaS91bmZvbGRlZC1kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQStCQSx3Q0F3QkM7QUFXRCx3REFpQkM7QUE3RUQsNEVBQW1EO0FBQ25ELHlEQUErRTtBQUMvRSx3REFBeUQ7QUFDekQsMEdBQXNGO0FBc0J2RSxLQUFLLFVBQVUscUJBQXFCLENBQ2pELE1BQW9CLEVBQ3BCLFNBQW9CLEVBQ3BCLEtBQThCLEVBQzlCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFpQjtJQUVoRSxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsMkJBQWdCLEVBQUM7UUFDdkMsU0FBUztRQUNULEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztRQUNuQixtQkFBbUIsRUFBRSxJQUFBLG9DQUE4QixFQUFDO1lBQ2xELFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixLQUFLO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN0QixDQUFDO1FBQ0YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO0tBQ3RCLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxRQUFRLEVBQUUsSUFBQSxtQ0FBZ0IsRUFDeEIsSUFBQSwwQ0FBdUIsRUFBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUN0RjtRQUNELFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsVUFBa0I7SUFDdkQsT0FBTyxJQUFBLDZCQUFlLEVBQUM7UUFDckIsVUFBVTtRQUNWLFFBQVEsRUFBRTtZQUNSLFdBQVcsRUFBRSxDQUFDO1lBQ2QsY0FBYyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxDQUFDO2dCQUNMLEtBQUssRUFBRSxtQ0FBbUM7Z0JBQzFDLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixRQUFRLEVBQUUsS0FBSztnQkFDZixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLE9BQU87YUFDekI7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
|
|
@@ -66,6 +66,24 @@ function fieldsEnum(pool, name, fields, description) {
|
|
|
66
66
|
return { type: 'string' };
|
|
67
67
|
return pool.add(name, { type: 'string', enum: fields, description });
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Whether the document knows which fields the collection exposes. Only `capabilities_unavailable`
|
|
71
|
+
* leaves it unknown — the agent could not be asked. `no_fields` is an ANSWER: capabilities were read
|
|
72
|
+
* and name none, so every field is rejected, and `null` carries the enumerated set. The difference
|
|
73
|
+
* decides whether an empty set means "do not constrain" or "nothing is valid here".
|
|
74
|
+
*/
|
|
75
|
+
function isFieldSetKnown(fields) {
|
|
76
|
+
return fields.degraded !== 'capabilities_unavailable';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Whether an empty `filterable` is an answer. It is not enough that the field set is known: the
|
|
80
|
+
* collector also empties `filterable` by dropping every field whose operator set it cannot map, and
|
|
81
|
+
* that collection filters fine at runtime. Documenting it as filterable by nothing would refuse, at
|
|
82
|
+
* compile time in a generated client, a filter the agent honours.
|
|
83
|
+
*/
|
|
84
|
+
function isFilterSetKnown(fields) {
|
|
85
|
+
return isFieldSetKnown(fields) && !fields.undocumentableFilter;
|
|
86
|
+
}
|
|
69
87
|
/**
|
|
70
88
|
* Groups the filterable fields by the operator set they share. One leaf per field would be as exact
|
|
71
89
|
* but would multiply the document by the field count; the number of distinct operator sets is bounded
|
|
@@ -113,9 +131,15 @@ function leafShape(field, operators, description) {
|
|
|
113
131
|
function filterLeaves(pool, plan) {
|
|
114
132
|
const { name, fields } = plan.collection;
|
|
115
133
|
const groups = groupByOperators(fields.filterable);
|
|
116
|
-
// No
|
|
117
|
-
//
|
|
134
|
+
// No filterable field, and the two reasons are not the same document. Capabilities that could not
|
|
135
|
+
// be read leave the field set UNKNOWN, so the leaf stays free-form: the collection still accepts
|
|
136
|
+
// whatever it really exposes, and the runtime is the one that rejects. Capabilities that were read
|
|
137
|
+
// and name nothing filterable leave no valid leaf at all — advertising a free-form one would offer
|
|
138
|
+
// a filter the validator answers 422 on for every field, so the tree keeps only its branch and
|
|
139
|
+
// empty-object alternatives.
|
|
118
140
|
if (groups.length === 0) {
|
|
141
|
+
if (isFilterSetKnown(fields))
|
|
142
|
+
return [];
|
|
119
143
|
return [
|
|
120
144
|
pool.add(`FilterLeaf_${plan.key}`, leafShape({ type: 'string' }, schemas_1.OPERATORS, `A single condition on ${(0, names_1.quoted)(name)}.`)),
|
|
121
145
|
];
|
|
@@ -135,11 +159,18 @@ function filterSchema({ pool }, plan) {
|
|
|
135
159
|
const treeName = `Filter_${plan.key}`;
|
|
136
160
|
const treeRef = { $ref: `#/components/schemas/${treeName}` };
|
|
137
161
|
const leaves = filterLeaves(pool, plan);
|
|
138
|
-
const pairing =
|
|
139
|
-
|
|
140
|
-
'
|
|
141
|
-
|
|
142
|
-
|
|
162
|
+
const pairing = (() => {
|
|
163
|
+
if (fields.filterable.length > 0) {
|
|
164
|
+
return (' There is one leaf alternative per operator set: a field accepts only the operators of ' +
|
|
165
|
+
'the alternative listing it, and an operator it does not support answers 400 ' +
|
|
166
|
+
'invalid_filter_operator.');
|
|
167
|
+
}
|
|
168
|
+
if (isFilterSetKnown(fields)) {
|
|
169
|
+
return (' No field of this collection is filterable, so there is no leaf alternative at all: ' +
|
|
170
|
+
'send the empty object, or no filter.');
|
|
171
|
+
}
|
|
172
|
+
return '';
|
|
173
|
+
})();
|
|
143
174
|
return pool.add(treeName, {
|
|
144
175
|
description: `A filter on ${(0, names_1.quoted)(name)}: either a leaf condition, a branch nesting more ` +
|
|
145
176
|
'conditions, or the empty object, which is how an absent filter is spelled. A branch must ' +
|
|
@@ -164,6 +195,16 @@ function fieldRefs(deps, plan) {
|
|
|
164
195
|
const { pool } = deps;
|
|
165
196
|
const { name, fields } = plan.collection;
|
|
166
197
|
const projectable = fieldsEnum(pool, `Fields_${plan.key}`, fields.projectable.map(field => field.name), `A field of ${(0, names_1.quoted)(name)}.`);
|
|
198
|
+
// Sortable is a subset of projectable too, but only the v1 synthesis ever narrows it: a field the
|
|
199
|
+
// apimap marks not sortable is projectable and filterable while a sort on it answers 422
|
|
200
|
+
// field_not_sortable. The enum is shared with projectable when nothing is denied, which is every
|
|
201
|
+
// v2 collection, so the common document gains no component.
|
|
202
|
+
const sortableNames = fields.projectable
|
|
203
|
+
.filter(field => field.sortable !== false)
|
|
204
|
+
.map(field => field.name);
|
|
205
|
+
const sortableField = sortableNames.length === fields.projectable.length
|
|
206
|
+
? projectable
|
|
207
|
+
: fieldsEnum(pool, `SortableFields_${plan.key}`, sortableNames, `A sortable field of ${(0, names_1.quoted)(name)}.`);
|
|
167
208
|
// Filterable is a strict subset of projectable: the agent reports a ManyToOne without operators, so
|
|
168
209
|
// projecting or sorting on it works while filtering on it answers 422 field_not_filterable. Which is
|
|
169
210
|
// why the filterable fields are not enumerated here but inside the filter leaves, where each one
|
|
@@ -171,13 +212,18 @@ function fieldRefs(deps, plan) {
|
|
|
171
212
|
return {
|
|
172
213
|
projectable,
|
|
173
214
|
filter: filterSchema(deps, plan),
|
|
174
|
-
|
|
215
|
+
// Same split as the filter leaves: an UNKNOWN field set leaves sort unconstrained, because the
|
|
216
|
+
// runtime is the one that rejects. A known set with nothing sortable — every field denied, or
|
|
217
|
+
// capabilities naming no field at all — is a collection that takes no clause.
|
|
218
|
+
anySortable: sortableNames.length > 0 || !isFieldSetKnown(fields),
|
|
219
|
+
anyProjectable: fields.projectable.length > 0 || !isFieldSetKnown(fields),
|
|
220
|
+
sort: sortableNames.length === 0
|
|
175
221
|
? pool.reuse('SortClause', schemas_1.SortClauseSchema)
|
|
176
222
|
: pool.add(`SortClause_${plan.key}`, {
|
|
177
223
|
type: 'object',
|
|
178
224
|
description: 'Omitting `direction` sorts ascending.',
|
|
179
225
|
properties: {
|
|
180
|
-
field:
|
|
226
|
+
field: sortableField,
|
|
181
227
|
direction: { type: 'string', enum: ['asc', 'desc'] },
|
|
182
228
|
},
|
|
183
229
|
required: ['field'],
|
|
@@ -200,8 +246,30 @@ function requestProperties(deps, plan) {
|
|
|
200
246
|
count,
|
|
201
247
|
list: {
|
|
202
248
|
filter: refs.filter,
|
|
203
|
-
|
|
204
|
-
|
|
249
|
+
// Same cap as sort, on the same split: capabilities that were READ and name no field leave
|
|
250
|
+
// nothing to project, and `fieldsEnum` falls back to an unrestricted string for an empty
|
|
251
|
+
// list, which would advertise every field while each request answers 422 unknown_field. An
|
|
252
|
+
// UNKNOWN field set stays uncapped — the collection still projects whatever it exposes.
|
|
253
|
+
projection: refs.anyProjectable
|
|
254
|
+
? { type: 'array', items: refs.projectable }
|
|
255
|
+
: {
|
|
256
|
+
type: 'array',
|
|
257
|
+
items: refs.projectable,
|
|
258
|
+
maxItems: 0,
|
|
259
|
+
description: 'This collection exposes no field: send an empty array, or omit it.',
|
|
260
|
+
},
|
|
261
|
+
// A collection whose every known field is denied sorting takes no clause at all: the shared
|
|
262
|
+
// SortClause leaves `field` an unrestricted string, which would advertise every field as
|
|
263
|
+
// sortable while each request answers 422 field_not_sortable. `maxItems: 0` says what the
|
|
264
|
+
// runtime does — an empty sort passes, any clause does not.
|
|
265
|
+
sort: refs.anySortable
|
|
266
|
+
? { type: 'array', items: refs.sort }
|
|
267
|
+
: {
|
|
268
|
+
type: 'array',
|
|
269
|
+
items: refs.sort,
|
|
270
|
+
maxItems: 0,
|
|
271
|
+
description: 'No field of this collection is sortable: send an empty array, or omit it.',
|
|
272
|
+
},
|
|
205
273
|
page: pool.reuse('Page', schemas_1.PageSchema),
|
|
206
274
|
search,
|
|
207
275
|
searchExtended,
|
|
@@ -259,15 +327,27 @@ function parentIdSchema(pool, parent, primaryKeys) {
|
|
|
259
327
|
// A composite id only works as its packed string: a number could never carry the separator.
|
|
260
328
|
type: 'string',
|
|
261
329
|
pattern: request_schemas_1.NON_BLANK_PATTERN,
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
330
|
+
// The order the keys are published in is not the order the agent packs them in, so naming one
|
|
331
|
+
// would send a client to build an id the agent unpacks onto the wrong columns.
|
|
332
|
+
description: `The composite id of the parent ${(0, names_1.quoted)(parent)} record, taken verbatim from that ` +
|
|
333
|
+
`record's own id: the values of ${primaryKeys.map(key => key.name).join(', ')} joined by ` +
|
|
334
|
+
`${(0, names_1.quoted)(pack_id_1.PACKED_ID_SEPARATOR)}, in the order the agent packs them. Copy it from a listed ` +
|
|
335
|
+
`record rather than assembling it.`,
|
|
265
336
|
};
|
|
266
337
|
}
|
|
267
338
|
const [key] = primaryKeys;
|
|
339
|
+
// A DERIVED key names no verified column: the schema published no key, so the read-model guessed
|
|
340
|
+
// one from an `id` field, or invented the name outright. Stating `(id, String)` the way a declared
|
|
341
|
+
// key is stated would contradict `ForestRecordMeta`, which warns in the same document that this
|
|
342
|
+
// `id` may not be a column at all. The shape is unaffected — the wire takes the id opaque either
|
|
343
|
+
// way — so only the description hedges.
|
|
344
|
+
const column = key.derived
|
|
345
|
+
? 'its primary key is not published by the schema, so this is the opaque agent id, which is ' +
|
|
346
|
+
`NOT necessarily the value of a column named ${(0, names_1.quoted)(key.name)}`
|
|
347
|
+
: `${key.name}, ${key.type}`;
|
|
268
348
|
return {
|
|
269
349
|
...PARENT_ID_SHAPE,
|
|
270
|
-
description: `The parent ${(0, names_1.quoted)(parent)} record id (${
|
|
350
|
+
description: `The parent ${(0, names_1.quoted)(parent)} record id (${column}). A number or its ` +
|
|
271
351
|
'string form are both accepted; the BFF forwards it to the agent as a string.',
|
|
272
352
|
};
|
|
273
353
|
}
|
|
@@ -492,4 +572,4 @@ function registerUnfoldedPaths(deps, unfolding) {
|
|
|
492
572
|
registerActionOperations(deps, plan, actions);
|
|
493
573
|
});
|
|
494
574
|
}
|
|
495
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5mb2xkZWQtcGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlbmFwaS91bmZvbGRlZC1wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtwQkEsd0NBNkJDO0FBaHFCRCxvRUFBNEM7QUFDNUMsaURBQThDO0FBQzlDLG1FQUFvRTtBQUNwRSx1Q0FjbUI7QUFDbkIsNkNBQXNEO0FBQ3RELDZEQUE0RDtBQUM1RCx5REFBeUQ7QUFFekQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFbEMsTUFBTSxhQUFhLEdBQThEO0lBQy9FLHdCQUF3QixFQUN0QixpRkFBaUY7UUFDakYseUZBQXlGO1FBQ3pGLDRCQUE0QjtJQUM5QixTQUFTLEVBQ1AsMEZBQTBGO1FBQzFGLDRGQUE0RjtRQUM1RixnRUFBZ0U7Q0FDbkUsQ0FBQztBQWdDRixpR0FBaUc7QUFDakcsbUdBQW1HO0FBQ25HLDZDQUE2QztBQUM3QyxTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUNqQixJQUFtQixFQUNuQixJQUFZLEVBQ1osTUFBZ0IsRUFDaEIsV0FBbUI7SUFFbkIsZ0dBQWdHO0lBQ2hHLG9GQUFvRjtJQUNwRixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFFbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFPRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxVQUE2QjtJQUNy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
|
|
575
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5mb2xkZWQtcGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlbmFwaS91bmZvbGRlZC1wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXV2QkEsd0NBNkJDO0FBcndCRCxvRUFBNEM7QUFDNUMsaURBQThDO0FBQzlDLG1FQUFvRTtBQUNwRSx1Q0FjbUI7QUFDbkIsNkNBQXNEO0FBQ3RELDZEQUE0RDtBQUM1RCx5REFBeUQ7QUFFekQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFbEMsTUFBTSxhQUFhLEdBQThEO0lBQy9FLHdCQUF3QixFQUN0QixpRkFBaUY7UUFDakYseUZBQXlGO1FBQ3pGLDRCQUE0QjtJQUM5QixTQUFTLEVBQ1AsMEZBQTBGO1FBQzFGLDRGQUE0RjtRQUM1RixnRUFBZ0U7Q0FDbkUsQ0FBQztBQWdDRixpR0FBaUc7QUFDakcsbUdBQW1HO0FBQ25HLDZDQUE2QztBQUM3QyxTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUNqQixJQUFtQixFQUNuQixJQUFZLEVBQ1osTUFBZ0IsRUFDaEIsV0FBbUI7SUFFbkIsZ0dBQWdHO0lBQ2hHLG9GQUFvRjtJQUNwRixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFFbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsZUFBZSxDQUFDLE1BQXdCO0lBQy9DLE9B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
|
|
@@ -28,19 +28,31 @@ export interface UnfoldedRelation {
|
|
|
28
28
|
*
|
|
29
29
|
* `degraded` is set when the field set could not be established. The collection keeps its paths, but
|
|
30
30
|
* their field schemas stay free-form strings — an empty enum would forbid every valid call.
|
|
31
|
+
*
|
|
32
|
+
* `undocumentableFilter` marks a THIRD state for `filterable`, orthogonal to `degraded`: the
|
|
33
|
+
* capabilities were read and named filterable fields, but at least one was dropped because an
|
|
34
|
+
* operator of it has no canonical mapping. An empty `filterable` then means "the BFF cannot
|
|
35
|
+
* document what this collection filters on", not "it filters on nothing", and the filter schema
|
|
36
|
+
* must stay free-form rather than claim the collection refuses every filter.
|
|
31
37
|
*/
|
|
32
38
|
export interface CollectionFields {
|
|
33
39
|
projectable: ProjectableField[];
|
|
34
40
|
filterable: FilterableField[];
|
|
35
41
|
degraded: DegradedReason | null;
|
|
42
|
+
undocumentableFilter?: true;
|
|
36
43
|
}
|
|
37
44
|
/**
|
|
38
45
|
* A field the agent reports, with the column type it declares. The type is what turns the response
|
|
39
46
|
* records into a typed schema; the name is what the request enums carry.
|
|
47
|
+
*
|
|
48
|
+
* `sortable` mirrors the capabilities field of the same name: only the v1 synthesis ever denies it,
|
|
49
|
+
* from the apimap's `isSortable`, and the sort enum drops the field so the document stops offering a
|
|
50
|
+
* sort the runtime answers 422 field_not_sortable on.
|
|
40
51
|
*/
|
|
41
52
|
export interface ProjectableField {
|
|
42
53
|
name: string;
|
|
43
54
|
type: FieldType;
|
|
55
|
+
sortable?: false;
|
|
44
56
|
}
|
|
45
57
|
/**
|
|
46
58
|
* A field the agent reports at least one operator for, with that operator set — the very set the
|
|
@@ -14,4 +14,4 @@ function isFullyDegraded(unfolding) {
|
|
|
14
14
|
return (unfolding.collections.length > 0 &&
|
|
15
15
|
unfolding.collections.every(collection => collection.fields.degraded !== null));
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5mb2xkaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZW5hcGkvdW5mb2xkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNEVBLHNEQUVDO0FBTUQsMENBS0M7QUFkRCx3RUFBd0U7QUFDeEUsU0FBZ0IscUJBQXFCLENBQUMsU0FBb0I7SUFDeEQsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQUMsU0FBb0I7SUFDbEQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDaEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FDL0UsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { CapabilitiesFetcher } from './capabilities-cache';
|
|
2
|
+
import type ReadModelStore from './read-model-store';
|
|
2
3
|
import type { AgentTransport } from '../agent/agent-transport';
|
|
4
|
+
import type { Logger } from '../ports/logger-port';
|
|
3
5
|
export interface AgentCapabilitiesFetcherOptions {
|
|
4
6
|
transport: AgentTransport;
|
|
5
7
|
/** A borrowed request token, or a factory when the caller can mint one per fetch. */
|
|
6
8
|
token: string | (() => string);
|
|
9
|
+
/** Holds the schema snapshot a 404 is answered from when a legacy liana published it. */
|
|
10
|
+
store: ReadModelStore;
|
|
11
|
+
logger: Logger;
|
|
7
12
|
}
|
|
8
13
|
/**
|
|
9
14
|
* Builds a capabilities fetcher bound to an agent token. The cache calls it only on a miss, so the
|
|
@@ -13,5 +18,5 @@ export interface AgentCapabilitiesFetcherOptions {
|
|
|
13
18
|
* hundreds of collections can outlive a single one, and the tail of that fan-out would fail on an
|
|
14
19
|
* expired token. A request can only borrow its caller's, so it passes the string.
|
|
15
20
|
*/
|
|
16
|
-
export default function createAgentCapabilitiesFetcher({ transport, token, }: AgentCapabilitiesFetcherOptions): CapabilitiesFetcher;
|
|
21
|
+
export default function createAgentCapabilitiesFetcher({ transport, token, store, logger, }: AgentCapabilitiesFetcherOptions): CapabilitiesFetcher;
|
|
17
22
|
//# sourceMappingURL=agent-capabilities-fetcher.d.ts.map
|