@synapsor/runner 1.4.121 → 1.4.122

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +23 -13
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/runner.mjs +2533 -323
  6. package/docs/README.md +1 -0
  7. package/docs/capability-authoring.md +43 -1
  8. package/docs/cloud-cli.md +248 -0
  9. package/docs/cloud-mode.md +88 -6
  10. package/docs/cloud-push.md +22 -5
  11. package/docs/conformance.md +6 -0
  12. package/docs/contract-testing.md +30 -1
  13. package/docs/dsl-reference.md +11 -0
  14. package/docs/hosted-cloud-linked-verification.md +97 -0
  15. package/docs/oss-vs-cloud.md +13 -6
  16. package/docs/release-notes.md +30 -0
  17. package/docs/rfcs/007-trusted-principal-row-scope.md +75 -0
  18. package/docs/runner-bundles.md +24 -0
  19. package/docs/running-a-runner-fleet.md +8 -0
  20. package/docs/security-boundary.md +15 -1
  21. package/examples/runner-fleet/seed/mysql.sql +5 -1
  22. package/examples/runner-fleet/seed/postgres.sql +5 -1
  23. package/examples/support-plan-credit/README.md +8 -6
  24. package/fixtures/dsl/principal-row-scope.synapsor.sql +23 -0
  25. package/fixtures/protocol/MANIFEST.json +10 -10
  26. package/package.json +1 -1
  27. package/schemas/change-set.v1.schema.json +14 -0
  28. package/schemas/change-set.v2.schema.json +14 -0
  29. package/schemas/change-set.v3.schema.json +2 -0
  30. package/schemas/compensation-change-set.v1.schema.json +3 -2
  31. package/schemas/inverse-descriptor.v1.schema.json +2 -0
  32. package/schemas/synapsor.contract-tests.schema.json +11 -1
  33. package/schemas/writeback-job.v1.schema.json +14 -0
  34. package/schemas/writeback-job.v2.schema.json +14 -0
  35. package/schemas/writeback-job.v3.schema.json +2 -0
  36. package/schemas/writeback-job.v4.schema.json +2 -2
@@ -16,6 +16,7 @@
16
16
  "operation": { "enum": ["set_update", "set_delete", "batch_insert"] },
17
17
  "target": { "type": "object", "additionalProperties": false, "required": ["schema", "table", "primary_key"], "properties": { "schema": { "$ref": "#/$defs/safeIdentifier" }, "table": { "$ref": "#/$defs/safeIdentifier" }, "primary_key": { "type": "object", "additionalProperties": false, "required": ["column"], "properties": { "column": { "$ref": "#/$defs/safeIdentifier" } } } } },
18
18
  "tenant_guard": { "$ref": "#/$defs/columnValue" },
19
+ "principal_scope": { "$ref": "#/$defs/principalScope" },
19
20
  "allowed_columns": { "type": "array", "items": { "$ref": "#/$defs/safeIdentifier" }, "maxItems": 256, "uniqueItems": true },
20
21
  "patch": { "$ref": "#/$defs/scalarRecord" },
21
22
  "version_advance": { "$ref": "#/$defs/versionAdvance" },
@@ -43,6 +44,7 @@
43
44
  "scalar": { "type": ["string", "number", "boolean", "null"] },
44
45
  "scalarRecord": { "type": "object", "propertyNames": { "$ref": "#/$defs/safeIdentifier" }, "additionalProperties": { "$ref": "#/$defs/scalar" }, "maxProperties": 256 },
45
46
  "columnValue": { "type": "object", "additionalProperties": false, "required": ["column", "value"], "properties": { "column": { "$ref": "#/$defs/safeIdentifier" }, "value": { "$ref": "#/$defs/scalar" } } },
47
+ "principalScope": { "type": "object", "additionalProperties": false, "required": ["schema_version", "column", "binding", "provider", "value_fingerprint"], "properties": { "schema_version": { "const": "synapsor.principal-scope.v1" }, "column": { "$ref": "#/$defs/safeIdentifier" }, "binding": { "$ref": "#/$defs/safeIdentifier" }, "provider": { "enum": ["environment", "http_claims", "cloud_session", "static_dev"] }, "value_fingerprint": { "$ref": "#/$defs/sha256" }, "value": { "$ref": "#/$defs/scalar" } } },
46
48
  "versionAdvance": { "type": "object", "additionalProperties": false, "required": ["column", "strategy"], "properties": { "column": { "$ref": "#/$defs/safeIdentifier" }, "strategy": { "enum": ["integer_increment", "database_generated"] } } },
