@x12i/memorix-service 3.7.0 → 3.7.6
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/activity-ring.d.ts +169 -0
- package/dist/activity-ring.d.ts.map +1 -0
- package/dist/activity-ring.js +234 -0
- package/dist/activity-ring.js.map +1 -0
- package/dist/activity-routes.d.ts +3 -0
- package/dist/activity-routes.d.ts.map +1 -0
- package/dist/activity-routes.js +41 -0
- package/dist/activity-routes.js.map +1 -0
- package/dist/activity-ui.d.ts +3 -0
- package/dist/activity-ui.d.ts.map +1 -0
- package/dist/activity-ui.js +899 -0
- package/dist/activity-ui.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +14 -2
- package/dist/app.js.map +1 -1
- package/dist/caller-identity.d.ts +3 -2
- package/dist/caller-identity.d.ts.map +1 -1
- package/dist/caller-identity.js.map +1 -1
- package/dist/catalog-bridge.js +1 -1
- package/dist/catalog-bridge.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/connector-catalog.d.ts +1 -1
- package/dist/connector-ops/attempt-store.d.ts.map +1 -1
- package/dist/connector-ops/attempt-store.js +1 -3
- package/dist/connector-ops/attempt-store.js.map +1 -1
- package/dist/connector-ops/checkpoint-store.d.ts.map +1 -1
- package/dist/connector-ops/checkpoint-store.js +1 -3
- package/dist/connector-ops/checkpoint-store.js.map +1 -1
- package/dist/connector-ops/override-store.d.ts.map +1 -1
- package/dist/connector-ops/override-store.js +1 -3
- package/dist/connector-ops/override-store.js.map +1 -1
- package/dist/connector-ops/run-store.d.ts.map +1 -1
- package/dist/connector-ops/run-store.js +1 -3
- package/dist/connector-ops/run-store.js.map +1 -1
- package/dist/connector-ops/schedule-lease-store.d.ts.map +1 -1
- package/dist/connector-ops/schedule-lease-store.js +1 -3
- package/dist/connector-ops/schedule-lease-store.js.map +1 -1
- package/dist/data-changes-routes.d.ts +7 -0
- package/dist/data-changes-routes.d.ts.map +1 -0
- package/dist/data-changes-routes.js +27 -0
- package/dist/data-changes-routes.js.map +1 -0
- package/dist/data-changes-ui.d.ts +3 -0
- package/dist/data-changes-ui.d.ts.map +1 -0
- package/dist/data-changes-ui.js +239 -0
- package/dist/data-changes-ui.js.map +1 -0
- package/dist/data-changes.d.ts +51 -0
- package/dist/data-changes.d.ts.map +1 -0
- package/dist/data-changes.js +218 -0
- package/dist/data-changes.js.map +1 -0
- package/dist/errors.d.ts +3 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +36 -3
- package/dist/errors.js.map +1 -1
- package/dist/identity-alias.d.ts +12 -0
- package/dist/identity-alias.d.ts.map +1 -0
- package/dist/identity-alias.js +22 -0
- package/dist/identity-alias.js.map +1 -0
- package/dist/incremental-state/state-store.d.ts.map +1 -1
- package/dist/incremental-state/state-store.js +1 -3
- package/dist/incremental-state/state-store.js.map +1 -1
- package/dist/integrations/instance-store.d.ts.map +1 -1
- package/dist/integrations/instance-store.js +1 -3
- package/dist/integrations/instance-store.js.map +1 -1
- package/dist/isolation.d.ts.map +1 -1
- package/dist/isolation.js +3 -2
- package/dist/isolation.js.map +1 -1
- package/dist/land-v2-guards.d.ts +22 -0
- package/dist/land-v2-guards.d.ts.map +1 -0
- package/dist/land-v2-guards.js +57 -0
- package/dist/land-v2-guards.js.map +1 -0
- package/dist/live.d.ts.map +1 -1
- package/dist/nexum-analysis/backfill.d.ts +59 -0
- package/dist/nexum-analysis/backfill.d.ts.map +1 -0
- package/dist/nexum-analysis/backfill.js +199 -0
- package/dist/nexum-analysis/backfill.js.map +1 -0
- package/dist/nexum-analysis/enqueue.d.ts +29 -0
- package/dist/nexum-analysis/enqueue.d.ts.map +1 -0
- package/dist/nexum-analysis/enqueue.js +190 -0
- package/dist/nexum-analysis/enqueue.js.map +1 -0
- package/dist/nexum-analysis/outbox.d.ts +44 -0
- package/dist/nexum-analysis/outbox.d.ts.map +1 -0
- package/dist/nexum-analysis/outbox.js +176 -0
- package/dist/nexum-analysis/outbox.js.map +1 -0
- package/dist/nexum-analysis/policy.d.ts +48 -0
- package/dist/nexum-analysis/policy.d.ts.map +1 -0
- package/dist/nexum-analysis/policy.js +165 -0
- package/dist/nexum-analysis/policy.js.map +1 -0
- package/dist/nexum-analysis/reconcile.d.ts +8 -0
- package/dist/nexum-analysis/reconcile.d.ts.map +1 -0
- package/dist/nexum-analysis/reconcile.js +37 -0
- package/dist/nexum-analysis/reconcile.js.map +1 -0
- package/dist/openapi/openapi.json +591 -4
- package/dist/operational-db.d.ts +6 -0
- package/dist/operational-db.d.ts.map +1 -0
- package/dist/operational-db.js +22 -0
- package/dist/operational-db.js.map +1 -0
- package/dist/platform.d.ts +4 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +67 -14
- package/dist/platform.js.map +1 -1
- package/dist/request-countex.d.ts +25 -0
- package/dist/request-countex.d.ts.map +1 -1
- package/dist/request-countex.js +103 -18
- package/dist/request-countex.js.map +1 -1
- package/dist/restricted-store/object-store.d.ts.map +1 -1
- package/dist/restricted-store/object-store.js +1 -3
- package/dist/restricted-store/object-store.js.map +1 -1
- package/dist/routes/connector-invocations.d.ts.map +1 -1
- package/dist/routes/connector-invocations.js +7 -1
- package/dist/routes/connector-invocations.js.map +1 -1
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +105 -12
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/knowledge.d.ts +8 -0
- package/dist/routes/knowledge.d.ts.map +1 -0
- package/dist/routes/knowledge.js +114 -0
- package/dist/routes/knowledge.js.map +1 -0
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +33 -9
- package/dist/routes/memory.js.map +1 -1
- package/dist/routes/metadata.d.ts.map +1 -1
- package/dist/routes/metadata.js +102 -1
- package/dist/routes/metadata.js.map +1 -1
- package/dist/routes/mgc-landing.d.ts.map +1 -1
- package/dist/routes/mgc-landing.js +90 -1
- package/dist/routes/mgc-landing.js.map +1 -1
- package/dist/routes/operations.d.ts.map +1 -1
- package/dist/routes/operations.js +39 -2
- package/dist/routes/operations.js.map +1 -1
- package/dist/routes/publications.d.ts +4 -0
- package/dist/routes/publications.d.ts.map +1 -0
- package/dist/routes/publications.js +111 -0
- package/dist/routes/publications.js.map +1 -0
- package/dist/routes/workflow.d.ts.map +1 -1
- package/dist/routes/workflow.js +18 -9
- package/dist/routes/workflow.js.map +1 -1
- package/openapi/openapi.json +591 -4
- package/package.json +5 -5
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.0.3",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Memorix Service API",
|
|
5
|
-
"version": "3.7.
|
|
5
|
+
"version": "3.7.5",
|
|
6
6
|
"description": "One versioned product API over accepted Memorix packages. Scope: orgId + agentIds[]. Headers x-memorix-org-id and x-memorix-agent-ids (comma-separated). MX-CALLER-01: every /api request requires x-memorix-caller (calling app id). Intelligence never auto-installs. Relationships /links is forbidden. IntegrationsRegistry (Stage −1) and RestrictedStore (FG-A3 dual-mode blob)."
|
|
7
7
|
},
|
|
8
8
|
"servers": [
|
|
@@ -1214,6 +1214,103 @@
|
|
|
1214
1214
|
}
|
|
1215
1215
|
}
|
|
1216
1216
|
},
|
|
1217
|
+
"/api/metadata/ensure": {
|
|
1218
|
+
"post": {
|
|
1219
|
+
"operationId": "metadataEnsure",
|
|
1220
|
+
"summary": "Startup handshake: install declared pack only when missing or changed",
|
|
1221
|
+
"description": "Client process start — declare OT/CT via a MetadataPack before the first content write. Same checksum → ready+noop. Missing/changed → install then ready. Do not invent types from POST /api/data/content.",
|
|
1222
|
+
"tags": [
|
|
1223
|
+
"Metadata"
|
|
1224
|
+
],
|
|
1225
|
+
"parameters": [
|
|
1226
|
+
{
|
|
1227
|
+
"$ref": "#/components/parameters/XMemorixCaller"
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
"$ref": "#/components/parameters/XMemorixOrgId"
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
"$ref": "#/components/parameters/XMemorixAgentIds"
|
|
1234
|
+
}
|
|
1235
|
+
],
|
|
1236
|
+
"requestBody": {
|
|
1237
|
+
"required": true,
|
|
1238
|
+
"content": {
|
|
1239
|
+
"application/json": {
|
|
1240
|
+
"schema": {
|
|
1241
|
+
"type": "object",
|
|
1242
|
+
"required": [
|
|
1243
|
+
"confirm",
|
|
1244
|
+
"pack"
|
|
1245
|
+
],
|
|
1246
|
+
"properties": {
|
|
1247
|
+
"confirm": {
|
|
1248
|
+
"type": "boolean",
|
|
1249
|
+
"enum": [
|
|
1250
|
+
true
|
|
1251
|
+
]
|
|
1252
|
+
},
|
|
1253
|
+
"pack": {
|
|
1254
|
+
"$ref": "#/components/schemas/MetadataPack"
|
|
1255
|
+
},
|
|
1256
|
+
"versionMessage": {
|
|
1257
|
+
"type": "string"
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
}
|
|
1263
|
+
},
|
|
1264
|
+
"responses": {
|
|
1265
|
+
"200": {
|
|
1266
|
+
"description": "Ensure result",
|
|
1267
|
+
"content": {
|
|
1268
|
+
"application/json": {
|
|
1269
|
+
"schema": {
|
|
1270
|
+
"type": "object",
|
|
1271
|
+
"required": [
|
|
1272
|
+
"ready",
|
|
1273
|
+
"installed",
|
|
1274
|
+
"noop"
|
|
1275
|
+
],
|
|
1276
|
+
"properties": {
|
|
1277
|
+
"ready": {
|
|
1278
|
+
"type": "boolean"
|
|
1279
|
+
},
|
|
1280
|
+
"installed": {
|
|
1281
|
+
"type": "boolean"
|
|
1282
|
+
},
|
|
1283
|
+
"noop": {
|
|
1284
|
+
"type": "boolean"
|
|
1285
|
+
},
|
|
1286
|
+
"agentId": {
|
|
1287
|
+
"type": "string"
|
|
1288
|
+
},
|
|
1289
|
+
"checksum": {
|
|
1290
|
+
"type": "string"
|
|
1291
|
+
},
|
|
1292
|
+
"note": {
|
|
1293
|
+
"type": "string"
|
|
1294
|
+
},
|
|
1295
|
+
"result": {}
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1300
|
+
},
|
|
1301
|
+
"400": {
|
|
1302
|
+
"description": "Bad request / confirmation required",
|
|
1303
|
+
"content": {
|
|
1304
|
+
"application/json": {
|
|
1305
|
+
"schema": {
|
|
1306
|
+
"$ref": "#/components/schemas/ErrorEnvelope"
|
|
1307
|
+
}
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1311
|
+
}
|
|
1312
|
+
}
|
|
1313
|
+
},
|
|
1217
1314
|
"/api/metadata/proposals/{id}/stage": {
|
|
1218
1315
|
"post": {
|
|
1219
1316
|
"operationId": "metadataStageProposal",
|
|
@@ -2160,7 +2257,15 @@
|
|
|
2160
2257
|
"schema": {
|
|
2161
2258
|
"type": "string"
|
|
2162
2259
|
},
|
|
2163
|
-
"description": "
|
|
2260
|
+
"description": "HTTP alias of recordId for exact get. Rejected if it conflicts with recordId."
|
|
2261
|
+
},
|
|
2262
|
+
{
|
|
2263
|
+
"name": "recordId",
|
|
2264
|
+
"in": "query",
|
|
2265
|
+
"schema": {
|
|
2266
|
+
"type": "string"
|
|
2267
|
+
},
|
|
2268
|
+
"description": "Preferred subject identity for exact get. Same as id."
|
|
2164
2269
|
},
|
|
2165
2270
|
{
|
|
2166
2271
|
"name": "expandRelationships",
|
|
@@ -2365,6 +2470,16 @@
|
|
|
2365
2470
|
"written": {
|
|
2366
2471
|
"type": "boolean"
|
|
2367
2472
|
},
|
|
2473
|
+
"outcome": {
|
|
2474
|
+
"type": "string",
|
|
2475
|
+
"enum": [
|
|
2476
|
+
"created",
|
|
2477
|
+
"updated",
|
|
2478
|
+
"deduplicated",
|
|
2479
|
+
"conflict"
|
|
2480
|
+
],
|
|
2481
|
+
"description": "Write outcome. HTTP does not always return written:true."
|
|
2482
|
+
},
|
|
2368
2483
|
"result": {
|
|
2369
2484
|
"type": "object",
|
|
2370
2485
|
"additionalProperties": true
|
|
@@ -2497,7 +2612,8 @@
|
|
|
2497
2612
|
"identifiers": {
|
|
2498
2613
|
"primary": {
|
|
2499
2614
|
"kind": "email",
|
|
2500
|
-
"value": "a@x.io"
|
|
2615
|
+
"value": "a@x.io",
|
|
2616
|
+
"issuer": "hr-src"
|
|
2501
2617
|
}
|
|
2502
2618
|
}
|
|
2503
2619
|
},
|
|
@@ -2514,6 +2630,357 @@
|
|
|
2514
2630
|
}
|
|
2515
2631
|
}
|
|
2516
2632
|
},
|
|
2633
|
+
"/api/data/publications": {
|
|
2634
|
+
"post": {
|
|
2635
|
+
"operationId": "dataCreatePublication",
|
|
2636
|
+
"summary": "Create an immutable publication draft (operational, not Magit)",
|
|
2637
|
+
"tags": [
|
|
2638
|
+
"Data"
|
|
2639
|
+
],
|
|
2640
|
+
"parameters": [
|
|
2641
|
+
{
|
|
2642
|
+
"$ref": "#/components/parameters/XMemorixCaller"
|
|
2643
|
+
},
|
|
2644
|
+
{
|
|
2645
|
+
"$ref": "#/components/parameters/XMemorixOrgId"
|
|
2646
|
+
},
|
|
2647
|
+
{
|
|
2648
|
+
"$ref": "#/components/parameters/XMemorixAgentIds"
|
|
2649
|
+
}
|
|
2650
|
+
],
|
|
2651
|
+
"requestBody": {
|
|
2652
|
+
"required": true,
|
|
2653
|
+
"content": {
|
|
2654
|
+
"application/json": {
|
|
2655
|
+
"schema": {
|
|
2656
|
+
"$ref": "#/components/schemas/PublicationDraftRequest"
|
|
2657
|
+
},
|
|
2658
|
+
"example": {
|
|
2659
|
+
"publicationId": "pub-1",
|
|
2660
|
+
"members": [
|
|
2661
|
+
{
|
|
2662
|
+
"recordId": "W-1",
|
|
2663
|
+
"objectType": "widgets",
|
|
2664
|
+
"contentType": "raw",
|
|
2665
|
+
"revision": 1
|
|
2666
|
+
}
|
|
2667
|
+
]
|
|
2668
|
+
}
|
|
2669
|
+
}
|
|
2670
|
+
}
|
|
2671
|
+
},
|
|
2672
|
+
"responses": {
|
|
2673
|
+
"200": {
|
|
2674
|
+
"description": "Draft publication",
|
|
2675
|
+
"content": {
|
|
2676
|
+
"application/json": {
|
|
2677
|
+
"schema": {
|
|
2678
|
+
"type": "object",
|
|
2679
|
+
"properties": {
|
|
2680
|
+
"scope": {
|
|
2681
|
+
"$ref": "#/components/schemas/MemorixScope"
|
|
2682
|
+
},
|
|
2683
|
+
"publication": {
|
|
2684
|
+
"$ref": "#/components/schemas/PublicationRecord"
|
|
2685
|
+
}
|
|
2686
|
+
}
|
|
2687
|
+
}
|
|
2688
|
+
}
|
|
2689
|
+
}
|
|
2690
|
+
},
|
|
2691
|
+
"400": {
|
|
2692
|
+
"description": "Bad request",
|
|
2693
|
+
"content": {
|
|
2694
|
+
"application/json": {
|
|
2695
|
+
"schema": {
|
|
2696
|
+
"$ref": "#/components/schemas/ErrorEnvelope"
|
|
2697
|
+
}
|
|
2698
|
+
}
|
|
2699
|
+
}
|
|
2700
|
+
},
|
|
2701
|
+
"409": {
|
|
2702
|
+
"description": "Publication already exists",
|
|
2703
|
+
"content": {
|
|
2704
|
+
"application/json": {
|
|
2705
|
+
"schema": {
|
|
2706
|
+
"$ref": "#/components/schemas/ErrorEnvelope"
|
|
2707
|
+
},
|
|
2708
|
+
"example": {
|
|
2709
|
+
"error": {
|
|
2710
|
+
"code": "PUBLICATION_EXISTS",
|
|
2711
|
+
"message": "publication pub-1 already exists",
|
|
2712
|
+
"correlationId": "c1"
|
|
2713
|
+
}
|
|
2714
|
+
}
|
|
2715
|
+
}
|
|
2716
|
+
}
|
|
2717
|
+
}
|
|
2718
|
+
}
|
|
2719
|
+
},
|
|
2720
|
+
"get": {
|
|
2721
|
+
"operationId": "dataListPublications",
|
|
2722
|
+
"summary": "List publications or return last-good committed publication",
|
|
2723
|
+
"tags": [
|
|
2724
|
+
"Data"
|
|
2725
|
+
],
|
|
2726
|
+
"parameters": [
|
|
2727
|
+
{
|
|
2728
|
+
"$ref": "#/components/parameters/XMemorixCaller"
|
|
2729
|
+
},
|
|
2730
|
+
{
|
|
2731
|
+
"$ref": "#/components/parameters/XMemorixOrgId"
|
|
2732
|
+
},
|
|
2733
|
+
{
|
|
2734
|
+
"$ref": "#/components/parameters/XMemorixAgentIds"
|
|
2735
|
+
},
|
|
2736
|
+
{
|
|
2737
|
+
"name": "status",
|
|
2738
|
+
"in": "query",
|
|
2739
|
+
"schema": {
|
|
2740
|
+
"type": "string",
|
|
2741
|
+
"enum": [
|
|
2742
|
+
"draft",
|
|
2743
|
+
"committed",
|
|
2744
|
+
"superseded"
|
|
2745
|
+
]
|
|
2746
|
+
}
|
|
2747
|
+
},
|
|
2748
|
+
{
|
|
2749
|
+
"name": "lastGood",
|
|
2750
|
+
"in": "query",
|
|
2751
|
+
"schema": {
|
|
2752
|
+
"type": "string",
|
|
2753
|
+
"enum": [
|
|
2754
|
+
"true"
|
|
2755
|
+
]
|
|
2756
|
+
},
|
|
2757
|
+
"description": "When true, return the last committed publication instead of a list."
|
|
2758
|
+
}
|
|
2759
|
+
],
|
|
2760
|
+
"responses": {
|
|
2761
|
+
"200": {
|
|
2762
|
+
"description": "Publications or last-good",
|
|
2763
|
+
"content": {
|
|
2764
|
+
"application/json": {
|
|
2765
|
+
"schema": {
|
|
2766
|
+
"type": "object",
|
|
2767
|
+
"additionalProperties": true
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
}
|
|
2771
|
+
}
|
|
2772
|
+
}
|
|
2773
|
+
}
|
|
2774
|
+
},
|
|
2775
|
+
"/api/data/publications/{publicationId}": {
|
|
2776
|
+
"get": {
|
|
2777
|
+
"operationId": "dataGetPublication",
|
|
2778
|
+
"summary": "Get publication membership and completion status",
|
|
2779
|
+
"tags": [
|
|
2780
|
+
"Data"
|
|
2781
|
+
],
|
|
2782
|
+
"parameters": [
|
|
2783
|
+
{
|
|
2784
|
+
"$ref": "#/components/parameters/XMemorixCaller"
|
|
2785
|
+
},
|
|
2786
|
+
{
|
|
2787
|
+
"$ref": "#/components/parameters/XMemorixOrgId"
|
|
2788
|
+
},
|
|
2789
|
+
{
|
|
2790
|
+
"$ref": "#/components/parameters/XMemorixAgentIds"
|
|
2791
|
+
},
|
|
2792
|
+
{
|
|
2793
|
+
"name": "publicationId",
|
|
2794
|
+
"in": "path",
|
|
2795
|
+
"required": true,
|
|
2796
|
+
"schema": {
|
|
2797
|
+
"type": "string"
|
|
2798
|
+
}
|
|
2799
|
+
}
|
|
2800
|
+
],
|
|
2801
|
+
"responses": {
|
|
2802
|
+
"200": {
|
|
2803
|
+
"description": "Publication plus complete flag (true only when committed)",
|
|
2804
|
+
"content": {
|
|
2805
|
+
"application/json": {
|
|
2806
|
+
"schema": {
|
|
2807
|
+
"type": "object",
|
|
2808
|
+
"properties": {
|
|
2809
|
+
"scope": {
|
|
2810
|
+
"$ref": "#/components/schemas/MemorixScope"
|
|
2811
|
+
},
|
|
2812
|
+
"publication": {
|
|
2813
|
+
"$ref": "#/components/schemas/PublicationRecord"
|
|
2814
|
+
},
|
|
2815
|
+
"complete": {
|
|
2816
|
+
"type": "boolean"
|
|
2817
|
+
}
|
|
2818
|
+
}
|
|
2819
|
+
}
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
},
|
|
2823
|
+
"404": {
|
|
2824
|
+
"description": "Not found",
|
|
2825
|
+
"content": {
|
|
2826
|
+
"application/json": {
|
|
2827
|
+
"schema": {
|
|
2828
|
+
"$ref": "#/components/schemas/ErrorEnvelope"
|
|
2829
|
+
},
|
|
2830
|
+
"example": {
|
|
2831
|
+
"error": {
|
|
2832
|
+
"code": "PUBLICATION_NOT_FOUND",
|
|
2833
|
+
"message": "publication pub-1 not found",
|
|
2834
|
+
"correlationId": "c1"
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
}
|
|
2838
|
+
}
|
|
2839
|
+
}
|
|
2840
|
+
}
|
|
2841
|
+
}
|
|
2842
|
+
},
|
|
2843
|
+
"/api/data/publications/{publicationId}/commit": {
|
|
2844
|
+
"post": {
|
|
2845
|
+
"operationId": "dataCommitPublication",
|
|
2846
|
+
"summary": "Verify every member at the exact revision, then mark committed",
|
|
2847
|
+
"description": "Missing or mismatched members fail the commit. Prior committed publication remains last-good. Matching generation labels in payloads is not a consistency proof.",
|
|
2848
|
+
"tags": [
|
|
2849
|
+
"Data"
|
|
2850
|
+
],
|
|
2851
|
+
"parameters": [
|
|
2852
|
+
{
|
|
2853
|
+
"$ref": "#/components/parameters/XMemorixCaller"
|
|
2854
|
+
},
|
|
2855
|
+
{
|
|
2856
|
+
"$ref": "#/components/parameters/XMemorixOrgId"
|
|
2857
|
+
},
|
|
2858
|
+
{
|
|
2859
|
+
"$ref": "#/components/parameters/XMemorixAgentIds"
|
|
2860
|
+
},
|
|
2861
|
+
{
|
|
2862
|
+
"name": "publicationId",
|
|
2863
|
+
"in": "path",
|
|
2864
|
+
"required": true,
|
|
2865
|
+
"schema": {
|
|
2866
|
+
"type": "string"
|
|
2867
|
+
}
|
|
2868
|
+
}
|
|
2869
|
+
],
|
|
2870
|
+
"responses": {
|
|
2871
|
+
"200": {
|
|
2872
|
+
"description": "Committed publication",
|
|
2873
|
+
"content": {
|
|
2874
|
+
"application/json": {
|
|
2875
|
+
"schema": {
|
|
2876
|
+
"type": "object",
|
|
2877
|
+
"properties": {
|
|
2878
|
+
"scope": {
|
|
2879
|
+
"$ref": "#/components/schemas/MemorixScope"
|
|
2880
|
+
},
|
|
2881
|
+
"publication": {
|
|
2882
|
+
"$ref": "#/components/schemas/PublicationRecord"
|
|
2883
|
+
},
|
|
2884
|
+
"complete": {
|
|
2885
|
+
"type": "boolean"
|
|
2886
|
+
}
|
|
2887
|
+
}
|
|
2888
|
+
}
|
|
2889
|
+
}
|
|
2890
|
+
}
|
|
2891
|
+
},
|
|
2892
|
+
"409": {
|
|
2893
|
+
"description": "Member unavailable, not a draft, or mixed revision",
|
|
2894
|
+
"content": {
|
|
2895
|
+
"application/json": {
|
|
2896
|
+
"schema": {
|
|
2897
|
+
"$ref": "#/components/schemas/ErrorEnvelope"
|
|
2898
|
+
},
|
|
2899
|
+
"examples": {
|
|
2900
|
+
"memberUnavailable": {
|
|
2901
|
+
"value": {
|
|
2902
|
+
"error": {
|
|
2903
|
+
"code": "PUBLICATION_MEMBER_UNAVAILABLE",
|
|
2904
|
+
"message": "publication member is missing or revision mismatch",
|
|
2905
|
+
"correlationId": "c1"
|
|
2906
|
+
}
|
|
2907
|
+
}
|
|
2908
|
+
},
|
|
2909
|
+
"notDraft": {
|
|
2910
|
+
"value": {
|
|
2911
|
+
"error": {
|
|
2912
|
+
"code": "PUBLICATION_NOT_DRAFT",
|
|
2913
|
+
"message": "only draft publications can be committed",
|
|
2914
|
+
"correlationId": "c1"
|
|
2915
|
+
}
|
|
2916
|
+
}
|
|
2917
|
+
}
|
|
2918
|
+
}
|
|
2919
|
+
}
|
|
2920
|
+
}
|
|
2921
|
+
}
|
|
2922
|
+
}
|
|
2923
|
+
}
|
|
2924
|
+
},
|
|
2925
|
+
"/api/data/publications/{publicationId}/instances": {
|
|
2926
|
+
"get": {
|
|
2927
|
+
"operationId": "dataGetPublicationInstances",
|
|
2928
|
+
"summary": "Retrieve pinned instances for a committed publication",
|
|
2929
|
+
"description": "Fails closed if any member cannot be retrieved at the pinned revision. Live relationship expansion is the current graph; pinned evidence is only the manifest members.",
|
|
2930
|
+
"tags": [
|
|
2931
|
+
"Data"
|
|
2932
|
+
],
|
|
2933
|
+
"parameters": [
|
|
2934
|
+
{
|
|
2935
|
+
"$ref": "#/components/parameters/XMemorixCaller"
|
|
2936
|
+
},
|
|
2937
|
+
{
|
|
2938
|
+
"$ref": "#/components/parameters/XMemorixOrgId"
|
|
2939
|
+
},
|
|
2940
|
+
{
|
|
2941
|
+
"$ref": "#/components/parameters/XMemorixAgentIds"
|
|
2942
|
+
},
|
|
2943
|
+
{
|
|
2944
|
+
"name": "publicationId",
|
|
2945
|
+
"in": "path",
|
|
2946
|
+
"required": true,
|
|
2947
|
+
"schema": {
|
|
2948
|
+
"type": "string"
|
|
2949
|
+
}
|
|
2950
|
+
}
|
|
2951
|
+
],
|
|
2952
|
+
"responses": {
|
|
2953
|
+
"200": {
|
|
2954
|
+
"description": "Pinned instances",
|
|
2955
|
+
"content": {
|
|
2956
|
+
"application/json": {
|
|
2957
|
+
"schema": {
|
|
2958
|
+
"type": "object",
|
|
2959
|
+
"additionalProperties": true
|
|
2960
|
+
}
|
|
2961
|
+
}
|
|
2962
|
+
}
|
|
2963
|
+
},
|
|
2964
|
+
"409": {
|
|
2965
|
+
"description": "Not committed or member unavailable",
|
|
2966
|
+
"content": {
|
|
2967
|
+
"application/json": {
|
|
2968
|
+
"schema": {
|
|
2969
|
+
"$ref": "#/components/schemas/ErrorEnvelope"
|
|
2970
|
+
},
|
|
2971
|
+
"example": {
|
|
2972
|
+
"error": {
|
|
2973
|
+
"code": "PUBLICATION_NOT_COMMITTED",
|
|
2974
|
+
"message": "only committed publications can be read as pinned instances",
|
|
2975
|
+
"correlationId": "c1"
|
|
2976
|
+
}
|
|
2977
|
+
}
|
|
2978
|
+
}
|
|
2979
|
+
}
|
|
2980
|
+
}
|
|
2981
|
+
}
|
|
2982
|
+
}
|
|
2983
|
+
},
|
|
2517
2984
|
"/api/data/abstract": {
|
|
2518
2985
|
"get": {
|
|
2519
2986
|
"operationId": "dataGetAbstract",
|
|
@@ -2544,7 +3011,16 @@
|
|
|
2544
3011
|
"in": "query",
|
|
2545
3012
|
"schema": {
|
|
2546
3013
|
"type": "string"
|
|
2547
|
-
}
|
|
3014
|
+
},
|
|
3015
|
+
"description": "HTTP alias of recordId. Rejected if it conflicts with recordId."
|
|
3016
|
+
},
|
|
3017
|
+
{
|
|
3018
|
+
"name": "recordId",
|
|
3019
|
+
"in": "query",
|
|
3020
|
+
"schema": {
|
|
3021
|
+
"type": "string"
|
|
3022
|
+
},
|
|
3023
|
+
"description": "Preferred subject identity for exact abstract get. Same as id."
|
|
2548
3024
|
},
|
|
2549
3025
|
{
|
|
2550
3026
|
"name": "cursor",
|
|
@@ -4474,6 +4950,15 @@
|
|
|
4474
4950
|
{
|
|
4475
4951
|
"name": "id",
|
|
4476
4952
|
"in": "query",
|
|
4953
|
+
"description": "Deprecated alias of recordId",
|
|
4954
|
+
"schema": {
|
|
4955
|
+
"type": "string"
|
|
4956
|
+
}
|
|
4957
|
+
},
|
|
4958
|
+
{
|
|
4959
|
+
"name": "recordId",
|
|
4960
|
+
"in": "query",
|
|
4961
|
+
"description": "Org-wide subject identity (preferred)",
|
|
4477
4962
|
"schema": {
|
|
4478
4963
|
"type": "string"
|
|
4479
4964
|
}
|
|
@@ -13067,6 +13552,100 @@
|
|
|
13067
13552
|
}
|
|
13068
13553
|
}
|
|
13069
13554
|
},
|
|
13555
|
+
"PublicationMember": {
|
|
13556
|
+
"type": "object",
|
|
13557
|
+
"required": [
|
|
13558
|
+
"recordId",
|
|
13559
|
+
"objectType",
|
|
13560
|
+
"contentType",
|
|
13561
|
+
"revision"
|
|
13562
|
+
],
|
|
13563
|
+
"properties": {
|
|
13564
|
+
"recordId": {
|
|
13565
|
+
"type": "string"
|
|
13566
|
+
},
|
|
13567
|
+
"objectType": {
|
|
13568
|
+
"type": "string"
|
|
13569
|
+
},
|
|
13570
|
+
"contentType": {
|
|
13571
|
+
"type": "string"
|
|
13572
|
+
},
|
|
13573
|
+
"discriminator": {
|
|
13574
|
+
"type": "string"
|
|
13575
|
+
},
|
|
13576
|
+
"revision": {
|
|
13577
|
+
"type": "integer",
|
|
13578
|
+
"minimum": 1
|
|
13579
|
+
},
|
|
13580
|
+
"storageKey": {
|
|
13581
|
+
"type": "string",
|
|
13582
|
+
"description": "Internal Mongo storage key. Not subject identity."
|
|
13583
|
+
}
|
|
13584
|
+
}
|
|
13585
|
+
},
|
|
13586
|
+
"PublicationRecord": {
|
|
13587
|
+
"type": "object",
|
|
13588
|
+
"required": [
|
|
13589
|
+
"publicationId",
|
|
13590
|
+
"status",
|
|
13591
|
+
"createdAt",
|
|
13592
|
+
"members"
|
|
13593
|
+
],
|
|
13594
|
+
"properties": {
|
|
13595
|
+
"publicationId": {
|
|
13596
|
+
"type": "string"
|
|
13597
|
+
},
|
|
13598
|
+
"status": {
|
|
13599
|
+
"type": "string",
|
|
13600
|
+
"enum": [
|
|
13601
|
+
"draft",
|
|
13602
|
+
"committed",
|
|
13603
|
+
"superseded"
|
|
13604
|
+
]
|
|
13605
|
+
},
|
|
13606
|
+
"commitMarker": {
|
|
13607
|
+
"type": "string"
|
|
13608
|
+
},
|
|
13609
|
+
"createdAt": {
|
|
13610
|
+
"type": "string",
|
|
13611
|
+
"format": "date-time"
|
|
13612
|
+
},
|
|
13613
|
+
"committedAt": {
|
|
13614
|
+
"type": "string",
|
|
13615
|
+
"format": "date-time"
|
|
13616
|
+
},
|
|
13617
|
+
"members": {
|
|
13618
|
+
"type": "array",
|
|
13619
|
+
"items": {
|
|
13620
|
+
"$ref": "#/components/schemas/PublicationMember"
|
|
13621
|
+
}
|
|
13622
|
+
},
|
|
13623
|
+
"supersedes": {
|
|
13624
|
+
"type": "string"
|
|
13625
|
+
}
|
|
13626
|
+
}
|
|
13627
|
+
},
|
|
13628
|
+
"PublicationDraftRequest": {
|
|
13629
|
+
"type": "object",
|
|
13630
|
+
"required": [
|
|
13631
|
+
"members"
|
|
13632
|
+
],
|
|
13633
|
+
"properties": {
|
|
13634
|
+
"publicationId": {
|
|
13635
|
+
"type": "string"
|
|
13636
|
+
},
|
|
13637
|
+
"members": {
|
|
13638
|
+
"type": "array",
|
|
13639
|
+
"minItems": 1,
|
|
13640
|
+
"items": {
|
|
13641
|
+
"$ref": "#/components/schemas/PublicationMember"
|
|
13642
|
+
}
|
|
13643
|
+
},
|
|
13644
|
+
"supersedes": {
|
|
13645
|
+
"type": "string"
|
|
13646
|
+
}
|
|
13647
|
+
}
|
|
13648
|
+
},
|
|
13070
13649
|
"ContentAddress": {
|
|
13071
13650
|
"type": "object",
|
|
13072
13651
|
"required": [
|
|
@@ -14042,6 +14621,7 @@
|
|
|
14042
14621
|
},
|
|
14043
14622
|
"ErrorEnvelope": {
|
|
14044
14623
|
"type": "object",
|
|
14624
|
+
"description": "Machine-readable error. Subject-model codes include WRITE_IDENTITY_ADOPTION, WRITE_IDENTITY_MISMATCH, WRITE_INTERFACE_BINDING, WRITE_DIRECTORY_INCONSISTENT, WRITE_STALE_REVISION, PUBLICATION_*, DIRECTORY_CONFLICT_*.",
|
|
14045
14625
|
"required": [
|
|
14046
14626
|
"error"
|
|
14047
14627
|
],
|
|
@@ -14069,6 +14649,13 @@
|
|
|
14069
14649
|
}
|
|
14070
14650
|
}
|
|
14071
14651
|
}
|
|
14652
|
+
},
|
|
14653
|
+
"example": {
|
|
14654
|
+
"error": {
|
|
14655
|
+
"code": "WRITE_IDENTITY_ADOPTION",
|
|
14656
|
+
"message": "recordId must not equal a source identifier value; use adoptedRecordId {issuer}/{kind}/{value}",
|
|
14657
|
+
"correlationId": "c1"
|
|
14658
|
+
}
|
|
14072
14659
|
}
|
|
14073
14660
|
},
|
|
14074
14661
|
"ValidationDiagnostic": {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function operationalDbName(orgId: string): string;
|
|
2
|
+
/** True when a Mongo database name is this org's operational universe (V1 or V2). */
|
|
3
|
+
export declare function isOperationalDbName(name: string): boolean;
|
|
4
|
+
/** Strip operational suffix (V1 or V2) to recover orgId. */
|
|
5
|
+
export declare function orgIdFromOperationalDbName(name: string): string | null;
|
|
6
|
+
//# sourceMappingURL=operational-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operational-db.d.ts","sourceRoot":"","sources":["../src/operational-db.ts"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED,4DAA4D;AAC5D,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQtE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Org operational DB name — delegates to memorix-data (V1/V2 via MEMORIX_LAND_V2).
|
|
3
|
+
*/
|
|
4
|
+
import { databaseNameFor } from "@x12i/memorix-data";
|
|
5
|
+
export function operationalDbName(orgId) {
|
|
6
|
+
return databaseNameFor(orgId, "operational");
|
|
7
|
+
}
|
|
8
|
+
/** True when a Mongo database name is this org's operational universe (V1 or V2). */
|
|
9
|
+
export function isOperationalDbName(name) {
|
|
10
|
+
return (name.endsWith("_operational") || name.endsWith("-memorix-operational"));
|
|
11
|
+
}
|
|
12
|
+
/** Strip operational suffix (V1 or V2) to recover orgId. */
|
|
13
|
+
export function orgIdFromOperationalDbName(name) {
|
|
14
|
+
if (name.endsWith("-memorix-operational")) {
|
|
15
|
+
return name.slice(0, -"-memorix-operational".length) || null;
|
|
16
|
+
}
|
|
17
|
+
if (name.endsWith("_operational")) {
|
|
18
|
+
return name.slice(0, -"_operational".length) || null;
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=operational-db.js.map
|