@loxtep/sdk 0.9.31 → 0.9.32
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/CHANGELOG.md +17 -0
- package/README.md +1 -0
- package/dist/client/instances-types.d.ts +0 -1
- package/dist/client/instances-types.d.ts.map +1 -1
- package/dist/lib/entity-json-schemas/types.d.ts +9 -0
- package/dist/lib/entity-json-schemas/types.d.ts.map +1 -1
- package/dist/lib/entity-json-schemas/types.js +14 -0
- package/dist/lib/entity-json-schemas/types.js.map +1 -1
- package/dist/lib/workspace-lint.d.ts +7 -0
- package/dist/lib/workspace-lint.d.ts.map +1 -1
- package/dist/lib/workspace-lint.js +68 -25
- package/dist/lib/workspace-lint.js.map +1 -1
- package/package.json +2 -1
- package/schemas/entity-json-schemas/SCHEMA_SYNC.md +10 -11
- package/schemas/entity-json-schemas/SOURCE.json +24 -0
- package/schemas/entity-json-schemas/agent.json +97 -0
- package/schemas/entity-json-schemas/approval.json +92 -0
- package/schemas/entity-json-schemas/connection.json +92 -4
- package/schemas/entity-json-schemas/connector.json +2 -0
- package/schemas/entity-json-schemas/container.json +1 -1
- package/schemas/entity-json-schemas/contract.json +10 -0
- package/schemas/entity-json-schemas/data-product.json +18 -1
- package/schemas/entity-json-schemas/domain.json +15 -0
- package/schemas/entity-json-schemas/export.json +26 -0
- package/schemas/entity-json-schemas/odps-product.json +1 -1
- package/schemas/entity-json-schemas/projection.json +94 -0
- package/schemas/entity-json-schemas/quality-rule.json +10 -0
- package/schemas/entity-json-schemas/schema.json +10 -0
- package/schemas/entity-json-schemas/transformation.json +11 -3
- package/schemas/entity-json-schemas/validation.json +8 -2
- package/schemas/entity-json-schemas/workflow.json +58 -3
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,23 @@ and this project adheres to
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.9.32] - 2026-10-19
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Vendored entity JSON Schemas re-synced from the platform's single source (`platform-backend/_core/src/workspace/entity-json-schemas/`, LoxtepInc/loxtep#3002). The old copy dated from 2026-07-24 and was read from an unused platform directory, so `loxtep lint` rejected valid entities: connection `connector_type` / `transfer_mechanism` / `ingestion_config.primary_key`, transform types `zip_arrays` / `route`, workflow `status: archived` / `archived_at` / `trigger.query_trigger`, data-product `kind` / `schema`, and more. Adds `projection.json`, `approval.json` and `agent.json`. The source commit (LoxtepInc/loxtep `3dbf25ff`, the #3007 squash merge) is pinned in `schemas/entity-json-schemas/SOURCE.json`.
|
|
16
|
+
- `loxtep lint` validates every entity type the SDK ships a schema for: `exports`, `quality-rules`, `containers`, `projections`, `approvals`, `agents`, and `workflows/<id>/_graph.json` (against `workflow-graph.json`). A JSON file at a path lint doesn't recognise is now reported as an error (`Unrecognised file …`) instead of being skipped silently, and it counts in `files_checked`.
|
|
17
|
+
- `InstanceCreateInput.connection_details.observe_api` no longer has `namespace`. POST /instances refuses it (LoxtepInc/loxtep#2956); the platform assigns the namespace.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `EntityType.CONTAINER`, `PROJECTION`, `APPROVAL`, `AGENT` and `WORKFLOW_GRAPH`, plus `classifyPackagePath()` / `RECOGNISED_PACKAGE_PATHS` from the lint module.
|
|
22
|
+
- `pnpm run check:entity-schemas`, run in CI and before publish. It fails when any vendored schema differs from the pinned loxtep commit's git blob, or a file is missing or extra. `--source /path/to/loxtep` also verifies the pin against that checkout. `sync:entity-schemas` now copies from the checkout's HEAD commit, refuses uncommitted source changes, and removes schemas the source no longer has.
|
|
23
|
+
|
|
24
|
+
### Docs
|
|
25
|
+
|
|
26
|
+
- README: an SDK `Trigger` is the platform connection entity, not the workflow `trigger` property.
|
|
27
|
+
|
|
11
28
|
## [0.9.29] - 2026-10-15
|
|
12
29
|
|
|
13
30
|
### Fixed
|
package/README.md
CHANGED
|
@@ -227,6 +227,7 @@ Every method is `snake_case`. APIs live on **namespaced areas** of
|
|
|
227
227
|
- **`.workflows`** — `list`, `get`, `create`, `get_graph`, `deploy`; low-level
|
|
228
228
|
`.get_writer(workflow_id, { bot_id, … })` escape hatch
|
|
229
229
|
- **`.triggers`** — `get`, `list`, `create`, `update`, `delete`, `test`
|
|
230
|
+
- **Naming note:** an SDK `Trigger` (`dist/client/trigger-types.d.ts`) is the platform **connection** entity (`connection_id`, `workflows/<id>/connections/*.json`), validated by `schemas/entity-json-schemas/connection.json`. It is not the workflow's `trigger` property (event / schedule / connector / `query_trigger`), which is part of `workflow.json`. There is no separate trigger entity schema.
|
|
230
231
|
- **`.data_products`** — CRUD, `stream`, `replay`, `get_queue_info`,
|
|
231
232
|
`invalidate_cache`, … (for writes/reads by name, prefer top-level
|
|
232
233
|
`client.get_writer` / `get_reader`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances-types.d.ts","sourceRoot":"","sources":["../../src/client/instances-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;IACd,qHAAqH;IACrH,IAAI,EACA,QAAQ,GACR;QACE,QAAQ,EAAE,QAAQ,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;KAC/B,CAAC;CACP;AAOD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;AAEhE,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE;QACnB,WAAW,CAAC,EAAE;YACZ,sBAAsB,CAAC,EAAE,MAAM,CAAC;YAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"instances-types.d.ts","sourceRoot":"","sources":["../../src/client/instances-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,15 @@ export declare const EntityType: {
|
|
|
14
14
|
readonly CONTRACT: "contracts";
|
|
15
15
|
readonly QUALITY_RULE: "quality-rules";
|
|
16
16
|
readonly EXPORT: "exports";
|
|
17
|
+
readonly CONTAINER: "containers";
|
|
18
|
+
readonly PROJECTION: "projections";
|
|
19
|
+
readonly APPROVAL: "approvals";
|
|
20
|
+
readonly AGENT: "agents";
|
|
21
|
+
/**
|
|
22
|
+
* Materialized `workflows/<id>/_graph.json`. A derived artifact, not a platform
|
|
23
|
+
* EntityType; lint validates it against workflow-graph.json.
|
|
24
|
+
*/
|
|
25
|
+
readonly WORKFLOW_GRAPH: "workflow-graph";
|
|
17
26
|
};
|
|
18
27
|
export type EntityType = (typeof EntityType)[keyof typeof EntityType];
|
|
19
28
|
/** Map entity type → schema filename (without path). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;IAgBrB;;;OAGG;;CAEK,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEtE,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAiB1D,CAAC"}
|
|
@@ -14,6 +14,15 @@ export const EntityType = {
|
|
|
14
14
|
CONTRACT: 'contracts',
|
|
15
15
|
QUALITY_RULE: 'quality-rules',
|
|
16
16
|
EXPORT: 'exports',
|
|
17
|
+
CONTAINER: 'containers',
|
|
18
|
+
PROJECTION: 'projections',
|
|
19
|
+
APPROVAL: 'approvals',
|
|
20
|
+
AGENT: 'agents',
|
|
21
|
+
/**
|
|
22
|
+
* Materialized `workflows/<id>/_graph.json`. A derived artifact, not a platform
|
|
23
|
+
* EntityType; lint validates it against workflow-graph.json.
|
|
24
|
+
*/
|
|
25
|
+
WORKFLOW_GRAPH: 'workflow-graph',
|
|
17
26
|
};
|
|
18
27
|
/** Map entity type → schema filename (without path). */
|
|
19
28
|
export const ENTITY_SCHEMA_FILES = {
|
|
@@ -28,5 +37,10 @@ export const ENTITY_SCHEMA_FILES = {
|
|
|
28
37
|
[EntityType.CONTRACT]: 'contract.json',
|
|
29
38
|
[EntityType.QUALITY_RULE]: 'quality-rule.json',
|
|
30
39
|
[EntityType.EXPORT]: 'export.json',
|
|
40
|
+
[EntityType.CONTAINER]: 'container.json',
|
|
41
|
+
[EntityType.PROJECTION]: 'projection.json',
|
|
42
|
+
[EntityType.APPROVAL]: 'approval.json',
|
|
43
|
+
[EntityType.AGENT]: 'agent.json',
|
|
44
|
+
[EntityType.WORKFLOW_GRAPH]: 'workflow-graph.json',
|
|
31
45
|
};
|
|
32
46
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,WAAW;IACrB,cAAc,EAAE,iBAAiB;IACjC,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/entity-json-schemas/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,WAAW;IACrB,cAAc,EAAE,iBAAiB;IACjC,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,QAAQ;IACf;;;OAGG;IACH,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAIX,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAA+B;IAC7D,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa;IAClC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,gBAAgB;IACxC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,iBAAiB;IAC1C,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,eAAe;IACtC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,qBAAqB;IAClD,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,iBAAiB;IAC1C,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,mBAAmB;IAC9C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa;IAClC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,eAAe;IACtC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,mBAAmB;IAC9C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa;IAClC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,gBAAgB;IACxC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,iBAAiB;IAC1C,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,eAAe;IACtC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,YAAY;IAChC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,qBAAqB;CACnD,CAAC"}
|
|
@@ -31,6 +31,13 @@ export interface LintOptions {
|
|
|
31
31
|
export declare const DATA_PRODUCT_TRIGGER_TYPE: "data-product-trigger";
|
|
32
32
|
/** Rejected legacy spelling — lint fails with a rename message. */
|
|
33
33
|
export declare const DATA_PRODUCT_TRIGGER_TYPE_LEGACY: "data_product_trigger";
|
|
34
|
+
/** Human-readable list of the paths lint understands (used in the unrecognised-file issue). */
|
|
35
|
+
export declare const RECOGNISED_PACKAGE_PATHS: readonly string[];
|
|
36
|
+
/**
|
|
37
|
+
* Map a package-relative path to the entity type whose shipped schema validates it.
|
|
38
|
+
* Returns null for a path lint does not recognise; callers must report it, not skip it.
|
|
39
|
+
*/
|
|
40
|
+
export declare function classifyPackagePath(relPath: string): (typeof EntityType)[keyof typeof EntityType] | null;
|
|
34
41
|
/**
|
|
35
42
|
* Resolve the entity's own primary ID for its type.
|
|
36
43
|
* Never prefers parent/reference IDs (workflow_id, connector_id on connections, etc.).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-lint.d.ts","sourceRoot":"","sources":["../../src/lib/workspace-lint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAkB,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAQD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAG,sBAA+B,CAAC;AAEzE,mEAAmE;AACnE,eAAO,MAAM,gCAAgC,EAAG,sBAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-lint.d.ts","sourceRoot":"","sources":["../../src/lib/workspace-lint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAkB,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAQD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAG,sBAA+B,CAAC;AAEzE,mEAAmE;AACnE,eAAO,MAAM,gCAAgC,EAAG,sBAA+B,CAAC;AAiFhF,+FAA+F;AAC/F,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAQrD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GACd,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,GAAG,IAAI,CA0BrD;AA8DD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,UAAU,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGrF;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAKzF;AAgKD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAyGjE;AAiDD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAcjE"}
|
|
@@ -25,6 +25,10 @@ const ENTITY_PRIMARY_ID_KEYS = {
|
|
|
25
25
|
[EntityType.CONTRACT]: 'contract_id',
|
|
26
26
|
[EntityType.QUALITY_RULE]: 'quality_rule_id',
|
|
27
27
|
[EntityType.EXPORT]: 'export_id',
|
|
28
|
+
[EntityType.CONTAINER]: 'container_id',
|
|
29
|
+
[EntityType.PROJECTION]: 'projection_id',
|
|
30
|
+
[EntityType.APPROVAL]: 'approval_node_id',
|
|
31
|
+
[EntityType.AGENT]: 'agent_node_id',
|
|
28
32
|
};
|
|
29
33
|
/** Entity types that may appear as upstream_entity_id targets within a package. */
|
|
30
34
|
const UPSTREAM_REFERENCE_ENTITY_TYPES = new Set([
|
|
@@ -67,38 +71,64 @@ function listJsonFiles(dir) {
|
|
|
67
71
|
}
|
|
68
72
|
return out;
|
|
69
73
|
}
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
/** Workflow-scoped entity folders (`workflows/<id>/<segment>/<file>.json`). */
|
|
75
|
+
const WORKFLOW_SCOPED_SEGMENTS = [
|
|
76
|
+
['connections', EntityType.CONNECTION],
|
|
77
|
+
['data-products', EntityType.DATA_PRODUCT],
|
|
78
|
+
['transformations', EntityType.TRANSFORMATION],
|
|
79
|
+
['validations', EntityType.VALIDATION],
|
|
80
|
+
['schemas', EntityType.SCHEMA],
|
|
81
|
+
['contracts', EntityType.CONTRACT],
|
|
82
|
+
['quality-rules', EntityType.QUALITY_RULE],
|
|
83
|
+
['exports', EntityType.EXPORT],
|
|
84
|
+
['containers', EntityType.CONTAINER],
|
|
85
|
+
['projections', EntityType.PROJECTION],
|
|
86
|
+
['approvals', EntityType.APPROVAL],
|
|
87
|
+
['agents', EntityType.AGENT],
|
|
88
|
+
];
|
|
89
|
+
/** Human-readable list of the paths lint understands (used in the unrecognised-file issue). */
|
|
90
|
+
export const RECOGNISED_PACKAGE_PATHS = [
|
|
91
|
+
'connectors/<file>.json',
|
|
92
|
+
'domains/<file>.json',
|
|
93
|
+
'schemas/<file>.json',
|
|
94
|
+
'contracts/<file>.json',
|
|
95
|
+
'workflows/<id>/workflow.json',
|
|
96
|
+
'workflows/<id>/_graph.json',
|
|
97
|
+
...WORKFLOW_SCOPED_SEGMENTS.map(([segment]) => `workflows/<id>/${segment}/<file>.json`),
|
|
98
|
+
];
|
|
99
|
+
/**
|
|
100
|
+
* Map a package-relative path to the entity type whose shipped schema validates it.
|
|
101
|
+
* Returns null for a path lint does not recognise; callers must report it, not skip it.
|
|
102
|
+
*/
|
|
103
|
+
export function classifyPackagePath(relPath) {
|
|
104
|
+
const rel = relPath.replace(/\\/g, '/');
|
|
72
105
|
if (rel.startsWith('connectors/') && rel.endsWith('.json')) {
|
|
73
106
|
return EntityType.CONNECTOR;
|
|
74
107
|
}
|
|
75
|
-
if (rel.match(/^workflows\/[^/]+\/workflow\.json$/)) {
|
|
76
|
-
return EntityType.WORKFLOW;
|
|
77
|
-
}
|
|
78
|
-
if (rel.match(/^workflows\/[^/]+\/connections\/[^/]+\.json$/)) {
|
|
79
|
-
return EntityType.CONNECTION;
|
|
80
|
-
}
|
|
81
|
-
if (rel.match(/^workflows\/[^/]+\/data-products\/[^/]+\.json$/)) {
|
|
82
|
-
return EntityType.DATA_PRODUCT;
|
|
83
|
-
}
|
|
84
|
-
if (rel.match(/^workflows\/[^/]+\/transformations\/[^/]+\.json$/)) {
|
|
85
|
-
return EntityType.TRANSFORMATION;
|
|
86
|
-
}
|
|
87
|
-
if (rel.match(/^workflows\/[^/]+\/validations\/[^/]+\.json$/)) {
|
|
88
|
-
return EntityType.VALIDATION;
|
|
89
|
-
}
|
|
90
108
|
if (rel.startsWith('domains/') && rel.endsWith('.json')) {
|
|
91
109
|
return EntityType.DOMAIN;
|
|
92
110
|
}
|
|
93
|
-
if (
|
|
111
|
+
if (/^schemas\/[^/]+\.json$/.test(rel)) {
|
|
94
112
|
return EntityType.SCHEMA;
|
|
95
113
|
}
|
|
96
|
-
if (
|
|
114
|
+
if (/^contracts\/[^/]+\.json$/.test(rel)) {
|
|
97
115
|
return EntityType.CONTRACT;
|
|
98
116
|
}
|
|
117
|
+
if (/^workflows\/[^/]+\/workflow\.json$/.test(rel)) {
|
|
118
|
+
return EntityType.WORKFLOW;
|
|
119
|
+
}
|
|
120
|
+
if (/^workflows\/[^/]+\/_graph\.json$/.test(rel)) {
|
|
121
|
+
return EntityType.WORKFLOW_GRAPH;
|
|
122
|
+
}
|
|
123
|
+
const scoped = rel.match(/^workflows\/[^/]+\/([^/]+)\/[^/]+\.json$/);
|
|
124
|
+
if (scoped) {
|
|
125
|
+
const hit = WORKFLOW_SCOPED_SEGMENTS.find(([segment]) => segment === scoped[1]);
|
|
126
|
+
if (hit)
|
|
127
|
+
return hit[1];
|
|
128
|
+
}
|
|
99
129
|
return null;
|
|
100
130
|
}
|
|
101
|
-
function discoverEntities(projectDir, workflowId) {
|
|
131
|
+
function discoverEntities(projectDir, workflowId, unrecognised = []) {
|
|
102
132
|
const entities = [];
|
|
103
133
|
const roots = [
|
|
104
134
|
join(projectDir, 'connectors'),
|
|
@@ -114,11 +144,13 @@ function discoverEntities(projectDir, workflowId) {
|
|
|
114
144
|
}
|
|
115
145
|
for (const root of roots) {
|
|
116
146
|
for (const filePath of listJsonFiles(root)) {
|
|
117
|
-
const
|
|
118
|
-
|
|
147
|
+
const rel = relative(projectDir, filePath).replace(/\\/g, '/');
|
|
148
|
+
const entityType = classifyPackagePath(rel);
|
|
149
|
+
if (!entityType) {
|
|
150
|
+
unrecognised.push(rel);
|
|
119
151
|
continue;
|
|
152
|
+
}
|
|
120
153
|
const data = readJsonObject(filePath);
|
|
121
|
-
const rel = relative(projectDir, filePath).replace(/\\/g, '/');
|
|
122
154
|
if (!data) {
|
|
123
155
|
entities.push({
|
|
124
156
|
path: rel,
|
|
@@ -323,8 +355,19 @@ export function lintLocalPackage(options) {
|
|
|
323
355
|
issues: [{ path: projectDir, severity: 'error', message: 'Project directory not found' }],
|
|
324
356
|
};
|
|
325
357
|
}
|
|
326
|
-
const
|
|
358
|
+
const unrecognised = [];
|
|
359
|
+
const entities = discoverEntities(projectDir, workflow_id, unrecognised);
|
|
327
360
|
const byType = buildEntityIndex(entities);
|
|
361
|
+
// A file lint cannot classify is never silently skipped: it is reported so the
|
|
362
|
+
// author either moves it to a recognised path or removes it.
|
|
363
|
+
for (const rel of unrecognised.sort()) {
|
|
364
|
+
issues.push({
|
|
365
|
+
path: rel,
|
|
366
|
+
severity: 'error',
|
|
367
|
+
message: 'Unrecognised file: not a Loxtep entity path, so lint cannot validate it. ' +
|
|
368
|
+
`Expected one of: ${RECOGNISED_PACKAGE_PATHS.join(', ')}`,
|
|
369
|
+
});
|
|
370
|
+
}
|
|
328
371
|
for (const entity of entities) {
|
|
329
372
|
if (Object.keys(entity.data).length === 0) {
|
|
330
373
|
issues.push({
|
|
@@ -393,7 +436,7 @@ export function lintLocalPackage(options) {
|
|
|
393
436
|
return {
|
|
394
437
|
ok: issues.length === 0,
|
|
395
438
|
issues,
|
|
396
|
-
files_checked: entities.length,
|
|
439
|
+
files_checked: entities.length + unrecognised.length,
|
|
397
440
|
};
|
|
398
441
|
}
|
|
399
442
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-lint.js","sourceRoot":"","sources":["../../src/lib/workspace-lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-lint.js","sourceRoot":"","sources":["../../src/lib/workspace-lint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAgC5E;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAA+B,CAAC;AAEzE,mEAAmE;AACnE,MAAM,CAAC,MAAM,gCAAgC,GAAG,sBAA+B,CAAC;AAEhF,gFAAgF;AAChF,MAAM,sBAAsB,GAExB;IACF,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,cAAc;IACtC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,eAAe;IACxC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa;IACpC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,mBAAmB;IAChD,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,eAAe;IACxC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,iBAAiB;IAC5C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW;IAChC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW;IAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa;IACpC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,iBAAiB;IAC5C,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW;IAChC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,cAAc;IACtC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,eAAe;IACxC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,kBAAkB;IACzC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,eAAe;CACpC,CAAC;AAEF,mFAAmF;AACnF,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAA+C;IAC5F,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,YAAY;CACxB,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAY,CAAC;QAClE,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,GAA8B,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC;QACP,IAAI,CAAC;YACH,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,MAAM,wBAAwB,GAE1B;IACF,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;IACtC,CAAC,eAAe,EAAE,UAAU,CAAC,YAAY,CAAC;IAC1C,CAAC,iBAAiB,EAAE,UAAU,CAAC,cAAc,CAAC;IAC9C,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;IACtC,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC;IAC9B,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC;IAClC,CAAC,eAAe,EAAE,UAAU,CAAC,YAAY,CAAC;IAC1C,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC;IAC9B,CAAC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC;IACpC,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;IACtC,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC;IAClC,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;CAC7B,CAAC;AAEF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,8BAA8B;IAC9B,4BAA4B;IAC5B,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,kBAAkB,OAAO,cAAc,CAAC;CACxF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe;IAEf,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACD,IAAI,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACD,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,UAAU,CAAC,cAAc,CAAC;IACnC,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACrE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAkB,EAClB,UAAmB,EACnB,eAAyB,EAAE;IAE3B,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAa;QACtB,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;KAC9B,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,GAAG;oBACT,UAAU;oBACV,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,MAAwB;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACxE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAG/B;IACC,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAA6B;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC;IAC7C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,yBAAyB,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAAC,IAA6B;IAC9E,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,IAAI,CACpB,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,gCAAgC,CAClF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,UAAkB;IACzD,OAAO,CACL,OAAO,KAAK,aAAa,UAAU,gBAAgB;QACnD,OAAO,CAAC,UAAU,CAAC,aAAa,UAAU,GAAG,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,gCAAgC,CACvC,QAA4B,EAC5B,MAAmB,EACnB,eAAwB;IAGxB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE5C,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GACR,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;YACvC,CAAC,CAAE,UAAoB;YACvB,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,YAAY;gBAC7C,CAAC,CAAE,cAAwB;gBAC3B,CAAC,CAAC,IAAI,CAAC;QACb,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAA4B,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;YAAE,SAAS;QAE5B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,eAAe;YAC5B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC/D,CAAC,CAAC,QAAQ,CAAC;QACb,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,QAAQ;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;iBACnC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAChB,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACL,aAAa,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,oBAAoB;oBAC/D,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,QAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+E,CAAC;IACtG,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yBAAyB,CAChC,IAA6B;IAE7B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAC/C,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACvD,IAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnE,OAAO,YAA4D,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAwF,EACxF,UAAkB,EAClB,aAA4D;IAE5D,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,+BAA+B,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC9B,QAA4B,EAC5B,MAAwF,EACxF,MAAmB;IAEnB,MAAM,gBAAgB,GAAwD;QAC5E,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,UAAU;KACtB,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;YAAE,SAAS;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEpE,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,4EAA4E;YAC5E,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EACL,uBAAuB,QAAQ,UAAU,SAAS,CAAC,UAAU,WAAW;4BACxE,gCAAgC,aAAa,GAAG;qBACnD,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,aAAa;oBACpB,CAAC,CAAC,uBAAuB,QAAQ,kBAAkB,aAAa,mBAAmB;oBACnF,CAAC,CAAC,uBAAuB,QAAQ,8BAA8B;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoB;IACnD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE1C,+EAA+E;IAC/E,6DAA6D;IAC7D,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,OAAO;YACjB,OAAO,EACL,2EAA2E;gBAC3E,oBAAoB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,mCAAmC;aAC7C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE;oBACjC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YAChD,IAAI,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,4BAA4B,yBAAyB,IAAI;wBACzD,SAAS,gCAAgC,IAAI;iBAChD,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,yDAAyD;YACzD,IAAI,8BAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC7C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,+EAA+E;gBAC/E,mFAAmF;gBACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC;gBACpF,IACE,eAAe,CAAC,MAAM,GAAG,CAAC;oBAC1B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC,EAC/D,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,iBAAiB,WAAW,+BAA+B;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,oCAAoC;iBAC9C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEjF,mFAAmF;IACnF,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzF,gCAAgC,CAAC,kBAAkB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAE1E,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QACvB,MAAM;QACN,aAAa,EAAE,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;KACrD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1D,CAAC;AAGD,SAAS,uBAAuB,CAAC,QAA4B;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM;YAAE,SAAS;QACtD,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAU,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B,CAClC,QAA4B,EAC5B,MAAmB,EACnB,yBAAoC;IAEpC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IAC3D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;YAAE,SAAS;QACxD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QAC9C,MAAM,SAAS,GAAI,GAAuC,CAAC,iBAAiB,CAAC;QAC7E,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACtE,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAClE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EACL,iCAAiC,SAAS,+CAA+C;SAC5F,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;IACtC,CAAC;IACD,OAAO,CACL,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1C,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CACzD,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loxtep/sdk",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.32",
|
|
4
4
|
"description": "Loxtep SDK for Node.js — the Enterprise Context Layer: data products, workflows, projects, queues, and machine-usable context for AI",
|
|
5
5
|
"author": "Loxtep <engineering@loxtep.io>",
|
|
6
6
|
"homepage": "https://loxtep.io",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"test": "jest --config jest.config.cjs",
|
|
44
44
|
"lint": "eslint src --ext .ts",
|
|
45
45
|
"sync:entity-schemas": "node scripts/sync-entity-schemas.mjs",
|
|
46
|
+
"check:entity-schemas": "node scripts/check-entity-schemas.mjs",
|
|
46
47
|
"generate:api-types": "tsx scripts/generate-api-types.ts",
|
|
47
48
|
"docs": "typedoc",
|
|
48
49
|
"test:e2e:cli": "bash scripts/cli-e2e.sh",
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
# Entity JSON schemas (vendored)
|
|
2
2
|
|
|
3
|
-
These JSON Schema draft-07 files are
|
|
4
|
-
|
|
3
|
+
These JSON Schema draft-07 files are byte-identical copies of the Loxtep platform's
|
|
4
|
+
single entity-schema source, used by `loxtep lint` and `validateEntity()`.
|
|
5
5
|
|
|
6
|
-
**Source
|
|
7
|
-
|
|
8
|
-
change.
|
|
6
|
+
**Source:** `LoxtepInc/loxtep` `platform-backend/_core/src/workspace/entity-json-schemas/`
|
|
7
|
+
**Pinned commit:** `3dbf25ff227874d1a475c7a82939893fcc4c222b` (git blob ids per file in `SOURCE.json`)
|
|
9
8
|
|
|
10
|
-
**Sync
|
|
9
|
+
**Sync** (from `nodejs/`, with a loxtep checkout at the commit to pin):
|
|
11
10
|
|
|
12
11
|
```bash
|
|
13
|
-
|
|
12
|
+
pnpm run sync:entity-schemas /path/to/loxtep
|
|
13
|
+
pnpm run check:entity-schemas
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
**Last synced:** 2026-07-24 (from local Loxtep platform checkout)
|
|
16
|
+
`check:entity-schemas` runs in CI and before publish. It fails if any vendored file
|
|
17
|
+
differs from the pinned commit's blob, or if a file is missing or extra. Do not edit
|
|
18
|
+
these files by hand; re-sync instead and note the commit in CHANGELOG.md.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repository": "LoxtepInc/loxtep",
|
|
3
|
+
"path": "platform-backend/_core/src/workspace/entity-json-schemas",
|
|
4
|
+
"commit": "3dbf25ff227874d1a475c7a82939893fcc4c222b",
|
|
5
|
+
"files": {
|
|
6
|
+
"agent.json": "925caaa71058fea41f4820a92232169af9e391b3",
|
|
7
|
+
"approval.json": "b341fe232f1f2a7ceb3d100f9475abc3ca790c22",
|
|
8
|
+
"connection.json": "7252312151bdaebd2ee579208636b0b1c73aacb2",
|
|
9
|
+
"connector.json": "712b7f7abb0c06aecd29a76b667950a0eda070d7",
|
|
10
|
+
"container.json": "3b5b3a51d4f27645e3db2e8e2992aeee984de5ee",
|
|
11
|
+
"contract.json": "04fec0f7f4c26890e8163d88770a5613316b245d",
|
|
12
|
+
"data-product.json": "ceb1b6211740b85be37dd4ce64753db240c42851",
|
|
13
|
+
"domain.json": "42e83648bdebec54fabdb1ba9f7d7a1369f3ba05",
|
|
14
|
+
"export.json": "44ef4bb5c21860a66cd57d86e06a66ff7813c225",
|
|
15
|
+
"odps-product.json": "53b8eb5eb070d0d1e60a91fe908e038ee3e5d599",
|
|
16
|
+
"projection.json": "5457e3f233f936d3fba38bc8513fb99a54961607",
|
|
17
|
+
"quality-rule.json": "917a26d325d47c39d68630df5bd9e0c0c411a246",
|
|
18
|
+
"schema.json": "38940cc4e8b59a70cf44699459af0b8a09f0fc52",
|
|
19
|
+
"transformation.json": "7f5c8a5f771964d0637ec2f38def6d7c8dbd3fd1",
|
|
20
|
+
"validation.json": "bba581abb2f12a360ba910f7ed912bafdefa81dd",
|
|
21
|
+
"workflow-graph.json": "9715eea18965bea97fc5546edb4b37629c77315b",
|
|
22
|
+
"workflow.json": "afe25e55833ac957bdcd62d32e6c9df83779c54b"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://loxtep.io/schemas/entity/agent.json",
|
|
4
|
+
"title": "Agent Node Entity",
|
|
5
|
+
"description": "JSON Schema for Agent node entity (workflows/{workflow_id}/agents/{id}.json). AI model invocation node in the streaming pipeline. Bounds match graph-patch-apply validateAgentNodePayload. additionalProperties stays open because AgentNodeEntity ([key: string]: unknown) and graph patch node_config carry runtime-specific keys; known fields are typed and required fields are enforced.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"agent_node_id",
|
|
9
|
+
"workflow_id",
|
|
10
|
+
"name",
|
|
11
|
+
"model_id",
|
|
12
|
+
"prompt_template"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"agent_node_id": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1,
|
|
18
|
+
"description": "Unique identifier for the agent node"
|
|
19
|
+
},
|
|
20
|
+
"workflow_id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"format": "uuid",
|
|
23
|
+
"description": "Workflow this agent node belongs to"
|
|
24
|
+
},
|
|
25
|
+
"name": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"minLength": 1,
|
|
28
|
+
"maxLength": 128,
|
|
29
|
+
"description": "Display name (1-128 characters)"
|
|
30
|
+
},
|
|
31
|
+
"model_id": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"minLength": 1,
|
|
34
|
+
"maxLength": 256,
|
|
35
|
+
"description": "Model identifier to invoke (1-256 characters)"
|
|
36
|
+
},
|
|
37
|
+
"prompt_template": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1,
|
|
40
|
+
"maxLength": 10000,
|
|
41
|
+
"description": "Prompt template rendered with the event payload (1-10000 characters)"
|
|
42
|
+
},
|
|
43
|
+
"timeout_seconds": {
|
|
44
|
+
"type": "number",
|
|
45
|
+
"minimum": 1,
|
|
46
|
+
"maximum": 300,
|
|
47
|
+
"description": "Invocation timeout in seconds (1-300)"
|
|
48
|
+
},
|
|
49
|
+
"output_schema": {
|
|
50
|
+
"type": ["object", "null"],
|
|
51
|
+
"description": "Optional JSON Schema for the model output (at most 50KB serialized)"
|
|
52
|
+
},
|
|
53
|
+
"error_queue_name": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"minLength": 1,
|
|
56
|
+
"description": "Queue that receives failed invocations"
|
|
57
|
+
},
|
|
58
|
+
"upstream_entity_id": {
|
|
59
|
+
"type": ["string", "null"],
|
|
60
|
+
"description": "Upstream node in the workflow graph"
|
|
61
|
+
},
|
|
62
|
+
"upstream_entity_type": {
|
|
63
|
+
"type": ["string", "null"],
|
|
64
|
+
"description": "Entity type of the upstream node"
|
|
65
|
+
},
|
|
66
|
+
"upstream_label": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"enum": ["approved", "rejected", "error"],
|
|
69
|
+
"description": "Labelled edge from the upstream node (approval branches)"
|
|
70
|
+
},
|
|
71
|
+
"description": {
|
|
72
|
+
"type": ["string", "null"],
|
|
73
|
+
"description": "Free-text description"
|
|
74
|
+
},
|
|
75
|
+
"organization_id": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"format": "uuid",
|
|
78
|
+
"description": "Organization that owns this node"
|
|
79
|
+
},
|
|
80
|
+
"project_id": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"format": "uuid",
|
|
83
|
+
"description": "Project that owns this node"
|
|
84
|
+
},
|
|
85
|
+
"created_at": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"format": "date-time",
|
|
88
|
+
"description": "ISO 8601 timestamp when the node was created"
|
|
89
|
+
},
|
|
90
|
+
"updated_at": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"format": "date-time",
|
|
93
|
+
"description": "ISO 8601 timestamp when the node was last updated"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"additionalProperties": true
|
|
97
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://loxtep.io/schemas/entity/approval.json",
|
|
4
|
+
"title": "Approval Node Entity",
|
|
5
|
+
"description": "JSON Schema for Approval node entity (workflows/{workflow_id}/approvals/{id}.json). Human-in-the-loop gate that pauses event flow pending a decision. Bounds match graph-patch-apply validateApprovalNodePayload. additionalProperties stays open because ApprovalNodeEntity ([key: string]: unknown) and graph patch node_config carry runtime-specific keys; known fields are typed and required fields are enforced.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"approval_node_id",
|
|
9
|
+
"workflow_id",
|
|
10
|
+
"name",
|
|
11
|
+
"approval_channel",
|
|
12
|
+
"timeout_hours"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"approval_node_id": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1,
|
|
18
|
+
"description": "Unique identifier for the approval node"
|
|
19
|
+
},
|
|
20
|
+
"workflow_id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"format": "uuid",
|
|
23
|
+
"description": "Workflow this approval node belongs to"
|
|
24
|
+
},
|
|
25
|
+
"name": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"minLength": 1,
|
|
28
|
+
"maxLength": 128,
|
|
29
|
+
"description": "Display name (1-128 characters)"
|
|
30
|
+
},
|
|
31
|
+
"approval_channel": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"minLength": 1,
|
|
34
|
+
"maxLength": 256,
|
|
35
|
+
"description": "Channel where approval requests are sent (1-256 characters)"
|
|
36
|
+
},
|
|
37
|
+
"timeout_hours": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"minimum": 1,
|
|
40
|
+
"maximum": 168,
|
|
41
|
+
"description": "Hours before the approval request times out (1-168)"
|
|
42
|
+
},
|
|
43
|
+
"approved_queue_name": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"minLength": 1,
|
|
46
|
+
"description": "Queue that receives approved events"
|
|
47
|
+
},
|
|
48
|
+
"rejected_queue_name": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"minLength": 1,
|
|
51
|
+
"description": "Queue that receives rejected events"
|
|
52
|
+
},
|
|
53
|
+
"upstream_entity_id": {
|
|
54
|
+
"type": ["string", "null"],
|
|
55
|
+
"description": "Upstream node in the workflow graph"
|
|
56
|
+
},
|
|
57
|
+
"upstream_entity_type": {
|
|
58
|
+
"type": ["string", "null"],
|
|
59
|
+
"description": "Entity type of the upstream node"
|
|
60
|
+
},
|
|
61
|
+
"upstream_label": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": ["approved", "rejected", "error"],
|
|
64
|
+
"description": "Labelled edge from the upstream node (approval branches)"
|
|
65
|
+
},
|
|
66
|
+
"description": {
|
|
67
|
+
"type": ["string", "null"],
|
|
68
|
+
"description": "Free-text description"
|
|
69
|
+
},
|
|
70
|
+
"organization_id": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"format": "uuid",
|
|
73
|
+
"description": "Organization that owns this node"
|
|
74
|
+
},
|
|
75
|
+
"project_id": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"format": "uuid",
|
|
78
|
+
"description": "Project that owns this node"
|
|
79
|
+
},
|
|
80
|
+
"created_at": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"format": "date-time",
|
|
83
|
+
"description": "ISO 8601 timestamp when the node was created"
|
|
84
|
+
},
|
|
85
|
+
"updated_at": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"format": "date-time",
|
|
88
|
+
"description": "ISO 8601 timestamp when the node was last updated"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"additionalProperties": true
|
|
92
|
+
}
|
|
@@ -67,6 +67,11 @@
|
|
|
67
67
|
"minLength": 1,
|
|
68
68
|
"description": "Connection type: database, api, webhook, file, or connector type (e.g. spotify, shopify)"
|
|
69
69
|
},
|
|
70
|
+
"connector_type": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"minLength": 1,
|
|
73
|
+
"description": "Connector package type emitted on connection-created (for example data-product-trigger). Distinct from type when a template sets both."
|
|
74
|
+
},
|
|
70
75
|
"status": {
|
|
71
76
|
"type": "string",
|
|
72
77
|
"enum": ["active", "inactive", "error"],
|
|
@@ -186,6 +191,15 @@
|
|
|
186
191
|
"type": ["string", "null"],
|
|
187
192
|
"description": "Cron expression (LeoCron `time`) or platform-supported schedule string for this connection's registered bot. Distinct from `polling_interval_ms`, which is a millisecond gap for application-level throttling between requests—not the Leo schedule field."
|
|
188
193
|
},
|
|
194
|
+
"primary_key": {
|
|
195
|
+
"type": "array",
|
|
196
|
+
"minItems": 1,
|
|
197
|
+
"description": "Business-identity field names. A top-level primary_key is still read, and the next connection save moves it here.",
|
|
198
|
+
"items": {
|
|
199
|
+
"type": "string",
|
|
200
|
+
"minLength": 1
|
|
201
|
+
}
|
|
202
|
+
},
|
|
189
203
|
"runtime_memory_mb": {
|
|
190
204
|
"description": "Shared runtimes tier for trigger registration (256–2048). Defaults to 256 when unset. LeoCron `lambdaName`: `w-{org4}-{inst4}-bot-connectors-{mb}-rtime`; bot id: `w-{org4}-{inst4}-{workflow4}-bot-connectors-{mb}-{container_id}`. Instance `connection_details.runtimes_stack_identifier` may override the org/instance middle segment (CDK `microserviceIdentifier` = `w-{that middle}`).",
|
|
191
205
|
"oneOf": [
|
|
@@ -212,6 +226,80 @@
|
|
|
212
226
|
"timeout_ms": {
|
|
213
227
|
"type": ["integer", "null"],
|
|
214
228
|
"description": "Request/timeout in milliseconds"
|
|
229
|
+
},
|
|
230
|
+
"type": {
|
|
231
|
+
"type": ["string", "null"],
|
|
232
|
+
"description": "Ingestion mode. Use api_poll for REST pollers."
|
|
233
|
+
},
|
|
234
|
+
"url": {
|
|
235
|
+
"type": ["string", "null"],
|
|
236
|
+
"description": "Request URL or URL template. For entity_loop include {key} (e.g. https://api.example.com/V2/products?styleID={styleID}). The rest-api runtime refuses to fire if the required key would be missing (unfiltered child collection URLs)."
|
|
237
|
+
},
|
|
238
|
+
"pagination": {
|
|
239
|
+
"type": ["object", "null"],
|
|
240
|
+
"description": "Page-to-exhaustion settings for rest-api pollers. S&S uses type=page, page_param=page, page_size_param=perPage, page_size=100, start_page=1.",
|
|
241
|
+
"properties": {
|
|
242
|
+
"type": {
|
|
243
|
+
"type": "string",
|
|
244
|
+
"enum": ["page", "offset", "cursor", "none"]
|
|
245
|
+
},
|
|
246
|
+
"page_param": {
|
|
247
|
+
"type": "string",
|
|
248
|
+
"description": "Query param for page index. Default page."
|
|
249
|
+
},
|
|
250
|
+
"page_size_param": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"description": "Query param for page size (pageSize or perPage)."
|
|
253
|
+
},
|
|
254
|
+
"page_size": { "type": "integer" },
|
|
255
|
+
"start_page": {
|
|
256
|
+
"type": "integer",
|
|
257
|
+
"description": "First page index. Default 1."
|
|
258
|
+
},
|
|
259
|
+
"cursor_field": { "type": "string" },
|
|
260
|
+
"next_url_field": { "type": "string" },
|
|
261
|
+
"offset_param": { "type": "string" },
|
|
262
|
+
"limit_param": { "type": "string" }
|
|
263
|
+
},
|
|
264
|
+
"additionalProperties": true
|
|
265
|
+
},
|
|
266
|
+
"entity_loop": {
|
|
267
|
+
"type": ["object", "null"],
|
|
268
|
+
"description": "Generic rest-api fan-out: resolve entity keys from a parent data product or parent_poll, substitute {key} into the child URL, page each entity to exhaustion, skip per-entity 4xx, and checkpoint across scheduled runs. Not vendor-specific.",
|
|
269
|
+
"properties": {
|
|
270
|
+
"key": {
|
|
271
|
+
"type": "string",
|
|
272
|
+
"description": "Entity field / URL placeholder (e.g. styleID)."
|
|
273
|
+
},
|
|
274
|
+
"source": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"enum": ["data_product", "parent_poll"],
|
|
277
|
+
"description": "data_product uses data_product_id (optional parent_poll to enumerate keys). parent_poll pages parent_poll.url."
|
|
278
|
+
},
|
|
279
|
+
"data_product_id": {
|
|
280
|
+
"type": "string",
|
|
281
|
+
"format": "uuid",
|
|
282
|
+
"description": "Parent data product that holds the entity keys (graph bind / lineage)."
|
|
283
|
+
},
|
|
284
|
+
"source_queue": {
|
|
285
|
+
"type": "string",
|
|
286
|
+
"description": "Optional parent rstreams queue name."
|
|
287
|
+
},
|
|
288
|
+
"parent_poll": {
|
|
289
|
+
"type": "object",
|
|
290
|
+
"description": "HTTP parent catalog used to resolve keys (page to exhaustion).",
|
|
291
|
+
"properties": {
|
|
292
|
+
"url": { "type": "string" },
|
|
293
|
+
"base_url": { "type": "string" },
|
|
294
|
+
"pagination": { "type": "object" },
|
|
295
|
+
"data_path": { "type": "string" },
|
|
296
|
+
"query_params": { "type": "object" }
|
|
297
|
+
},
|
|
298
|
+
"additionalProperties": true
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"required": ["key", "source"],
|
|
302
|
+
"additionalProperties": true
|
|
215
303
|
}
|
|
216
304
|
},
|
|
217
305
|
"additionalProperties": true
|
|
@@ -233,7 +321,7 @@
|
|
|
233
321
|
],
|
|
234
322
|
"description": "Authentication type for the connection (optional, backwards compat)."
|
|
235
323
|
},
|
|
236
|
-
"
|
|
324
|
+
"transfer_mechanism": {
|
|
237
325
|
"type": ["string", "null"],
|
|
238
326
|
"enum": [
|
|
239
327
|
"polling",
|
|
@@ -246,7 +334,7 @@
|
|
|
246
334
|
"other",
|
|
247
335
|
null
|
|
248
336
|
],
|
|
249
|
-
"description": "How data
|
|
337
|
+
"description": "How data moves for this connection (optional). Formerly ingestion_type; renamed because connector_mode now carries direction and this field only ever described mechanism."
|
|
250
338
|
},
|
|
251
339
|
"export_type": {
|
|
252
340
|
"type": ["string", "null"],
|
|
@@ -287,12 +375,12 @@
|
|
|
287
375
|
"connector_mode": {
|
|
288
376
|
"type": ["string", "null"],
|
|
289
377
|
"enum": ["inbound", "outbound", "bidirectional", null],
|
|
290
|
-
"description": "For enrichment workflows: mid-flow connection must be 'bidirectional'. For ingestion head use 'inbound'; for
|
|
378
|
+
"description": "For enrichment workflows: mid-flow connection must be 'bidirectional'. For ingestion head use 'inbound'; for delivery tail use 'outbound'. Must match connector supported_directions."
|
|
291
379
|
},
|
|
292
380
|
"upstream_entity_id": {
|
|
293
381
|
"type": ["string", "null"],
|
|
294
382
|
"format": "uuid",
|
|
295
|
-
"description": "Upstream entity in the flow graph (e.g. data-product in
|
|
383
|
+
"description": "Upstream entity in the flow graph (e.g. data-product in delivery flows). Null for source connections."
|
|
296
384
|
},
|
|
297
385
|
"upstream_entity_type": {
|
|
298
386
|
"type": ["string", "null"],
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"category": {
|
|
49
49
|
"type": "string",
|
|
50
50
|
"enum": [
|
|
51
|
+
"basic",
|
|
51
52
|
"e_commerce",
|
|
52
53
|
"crm",
|
|
53
54
|
"marketing",
|
|
@@ -57,6 +58,7 @@
|
|
|
57
58
|
"analytics",
|
|
58
59
|
"communication",
|
|
59
60
|
"productivity",
|
|
61
|
+
"fulfillment",
|
|
60
62
|
"custom"
|
|
61
63
|
],
|
|
62
64
|
"description": "Connector category"
|
|
@@ -25,6 +25,16 @@
|
|
|
25
25
|
"format": "uuid",
|
|
26
26
|
"description": "Organization that owns this contract"
|
|
27
27
|
},
|
|
28
|
+
"project_id": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"format": "uuid",
|
|
31
|
+
"description": "Project that contains this contract"
|
|
32
|
+
},
|
|
33
|
+
"workflow_id": {
|
|
34
|
+
"type": ["string", "null"],
|
|
35
|
+
"format": "uuid",
|
|
36
|
+
"description": "Workflow this contract belongs to when saved in a workflow bundle"
|
|
37
|
+
},
|
|
28
38
|
"data_product_id": {
|
|
29
39
|
"type": "string",
|
|
30
40
|
"format": "uuid",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://loxtep.io/schemas/entity/data-product.json",
|
|
4
4
|
"title": "Data Product Entity",
|
|
5
|
-
"description": "JSON Schema for Data Product entity in customer workspace (Studio / S3 graph). Flow-graph fields (workflow_id, upstream_entity_id, etc.) describe placement in the workflow canvas. The canonical interoperable catalog and API representation is ODPS v4.1 (Open Data Products Standard): include `odps_document` aligned with https://opendataproducts.org/v4.1/schema/odps.json — see `odps-product.json`
|
|
5
|
+
"description": "JSON Schema for Data Product entity in customer workspace (Studio / S3 graph). Flow-graph fields (workflow_id, upstream_entity_id, etc.) describe placement in the workflow canvas. The canonical interoperable catalog and API representation is ODPS v4.1 (Open Data Products Standard): include `odps_document` aligned with https://opendataproducts.org/v4.1/schema/odps.json — see `odps-product.json` and .kiro/specs/odps-data-product-standard in the Loxtep repo.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": [
|
|
8
8
|
"data_product_id",
|
|
@@ -24,6 +24,16 @@
|
|
|
24
24
|
"format": "uuid",
|
|
25
25
|
"description": "Organization that owns this data product"
|
|
26
26
|
},
|
|
27
|
+
"project_id": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"format": "uuid",
|
|
30
|
+
"description": "Project that contains this data product"
|
|
31
|
+
},
|
|
32
|
+
"kind": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": ["source", "consumer"],
|
|
35
|
+
"description": "Data product role in the flow (source or consumer)"
|
|
36
|
+
},
|
|
27
37
|
"workflow_id": {
|
|
28
38
|
"type": "string",
|
|
29
39
|
"format": "uuid",
|
|
@@ -152,6 +162,13 @@
|
|
|
152
162
|
"format": "date-time",
|
|
153
163
|
"description": "ISO 8601 timestamp when data product was deleted (soft delete)"
|
|
154
164
|
},
|
|
165
|
+
"schema": {
|
|
166
|
+
"description": "Product schema stored on the data product (object or JSON string). Read by medallion, metrics, and semantic bootstrap as dp.schema.",
|
|
167
|
+
"oneOf": [
|
|
168
|
+
{ "type": "object", "additionalProperties": true },
|
|
169
|
+
{ "type": "string", "minLength": 1 }
|
|
170
|
+
]
|
|
171
|
+
},
|
|
155
172
|
"odps_document": {
|
|
156
173
|
"description": "Canonical ODPS v4.1 document (`{ product: ... }`). Preferred for platform catalog, governance, and ecosystem interoperability. Validated in the dataproducts API; Loxtep-specific fields under product.custom.loxtep.",
|
|
157
174
|
"allOf": [
|
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
"format": "uuid",
|
|
23
23
|
"description": "Organization that owns this domain"
|
|
24
24
|
},
|
|
25
|
+
"project_id": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"format": "uuid",
|
|
28
|
+
"description": "Project that contains this domain (set when a bundle save writes the file)"
|
|
29
|
+
},
|
|
25
30
|
"name": {
|
|
26
31
|
"type": "string",
|
|
27
32
|
"minLength": 1,
|
|
@@ -64,6 +69,16 @@
|
|
|
64
69
|
"format": "date-time",
|
|
65
70
|
"description": "ISO 8601 timestamp when domain was last updated"
|
|
66
71
|
},
|
|
72
|
+
"created_by": {
|
|
73
|
+
"type": ["string", "null"],
|
|
74
|
+
"format": "uuid",
|
|
75
|
+
"description": "User ID who created the domain"
|
|
76
|
+
},
|
|
77
|
+
"updated_by": {
|
|
78
|
+
"type": ["string", "null"],
|
|
79
|
+
"format": "uuid",
|
|
80
|
+
"description": "User ID who last updated the domain"
|
|
81
|
+
},
|
|
67
82
|
"deleted_at": {
|
|
68
83
|
"type": ["string", "null"],
|
|
69
84
|
"format": "date-time",
|
|
@@ -26,11 +26,37 @@
|
|
|
26
26
|
"format": "uuid",
|
|
27
27
|
"description": "Organization that owns this export"
|
|
28
28
|
},
|
|
29
|
+
"project_id": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"format": "uuid",
|
|
32
|
+
"description": "Project that contains this export"
|
|
33
|
+
},
|
|
34
|
+
"workflow_id": {
|
|
35
|
+
"type": ["string", "null"],
|
|
36
|
+
"format": "uuid",
|
|
37
|
+
"description": "Workflow this export belongs to when saved in a workflow bundle"
|
|
38
|
+
},
|
|
29
39
|
"data_product_id": {
|
|
30
40
|
"type": "string",
|
|
31
41
|
"format": "uuid",
|
|
32
42
|
"description": "Reference to the data product this export applies to"
|
|
33
43
|
},
|
|
44
|
+
"upstream_entity_id": {
|
|
45
|
+
"type": ["string", "null"],
|
|
46
|
+
"format": "uuid",
|
|
47
|
+
"description": "Upstream canvas node this export is wired from"
|
|
48
|
+
},
|
|
49
|
+
"upstream_entity_type": {
|
|
50
|
+
"type": ["string", "null"],
|
|
51
|
+
"enum": [
|
|
52
|
+
"connections",
|
|
53
|
+
"transformations",
|
|
54
|
+
"validations",
|
|
55
|
+
"data-products",
|
|
56
|
+
null
|
|
57
|
+
],
|
|
58
|
+
"description": "Entity type of upstream_entity_id"
|
|
59
|
+
},
|
|
34
60
|
"name": {
|
|
35
61
|
"type": "string",
|
|
36
62
|
"minLength": 1,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"$id": "https://loxtep.io/schemas/entity/odps-product.json",
|
|
4
4
|
"title": "ODPS v4.1 Data Product Document",
|
|
5
5
|
"x-canonical-json-schema": "https://opendataproducts.org/v4.1/schema/odps.json",
|
|
6
|
-
"description": "Open Data Products Standard (ODPS) v4.1 root document (`product.*`). Authoritative JSON Schema: https://opendataproducts.org/v4.1/schema/odps.json . Platform-specific fields live under `product.custom.loxtep` (medallion, storage, ingestion, organization_id, domain_id, project_id, workflow_id, etc.). For strict full-schema validation in toolchains that resolve remote $ref, compose with allOf + $ref to x-canonical-json-schema (requires network or bundled copy).",
|
|
6
|
+
"description": "Open Data Products Standard (ODPS) v4.1 root document (`product.*`). Authoritative JSON Schema: https://opendataproducts.org/v4.1/schema/odps.json . Loxtep platform types and mapping: platform-backend/_core/src/types/odps/ and .kiro/specs/odps-data-product-standard. Platform-specific fields live under `product.custom.loxtep` (medallion, storage, ingestion, organization_id, domain_id, project_id, workflow_id, etc.). For strict full-schema validation in toolchains that resolve remote $ref, compose with allOf + $ref to x-canonical-json-schema (requires network or bundled copy).",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"required": ["product"],
|
|
9
9
|
"additionalProperties": false,
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://loxtep.io/schemas/entity/projection.json",
|
|
4
|
+
"title": "Projection Entity",
|
|
5
|
+
"description": "JSON Schema for Projection entity in customer workspace. Projections are thin workflow nodes that delegate field mapping to TransformationEngine.transformBatch, connecting source Data_Product output ports to Entity_Store input ports.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"projection_id",
|
|
9
|
+
"organization_id",
|
|
10
|
+
"workflow_id",
|
|
11
|
+
"entity_definition_id",
|
|
12
|
+
"projection_spec_id",
|
|
13
|
+
"status",
|
|
14
|
+
"created_at",
|
|
15
|
+
"updated_at"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"projection_id": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"format": "uuid",
|
|
21
|
+
"description": "Unique identifier for the projection workflow node"
|
|
22
|
+
},
|
|
23
|
+
"organization_id": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"format": "uuid",
|
|
26
|
+
"description": "Organization that owns this projection"
|
|
27
|
+
},
|
|
28
|
+
"workflow_id": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"format": "uuid",
|
|
31
|
+
"description": "Workflow this projection node belongs to"
|
|
32
|
+
},
|
|
33
|
+
"entity_definition_id": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"format": "uuid",
|
|
36
|
+
"description": "Target Entity_Definition this projection materializes"
|
|
37
|
+
},
|
|
38
|
+
"projection_spec_id": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"format": "uuid",
|
|
41
|
+
"description": "Projection_Spec that defines the field mappings"
|
|
42
|
+
},
|
|
43
|
+
"name": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"minLength": 1,
|
|
46
|
+
"description": "Display name of the projection node (written by ProjectionWorkflowNode.activate)"
|
|
47
|
+
},
|
|
48
|
+
"source_data_product_ids": {
|
|
49
|
+
"type": "array",
|
|
50
|
+
"items": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"format": "uuid"
|
|
53
|
+
},
|
|
54
|
+
"minItems": 1,
|
|
55
|
+
"description": "Source Data_Product IDs whose output ports feed this projection"
|
|
56
|
+
},
|
|
57
|
+
"status": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"enum": ["active", "inactive", "draft"],
|
|
60
|
+
"description": "Current status of the projection node"
|
|
61
|
+
},
|
|
62
|
+
"upstream_entity_id": {
|
|
63
|
+
"type": ["string", "null"],
|
|
64
|
+
"format": "uuid",
|
|
65
|
+
"description": "Upstream node in the workflow graph (typically a Data_Product output port)"
|
|
66
|
+
},
|
|
67
|
+
"upstream_entity_type": {
|
|
68
|
+
"type": ["string", "null"],
|
|
69
|
+
"description": "Entity type of the upstream node"
|
|
70
|
+
},
|
|
71
|
+
"metadata": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": true,
|
|
74
|
+
"default": {},
|
|
75
|
+
"description": "Additional metadata for the projection node"
|
|
76
|
+
},
|
|
77
|
+
"created_at": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"format": "date-time",
|
|
80
|
+
"description": "ISO 8601 timestamp when projection node was created"
|
|
81
|
+
},
|
|
82
|
+
"updated_at": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"format": "date-time",
|
|
85
|
+
"description": "ISO 8601 timestamp when projection node was last updated"
|
|
86
|
+
},
|
|
87
|
+
"deleted_at": {
|
|
88
|
+
"type": ["string", "null"],
|
|
89
|
+
"format": "date-time",
|
|
90
|
+
"description": "ISO 8601 timestamp when projection node was deleted (soft delete)"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"additionalProperties": false
|
|
94
|
+
}
|
|
@@ -26,6 +26,16 @@
|
|
|
26
26
|
"format": "uuid",
|
|
27
27
|
"description": "Organization that owns this quality rule"
|
|
28
28
|
},
|
|
29
|
+
"project_id": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"format": "uuid",
|
|
32
|
+
"description": "Project that contains this quality rule"
|
|
33
|
+
},
|
|
34
|
+
"workflow_id": {
|
|
35
|
+
"type": ["string", "null"],
|
|
36
|
+
"format": "uuid",
|
|
37
|
+
"description": "Workflow this quality rule belongs to when saved in a workflow bundle"
|
|
38
|
+
},
|
|
29
39
|
"data_product_id": {
|
|
30
40
|
"type": ["string", "null"],
|
|
31
41
|
"format": "uuid",
|
|
@@ -27,6 +27,16 @@
|
|
|
27
27
|
"format": "uuid",
|
|
28
28
|
"description": "Organization that owns this schema"
|
|
29
29
|
},
|
|
30
|
+
"project_id": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"format": "uuid",
|
|
33
|
+
"description": "Project that contains this schema"
|
|
34
|
+
},
|
|
35
|
+
"workflow_id": {
|
|
36
|
+
"type": ["string", "null"],
|
|
37
|
+
"format": "uuid",
|
|
38
|
+
"description": "Workflow this schema belongs to when saved in a workflow bundle"
|
|
39
|
+
},
|
|
30
40
|
"data_product_id": {
|
|
31
41
|
"type": "string",
|
|
32
42
|
"format": "uuid",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"upstream_entity_id": {
|
|
40
40
|
"type": ["string", "null"],
|
|
41
41
|
"format": "uuid",
|
|
42
|
-
"description": "Reference to the upstream entity in the flow graph (connection or
|
|
42
|
+
"description": "Reference to the upstream entity in the flow graph (connection, previous transformation, or the Records data product Studio inserts after a REST trigger). Null only when this is the first transformation directly after the trigger connection."
|
|
43
43
|
},
|
|
44
44
|
"upstream_entity_type": {
|
|
45
45
|
"type": ["string", "null"],
|
|
46
|
-
"enum": ["connections", "transformations", null],
|
|
47
|
-
"description": "Entity type of the upstream entity (connections or
|
|
46
|
+
"enum": ["connections", "transformations", "data-products", null],
|
|
47
|
+
"description": "Entity type of the upstream entity (connections, transformations, or data-products)"
|
|
48
48
|
},
|
|
49
49
|
"name": {
|
|
50
50
|
"type": "string",
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"drop_duplicates",
|
|
68
68
|
"flatten",
|
|
69
69
|
"explode_array",
|
|
70
|
+
"zip_arrays",
|
|
70
71
|
"array_to_column",
|
|
71
72
|
"capitalize",
|
|
72
73
|
"format_timestamp",
|
|
@@ -85,6 +86,7 @@
|
|
|
85
86
|
"batch",
|
|
86
87
|
"delay",
|
|
87
88
|
"split",
|
|
89
|
+
"route",
|
|
88
90
|
"execute_code_function",
|
|
89
91
|
"crypto",
|
|
90
92
|
"formatter",
|
|
@@ -112,6 +114,12 @@
|
|
|
112
114
|
{
|
|
113
115
|
"field": "name",
|
|
114
116
|
"case": "upper"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"source_path": "daily",
|
|
120
|
+
"index_field": "time",
|
|
121
|
+
"index_as": "obs_date",
|
|
122
|
+
"carry_fields": ["latitude", "longitude", "elevation", "timezone"]
|
|
115
123
|
}
|
|
116
124
|
]
|
|
117
125
|
},
|
|
@@ -40,11 +40,17 @@
|
|
|
40
40
|
"upstream_entity_id": {
|
|
41
41
|
"type": ["string", "null"],
|
|
42
42
|
"format": "uuid",
|
|
43
|
-
"description": "Reference to the upstream entity this validation applies to (connection, transformation, or data product)"
|
|
43
|
+
"description": "Reference to the upstream entity this validation applies to (connection, transformation, validation, or data product)"
|
|
44
44
|
},
|
|
45
45
|
"upstream_entity_type": {
|
|
46
46
|
"type": ["string", "null"],
|
|
47
|
-
"enum": [
|
|
47
|
+
"enum": [
|
|
48
|
+
"connections",
|
|
49
|
+
"transformations",
|
|
50
|
+
"validations",
|
|
51
|
+
"data-products",
|
|
52
|
+
null
|
|
53
|
+
],
|
|
48
54
|
"description": "Entity type of the upstream entity"
|
|
49
55
|
},
|
|
50
56
|
"name": {
|
|
@@ -69,14 +69,19 @@
|
|
|
69
69
|
"type": "string",
|
|
70
70
|
"description": "Unique identifier for the segment"
|
|
71
71
|
},
|
|
72
|
-
"name": {
|
|
72
|
+
"name": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Display name"
|
|
75
|
+
},
|
|
73
76
|
"description": {
|
|
74
77
|
"type": ["string", "null"],
|
|
75
78
|
"description": "Optional description"
|
|
76
79
|
},
|
|
77
80
|
"node_ids": {
|
|
78
81
|
"type": "array",
|
|
79
|
-
"items": {
|
|
82
|
+
"items": {
|
|
83
|
+
"type": "string"
|
|
84
|
+
},
|
|
80
85
|
"description": "Entity IDs of nodes in this segment"
|
|
81
86
|
},
|
|
82
87
|
"color": {
|
|
@@ -103,6 +108,37 @@
|
|
|
103
108
|
"type": ["string", "null"],
|
|
104
109
|
"format": "uuid",
|
|
105
110
|
"description": "Connector ID for connector-driven triggers"
|
|
111
|
+
},
|
|
112
|
+
"query_trigger": {
|
|
113
|
+
"type": ["object", "null"],
|
|
114
|
+
"description": "D14 (docs/system-spec/11-delivery-layer-design.md): a saved query against a data product, run on a schedule or on demand, targeting a data-products node (materialize) or an outbound connections node (deliver) chosen separately at build time. Not a subsystem \u2014 a trigger type, like event/schedule/connector above.",
|
|
115
|
+
"properties": {
|
|
116
|
+
"data_product_id": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"format": "uuid",
|
|
119
|
+
"description": "An existing data product \u2014 never a raw table."
|
|
120
|
+
},
|
|
121
|
+
"query": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"minLength": 1,
|
|
124
|
+
"description": "The saved SQL query run against data_product_id."
|
|
125
|
+
},
|
|
126
|
+
"schedule": {
|
|
127
|
+
"type": ["string", "null"],
|
|
128
|
+
"description": "Cron or interval; omit for on-demand (run_trigger / MCP-invoked)."
|
|
129
|
+
},
|
|
130
|
+
"primary_key": {
|
|
131
|
+
"type": "array",
|
|
132
|
+
"description": "Source columns concatenated into lx__id before queue write (business identity).",
|
|
133
|
+
"items": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"minLength": 1
|
|
136
|
+
},
|
|
137
|
+
"minItems": 1
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"required": ["data_product_id", "query", "primary_key"],
|
|
141
|
+
"additionalProperties": false
|
|
106
142
|
}
|
|
107
143
|
},
|
|
108
144
|
"additionalProperties": false
|
|
@@ -119,6 +155,20 @@
|
|
|
119
155
|
"type": ["integer", "null"],
|
|
120
156
|
"minimum": 1,
|
|
121
157
|
"description": "Number of events to process per batch"
|
|
158
|
+
},
|
|
159
|
+
"activation": {
|
|
160
|
+
"type": ["string", "null"],
|
|
161
|
+
"enum": ["schedule", "event", "request", null],
|
|
162
|
+
"description": "Explicit activation designation for a delivery flow's head (D7, docs/system-spec/11-delivery-layer-design.md). 'request' marks a consumer-initiated delivery flow: no schedule, no event subscription \u2014 the flow is activated by an inbound request against a protocol-adapter registration (route/listener + policy binding) rather than a queue-consumer bot. Distinguishes a deliberately request-activated flow from one whose trigger was simply never configured."
|
|
163
|
+
},
|
|
164
|
+
"data_product_id": {
|
|
165
|
+
"type": "string",
|
|
166
|
+
"format": "uuid",
|
|
167
|
+
"description": "Data product this delivery flow serves. Required in practice when activation is 'request' (protocol-adapter registration) or when a schedule is set (scheduled consumption). Optional at schema level so existing schedule-free event/queue flows remain valid."
|
|
168
|
+
},
|
|
169
|
+
"connector_type": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"description": "Protocol/connector type for a request-activated delivery flow (e.g. sql-query). Codegen falls back to 'unknown' when omitted."
|
|
122
172
|
}
|
|
123
173
|
},
|
|
124
174
|
"additionalProperties": false
|
|
@@ -148,7 +198,7 @@
|
|
|
148
198
|
},
|
|
149
199
|
"status": {
|
|
150
200
|
"type": "string",
|
|
151
|
-
"enum": ["active", "paused", "error", "pending", "inactive"],
|
|
201
|
+
"enum": ["active", "paused", "error", "pending", "inactive", "archived"],
|
|
152
202
|
"description": "Workflow status"
|
|
153
203
|
},
|
|
154
204
|
"metrics": {
|
|
@@ -187,6 +237,11 @@
|
|
|
187
237
|
"type": ["string", "null"],
|
|
188
238
|
"format": "date-time",
|
|
189
239
|
"description": "ISO 8601 timestamp when workflow was deleted (soft delete)"
|
|
240
|
+
},
|
|
241
|
+
"archived_at": {
|
|
242
|
+
"type": ["string", "null"],
|
|
243
|
+
"format": "date-time",
|
|
244
|
+
"description": "ISO 8601 timestamp when workflow was archived (catalog preserved, runtime bots retired)"
|
|
190
245
|
}
|
|
191
246
|
},
|
|
192
247
|
"additionalProperties": false
|