47
49
  "deduplicationComponent": { "type": "object", "additionalProperties": false, "required": ["column", "value", "source"], "properties": { "column": { "$ref": "#/$defs/safeIdentifier" }, "value": { "$ref": "#/$defs/scalar" }, "source": { "enum": ["proposal_id", "trusted_tenant", "fixed"] } } },
48
50
  "deduplication": { "type": "object", "additionalProperties": false, "required": ["components"], "properties": { "components": { "type": "array", "items": { "$ref": "#/$defs/deduplicationComponent" }, "minItems": 1, "maxItems": 8 } } },
@@ -9,9 +9,9 @@
9
9
  "runner_scope": { "type": "object", "additionalProperties": false, "required": ["project_id", "source_id"], "properties": { "project_id": { "type": "string", "minLength": 1 }, "source_id": { "type": "string", "minLength": 1 } } },
10
10
  "engine": { "enum": ["postgres", "mysql"] }, "operation": { "enum": ["restore_update", "remove_insert", "restore_insert"] },
11
11
  "target": { "type": "object", "additionalProperties": false, "required": ["schema", "table", "primary_key"], "properties": { "schema": { "$ref": "#/$defs/identifier" }, "table": { "$ref": "#/$defs/identifier" }, "primary_key": { "type": "object", "additionalProperties": false, "required": ["column"], "properties": { "column": { "$ref": "#/$defs/identifier" }, "value": { "$ref": "#/$defs/scalar" } } } } },
12
- "tenant_guard": { "$ref": "#/$defs/columnValue" }, "allowed_columns": { "type": "array", "items": { "$ref": "#/$defs/identifier" }, "maxItems": 256, "uniqueItems": true }, "patch": { "type": "object", "maxProperties": 0 },
12
+ "tenant_guard": { "$ref": "#/$defs/columnValue" }, "principal_scope": { "$ref": "#/$defs/principalScope" }, "allowed_columns": { "type": "array", "items": { "$ref": "#/$defs/identifier" }, "maxItems": 256, "uniqueItems": true }, "patch": { "type": "object", "maxProperties": 0 },
13
13
  "compensation": { "$ref": "inverse-descriptor.v1.schema.json" }, "forward_receipt_hash": { "$ref": "#/$defs/sha256" }, "idempotency_key": { "type": "string", "minLength": 1 },
14
14
  "lease": { "type": "object", "additionalProperties": false, "required": ["lease_id", "attempt", "expires_at"], "properties": { "lease_id": { "type": "string", "minLength": 1 }, "attempt": { "type": "integer", "minimum": 1 }, "expires_at": { "type": "string", "format": "date-time" } } }
15
15
  },
16
- "$defs": { "identifier": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" }, "sha256": { "type": "string", "pattern": "^sha256:.+" }, "scalar": { "type": ["string", "number", "boolean", "null"] }, "columnValue": { "type": "object", "additionalProperties": false, "required": ["column", "value"], "properties": { "column": { "$ref": "#/$defs/identifier" }, "value": { "$ref": "#/$defs/scalar" } } } }
16
+ "$defs": { "identifier": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" }, "sha256": { "type": "string", "pattern": "^sha256:.+" }, "scalar": { "type": ["string", "number", "boolean", "null"] }, "columnValue": { "type": "object", "additionalProperties": false, "required": ["column", "value"], "properties": { "column": { "$ref": "#/$defs/identifier" }, "value": { "$ref": "#/$defs/scalar" } } }, "principalScope": { "type": "object", "additionalProperties": false, "required": ["schema_version", "column", "binding", "provider", "value_fingerprint"], "properties": { "schema_version": { "const": "synapsor.principal-scope.v1" }, "column": { "$ref": "#/$defs/identifier" }, "binding": { "$ref": "#/$defs/identifier" }, "provider": { "enum": ["environment", "http_claims", "cloud_session", "static_dev"] }, "value_fingerprint": { "$ref": "#/$defs/sha256" }, "value": { "$ref": "#/$defs/scalar" } } } }
17
17
  }