@openengio/cli 0.33.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -1
- package/bin/public/openeng.js +943 -143
- package/package.json +1 -1
- package/skill/conventions/SKILL.md +20 -1
- package/skill/openeng/SKILL.md +43 -1
package/bin/public/openeng.js
CHANGED
|
@@ -79,6 +79,12 @@ var FIX_REQUEST = { option: "Correct the request and send it again." };
|
|
|
79
79
|
var ASK_ADMINISTRATOR = { option: "Ask an administrator of the organisation to make the change or to grant the permission." };
|
|
80
80
|
var SIGN_IN_AGAIN = { option: "Sign in again." };
|
|
81
81
|
var RULE_ENTRIES = {
|
|
82
|
+
"upstream-changed": entry("The upstream content changed since the link was reviewed; no link was cleared.", {
|
|
83
|
+
option: "Read the link status, review the upstream content and clear against its new version.",
|
|
84
|
+
read: "readLinkStatus"
|
|
85
|
+
}),
|
|
86
|
+
"upstream-not-readable": entry("The upstream object or an object in its review chain cannot be read; no link was cleared.", { option: "Ask for read access to the upstream review chain before clearing the link." }),
|
|
87
|
+
"too-many-links": entry("The review chain or aggregate exceeds 100 contributing objects or links.", { option: "Reduce the chain or the contributing links before reading or clearing again." }),
|
|
82
88
|
"unsupported-content": entry("The file's content or name is not an admitted attachment format.", FIX_REQUEST),
|
|
83
89
|
"too-large": entry("The attachment exceeds the per-file byte limit.", FIX_REQUEST),
|
|
84
90
|
"not-an-attachment-property": entry("The object's stored type version does not declare this property as an attachment.", FIX_REQUEST),
|
|
@@ -364,7 +370,7 @@ var ROUTE_DOCS = Object.freeze({
|
|
|
364
370
|
stageAttachment: doc("Stages attachment bytes for the selected project and ref without writing an engineering row. Admits user, service, client and run-apply tokens.", [...ATTACHMENT_SCOPED, "unsupported-content", "too-large"]),
|
|
365
371
|
readAttachment: doc("Downloads the attachment held by an object's property at its stored type version. Admits user, service, client, run-explore and run-apply tokens.", [...ATTACHMENT_SCOPED, "organisation-not-ready", "branch-needs-schema-update", "not-an-attachment-property", "no-attachment", "attachment-unavailable"]),
|
|
366
372
|
readObject: doc("Reads one object at a branch or baseline.", REF_READ),
|
|
367
|
-
queryObjects: doc(`Runs a filtered, ordered, paged query over the objects of a branch or baseline, or pages the union, intersection or difference of two plain object-set descriptions on that ref. ${QUERY_PROJECT_SCOPE}`, [
|
|
373
|
+
queryObjects: doc(`Runs a filtered, ordered, paged query over the objects of a branch or baseline, or pages the union, intersection or difference of two plain object-set descriptions on that ref. A top-level type filter {kind:"type",op:"in",values:["part","system"]} selects any of 1 to 100 published type keys and may be combined with a text filter; continuation binds to the entire selection. ${QUERY_PROJECT_SCOPE}`, [
|
|
368
374
|
...REF_READ,
|
|
369
375
|
"malformed-query",
|
|
370
376
|
"over-bound",
|
|
@@ -389,6 +395,21 @@ var ROUTE_DOCS = Object.freeze({
|
|
|
389
395
|
startImportRun: doc("Starts a run that imports the connection's source into its mirror project, and answers the run once its row has committed.", [...SCOPED, "import-running", "connection-revoked", "types-not-approved"]),
|
|
390
396
|
listImportRuns: doc("Lists the runs of a connection, newest first, or the one run named.", SCOPED),
|
|
391
397
|
closeImportRun: doc("Ends a running run: the connection's service identity as succeeded or failed, or the person who started it as failed.", [...SCOPED, "run-not-running"]),
|
|
398
|
+
createHostedApp: doc("Creates a hosted app in a project under a key the project has not used.", [...WRITE]),
|
|
399
|
+
publishHostedVersion: doc("Publishes the request body, at most 4 MiB, as the next version of the hosted app the name header keys.", [...WRITE]),
|
|
400
|
+
readHostedBundle: doc("Reads the bundle of the caller's own open launch record.", [...SCOPED]),
|
|
401
|
+
listHostedApps: doc("Lists the hosted apps of a project the caller reads.", [...SCOPED]),
|
|
402
|
+
listHostedVersions: doc("Lists the versions of a hosted app, newest first.", [...SCOPED]),
|
|
403
|
+
revokeHostedApp: doc("Revokes a hosted app, which ends every launch of it at the next call.", [...WRITE]),
|
|
404
|
+
revokeHostedVersion: doc("Revokes one version of a hosted app.", [...WRITE]),
|
|
405
|
+
openHostedApp: doc("Opens the newest live version of the app keyed by appKey in the selected project, derives its runtime and records the caller's launch.", [...WRITE]),
|
|
406
|
+
endHostedLaunch: doc("Ends the caller's own open launch record.", [...WRITE]),
|
|
407
|
+
mintHostedAppToken: doc("Mints the short-lived token a hosted app presents, from a user token and the caller's own open launch record.", [...SCOPED]),
|
|
408
|
+
setHostedOneWallSwitch: doc("Turns the organisation's one-wall switch on or off. Turning it off withdraws every one-wall permission.", [...WRITE]),
|
|
409
|
+
readHostedOneWallSwitch: doc("Reads the organisation's one-wall switch.", [...SCOPED]),
|
|
410
|
+
grantHostedOneWall: doc("Grants one app the one-wall permission while the organisation's switch is on.", [...WRITE]),
|
|
411
|
+
withdrawHostedOneWall: doc("Withdraws one app's one-wall permission.", [...WRITE]),
|
|
412
|
+
listHostedOneWallGrants: doc("Lists the organisation's one-wall permissions.", [...SCOPED]),
|
|
392
413
|
previewDelete: doc("Previews deleting an object: the links the delete would remove, or the refusal it would meet. Changes nothing.", [...OBJECT_WRITE, "plan-closed"]),
|
|
393
414
|
recover: doc("Finds what an interrupted mutation did and finishes its record.", REF_READ),
|
|
394
415
|
executeVerb: doc("Runs a verb on an object and records its result.", [...OBJECT_WRITE, "plan-closed"]),
|
|
@@ -405,7 +426,7 @@ var ROUTE_DOCS = Object.freeze({
|
|
|
405
426
|
readMergeConflicts: doc("Reads conflicts for the source branch named in input.name, always comparing it with main. For each field, base is the common value before either side changed it, ours is main, and theirs is the source branch. If the merge targeted another branch, this read still compares with main and does not report that merge's conflicts.", REF_READ),
|
|
406
427
|
disposeRef: doc("Disposes a branch that is no longer wanted: a writer of the branch when no proposal on it is pending, otherwise a merger of the project.", [...WRITE, "concurrent-change", "lock-unavailable"]),
|
|
407
428
|
listProjects: doc("Lists every project the caller may read in the organisation the session is attached to, with its namespace.", SIGNED_IN),
|
|
408
|
-
listRefs: doc("Lists the branches of a project, each with its head: readable with a hash, withheld when the caller may not read the branch, or unread past the first 50 branches.", [...SCOPED, "organisation-not-ready"]),
|
|
429
|
+
listRefs: doc("Lists the branches of a project, each with its head: readable with a hash, withheld when the caller may not read the branch, or unread past the first 50 branches. Each row also carries a schema state as a convenience hint; the branch-needs-schema-update refusal on use remains the guard.", [...SCOPED, "organisation-not-ready"]),
|
|
409
430
|
readCatalogue: doc("Reads the published catalogue of a project's namespace.", SCOPED),
|
|
410
431
|
readPendingProposal: doc("Reads the proposal waiting for review on a branch, if any.", SCOPED),
|
|
411
432
|
submitProposal: doc("Submits a branch for review.", [...REF_READ, "proposal-open", "no-commits"]),
|
|
@@ -464,9 +485,13 @@ var ROUTE_DOCS = Object.freeze({
|
|
|
464
485
|
readProposal: doc("Reads one proposal.", SCOPED),
|
|
465
486
|
refuseProposal: doc("Refuses a proposal and returns its branch to its author.", [...SCOPED, "proposal-not-pending"]),
|
|
466
487
|
readBranchDiff: doc("Reads the objects and edges a proposal's branch changes against its target.", REF_READ),
|
|
488
|
+
readLinkStatus: doc("Reads an object's tracked links at a stable head: review (cleared, suspect, unreviewed, not-visible or too-many-links), clearing attribution, link bounds and aggregate bounds with units and coverage. Only a readable upstream supplies its opaque upstreamVersion, the precondition for clearing.", [...REF_READ, "head-moved"]),
|
|
489
|
+
clearLinks: doc("Clears 1 to 100 links atomically on the named ref. Send each linkId with the upstreamVersion from readLinkStatus as a precondition; upstream-changed requires a fresh read and review. Records the clearer and time without changing bounds. Admits user, run-apply, client and service; run-explore and run-types are refused at admission. An unknown outcome must be recovered by correlation before retrying.", [...OBJECT_WRITE, "upstream-changed", "upstream-not-readable", "too-many-links"]),
|
|
490
|
+
readChangeImpact: doc("Reads review, link bounds and aggregate bounds state changes against the branch's merge base, plus downstream reach to depth three and hidden counts. Both ref and base are required. Includes added and removed states and pins both heads; over-bound and head-moved refuse the entire read without a partial answer.", [...REF_READ, "over-bound", "head-moved"]),
|
|
467
491
|
diffBranches: doc("Reads the objects and edges one branch or baseline changes against another.", REF_READ),
|
|
468
492
|
readBranchHistory: doc("Reads a branch's history of commits.", [...SCOPED, "invalid-continuation", "stale-continuation", "malformed-history-request"]),
|
|
469
493
|
listAudit: doc("Lists the audit records of a project.", [...SCOPED, "invalid-continuation"]),
|
|
494
|
+
listOrganisationAudit: doc("Lists the organisation-level actions the caller may read.", [...SCOPED, "invalid-continuation"]),
|
|
470
495
|
readRefHead: doc("Reads the head of a branch or baseline.", REF_READ),
|
|
471
496
|
inspectBranchOperation: doc("Reads the state of a branch operation the caller started.", SCOPED),
|
|
472
497
|
abandonBranch: doc("Refuses branch abandonment because this operation is not available in this release.", [
|
|
@@ -543,6 +568,13 @@ var BINARY_REQUESTS = {
|
|
|
543
568
|
"selectorEncoding": "json",
|
|
544
569
|
"nameHeader": "x-oe2-attachment-name",
|
|
545
570
|
"nameEncoding": "rfc8187"
|
|
571
|
+
},
|
|
572
|
+
publishHostedVersion: {
|
|
573
|
+
"contentType": "application/octet-stream",
|
|
574
|
+
"selectorHeader": "x-oe2-selector",
|
|
575
|
+
"selectorEncoding": "json",
|
|
576
|
+
"nameHeader": "x-oe2-attachment-name",
|
|
577
|
+
"nameEncoding": "rfc8187"
|
|
546
578
|
}
|
|
547
579
|
};
|
|
548
580
|
var BINARY_REQUEST_INPUTS = deepFreeze(BINARY_REQUESTS);
|
|
@@ -594,9 +626,9 @@ var SCHEMAS = {
|
|
|
594
626
|
"additionalProperties": false
|
|
595
627
|
},
|
|
596
628
|
readObject: { "type": "object", "properties": { "objectId": { "type": "string" } }, "required": ["objectId"], "additionalProperties": false },
|
|
597
|
-
queryObjects: { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] }, "limit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "typeKey", "limit", "continuation"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "set" }, "op": { "enum": ["union", "intersection", "difference"] }, "left": { "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] } }, "required": ["kind", "typeKey"], "additionalProperties": false }, "right": { "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] } }, "required": ["kind", "typeKey"], "additionalProperties": false }, "limit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "op", "left", "right", "limit", "continuation"], "additionalProperties": false }] },
|
|
598
|
-
queryRows: { "type": "object", "properties": { "kind": { "const": "graph-query" }, "start": { "type": "object", "properties": { "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } } }, "required": ["typeKey"], "additionalProperties": false }, "path": { "type": "array", "items": { "type": "object", "properties": { "alias": { "type": "string" }, "edgeTypeKeys": { "oneOf": [{ "const": "any" }, { "type": "array", "items": { "type": "string" } }] }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKeys": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "repeat": { "type": "object", "properties": { "depth": { "type": "number" } }, "required": ["depth"], "additionalProperties": false } }, "required": ["alias", "edgeTypeKeys", "direction"], "additionalProperties": false } }, "answer": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "rows" }, "columns": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "enum": ["identity", "typeKey"] }, "alias": { "type": "string" } }, "required": ["kind", "alias"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "alias": { "type": "string" }, "property": { "type": "string" } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "alias": { "type": "string" }, "field": { "enum": ["identity", "typeKey"] } }, "required": ["kind", "alias", "field"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge-property" }, "alias": { "type": "string" }, "property": { "type": "string" } }, "required": ["kind", "alias", "property"], "additionalProperties": false }] } }, "order": { "type": "object", "properties": { "alias": { "type": "string" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["alias", "property", "direction"], "additionalProperties": false }, "limit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "columns", "limit", "continuation"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "groups" }, "keys": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "enum": ["identity", "typeKey"] }, "alias": { "type": "string" } }, "required": ["kind", "alias"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "alias": { "type": "string" }, "property": { "type": "string" } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "parent" }, "alias": { "type": "string" }, "edgeTypeKeys": { "type": "array", "items": { "type": "string" } }, "parents": { "type": "array", "items": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } } }, "required": ["kind", "alias", "edgeTypeKeys"], "additionalProperties": false }] } }, "measures": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "count" }, "over": { "type": "array", "items": { "type": "string" } }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "countDistinct" }, "alias": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "sum" }, "alias": { "type": "string" }, "property": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "multiplicity": { "enum": ["per-path", "distinct"] }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "enum": ["min", "max"] }, "alias": { "type": "string" }, "property": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "weightedSum" }, "alias": { "type": "string" }, "property": { "type": "string" }, "weight": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "multiplicity": { "enum": ["per-path", "distinct"] }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias", "weight", "over", "multiplicity", "ends"], "additionalProperties": false }] } }, "having": { "type": "array", "items": { "type": "object", "properties": { "measure": { "type": "number" }, "op": { "enum": ["=", ">", ">=", "<", "<="] }, "value": { "type": "number" } }, "required": ["measure", "op", "value"], "additionalProperties": false } }, "order": { "type": "object", "properties": { "by": { "enum": ["key", "measure"] }, "index": { "type": "number" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["by", "index", "direction"], "additionalProperties": false }, "limit": { "type": "number" } }, "required": ["kind", "keys", "measures"], "additionalProperties": false }] } }, "required": ["kind", "start", "answer"], "additionalProperties": false },
|
|
599
|
-
aggregateObjects: { "type": "object", "properties": { "kind": { "const": "aggregate" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "operation": { "enum": ["count", "min", "max", "sum", "average"] }, "property": { "type": "string" }, "groupBy": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "type" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" } }, "required": ["kind", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "parent" }, "edgeTypeKeys": { "type": "array", "items": { "type": "string" } }, "multiplicity": { "enum": ["per-path", "distinct"] }, "ends": { "enum": ["visible", "all"] }, "parents": { "type": "array", "items": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } } }, "required": ["kind", "edgeTypeKeys", "multiplicity", "ends"], "additionalProperties": false }] } }, "required": ["kind", "typeKey", "operation"], "additionalProperties": false },
|
|
629
|
+
queryObjects: { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] }, "limit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "typeKey", "limit", "continuation"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "set" }, "op": { "enum": ["union", "intersection", "difference"] }, "left": { "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] } }, "required": ["kind", "typeKey"], "additionalProperties": false }, "right": { "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] } }, "required": ["kind", "typeKey"], "additionalProperties": false }, "limit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "op", "left", "right", "limit", "continuation"], "additionalProperties": false }] },
|
|
630
|
+
queryRows: { "type": "object", "properties": { "kind": { "const": "graph-query" }, "start": { "type": "object", "properties": { "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } } }, "required": ["typeKey"], "additionalProperties": false }, "path": { "type": "array", "items": { "type": "object", "properties": { "alias": { "type": "string" }, "edgeTypeKeys": { "oneOf": [{ "const": "any" }, { "type": "array", "items": { "type": "string" } }] }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKeys": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } }, "repeat": { "type": "object", "properties": { "depth": { "type": "number" } }, "required": ["depth"], "additionalProperties": false } }, "required": ["alias", "edgeTypeKeys", "direction"], "additionalProperties": false } }, "answer": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "rows" }, "columns": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "enum": ["identity", "typeKey"] }, "alias": { "type": "string" } }, "required": ["kind", "alias"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "alias": { "type": "string" }, "property": { "type": "string" } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "alias": { "type": "string" }, "field": { "enum": ["identity", "typeKey"] } }, "required": ["kind", "alias", "field"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge-property" }, "alias": { "type": "string" }, "property": { "type": "string" } }, "required": ["kind", "alias", "property"], "additionalProperties": false }] } }, "order": { "type": "object", "properties": { "alias": { "type": "string" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["alias", "property", "direction"], "additionalProperties": false }, "limit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "columns", "limit", "continuation"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "groups" }, "keys": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "enum": ["identity", "typeKey"] }, "alias": { "type": "string" } }, "required": ["kind", "alias"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "alias": { "type": "string" }, "property": { "type": "string" } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "parent" }, "alias": { "type": "string" }, "edgeTypeKeys": { "type": "array", "items": { "type": "string" } }, "parents": { "type": "array", "items": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } } }, "required": ["kind", "alias", "edgeTypeKeys"], "additionalProperties": false }] } }, "measures": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "count" }, "over": { "type": "array", "items": { "type": "string" } }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "countDistinct" }, "alias": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "sum" }, "alias": { "type": "string" }, "property": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "multiplicity": { "enum": ["per-path", "distinct"] }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "enum": ["min", "max"] }, "alias": { "type": "string" }, "property": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "weightedSum" }, "alias": { "type": "string" }, "property": { "type": "string" }, "weight": { "type": "string" }, "over": { "type": "array", "items": { "type": "string" } }, "multiplicity": { "enum": ["per-path", "distinct"] }, "ends": { "enum": ["visible", "all"] } }, "required": ["kind", "alias", "weight", "over", "multiplicity", "ends"], "additionalProperties": false }] } }, "having": { "type": "array", "items": { "type": "object", "properties": { "measure": { "type": "number" }, "op": { "enum": ["=", ">", ">=", "<", "<="] }, "value": { "type": "number" } }, "required": ["measure", "op", "value"], "additionalProperties": false } }, "order": { "type": "object", "properties": { "by": { "enum": ["key", "measure"] }, "index": { "type": "number" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["by", "index", "direction"], "additionalProperties": false }, "limit": { "type": "number" } }, "required": ["kind", "keys", "measures"], "additionalProperties": false }] } }, "required": ["kind", "start", "answer"], "additionalProperties": false },
|
|
631
|
+
aggregateObjects: { "type": "object", "properties": { "kind": { "const": "aggregate" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "operation": { "enum": ["count", "min", "max", "sum", "average"] }, "property": { "type": "string" }, "groupBy": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "type" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" } }, "required": ["kind", "property"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "parent" }, "edgeTypeKeys": { "type": "array", "items": { "type": "string" } }, "multiplicity": { "enum": ["per-path", "distinct"] }, "ends": { "enum": ["visible", "all"] }, "parents": { "type": "array", "items": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } } }, "required": ["kind", "edgeTypeKeys", "multiplicity", "ends"], "additionalProperties": false }] } }, "required": ["kind", "typeKey", "operation"], "additionalProperties": false },
|
|
600
632
|
discoverVerbs: { "type": "object", "properties": { "objectId": { "type": "string" } }, "required": ["objectId"], "additionalProperties": false },
|
|
601
633
|
readHistory: { "type": "object", "properties": { "objectId": { "type": "string" }, "limit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["objectId", "limit", "continuation"], "additionalProperties": false },
|
|
602
634
|
mutate: { "type": "object", "properties": { "correlation": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "mint" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "sent" }, "correlationId": { "type": "string" } }, "required": ["kind", "correlationId"], "additionalProperties": false }] }, "operation": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "create-object" }, "typeKey": { "type": "string" }, "typeVersion": { "type": "number" }, "properties": { "type": "object", "additionalProperties": {} } }, "required": ["kind", "typeKey", "typeVersion", "properties"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "update-object" }, "objectId": { "type": "string" }, "typeVersion": { "type": "number" }, "changes": { "type": "object", "additionalProperties": { "type": "object", "properties": { "from": { "oneOf": [{ "type": "object", "properties": { "absent": { "const": true } }, "required": ["absent"], "additionalProperties": false }, { "type": "object", "properties": { "value": {} }, "required": ["value"], "additionalProperties": false }] }, "to": { "oneOf": [{ "type": "object", "properties": { "absent": { "const": true } }, "required": ["absent"], "additionalProperties": false }, { "type": "object", "properties": { "value": {} }, "required": ["value"], "additionalProperties": false }] } }, "required": ["from", "to"], "additionalProperties": false } } }, "required": ["kind", "objectId", "typeVersion", "changes"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "delete-object" }, "objectId": { "type": "string" } }, "required": ["kind", "objectId"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "create-edge" }, "typeKey": { "type": "string" }, "typeVersion": { "type": "number" }, "sourceObjectId": { "type": "string" }, "targetObjectId": { "type": "string" }, "properties": { "type": "object", "additionalProperties": {} } }, "required": ["kind", "typeKey", "typeVersion", "sourceObjectId", "targetObjectId", "properties"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "update-edge" }, "edgeId": { "type": "string" }, "typeVersion": { "type": "number" }, "changes": { "type": "object", "additionalProperties": { "type": "object", "properties": { "from": { "oneOf": [{ "type": "object", "properties": { "absent": { "const": true } }, "required": ["absent"], "additionalProperties": false }, { "type": "object", "properties": { "value": {} }, "required": ["value"], "additionalProperties": false }] }, "to": { "oneOf": [{ "type": "object", "properties": { "absent": { "const": true } }, "required": ["absent"], "additionalProperties": false }, { "type": "object", "properties": { "value": {} }, "required": ["value"], "additionalProperties": false }] } }, "required": ["from", "to"], "additionalProperties": false } } }, "required": ["kind", "edgeId", "typeVersion", "changes"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "delete-edge" }, "edgeId": { "type": "string" } }, "required": ["kind", "edgeId"], "additionalProperties": false }] } }, "required": ["correlation", "operation"], "additionalProperties": false },
|
|
@@ -640,16 +672,20 @@ var SCHEMAS = {
|
|
|
640
672
|
reissuePlatformInvitation: { "type": "object", "properties": { "invitationId": { "type": "string" } }, "required": ["invitationId"], "additionalProperties": false },
|
|
641
673
|
readWebOrigin: { "type": "object", "properties": {}, "required": [], "additionalProperties": false },
|
|
642
674
|
readCallerCapabilities: { "type": "object", "properties": {}, "required": [], "additionalProperties": false },
|
|
643
|
-
queryGraph: { "type": "object", "properties": { "kind": { "const": "graph" }, "start": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "objects" }, "objects": { "type": "array", "items": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } } }, "required": ["kind", "objects"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "set" }, "set": { "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] } }, "required": ["kind", "typeKey"], "additionalProperties": false } }, "required": ["kind", "set"], "additionalProperties": false }] }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKeys": { "type": "array", "items": { "type": "string" } }, "direction": { "enum": ["outgoing", "incoming"] }, "depth": { "type": "number" }, "targetTypeKeys": { "type": "array", "items": { "type": "string" } } }, "required": ["depth"], "additionalProperties": false } }, "closeOver": { "type": "array", "items": { "type": "string" } }, "keep": { "enum": ["all", "last"] }, "objectLimit": { "type": "number" }, "hopLimit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "start", "steps"], "additionalProperties": false },
|
|
675
|
+
queryGraph: { "type": "object", "properties": { "kind": { "const": "graph" }, "start": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "objects" }, "objects": { "type": "array", "items": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } } }, "required": ["kind", "objects"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "set" }, "set": { "type": "object", "properties": { "kind": { "const": "objects" }, "typeKey": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "projects": { "type": "array", "items": { "type": "string" } }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "targetTypeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "or" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "=" }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": [">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "string" }, { "type": "number" }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "edge" }, "edgeTypeKey": { "type": "string" }, "direction": { "enum": ["outgoing", "incoming", "to-children", "to-parent"] }, "has": { "type": "boolean" } }, "required": ["kind", "edgeTypeKey", "direction", "has"], "additionalProperties": false }] } } }, "required": ["kind", "filters"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "type": "string" }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "type" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "op", "values"], "additionalProperties": false }] } } }, "required": ["edgeTypeKey", "direction", "targetTypeKey"], "additionalProperties": false } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] } }, "required": ["kind", "typeKey"], "additionalProperties": false } }, "required": ["kind", "set"], "additionalProperties": false }] }, "steps": { "type": "array", "items": { "type": "object", "properties": { "edgeTypeKeys": { "type": "array", "items": { "type": "string" } }, "direction": { "enum": ["outgoing", "incoming"] }, "depth": { "type": "number" }, "targetTypeKeys": { "type": "array", "items": { "type": "string" } } }, "required": ["depth"], "additionalProperties": false } }, "closeOver": { "type": "array", "items": { "type": "string" } }, "keep": { "enum": ["all", "last"] }, "objectLimit": { "type": "number" }, "hopLimit": { "type": "number" }, "continuation": { "oneOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["kind", "start", "steps"], "additionalProperties": false },
|
|
644
676
|
readStructure: { "type": "object", "properties": { "typeKey": { "type": "string" }, "structure": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "declared" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "relationship" }, "edgeTypeKey": { "type": "string" } }, "required": ["kind", "edgeTypeKey"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "view" }, "viewKey": { "type": "string" } }, "required": ["kind", "viewKey"], "additionalProperties": false }] }, "anchor": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "forest" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "subtree" }, "object": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } }, "required": ["kind", "object"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "ancestors" }, "object": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false } }, "required": ["kind", "object"], "additionalProperties": false }] }, "maxDepth": { "type": "number" }, "occurrenceLimit": { "type": "number" } }, "required": ["typeKey", "structure", "anchor"], "additionalProperties": false },
|
|
645
677
|
findPaths: { "type": "object", "properties": { "from": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false }, "to": { "type": "object", "properties": { "objectId": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["objectId", "projectId"], "additionalProperties": false }, "edgeTypeKeys": { "type": "array", "items": { "type": "string" } }, "direction": { "enum": ["outgoing", "incoming"] }, "maxLength": { "type": "number" }, "maxPaths": { "type": "number" } }, "required": ["from", "to", "maxLength"], "additionalProperties": false },
|
|
646
678
|
listProposals: { "type": "object", "properties": { "state": { "enum": ["pending", "merged", "refused", "discarded", "all"] }, "cursor": { "type": "string" } }, "required": ["state"], "additionalProperties": false },
|
|
647
679
|
readProposal: { "type": "object", "properties": { "proposalId": { "type": "string" } }, "required": ["proposalId"], "additionalProperties": false },
|
|
648
680
|
refuseProposal: { "type": "object", "properties": { "proposalId": { "type": "string" }, "reason": { "type": "string" } }, "required": ["proposalId", "reason"], "additionalProperties": false },
|
|
649
681
|
readBranchDiff: { "type": "object", "properties": { "proposalId": { "type": "string" }, "cursor": { "type": "string" } }, "required": ["proposalId"], "additionalProperties": false },
|
|
682
|
+
readLinkStatus: { "type": "object", "properties": { "objectId": { "type": "string" } }, "required": ["objectId"], "additionalProperties": false },
|
|
683
|
+
clearLinks: { "type": "object", "properties": { "correlation": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "mint" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "sent" }, "correlationId": { "type": "string" } }, "required": ["kind", "correlationId"], "additionalProperties": false }] }, "ref": { "type": "string" }, "entries": { "type": "array", "items": { "type": "object", "properties": { "linkId": { "type": "string" }, "upstreamVersion": { "type": "string" } }, "required": ["linkId", "upstreamVersion"], "additionalProperties": false }, "minItems": 1, "maxItems": 100 } }, "required": ["correlation", "ref", "entries"], "additionalProperties": false },
|
|
684
|
+
readChangeImpact: { "type": "object", "properties": { "ref": { "type": "string" }, "base": { "type": "string" } }, "required": ["ref", "base"], "additionalProperties": false },
|
|
650
685
|
diffBranches: { "type": "object", "properties": { "ref": { "type": "string" }, "base": { "type": "string" }, "cursor": { "type": "string" } }, "required": ["ref", "base"], "additionalProperties": false },
|
|
651
686
|
readBranchHistory: { "type": "object", "properties": { "name": { "type": "string" }, "cursor": { "type": "string" } }, "required": ["name"], "additionalProperties": false },
|
|
652
687
|
listAudit: { "type": "object", "properties": { "limit": { "type": "number" }, "cursor": { "type": "string" } }, "required": ["limit"], "additionalProperties": false },
|
|
688
|
+
listOrganisationAudit: { "type": "object", "properties": { "limit": { "type": "number" }, "verbPrefix": { "type": "string" }, "cursor": { "type": "string" } }, "required": ["limit", "verbPrefix"], "additionalProperties": false },
|
|
653
689
|
readRefHead: { "type": "object", "properties": { "name": { "type": "string" } }, "required": ["name"], "additionalProperties": false },
|
|
654
690
|
inspectBranchOperation: { "type": "object", "properties": { "correlationId": { "type": "string" } }, "required": ["correlationId"], "additionalProperties": false },
|
|
655
691
|
abandonBranch: { "type": "object", "properties": { "correlation": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "mint" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "sent" }, "correlationId": { "type": "string" } }, "required": ["kind", "correlationId"], "additionalProperties": false }] }, "name": { "type": "string" }, "atHash": { "type": "string" } }, "required": ["correlation", "name", "atHash"], "additionalProperties": false },
|
|
@@ -683,7 +719,7 @@ var SCHEMAS = {
|
|
|
683
719
|
readCurrentChangeSet: { "type": "object", "properties": {}, "required": [], "additionalProperties": false },
|
|
684
720
|
readChangeSet: { "type": "object", "properties": { "changeSetId": { "type": "string" } }, "required": ["changeSetId"], "additionalProperties": false },
|
|
685
721
|
readChangeSetState: { "type": "object", "properties": { "changeSetId": { "type": "string" } }, "required": ["changeSetId"], "additionalProperties": false },
|
|
686
|
-
reviseChangeSet: { "type": "object", "properties": { "changeSetId": { "type": "string" }, "expectedRevision": { "type": "string" }, "changes": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "object", "properties": { "typeCategory": { "const": "object" }, "typeKey": { "type": "string" }, "version": { "type": "number" }, "displayName": { "type": "string" }, "description": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "schemaLanguageVersion": { "type": "string" }, "propertyDefinitions": { "type": "object", "additionalProperties": {} }, "requiredPropertyKeys": { "type": "array", "items": { "type": "string" } }, "presentationBindings": { "type": "object", "properties": { "views": { "type": "object", "properties": { "object": { "type": "object", "properties": { "root": { "type": "string" }, "elements": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string" }, "props": { "type": "object", "additionalProperties": {} }, "children": { "type": "array", "items": { "type": "string" } }, "repeat": { "type": "object", "properties": { "statePath": { "type": "string" }, "key": { "type": "string" } }, "required": ["statePath"], "additionalProperties": false }, "on": { "type": "object", "properties": { "press": { "oneOf": [{ "type": "object", "properties": { "action": { "const": "set-properties" }, "params": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "object", "properties": { "$state": { "type": "string" } }, "required": ["$state"], "additionalProperties": false }] } } }, "required": ["properties"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }, { "type": "object", "properties": { "action": { "const": "run-verb" }, "params": { "type": "object", "properties": { "verb": { "type": "string" } }, "required": ["verb"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }] } }, "required": ["press"], "additionalProperties": false } }, "required": ["type", "props", "children"], "additionalProperties": false } } }, "required": ["root", "elements"], "additionalProperties": false }, "app": { "type": "object", "properties": { "root": { "type": "string" }, "elements": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string" }, "props": { "type": "object", "additionalProperties": {} }, "children": { "type": "array", "items": { "type": "string" } }, "repeat": { "type": "object", "properties": { "statePath": { "type": "string" }, "key": { "type": "string" } }, "required": ["statePath"], "additionalProperties": false }, "on": { "type": "object", "properties": { "press": { "oneOf": [{ "type": "object", "properties": { "action": { "const": "set-properties" }, "params": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "object", "properties": { "$state": { "type": "string" } }, "required": ["$state"], "additionalProperties": false }] } } }, "required": ["properties"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }, { "type": "object", "properties": { "action": { "const": "run-verb" }, "params": { "type": "object", "properties": { "verb": { "type": "string" } }, "required": ["verb"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }] } }, "required": ["press"], "additionalProperties": false } }, "required": ["type", "props", "children"], "additionalProperties": false } } }, "required": ["root", "elements"], "additionalProperties": false }, "card": { "type": "object", "properties": { "root": { "type": "string" }, "elements": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string" }, "props": { "type": "object", "additionalProperties": {} }, "children": { "type": "array", "items": { "type": "string" } }, "repeat": { "type": "object", "properties": { "statePath": { "type": "string" }, "key": { "type": "string" } }, "required": ["statePath"], "additionalProperties": false }, "on": { "type": "object", "properties": { "press": { "oneOf": [{ "type": "object", "properties": { "action": { "const": "set-properties" }, "params": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "object", "properties": { "$state": { "type": "string" } }, "required": ["$state"], "additionalProperties": false }] } } }, "required": ["properties"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }, { "type": "object", "properties": { "action": { "const": "run-verb" }, "params": { "type": "object", "properties": { "verb": { "type": "string" } }, "required": ["verb"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }] } }, "required": ["press"], "additionalProperties": false } }, "required": ["type", "props", "children"], "additionalProperties": false } } }, "required": ["root", "elements"], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "title": { "type": "string" }, "summary": { "type": "string" }, "icon": { "type": "string" }, "typeIcon": { "type": "string" }, "propertyLabels": { "type": "object", "additionalProperties": { "type": "string" } }, "propertyOrder": { "type": "array", "items": { "type": "string" } }, "rail": { "type": "object", "properties": { "group": { "type": "string" }, "order": { "type": "number" } }, "required": ["group", "order"], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "structureDeclaration": { "type": "object", "properties": { "relationships": { "type": "array", "items": { "type": "string" } }, "views": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "label": { "type": "string" }, "steps": { "type": "array", "items": { "type": "string" } }, "decoration": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "label": { "type": "string" } }, "required": ["key", "label"], "additionalProperties": false } } }, "required": ["key", "label", "steps"], "additionalProperties": false } } }, "required": [], "additionalProperties": false }, "subscriptionRoles": { "type": "object", "properties": { "owner": { "type": "object", "properties": { "max": { "type": "number" } }, "required": [], "additionalProperties": false }, "approver": { "type": "object", "properties": { "max": { "type": "number" } }, "required": [], "additionalProperties": false }, "watcher": { "type": "object", "properties": { "max": { "type": "number" } }, "required": [], "additionalProperties": false } }, "required": [], "additionalProperties": false } }, "required": ["typeCategory", "typeKey", "version", "displayName", "description", "schemaLanguageVersion", "propertyDefinitions", "requiredPropertyKeys"], "additionalProperties": false }, { "type": "object", "properties": { "typeCategory": { "const": "edge" }, "typeKey": { "type": "string" }, "version": { "type": "number" }, "displayName": { "type": "string" }, "sourceObjectType": { "type": "string" }, "targetObjectType": { "type": "string" }, "kind": { "enum": ["structural", "traceability"] }, "subjectEnd": { "enum": ["source", "target"] }, "parentEnd": { "oneOf": [{ "const": "source" }, { "const": "target" }, { "type": "null" }] }, "sourceLabel": { "type": "string" }, "targetLabel": { "type": "string" }, "schemaLanguageVersion": { "type": "string" }, "propertyDefinitions": { "type": "object", "additionalProperties": {} }, "requiredPropertyKeys": { "type": "array", "items": { "type": "string" } }, "readRule": { "enum": ["both-endpoints", "either-endpoint"] }, "writeRule": { "enum": ["both-endpoints", "either-endpoint"] } }, "required": ["typeCategory", "typeKey", "version", "displayName", "sourceObjectType", "targetObjectType", "kind", "subjectEnd", "parentEnd", "sourceLabel", "targetLabel", "schemaLanguageVersion", "propertyDefinitions", "requiredPropertyKeys", "readRule", "writeRule"], "additionalProperties": false }, { "type": "object", "properties": { "typeCategory": { "const": "verb" }, "typeKey": { "type": "string" }, "version": { "type": "number" }, "displayName": { "type": "string" }, "description": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "allowedSubjectTypes": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "none" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "types" }, "types": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "types"], "additionalProperties": false }] }, "inputSchema": {}, "resultSchema": {}, "handlerKey": { "type": "string" }, "template": { "type": "object", "properties": { "query": { "type": "object", "properties": { "typeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": ["=", ">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }] }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] }, "limit": { "type": "number" } }, "required": ["typeKey", "limit"], "additionalProperties": false }, "operations": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "create-object" }, "typeKey": { "type": "string" }, "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } } }, "required": ["kind", "typeKey", "properties"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "update-object" }, "typeKey": { "type": "string" }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] }, "changes": { "type": "object", "additionalProperties": { "type": "object", "properties": { "from": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "absent" } }, "required": ["slot"], "additionalProperties": false }] }, "to": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "absent" } }, "required": ["slot"], "additionalProperties": false }] } }, "required": ["from", "to"], "additionalProperties": false } } }, "required": ["kind", "typeKey", "target", "changes"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "delete-object" }, "typeKey": { "type": "string" }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } }, "required": ["kind", "typeKey", "target"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "create-edge" }, "typeKey": { "type": "string" }, "source": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] }, "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } } }, "required": ["kind", "typeKey", "source", "target", "properties"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "delete-edge" }, "typeKey": { "type": "string" }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } }, "required": ["kind", "typeKey", "target"], "additionalProperties": false }] } } }, "required": ["operations"], "additionalProperties": false }, "schemaLanguageVersion": { "type": "string" } }, "required": ["typeCategory", "typeKey", "version", "displayName", "description", "allowedSubjectTypes", "inputSchema", "resultSchema", "schemaLanguageVersion"], "additionalProperties": false }] } }, "railGroups": { "type": "array", "items": { "type": "string" } } }, "required": ["changeSetId", "expectedRevision", "changes"], "additionalProperties": false },
|
|
722
|
+
reviseChangeSet: { "type": "object", "properties": { "changeSetId": { "type": "string" }, "expectedRevision": { "type": "string" }, "changes": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "object", "properties": { "typeCategory": { "const": "object" }, "typeKey": { "type": "string" }, "version": { "type": "number" }, "displayName": { "type": "string" }, "description": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "schemaLanguageVersion": { "type": "string" }, "propertyDefinitions": { "type": "object", "additionalProperties": {} }, "requiredPropertyKeys": { "type": "array", "items": { "type": "string" } }, "presentationBindings": { "type": "object", "properties": { "views": { "type": "object", "properties": { "object": { "type": "object", "properties": { "root": { "type": "string" }, "elements": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string" }, "props": { "type": "object", "additionalProperties": {} }, "children": { "type": "array", "items": { "type": "string" } }, "repeat": { "type": "object", "properties": { "statePath": { "type": "string" }, "key": { "type": "string" } }, "required": ["statePath"], "additionalProperties": false }, "on": { "type": "object", "properties": { "press": { "oneOf": [{ "type": "object", "properties": { "action": { "const": "set-properties" }, "params": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "object", "properties": { "$state": { "type": "string" } }, "required": ["$state"], "additionalProperties": false }] } } }, "required": ["properties"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }, { "type": "object", "properties": { "action": { "const": "run-verb" }, "params": { "type": "object", "properties": { "verb": { "type": "string" } }, "required": ["verb"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }] } }, "required": ["press"], "additionalProperties": false } }, "required": ["type", "props", "children"], "additionalProperties": false } } }, "required": ["root", "elements"], "additionalProperties": false }, "app": { "type": "object", "properties": { "root": { "type": "string" }, "elements": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string" }, "props": { "type": "object", "additionalProperties": {} }, "children": { "type": "array", "items": { "type": "string" } }, "repeat": { "type": "object", "properties": { "statePath": { "type": "string" }, "key": { "type": "string" } }, "required": ["statePath"], "additionalProperties": false }, "on": { "type": "object", "properties": { "press": { "oneOf": [{ "type": "object", "properties": { "action": { "const": "set-properties" }, "params": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "object", "properties": { "$state": { "type": "string" } }, "required": ["$state"], "additionalProperties": false }] } } }, "required": ["properties"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }, { "type": "object", "properties": { "action": { "const": "run-verb" }, "params": { "type": "object", "properties": { "verb": { "type": "string" } }, "required": ["verb"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }] } }, "required": ["press"], "additionalProperties": false } }, "required": ["type", "props", "children"], "additionalProperties": false } } }, "required": ["root", "elements"], "additionalProperties": false }, "card": { "type": "object", "properties": { "root": { "type": "string" }, "elements": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string" }, "props": { "type": "object", "additionalProperties": {} }, "children": { "type": "array", "items": { "type": "string" } }, "repeat": { "type": "object", "properties": { "statePath": { "type": "string" }, "key": { "type": "string" } }, "required": ["statePath"], "additionalProperties": false }, "on": { "type": "object", "properties": { "press": { "oneOf": [{ "type": "object", "properties": { "action": { "const": "set-properties" }, "params": { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "object", "properties": { "$state": { "type": "string" } }, "required": ["$state"], "additionalProperties": false }] } } }, "required": ["properties"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }, { "type": "object", "properties": { "action": { "const": "run-verb" }, "params": { "type": "object", "properties": { "verb": { "type": "string" } }, "required": ["verb"], "additionalProperties": false } }, "required": ["action", "params"], "additionalProperties": false }] } }, "required": ["press"], "additionalProperties": false } }, "required": ["type", "props", "children"], "additionalProperties": false } } }, "required": ["root", "elements"], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "title": { "type": "string" }, "summary": { "type": "string" }, "icon": { "type": "string" }, "typeIcon": { "type": "string" }, "propertyLabels": { "type": "object", "additionalProperties": { "type": "string" } }, "propertyOrder": { "type": "array", "items": { "type": "string" } }, "rail": { "type": "object", "properties": { "group": { "type": "string" }, "order": { "type": "number" } }, "required": ["group", "order"], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "structureDeclaration": { "type": "object", "properties": { "relationships": { "type": "array", "items": { "type": "string" } }, "views": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "label": { "type": "string" }, "steps": { "type": "array", "items": { "type": "string" } }, "decoration": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "label": { "type": "string" } }, "required": ["key", "label"], "additionalProperties": false } } }, "required": ["key", "label", "steps"], "additionalProperties": false } } }, "required": [], "additionalProperties": false }, "subscriptionRoles": { "type": "object", "properties": { "owner": { "type": "object", "properties": { "max": { "type": "number" } }, "required": [], "additionalProperties": false }, "approver": { "type": "object", "properties": { "max": { "type": "number" } }, "required": [], "additionalProperties": false }, "watcher": { "type": "object", "properties": { "max": { "type": "number" } }, "required": [], "additionalProperties": false } }, "required": [], "additionalProperties": false } }, "required": ["typeCategory", "typeKey", "version", "displayName", "description", "schemaLanguageVersion", "propertyDefinitions", "requiredPropertyKeys"], "additionalProperties": false }, { "type": "object", "properties": { "typeCategory": { "const": "edge" }, "typeKey": { "type": "string" }, "version": { "type": "number" }, "displayName": { "type": "string" }, "sourceObjectType": { "type": "string" }, "targetObjectType": { "type": "string" }, "kind": { "enum": ["structural", "traceability"] }, "subjectEnd": { "enum": ["source", "target"] }, "parentEnd": { "oneOf": [{ "const": "source" }, { "const": "target" }, { "type": "null" }] }, "sourceLabel": { "type": "string" }, "targetLabel": { "type": "string" }, "schemaLanguageVersion": { "type": "string" }, "propertyDefinitions": { "type": "object", "additionalProperties": {} }, "requiredPropertyKeys": { "type": "array", "items": { "type": "string" } }, "readRule": { "enum": ["both-endpoints", "either-endpoint"] }, "writeRule": { "enum": ["both-endpoints", "either-endpoint"] }, "review": { "type": "object", "properties": { "upstream": { "enum": ["source", "target"] }, "significant": { "type": "array", "items": { "type": "string" } }, "newLinks": { "enum": ["cleared", "unreviewed"] }, "propagation": { "enum": ["direct", "chain"] }, "chainDepth": { "type": "number" } }, "required": ["upstream"], "additionalProperties": false } }, "required": ["typeCategory", "typeKey", "version", "displayName", "sourceObjectType", "targetObjectType", "kind", "subjectEnd", "parentEnd", "sourceLabel", "targetLabel", "schemaLanguageVersion", "propertyDefinitions", "requiredPropertyKeys", "readRule", "writeRule"], "additionalProperties": false }, { "type": "object", "properties": { "typeCategory": { "const": "verb" }, "typeKey": { "type": "string" }, "version": { "type": "number" }, "displayName": { "type": "string" }, "description": { "oneOf": [{ "type": "string" }, { "type": "null" }] }, "allowedSubjectTypes": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "none" } }, "required": ["kind"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "types" }, "types": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "types"], "additionalProperties": false }] }, "inputSchema": {}, "resultSchema": {}, "handlerKey": { "type": "string" }, "template": { "type": "object", "properties": { "query": { "type": "object", "properties": { "typeKey": { "type": "string" }, "filters": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "enum": ["=", ">", ">=", "<", "<="] }, "value": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }] } }, "required": ["kind", "property", "op", "value"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "op": { "const": "in" }, "values": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }] } } }, "required": ["kind", "property", "op", "values"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "text" }, "term": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }] }, "properties": { "type": "array", "items": { "type": "string" } } }, "required": ["kind", "term"], "additionalProperties": false }] } }, "sort": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "property" }, "property": { "type": "string" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "property", "direction"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "identity" }, "direction": { "enum": ["asc", "desc"] } }, "required": ["kind", "direction"], "additionalProperties": false }] }, "limit": { "type": "number" } }, "required": ["typeKey", "limit"], "additionalProperties": false }, "operations": { "type": "array", "items": { "oneOf": [{ "type": "object", "properties": { "kind": { "const": "create-object" }, "typeKey": { "type": "string" }, "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } } }, "required": ["kind", "typeKey", "properties"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "update-object" }, "typeKey": { "type": "string" }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] }, "changes": { "type": "object", "additionalProperties": { "type": "object", "properties": { "from": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "absent" } }, "required": ["slot"], "additionalProperties": false }] }, "to": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "absent" } }, "required": ["slot"], "additionalProperties": false }] } }, "required": ["from", "to"], "additionalProperties": false } } }, "required": ["kind", "typeKey", "target", "changes"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "delete-object" }, "typeKey": { "type": "string" }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } }, "required": ["kind", "typeKey", "target"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "create-edge" }, "typeKey": { "type": "string" }, "source": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] }, "properties": { "type": "object", "additionalProperties": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "literal" }, "value": {} }, "required": ["slot", "value"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" }, "property": { "type": "string" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } } }, "required": ["kind", "typeKey", "source", "target", "properties"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "const": "delete-edge" }, "typeKey": { "type": "string" }, "target": { "oneOf": [{ "type": "object", "properties": { "slot": { "const": "input" }, "key": { "type": "string" } }, "required": ["slot", "key"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "subject" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "item" } }, "required": ["slot"], "additionalProperties": false }, { "type": "object", "properties": { "slot": { "const": "step" }, "index": { "type": "number" } }, "required": ["slot", "index"], "additionalProperties": false }] } }, "required": ["kind", "typeKey", "target"], "additionalProperties": false }] } } }, "required": ["operations"], "additionalProperties": false }, "schemaLanguageVersion": { "type": "string" } }, "required": ["typeCategory", "typeKey", "version", "displayName", "description", "allowedSubjectTypes", "inputSchema", "resultSchema", "schemaLanguageVersion"], "additionalProperties": false }] } }, "railGroups": { "type": "array", "items": { "type": "string" } } }, "required": ["changeSetId", "expectedRevision", "changes"], "additionalProperties": false },
|
|
687
723
|
validateChangeSet: { "type": "object", "properties": { "changeSetId": { "type": "string" }, "revision": { "type": "string" } }, "required": ["changeSetId", "revision"], "additionalProperties": false },
|
|
688
724
|
discardChangeSet: { "type": "object", "properties": { "changeSetId": { "type": "string" } }, "required": ["changeSetId"], "additionalProperties": false },
|
|
689
725
|
acceptChangeSet: { "type": "object", "properties": { "changeSetId": { "type": "string" }, "revision": { "type": "string" }, "correlationId": { "type": "string" } }, "required": ["changeSetId", "revision"], "additionalProperties": false },
|
|
@@ -710,7 +746,21 @@ var SCHEMAS = {
|
|
|
710
746
|
revokeConnection: { "type": "object", "properties": {}, "required": [], "additionalProperties": false },
|
|
711
747
|
startImportRun: { "type": "object", "properties": {}, "required": [], "additionalProperties": false },
|
|
712
748
|
listImportRuns: { "type": "object", "properties": { "runId": { "type": "string" } }, "required": [], "additionalProperties": false },
|
|
713
|
-
closeImportRun: { "oneOf": [{ "type": "object", "properties": { "runId": { "type": "string" }, "outcome": { "const": "succeeded" }, "commits": { "type": "array", "items": { "type": "string" } }, "complete": { "type": "boolean" }, "sourceCheckpoint": { "oneOf": [{ "type": "number" }, { "type": "null" }] }, "counts": { "type": "object", "properties": { "created": { "type": "number" }, "updated": { "type": "number" }, "unchanged": { "type": "number" }, "withdrawn": { "type": "number" }, "carried": { "type": "number" }, "overwritten": { "type": "number" } }, "required": ["created", "updated", "unchanged", "withdrawn", "carried", "overwritten"], "additionalProperties": false } }, "required": ["runId", "outcome", "commits", "complete", "sourceCheckpoint", "counts"], "additionalProperties": false }, { "type": "object", "properties": { "runId": { "type": "string" }, "outcome": { "const": "failed" }, "failure": { "enum": ["auth", "timeout", "size", "shape", "upstream-error", "unreachable", "allowance-spent", "duplicate-identifier", "dangling-reference", "undeclared-type", "credential-unreadable", "connection-revoked", "abandoned", "apply-refused", "apply-conflict", "apply-unknown", "duplicate-upstream", "types-not-approved", "internal", "mirror-row-unreadable"] } }, "required": ["runId", "outcome", "failure"], "additionalProperties": false }] }
|
|
749
|
+
closeImportRun: { "oneOf": [{ "type": "object", "properties": { "runId": { "type": "string" }, "outcome": { "const": "succeeded" }, "commits": { "type": "array", "items": { "type": "string" } }, "complete": { "type": "boolean" }, "sourceCheckpoint": { "oneOf": [{ "type": "number" }, { "type": "null" }] }, "counts": { "type": "object", "properties": { "created": { "type": "number" }, "updated": { "type": "number" }, "unchanged": { "type": "number" }, "withdrawn": { "type": "number" }, "carried": { "type": "number" }, "overwritten": { "type": "number" } }, "required": ["created", "updated", "unchanged", "withdrawn", "carried", "overwritten"], "additionalProperties": false } }, "required": ["runId", "outcome", "commits", "complete", "sourceCheckpoint", "counts"], "additionalProperties": false }, { "type": "object", "properties": { "runId": { "type": "string" }, "outcome": { "const": "failed" }, "failure": { "enum": ["auth", "timeout", "size", "shape", "upstream-error", "unreachable", "allowance-spent", "duplicate-identifier", "dangling-reference", "undeclared-type", "credential-unreadable", "connection-revoked", "abandoned", "apply-refused", "apply-conflict", "apply-unknown", "duplicate-upstream", "types-not-approved", "internal", "mirror-row-unreadable"] } }, "required": ["runId", "outcome", "failure"], "additionalProperties": false }] },
|
|
750
|
+
createHostedApp: { "type": "object", "properties": { "key": { "type": "string" } }, "required": ["key"], "additionalProperties": false },
|
|
751
|
+
readHostedBundle: { "type": "object", "properties": { "launchId": { "type": "string" } }, "required": ["launchId"], "additionalProperties": false },
|
|
752
|
+
listHostedApps: { "type": "object", "properties": {}, "required": [], "additionalProperties": false },
|
|
753
|
+
listHostedVersions: { "type": "object", "properties": { "appId": { "type": "string" } }, "required": ["appId"], "additionalProperties": false },
|
|
754
|
+
revokeHostedApp: { "type": "object", "properties": { "appId": { "type": "string" } }, "required": ["appId"], "additionalProperties": false },
|
|
755
|
+
revokeHostedVersion: { "type": "object", "properties": { "versionId": { "type": "string" } }, "required": ["versionId"], "additionalProperties": false },
|
|
756
|
+
openHostedApp: { "type": "object", "properties": { "appKey": { "type": "string" } }, "required": ["appKey"], "additionalProperties": false },
|
|
757
|
+
endHostedLaunch: { "type": "object", "properties": { "launchId": { "type": "string" } }, "required": ["launchId"], "additionalProperties": false },
|
|
758
|
+
mintHostedAppToken: { "type": "object", "properties": { "launchId": { "type": "string" } }, "required": ["launchId"], "additionalProperties": false },
|
|
759
|
+
setHostedOneWallSwitch: { "type": "object", "properties": { "allowed": { "type": "boolean" } }, "required": ["allowed"], "additionalProperties": false },
|
|
760
|
+
readHostedOneWallSwitch: { "type": "object", "properties": {}, "required": [], "additionalProperties": false },
|
|
761
|
+
grantHostedOneWall: { "type": "object", "properties": { "appId": { "type": "string" } }, "required": ["appId"], "additionalProperties": false },
|
|
762
|
+
withdrawHostedOneWall: { "type": "object", "properties": { "appId": { "type": "string" } }, "required": ["appId"], "additionalProperties": false },
|
|
763
|
+
listHostedOneWallGrants: { "type": "object", "properties": {}, "required": [], "additionalProperties": false }
|
|
714
764
|
};
|
|
715
765
|
var ROUTE_INPUT_SCHEMAS = deepFreeze(SCHEMAS);
|
|
716
766
|
var SELECTORS = {
|
|
@@ -801,9 +851,13 @@ var EXAMPLES = {
|
|
|
801
851
|
readProposal: { "proposalId": "<proposalId>" },
|
|
802
852
|
refuseProposal: { "proposalId": "<proposalId>", "reason": "<reason>" },
|
|
803
853
|
readBranchDiff: { "proposalId": "<proposalId>" },
|
|
854
|
+
readLinkStatus: { "objectId": "<objectId>" },
|
|
855
|
+
clearLinks: { "correlation": { "kind": "mint" }, "ref": "main", "entries": [{ "linkId": "<linkId>", "upstreamVersion": "<upstreamVersion>" }] },
|
|
856
|
+
readChangeImpact: { "ref": "project/branch", "base": "main" },
|
|
804
857
|
diffBranches: { "ref": "<ref>", "base": "<base>" },
|
|
805
858
|
readBranchHistory: { "name": "<name>" },
|
|
806
859
|
listAudit: { "limit": 1 },
|
|
860
|
+
listOrganisationAudit: { "limit": 1, "verbPrefix": "<verbPrefix>" },
|
|
807
861
|
readRefHead: { "name": "<name>" },
|
|
808
862
|
inspectBranchOperation: { "correlationId": "<correlationId>" },
|
|
809
863
|
abandonBranch: { "correlation": { "kind": "mint" }, "name": "<name>", "atHash": "<atHash>" },
|
|
@@ -864,17 +918,31 @@ var EXAMPLES = {
|
|
|
864
918
|
revokeConnection: {},
|
|
865
919
|
startImportRun: {},
|
|
866
920
|
listImportRuns: {},
|
|
867
|
-
closeImportRun: { "runId": "<runId>", "outcome": "succeeded", "commits": [], "complete": false, "sourceCheckpoint": null, "counts": { "created": 1, "updated": 1, "unchanged": 1, "withdrawn": 1, "carried": 1, "overwritten": 1 } }
|
|
921
|
+
closeImportRun: { "runId": "<runId>", "outcome": "succeeded", "commits": [], "complete": false, "sourceCheckpoint": null, "counts": { "created": 1, "updated": 1, "unchanged": 1, "withdrawn": 1, "carried": 1, "overwritten": 1 } },
|
|
922
|
+
createHostedApp: { "key": "<key>" },
|
|
923
|
+
readHostedBundle: { "launchId": "<launchId>" },
|
|
924
|
+
listHostedApps: {},
|
|
925
|
+
listHostedVersions: { "appId": "<appId>" },
|
|
926
|
+
revokeHostedApp: { "appId": "<appId>" },
|
|
927
|
+
revokeHostedVersion: { "versionId": "<versionId>" },
|
|
928
|
+
openHostedApp: { "appKey": "<appKey>" },
|
|
929
|
+
endHostedLaunch: { "launchId": "<launchId>" },
|
|
930
|
+
mintHostedAppToken: { "launchId": "<launchId>" },
|
|
931
|
+
setHostedOneWallSwitch: { "allowed": false },
|
|
932
|
+
readHostedOneWallSwitch: {},
|
|
933
|
+
grantHostedOneWall: { "appId": "<appId>" },
|
|
934
|
+
withdrawHostedOneWall: { "appId": "<appId>" },
|
|
935
|
+
listHostedOneWallGrants: {}
|
|
868
936
|
};
|
|
869
937
|
var ROUTE_INPUT_EXAMPLES = deepFreeze(EXAMPLES);
|
|
870
938
|
|
|
871
939
|
// packages/api-contract/dist/routes.js
|
|
872
|
-
var PROTOCOL_VERSION =
|
|
940
|
+
var PROTOCOL_VERSION = 36;
|
|
873
941
|
var VERSION_HEADER = "oe2-protocol-version";
|
|
874
942
|
var TOKEN_HEADER = "authorization";
|
|
875
943
|
var IDEMPOTENCY_HEADER = "oe2-idempotency-key";
|
|
876
944
|
var STREAMED_ROUTE_NAMES = Object.freeze(["sendMessageStreamed", "answerPlanStreamed"]);
|
|
877
|
-
var BINARY_REQUEST_ROUTE_NAMES = Object.freeze(["stageAttachment"]);
|
|
945
|
+
var BINARY_REQUEST_ROUTE_NAMES = Object.freeze(["stageAttachment", "publishHostedVersion"]);
|
|
878
946
|
var BINARY_RESPONSE_ROUTE_NAMES = Object.freeze(["readAttachment"]);
|
|
879
947
|
function isBinaryRequestRoute(name) {
|
|
880
948
|
return BINARY_REQUEST_ROUTE_NAMES.some((binary) => binary === name);
|
|
@@ -900,11 +968,11 @@ function route(entry2) {
|
|
|
900
968
|
return Object.freeze({ ...entry2, doc: documented });
|
|
901
969
|
}
|
|
902
970
|
var ROUTES = Object.freeze({
|
|
903
|
-
createObjectSet: route({ name: "createObjectSet", method: "POST", path: "/object-sets", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "objects.createObjectSet" }),
|
|
904
|
-
listObjectSets: route({ name: "listObjectSets", method: "POST", path: "/object-sets/list", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "objects.listObjectSets" }),
|
|
905
|
-
readObjectSet: route({ name: "readObjectSet", method: "POST", path: "/object-sets/read", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "objects.readObjectSet" }),
|
|
906
|
-
updateObjectSet: route({ name: "updateObjectSet", method: "POST", path: "/object-sets/update", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "objects.updateObjectSet" }),
|
|
907
|
-
deleteObjectSet: route({ name: "deleteObjectSet", method: "POST", path: "/object-sets/delete", group: "write", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "objects.deleteObjectSet" }),
|
|
971
|
+
createObjectSet: route({ name: "createObjectSet", method: "POST", path: "/object-sets", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.createObjectSet" }),
|
|
972
|
+
listObjectSets: route({ name: "listObjectSets", method: "POST", path: "/object-sets/list", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.listObjectSets" }),
|
|
973
|
+
readObjectSet: route({ name: "readObjectSet", method: "POST", path: "/object-sets/read", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.readObjectSet" }),
|
|
974
|
+
updateObjectSet: route({ name: "updateObjectSet", method: "POST", path: "/object-sets/update", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.updateObjectSet" }),
|
|
975
|
+
deleteObjectSet: route({ name: "deleteObjectSet", method: "POST", path: "/object-sets/delete", group: "write", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.deleteObjectSet" }),
|
|
908
976
|
health: route({ name: "health", method: "GET", path: "/health", group: "platform", selector: "none", subject: "platform", idempotent: false, admission: NO_ACCESS_TOKEN, versioned: false, module: "sdk-core", capability: "core.health" }),
|
|
909
977
|
signInStart: route({ name: "signInStart", method: "GET", path: "/auth/sign-in", group: "platform", selector: "none", subject: "platform", idempotent: false, admission: NO_ACCESS_TOKEN, versioned: false, module: "sdk-core", capability: "core.signInStart" }),
|
|
910
978
|
signInCallback: route({ name: "signInCallback", method: "GET", path: "/auth/callback", group: "platform", selector: "none", subject: "platform", idempotent: false, admission: NO_ACCESS_TOKEN, versioned: false, module: "sdk-core", capability: "core.signInCallback" }),
|
|
@@ -949,8 +1017,8 @@ var ROUTES = Object.freeze({
|
|
|
949
1017
|
module: "objects-sdk",
|
|
950
1018
|
capability: "objects.read"
|
|
951
1019
|
}),
|
|
952
|
-
readObject: route({ name: "readObject", method: "POST", path: "/objects/read", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.read" }),
|
|
953
|
-
queryObjects: route({ name: "queryObjects", method: "POST", path: "/objects/query", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client"), versioned: true, module: "objects-sdk", capability: "objects.query" }),
|
|
1020
|
+
readObject: route({ name: "readObject", method: "POST", path: "/objects/read", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.read" }),
|
|
1021
|
+
queryObjects: route({ name: "queryObjects", method: "POST", path: "/objects/query", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.query" }),
|
|
954
1022
|
queryRows: route({
|
|
955
1023
|
name: "queryRows",
|
|
956
1024
|
method: "POST",
|
|
@@ -959,27 +1027,27 @@ var ROUTES = Object.freeze({
|
|
|
959
1027
|
selector: "object",
|
|
960
1028
|
subject: "project",
|
|
961
1029
|
idempotent: false,
|
|
962
|
-
admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client"),
|
|
1030
|
+
admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client", "hosted-app"),
|
|
963
1031
|
versioned: true,
|
|
964
1032
|
module: "objects-sdk",
|
|
965
1033
|
capability: "objects.query"
|
|
966
1034
|
}),
|
|
967
|
-
aggregateObjects: route({ name: "aggregateObjects", method: "POST", path: "/objects/aggregate", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "client"), versioned: true, module: "objects-sdk", capability: "objects.aggregate" }),
|
|
968
|
-
discoverVerbs: route({ name: "discoverVerbs", method: "POST", path: "/objects/verbs", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.read" }),
|
|
969
|
-
readHistory: route({ name: "readHistory", method: "POST", path: "/objects/history", group: "history", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.history" }),
|
|
970
|
-
mutate: route({ name: "mutate", method: "POST", path: "/mutations", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "service", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.write" }),
|
|
971
|
-
mutateBatch: route({ name: "mutateBatch", method: "POST", path: "/mutations/batch", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "service", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.write" }),
|
|
972
|
-
previewDelete: route({ name: "previewDelete", method: "POST", path: "/objects/delete-preview", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.write" }),
|
|
973
|
-
recover: route({ name: "recover", method: "POST", path: "/recoveries", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "client"), versioned: true, module: "objects-sdk", capability: "objects.recovery" }),
|
|
974
|
-
executeVerb: route({ name: "executeVerb", method: "POST", path: "/verb-executions", group: "verb", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "service", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.verb" }),
|
|
1035
|
+
aggregateObjects: route({ name: "aggregateObjects", method: "POST", path: "/objects/aggregate", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.aggregate" }),
|
|
1036
|
+
discoverVerbs: route({ name: "discoverVerbs", method: "POST", path: "/objects/verbs", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.read" }),
|
|
1037
|
+
readHistory: route({ name: "readHistory", method: "POST", path: "/objects/history", group: "history", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.history" }),
|
|
1038
|
+
mutate: route({ name: "mutate", method: "POST", path: "/mutations", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "service", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.write" }),
|
|
1039
|
+
mutateBatch: route({ name: "mutateBatch", method: "POST", path: "/mutations/batch", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "service", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.write" }),
|
|
1040
|
+
previewDelete: route({ name: "previewDelete", method: "POST", path: "/objects/delete-preview", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.write" }),
|
|
1041
|
+
recover: route({ name: "recover", method: "POST", path: "/recoveries", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.recovery" }),
|
|
1042
|
+
executeVerb: route({ name: "executeVerb", method: "POST", path: "/verb-executions", group: "verb", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "service", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.verb" }),
|
|
975
1043
|
createBranch: route({ name: "createBranch", method: "POST", path: "/branches", group: "branch", selector: "project", subject: "project", idempotent: true, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "branches-sdk", capability: "branches.create" }),
|
|
976
1044
|
merge: route({ name: "merge", method: "POST", path: "/merges", group: "branch", selector: "project", subject: "project", idempotent: true, admission: admitting("user", "service", "client"), versioned: true, module: "branches-sdk", capability: "branches.merge" }),
|
|
977
|
-
readMergeConflicts: route({ name: "readMergeConflicts", method: "POST", path: "/branches/conflicts", group: "branch", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "client"), versioned: true, module: "branches-sdk", capability: "branches.conflicts" }),
|
|
1045
|
+
readMergeConflicts: route({ name: "readMergeConflicts", method: "POST", path: "/branches/conflicts", group: "branch", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.conflicts" }),
|
|
978
1046
|
disposeRef: route({ name: "disposeRef", method: "POST", path: "/branch-disposals", group: "branch", selector: "project", subject: "project", idempotent: true, admission: admitting("user", "service", "client"), versioned: true, module: "branches-sdk", capability: "branches.disposal" }),
|
|
979
|
-
listProjects: route({ name: "listProjects", method: "POST", path: "/projects", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "service", "client"), versioned: true, module: "objects-sdk", capability: "objects.projects" }),
|
|
980
|
-
listRefs: route({ name: "listRefs", method: "POST", path: "/projects/refs", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "branches.list" }),
|
|
981
|
-
readCatalogue: route({ name: "readCatalogue", method: "POST", path: "/projects/catalogue", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client"), versioned: true, module: "objects-sdk", capability: "objects.catalogue" }),
|
|
982
|
-
readPendingProposal: route({ name: "readPendingProposal", method: "POST", path: "/proposals/pending", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client"), versioned: true, module: "branches-sdk", capability: "branches.pendingProposal" }),
|
|
1047
|
+
listProjects: route({ name: "listProjects", method: "POST", path: "/projects", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "service", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.projects" }),
|
|
1048
|
+
listRefs: route({ name: "listRefs", method: "POST", path: "/projects/refs", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "branches.list" }),
|
|
1049
|
+
readCatalogue: route({ name: "readCatalogue", method: "POST", path: "/projects/catalogue", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.catalogue" }),
|
|
1050
|
+
readPendingProposal: route({ name: "readPendingProposal", method: "POST", path: "/proposals/pending", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.pendingProposal" }),
|
|
983
1051
|
submitProposal: route({ name: "submitProposal", method: "POST", path: "/proposals", group: "branch", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client"), versioned: true, module: "branches-sdk", capability: "branches.proposalSubmit" }),
|
|
984
1052
|
createServiceIdentity: route({ name: "createServiceIdentity", method: "POST", path: "/service-identities", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.serviceIdentity" }),
|
|
985
1053
|
revokeServiceIdentity: route({ name: "revokeServiceIdentity", method: "POST", path: "/service-identities/revocation", group: "administration", selector: "none", subject: "service-identity", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.serviceIdentityRevocation" }),
|
|
@@ -991,10 +1059,10 @@ var ROUTES = Object.freeze({
|
|
|
991
1059
|
setModelId: route({ name: "setModelId", method: "POST", path: "/model-configuration/model", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.modelId" }),
|
|
992
1060
|
readModelConfigurationStatus: route({ name: "readModelConfigurationStatus", method: "POST", path: "/model-configuration/status", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.modelConfigurationStatus" }),
|
|
993
1061
|
readAccount: route({ name: "readAccount", method: "POST", path: "/account", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.account" }),
|
|
994
|
-
readDisplayNames: route({ name: "readDisplayNames", method: "POST", path: "/principals/names", group: "read", selector: "none", subject: "display-names", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.displayNames" }),
|
|
995
|
-
listMembers: route({ name: "listMembers", method: "POST", path: "/projects/members", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.members" }),
|
|
1062
|
+
readDisplayNames: route({ name: "readDisplayNames", method: "POST", path: "/principals/names", group: "read", selector: "none", subject: "display-names", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "admin-sdk", capability: "admin.displayNames" }),
|
|
1063
|
+
listMembers: route({ name: "listMembers", method: "POST", path: "/projects/members", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "admin-sdk", capability: "admin.members" }),
|
|
996
1064
|
changeMembershipRole: route({ name: "changeMembershipRole", method: "POST", path: "/membership-roles", group: "administration", selector: "none", subject: "membership-scope", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.membershipRole" }),
|
|
997
|
-
listOrganisationMembers: route({ name: "listOrganisationMembers", method: "POST", path: "/organisation/members", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.organisationMembers" }),
|
|
1065
|
+
listOrganisationMembers: route({ name: "listOrganisationMembers", method: "POST", path: "/organisation/members", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "admin-sdk", capability: "admin.organisationMembers" }),
|
|
998
1066
|
listServiceIdentities: route({ name: "listServiceIdentities", method: "POST", path: "/organisation/service-identities", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.serviceIdentities" }),
|
|
999
1067
|
createInvitation: route({ name: "createInvitation", method: "POST", path: "/invitations", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.invitation" }),
|
|
1000
1068
|
listInvitations: route({ name: "listInvitations", method: "POST", path: "/invitations/list", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.invitationList" }),
|
|
@@ -1007,18 +1075,58 @@ var ROUTES = Object.freeze({
|
|
|
1007
1075
|
revokePlatformInvitation: route({ name: "revokePlatformInvitation", method: "POST", path: "/platform-invitation-revocations", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.platformInvitationRevocation" }),
|
|
1008
1076
|
reissuePlatformInvitation: route({ name: "reissuePlatformInvitation", method: "POST", path: "/platform-invitation-reissues", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.platformInvitationReissue" }),
|
|
1009
1077
|
readWebOrigin: route({ name: "readWebOrigin", method: "POST", path: "/web-origin/read", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "service"), versioned: true, module: "admin-sdk", capability: "admin.webOrigin" }),
|
|
1010
|
-
readCallerCapabilities: route({ name: "readCallerCapabilities", method: "POST", path: "/caller-capabilities/read", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.callerCapabilities" }),
|
|
1011
|
-
queryGraph: route({ name: "queryGraph", method: "POST", path: "/objects/graph", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.traverse" }),
|
|
1012
|
-
readStructure: route({ name: "readStructure", method: "POST", path: "/objects/structure", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.traverse" }),
|
|
1013
|
-
findPaths: route({ name: "findPaths", method: "POST", path: "/objects/paths", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client"), versioned: true, module: "objects-sdk", capability: "objects.traverse" }),
|
|
1014
|
-
listProposals: route({ name: "listProposals", method: "POST", path: "/proposals/list", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client"), versioned: true, module: "branches-sdk", capability: "branches.proposalList" }),
|
|
1015
|
-
readProposal: route({ name: "readProposal", method: "POST", path: "/proposals/read", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client"), versioned: true, module: "branches-sdk", capability: "branches.proposalRead" }),
|
|
1078
|
+
readCallerCapabilities: route({ name: "readCallerCapabilities", method: "POST", path: "/caller-capabilities/read", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "admin-sdk", capability: "admin.callerCapabilities" }),
|
|
1079
|
+
queryGraph: route({ name: "queryGraph", method: "POST", path: "/objects/graph", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.traverse" }),
|
|
1080
|
+
readStructure: route({ name: "readStructure", method: "POST", path: "/objects/structure", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.traverse" }),
|
|
1081
|
+
findPaths: route({ name: "findPaths", method: "POST", path: "/objects/paths", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.traverse" }),
|
|
1082
|
+
listProposals: route({ name: "listProposals", method: "POST", path: "/proposals/list", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.proposalList" }),
|
|
1083
|
+
readProposal: route({ name: "readProposal", method: "POST", path: "/proposals/read", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.proposalRead" }),
|
|
1016
1084
|
refuseProposal: route({ name: "refuseProposal", method: "POST", path: "/proposal-refusals", group: "branch", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "client"), versioned: true, module: "branches-sdk", capability: "branches.proposalRefusal" }),
|
|
1017
|
-
readBranchDiff: route({ name: "readBranchDiff", method: "POST", path: "/branches/diff", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "client"), versioned: true, module: "branches-sdk", capability: "branches.proposalDiff" }),
|
|
1018
|
-
|
|
1019
|
-
|
|
1085
|
+
readBranchDiff: route({ name: "readBranchDiff", method: "POST", path: "/branches/diff", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.proposalDiff" }),
|
|
1086
|
+
readLinkStatus: route({
|
|
1087
|
+
name: "readLinkStatus",
|
|
1088
|
+
method: "POST",
|
|
1089
|
+
path: "/links/status",
|
|
1090
|
+
group: "read",
|
|
1091
|
+
selector: "object",
|
|
1092
|
+
subject: "project",
|
|
1093
|
+
idempotent: false,
|
|
1094
|
+
admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"),
|
|
1095
|
+
versioned: true,
|
|
1096
|
+
module: "objects-sdk",
|
|
1097
|
+
capability: "links.status"
|
|
1098
|
+
}),
|
|
1099
|
+
clearLinks: route({
|
|
1100
|
+
name: "clearLinks",
|
|
1101
|
+
method: "POST",
|
|
1102
|
+
path: "/link-clearings",
|
|
1103
|
+
group: "write",
|
|
1104
|
+
selector: "project",
|
|
1105
|
+
subject: "project",
|
|
1106
|
+
idempotent: true,
|
|
1107
|
+
admission: admitting("user", "run-apply", "client", "service"),
|
|
1108
|
+
versioned: true,
|
|
1109
|
+
module: "objects-sdk",
|
|
1110
|
+
capability: "links.clear"
|
|
1111
|
+
}),
|
|
1112
|
+
readChangeImpact: route({
|
|
1113
|
+
name: "readChangeImpact",
|
|
1114
|
+
method: "POST",
|
|
1115
|
+
path: "/branches/impact",
|
|
1116
|
+
group: "read",
|
|
1117
|
+
selector: "project",
|
|
1118
|
+
subject: "project",
|
|
1119
|
+
idempotent: false,
|
|
1120
|
+
admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"),
|
|
1121
|
+
versioned: true,
|
|
1122
|
+
module: "branches-sdk",
|
|
1123
|
+
capability: "branches.impact"
|
|
1124
|
+
}),
|
|
1125
|
+
diffBranches: route({ name: "diffBranches", method: "POST", path: "/branches/difference", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.diff" }),
|
|
1126
|
+
readBranchHistory: route({ name: "readBranchHistory", method: "POST", path: "/branches/history", group: "history", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.history" }),
|
|
1020
1127
|
listAudit: route({ name: "listAudit", method: "POST", path: "/audit", group: "history", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "run-explore", "run-apply", "run-types"), versioned: true, module: "admin-sdk", capability: "admin.audit" }),
|
|
1021
|
-
|
|
1128
|
+
listOrganisationAudit: route({ name: "listOrganisationAudit", method: "POST", path: "/organisation-audit", group: "history", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.organisationAudit" }),
|
|
1129
|
+
readRefHead: route({ name: "readRefHead", method: "POST", path: "/branches/head", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client", "hosted-app"), versioned: true, module: "branches-sdk", capability: "branches.head" }),
|
|
1022
1130
|
inspectBranchOperation: route({ name: "inspectBranchOperation", method: "POST", path: "/branch-inspections", group: "branch", selector: "project", subject: "project", idempotent: false, admission: admitting("user", "service", "client"), versioned: true, module: "branches-sdk", capability: "branches.inspection" }),
|
|
1023
1131
|
abandonBranch: route({ name: "abandonBranch", method: "POST", path: "/branch-abandonments", group: "branch", selector: "project", subject: "project", idempotent: true, admission: admitting("user", "service", "client"), versioned: true, module: "branches-sdk", capability: "branches.abandonment" }),
|
|
1024
1132
|
addRefRule: route({ name: "addRefRule", method: "POST", path: "/ref-rules", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.ref-rules" }),
|
|
@@ -1055,21 +1163,21 @@ var ROUTES = Object.freeze({
|
|
|
1055
1163
|
validateChangeSet: route({ name: "validateChangeSet", method: "POST", path: "/change-sets/validation", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "run-types"), versioned: true, module: "ontology-sdk", capability: "ontology.draft" }),
|
|
1056
1164
|
discardChangeSet: route({ name: "discardChangeSet", method: "POST", path: "/change-set-discards", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "ontology-sdk", capability: "ontology.publish" }),
|
|
1057
1165
|
acceptChangeSet: route({ name: "acceptChangeSet", method: "POST", path: "/change-set-acceptances", group: "administration", selector: "none", subject: "none", idempotent: true, admission: admitting("user"), versioned: true, module: "ontology-sdk", capability: "ontology.publish" }),
|
|
1058
|
-
readApp: route({ name: "readApp", method: "POST", path: "/apps/read", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client"), versioned: true, module: "objects-sdk", capability: "objects.catalogue" }),
|
|
1166
|
+
readApp: route({ name: "readApp", method: "POST", path: "/apps/read", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.catalogue" }),
|
|
1059
1167
|
openAppDraft: route({ name: "openAppDraft", method: "POST", path: "/app-drafts", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "run-types"), versioned: true, module: "ontology-sdk", capability: "ontology.draft" }),
|
|
1060
1168
|
readAppDraft: route({ name: "readAppDraft", method: "POST", path: "/app-drafts/read", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "run-types"), versioned: true, module: "ontology-sdk", capability: "ontology.draft" }),
|
|
1061
1169
|
reviseAppDraft: route({ name: "reviseAppDraft", method: "POST", path: "/app-drafts/revisions", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "run-types"), versioned: true, module: "ontology-sdk", capability: "ontology.draft" }),
|
|
1062
1170
|
acceptAppDraft: route({ name: "acceptAppDraft", method: "POST", path: "/app-draft-acceptances", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "ontology-sdk", capability: "ontology.publish" }),
|
|
1063
|
-
listApps: route({ name: "listApps", method: "POST", path: "/apps", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client"), versioned: true, module: "objects-sdk", capability: "objects.catalogue" }),
|
|
1171
|
+
listApps: route({ name: "listApps", method: "POST", path: "/apps", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "service", "run-explore", "run-apply", "run-types", "client", "hosted-app"), versioned: true, module: "objects-sdk", capability: "objects.catalogue" }),
|
|
1064
1172
|
validateAppDraft: route({ name: "validateAppDraft", method: "POST", path: "/app-drafts/validation", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user", "run-types"), versioned: true, module: "ontology-sdk", capability: "ontology.draft" }),
|
|
1065
1173
|
discardAppDraft: route({ name: "discardAppDraft", method: "POST", path: "/app-draft-discards", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "ontology-sdk", capability: "ontology.publish" }),
|
|
1066
|
-
searchPeople: route({ name: "searchPeople", method: "POST", path: "/people/search", group: "read", selector: "none", subject: "display-names", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "people.search" }),
|
|
1067
|
-
searchObjectReaders: route({ name: "searchObjectReaders", method: "POST", path: "/objects/readers", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "people.objectReaders" }),
|
|
1068
|
-
listSubscribers: route({ name: "listSubscribers", method: "POST", path: "/objects/subscribers", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "discussion.subscribers" }),
|
|
1069
|
-
addSubscriber: route({ name: "addSubscriber", method: "POST", path: "/objects/subscribers/add", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "discussion.subscriberChange" }),
|
|
1070
|
-
removeSubscriber: route({ name: "removeSubscriber", method: "POST", path: "/objects/subscribers/remove", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "discussion.subscriberChange" }),
|
|
1071
|
-
listComments: route({ name: "listComments", method: "POST", path: "/objects/comments", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "discussion.comments" }),
|
|
1072
|
-
addComment: route({ name: "addComment", method: "POST", path: "/objects/comments/add", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user"), versioned: true, module: "objects-sdk", capability: "discussion.commentWrite" }),
|
|
1174
|
+
searchPeople: route({ name: "searchPeople", method: "POST", path: "/people/search", group: "read", selector: "none", subject: "display-names", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "people.search" }),
|
|
1175
|
+
searchObjectReaders: route({ name: "searchObjectReaders", method: "POST", path: "/objects/readers", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "people.objectReaders" }),
|
|
1176
|
+
listSubscribers: route({ name: "listSubscribers", method: "POST", path: "/objects/subscribers", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "discussion.subscribers" }),
|
|
1177
|
+
addSubscriber: route({ name: "addSubscriber", method: "POST", path: "/objects/subscribers/add", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "discussion.subscriberChange" }),
|
|
1178
|
+
removeSubscriber: route({ name: "removeSubscriber", method: "POST", path: "/objects/subscribers/remove", group: "write", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "discussion.subscriberChange" }),
|
|
1179
|
+
listComments: route({ name: "listComments", method: "POST", path: "/objects/comments", group: "read", selector: "object", subject: "project", idempotent: false, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "discussion.comments" }),
|
|
1180
|
+
addComment: route({ name: "addComment", method: "POST", path: "/objects/comments/add", group: "write", selector: "object", subject: "project", idempotent: true, admission: admitting("user", "hosted-app"), versioned: true, module: "objects-sdk", capability: "discussion.commentWrite" }),
|
|
1073
1181
|
createConnection: route({ name: "createConnection", method: "POST", path: "/connections", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.connectionCreation" }),
|
|
1074
1182
|
listConnections: route({ name: "listConnections", method: "POST", path: "/connections/list", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.connections" }),
|
|
1075
1183
|
setConnectionCredential: route({ name: "setConnectionCredential", method: "POST", path: "/connections/credential", group: "administration", selector: "connection", subject: "connection", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.connectionCredential" }),
|
|
@@ -1078,7 +1186,22 @@ var ROUTES = Object.freeze({
|
|
|
1078
1186
|
revokeConnection: route({ name: "revokeConnection", method: "POST", path: "/connection-revocations", group: "administration", selector: "connection", subject: "connection", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.connectionRevocation" }),
|
|
1079
1187
|
startImportRun: route({ name: "startImportRun", method: "POST", path: "/import-runs", group: "write", selector: "connection", subject: "connection", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.importRunStart" }),
|
|
1080
1188
|
listImportRuns: route({ name: "listImportRuns", method: "POST", path: "/import-runs/list", group: "read", selector: "connection", subject: "connection", idempotent: false, admission: admitting("user"), versioned: true, module: "admin-sdk", capability: "admin.importRuns" }),
|
|
1081
|
-
closeImportRun: route({ name: "closeImportRun", method: "POST", path: "/import-run-closes", group: "write", selector: "connection", subject: "connection", idempotent: false, admission: admitting("service", "user"), versioned: true, module: "admin-sdk", capability: "admin.importRunClose" })
|
|
1189
|
+
closeImportRun: route({ name: "closeImportRun", method: "POST", path: "/import-run-closes", group: "write", selector: "connection", subject: "connection", idempotent: false, admission: admitting("service", "user"), versioned: true, module: "admin-sdk", capability: "admin.importRunClose" }),
|
|
1190
|
+
createHostedApp: route({ name: "createHostedApp", method: "POST", path: "/hosted-apps", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.app" }),
|
|
1191
|
+
publishHostedVersion: route({ name: "publishHostedVersion", method: "POST", path: "/hosted-apps/versions", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.publish" }),
|
|
1192
|
+
readHostedBundle: route({ name: "readHostedBundle", method: "POST", path: "/hosted-apps/bundle", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.bundle" }),
|
|
1193
|
+
listHostedApps: route({ name: "listHostedApps", method: "POST", path: "/hosted-apps/list", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.apps" }),
|
|
1194
|
+
listHostedVersions: route({ name: "listHostedVersions", method: "POST", path: "/hosted-apps/versions/list", group: "read", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.versions" }),
|
|
1195
|
+
revokeHostedApp: route({ name: "revokeHostedApp", method: "POST", path: "/hosted-app-revocations", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.appRevocation" }),
|
|
1196
|
+
revokeHostedVersion: route({ name: "revokeHostedVersion", method: "POST", path: "/hosted-version-revocations", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.versionRevocation" }),
|
|
1197
|
+
openHostedApp: route({ name: "openHostedApp", method: "POST", path: "/hosted-app-launches", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.launch" }),
|
|
1198
|
+
endHostedLaunch: route({ name: "endHostedLaunch", method: "POST", path: "/hosted-app-launch-ends", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.launchEnd" }),
|
|
1199
|
+
mintHostedAppToken: route({ name: "mintHostedAppToken", method: "POST", path: "/hosted-app-tokens", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.token" }),
|
|
1200
|
+
setHostedOneWallSwitch: route({ name: "setHostedOneWallSwitch", method: "POST", path: "/hosted-one-wall-switch", group: "administration", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.oneWallSwitch" }),
|
|
1201
|
+
readHostedOneWallSwitch: route({ name: "readHostedOneWallSwitch", method: "POST", path: "/hosted-one-wall-switch/read", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.oneWallSwitchRead" }),
|
|
1202
|
+
grantHostedOneWall: route({ name: "grantHostedOneWall", method: "POST", path: "/hosted-one-wall-grants", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.oneWallGrant" }),
|
|
1203
|
+
withdrawHostedOneWall: route({ name: "withdrawHostedOneWall", method: "POST", path: "/hosted-one-wall-withdrawals", group: "administration", selector: "project", subject: "project", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.oneWallWithdrawal" }),
|
|
1204
|
+
listHostedOneWallGrants: route({ name: "listHostedOneWallGrants", method: "POST", path: "/hosted-one-wall-grants/list", group: "read", selector: "none", subject: "none", idempotent: false, admission: admitting("user"), versioned: true, module: "hosted-apps-sdk", capability: "hostedApps.oneWallGrants" })
|
|
1082
1205
|
});
|
|
1083
1206
|
var ROUTE_CARRIES_CREDENTIAL = Object.freeze({
|
|
1084
1207
|
createObjectSet: false,
|
|
@@ -1160,9 +1283,13 @@ var ROUTE_CARRIES_CREDENTIAL = Object.freeze({
|
|
|
1160
1283
|
readProposal: false,
|
|
1161
1284
|
refuseProposal: false,
|
|
1162
1285
|
readBranchDiff: false,
|
|
1286
|
+
readLinkStatus: false,
|
|
1287
|
+
clearLinks: false,
|
|
1288
|
+
readChangeImpact: false,
|
|
1163
1289
|
diffBranches: false,
|
|
1164
1290
|
readBranchHistory: false,
|
|
1165
1291
|
listAudit: false,
|
|
1292
|
+
listOrganisationAudit: false,
|
|
1166
1293
|
readRefHead: false,
|
|
1167
1294
|
inspectBranchOperation: false,
|
|
1168
1295
|
abandonBranch: false,
|
|
@@ -1223,7 +1350,22 @@ var ROUTE_CARRIES_CREDENTIAL = Object.freeze({
|
|
|
1223
1350
|
revokeConnection: false,
|
|
1224
1351
|
startImportRun: false,
|
|
1225
1352
|
listImportRuns: false,
|
|
1226
|
-
closeImportRun: false
|
|
1353
|
+
closeImportRun: false,
|
|
1354
|
+
createHostedApp: false,
|
|
1355
|
+
publishHostedVersion: false,
|
|
1356
|
+
readHostedBundle: false,
|
|
1357
|
+
listHostedApps: false,
|
|
1358
|
+
listHostedVersions: false,
|
|
1359
|
+
revokeHostedApp: false,
|
|
1360
|
+
revokeHostedVersion: false,
|
|
1361
|
+
openHostedApp: false,
|
|
1362
|
+
endHostedLaunch: false,
|
|
1363
|
+
mintHostedAppToken: false,
|
|
1364
|
+
setHostedOneWallSwitch: false,
|
|
1365
|
+
readHostedOneWallSwitch: false,
|
|
1366
|
+
grantHostedOneWall: false,
|
|
1367
|
+
withdrawHostedOneWall: false,
|
|
1368
|
+
listHostedOneWallGrants: false
|
|
1227
1369
|
});
|
|
1228
1370
|
function routeEntriesOf(module) {
|
|
1229
1371
|
const names = Object.keys(ROUTES).filter((name) => ROUTES[name].module === module);
|
|
@@ -1232,10 +1374,64 @@ function routeEntriesOf(module) {
|
|
|
1232
1374
|
|
|
1233
1375
|
// packages/api-contract/dist/client-scopes.js
|
|
1234
1376
|
var CLIENT_SCOPES = Object.freeze({
|
|
1235
|
-
"objects.read": Object.freeze({
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1377
|
+
"objects.read": Object.freeze({
|
|
1378
|
+
capabilities: Object.freeze([
|
|
1379
|
+
"objects.read",
|
|
1380
|
+
"objects.query",
|
|
1381
|
+
"objects.traverse",
|
|
1382
|
+
"objects.aggregate",
|
|
1383
|
+
"objects.history",
|
|
1384
|
+
"objects.catalogue",
|
|
1385
|
+
"objects.projects",
|
|
1386
|
+
"branches.list",
|
|
1387
|
+
"links.status"
|
|
1388
|
+
]),
|
|
1389
|
+
consentLine: "Read your objects, their history and your projects' types."
|
|
1390
|
+
}),
|
|
1391
|
+
"objects.write": Object.freeze({
|
|
1392
|
+
capabilities: Object.freeze([
|
|
1393
|
+
"objects.write",
|
|
1394
|
+
"objects.verb",
|
|
1395
|
+
"links.clear"
|
|
1396
|
+
]),
|
|
1397
|
+
consentLine: "Create, change and delete objects, and run actions on them, as you."
|
|
1398
|
+
}),
|
|
1399
|
+
"branches.read": Object.freeze({
|
|
1400
|
+
capabilities: Object.freeze([
|
|
1401
|
+
"branches.head",
|
|
1402
|
+
"branches.diff",
|
|
1403
|
+
"branches.history",
|
|
1404
|
+
"branches.conflicts",
|
|
1405
|
+
"branches.inspection",
|
|
1406
|
+
"branches.pendingProposal",
|
|
1407
|
+
"branches.proposalList",
|
|
1408
|
+
"branches.proposalRead",
|
|
1409
|
+
"branches.proposalDiff",
|
|
1410
|
+
"branches.list",
|
|
1411
|
+
"branches.impact"
|
|
1412
|
+
]),
|
|
1413
|
+
consentLine: "Read your branches, their history and proposals."
|
|
1414
|
+
}),
|
|
1415
|
+
"branches.write": Object.freeze({
|
|
1416
|
+
capabilities: Object.freeze([
|
|
1417
|
+
"branches.create",
|
|
1418
|
+
"branches.abandonment",
|
|
1419
|
+
"branches.proposalSubmit",
|
|
1420
|
+
"branches.proposalRefusal",
|
|
1421
|
+
"branches.head",
|
|
1422
|
+
"branches.diff",
|
|
1423
|
+
"branches.history",
|
|
1424
|
+
"branches.conflicts",
|
|
1425
|
+
"branches.inspection",
|
|
1426
|
+
"branches.pendingProposal",
|
|
1427
|
+
"branches.proposalList",
|
|
1428
|
+
"branches.proposalRead",
|
|
1429
|
+
"branches.proposalDiff",
|
|
1430
|
+
"branches.list",
|
|
1431
|
+
"branches.impact"
|
|
1432
|
+
]),
|
|
1433
|
+
consentLine: "Create and abandon branches, submit and refuse proposals, and read your branches, as you."
|
|
1434
|
+
}),
|
|
1239
1435
|
"branches.manage": Object.freeze({ capabilities: Object.freeze(["branches.merge", "branches.disposal", "objects.recovery"]), consentLine: "Merge branches into the branches and trunks you may change, delete branches and other refs, and recover changes, as you." }),
|
|
1240
1436
|
offline_access: Object.freeze({ capabilities: Object.freeze([]), consentLine: "Stay connected when you are away, until you disconnect it." })
|
|
1241
1437
|
});
|
|
@@ -1247,6 +1443,9 @@ function attachmentNameHeader(name) {
|
|
|
1247
1443
|
return `UTF-8''${encodeURIComponent(name).replace(/[!'()*]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`)}`;
|
|
1248
1444
|
}
|
|
1249
1445
|
|
|
1446
|
+
// packages/api-contract/dist/links.js
|
|
1447
|
+
var MAX_CLEAR_ENTRIES = 100;
|
|
1448
|
+
|
|
1250
1449
|
// packages/sdk-dispatch/dist/response.js
|
|
1251
1450
|
function responseOf(status, body, reason, headers = {}) {
|
|
1252
1451
|
let read = false;
|
|
@@ -1954,9 +2153,9 @@ function methodOf(entry2, transport, origin, token) {
|
|
|
1954
2153
|
};
|
|
1955
2154
|
return Object.freeze(Object.assign(send, { doc: freezeDoc(entry2.doc) }));
|
|
1956
2155
|
}
|
|
1957
|
-
function createModuleFactory(
|
|
2156
|
+
function createModuleFactory(entries7, transport, origin, token) {
|
|
1958
2157
|
const byCapability = {};
|
|
1959
|
-
for (const entry2 of
|
|
2158
|
+
for (const entry2 of entries7) {
|
|
1960
2159
|
const methods = byCapability[entry2.capability] ?? {};
|
|
1961
2160
|
methods[entry2.name] = methodOf(entry2, transport, origin, token);
|
|
1962
2161
|
byCapability[entry2.capability] = methods;
|
|
@@ -1965,9 +2164,9 @@ function createModuleFactory(entries6, transport, origin, token) {
|
|
|
1965
2164
|
}
|
|
1966
2165
|
|
|
1967
2166
|
// packages/sdk-dispatch/dist/typed-client.js
|
|
1968
|
-
function createTypedClient(names,
|
|
1969
|
-
const factory = createModuleFactory(
|
|
1970
|
-
const byName = new Map(
|
|
2167
|
+
function createTypedClient(names, entries7, transport, origin, token) {
|
|
2168
|
+
const factory = createModuleFactory(entries7, transport, origin, token);
|
|
2169
|
+
const byName = new Map(entries7.map((entry2) => [entry2.name, entry2]));
|
|
1971
2170
|
const client = {};
|
|
1972
2171
|
for (const name of names) {
|
|
1973
2172
|
const entry2 = byName.get(name);
|
|
@@ -2134,6 +2333,7 @@ var ADMIN_ROUTE_NAMES = Object.freeze([
|
|
|
2134
2333
|
"readWebOrigin",
|
|
2135
2334
|
"readCallerCapabilities",
|
|
2136
2335
|
"listAudit",
|
|
2336
|
+
"listOrganisationAudit",
|
|
2137
2337
|
"createProject",
|
|
2138
2338
|
"createOrganisation",
|
|
2139
2339
|
"addRefRule",
|
|
@@ -2203,6 +2403,7 @@ var BRANCHES_ROUTE_NAMES = Object.freeze([
|
|
|
2203
2403
|
"refuseProposal",
|
|
2204
2404
|
"readBranchDiff",
|
|
2205
2405
|
"diffBranches",
|
|
2406
|
+
"readChangeImpact",
|
|
2206
2407
|
"readBranchHistory",
|
|
2207
2408
|
"readRefHead",
|
|
2208
2409
|
"inspectBranchOperation",
|
|
@@ -2271,9 +2472,9 @@ function exploreViewAddress(address, state) {
|
|
|
2271
2472
|
if (state.setId !== void 0 && state.setId !== null && state.setId.length > 0) {
|
|
2272
2473
|
query2.set("set", state.setId);
|
|
2273
2474
|
}
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2475
|
+
const types = state.typeKeys ?? (state.typeKey === null ? [] : [state.typeKey]);
|
|
2476
|
+
for (const key of [...new Set(types)].sort())
|
|
2477
|
+
query2.append("type", key);
|
|
2277
2478
|
if (state.objectId !== null) {
|
|
2278
2479
|
query2.set("object", state.objectId);
|
|
2279
2480
|
}
|
|
@@ -2337,12 +2538,12 @@ function parseLinkSubject(value) {
|
|
|
2337
2538
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
2338
2539
|
return null;
|
|
2339
2540
|
}
|
|
2340
|
-
const
|
|
2341
|
-
const { kind } =
|
|
2342
|
-
const keys = Object.keys(
|
|
2541
|
+
const record2 = value;
|
|
2542
|
+
const { kind } = record2;
|
|
2543
|
+
const keys = Object.keys(record2);
|
|
2343
2544
|
const only = (...fields) => keys.length === fields.length + 1 && keys.includes("kind") && fields.every((field) => keys.includes(field));
|
|
2344
2545
|
const text = (field) => {
|
|
2345
|
-
const entry2 =
|
|
2546
|
+
const entry2 = record2[field];
|
|
2346
2547
|
return typeof entry2 === "string" && entry2.length > 0 ? entry2 : null;
|
|
2347
2548
|
};
|
|
2348
2549
|
const identifier = (field) => {
|
|
@@ -2418,6 +2619,18 @@ function linkPath(organisationId, projectId, subject, ref) {
|
|
|
2418
2619
|
}
|
|
2419
2620
|
}
|
|
2420
2621
|
|
|
2622
|
+
// packages/objects-sdk/dist/display.js
|
|
2623
|
+
function displayPropertyValue(value, definition) {
|
|
2624
|
+
if (typeof value === "number" && typeof definition === "object" && definition !== null && "kind" in definition && (definition.kind === "number" || definition.kind === "integer") && "unit" in definition && typeof definition.unit === "string") {
|
|
2625
|
+
return `${value} ${definition.unit}`;
|
|
2626
|
+
}
|
|
2627
|
+
if (typeof value === "string")
|
|
2628
|
+
return value;
|
|
2629
|
+
if (value === void 0)
|
|
2630
|
+
return "absent";
|
|
2631
|
+
return JSON.stringify(value);
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2421
2634
|
// packages/objects-sdk/dist/transport-client.js
|
|
2422
2635
|
var OBJECTS_ROUTE_ENTRIES = routeEntriesOf("objects-sdk");
|
|
2423
2636
|
var OBJECTS_ROUTE_NAMES = [
|
|
@@ -2445,6 +2658,8 @@ var OBJECTS_ROUTE_NAMES = [
|
|
|
2445
2658
|
"queryGraph",
|
|
2446
2659
|
"readStructure",
|
|
2447
2660
|
"findPaths",
|
|
2661
|
+
"readLinkStatus",
|
|
2662
|
+
"clearLinks",
|
|
2448
2663
|
"searchPeople",
|
|
2449
2664
|
"searchObjectReaders",
|
|
2450
2665
|
"listSubscribers",
|
|
@@ -2558,6 +2773,105 @@ function normaliseDatetime(text) {
|
|
|
2558
2773
|
return instant.toISOString();
|
|
2559
2774
|
}
|
|
2560
2775
|
|
|
2776
|
+
// packages/schema-language/dist/identifiers.js
|
|
2777
|
+
function normaliseIdentifier(value) {
|
|
2778
|
+
return value.normalize("NFC").toLowerCase();
|
|
2779
|
+
}
|
|
2780
|
+
var PROTOTYPE_AFFECTING_KEYS = ["__proto__", "constructor", "prototype"];
|
|
2781
|
+
|
|
2782
|
+
// packages/schema-language/dist/units.js
|
|
2783
|
+
function unit(dimension, factor, affine = false) {
|
|
2784
|
+
return Object.freeze({ dimension, factor, affine });
|
|
2785
|
+
}
|
|
2786
|
+
var UNITS = Object.freeze({
|
|
2787
|
+
"1": unit("dimensionless", 1),
|
|
2788
|
+
"%": unit("dimensionless", 0.01),
|
|
2789
|
+
m: unit("length", 1),
|
|
2790
|
+
km: unit("length", 1e3),
|
|
2791
|
+
cm: unit("length", 0.01),
|
|
2792
|
+
mm: unit("length", 1e-3),
|
|
2793
|
+
um: unit("length", 1e-6),
|
|
2794
|
+
nm: unit("length", 1e-9),
|
|
2795
|
+
kg: unit("mass", 1),
|
|
2796
|
+
g: unit("mass", 1e-3),
|
|
2797
|
+
mg: unit("mass", 1e-6),
|
|
2798
|
+
ug: unit("mass", 1e-9),
|
|
2799
|
+
s: unit("time", 1),
|
|
2800
|
+
ms: unit("time", 1e-3),
|
|
2801
|
+
us: unit("time", 1e-6),
|
|
2802
|
+
ns: unit("time", 1e-9),
|
|
2803
|
+
min: unit("time", 60),
|
|
2804
|
+
h: unit("time", 3600),
|
|
2805
|
+
A: unit("current", 1),
|
|
2806
|
+
kA: unit("current", 1e3),
|
|
2807
|
+
mA: unit("current", 1e-3),
|
|
2808
|
+
uA: unit("current", 1e-6),
|
|
2809
|
+
K: unit("temperature", 1),
|
|
2810
|
+
// The factor is the linear scale only; an affine unit is convertible to itself alone.
|
|
2811
|
+
degC: unit("temperature", 1, true),
|
|
2812
|
+
degF: unit("temperature", 0.5555555555555556, true),
|
|
2813
|
+
mol: unit("amount", 1),
|
|
2814
|
+
mmol: unit("amount", 1e-3),
|
|
2815
|
+
cd: unit("luminous-intensity", 1),
|
|
2816
|
+
rad: unit("angle", 1),
|
|
2817
|
+
sr: unit("solid-angle", 1),
|
|
2818
|
+
"rad/s": unit("angular-speed", 1),
|
|
2819
|
+
rpm: unit("angular-speed", 0.10471975511965977),
|
|
2820
|
+
Hz: unit("frequency", 1),
|
|
2821
|
+
kHz: unit("frequency", 1e3),
|
|
2822
|
+
MHz: unit("frequency", 1e6),
|
|
2823
|
+
GHz: unit("frequency", 1e9),
|
|
2824
|
+
N: unit("force", 1),
|
|
2825
|
+
kN: unit("force", 1e3),
|
|
2826
|
+
mN: unit("force", 1e-3),
|
|
2827
|
+
Pa: unit("pressure", 1),
|
|
2828
|
+
kPa: unit("pressure", 1e3),
|
|
2829
|
+
MPa: unit("pressure", 1e6),
|
|
2830
|
+
GPa: unit("pressure", 1e9),
|
|
2831
|
+
bar: unit("pressure", 1e5),
|
|
2832
|
+
J: unit("energy", 1),
|
|
2833
|
+
kJ: unit("energy", 1e3),
|
|
2834
|
+
MJ: unit("energy", 1e6),
|
|
2835
|
+
W: unit("power", 1),
|
|
2836
|
+
mW: unit("power", 1e-3),
|
|
2837
|
+
kW: unit("power", 1e3),
|
|
2838
|
+
MW: unit("power", 1e6),
|
|
2839
|
+
C: unit("charge", 1),
|
|
2840
|
+
mC: unit("charge", 1e-3),
|
|
2841
|
+
V: unit("voltage", 1),
|
|
2842
|
+
mV: unit("voltage", 1e-3),
|
|
2843
|
+
uV: unit("voltage", 1e-6),
|
|
2844
|
+
kV: unit("voltage", 1e3),
|
|
2845
|
+
F: unit("capacitance", 1),
|
|
2846
|
+
mF: unit("capacitance", 1e-3),
|
|
2847
|
+
uF: unit("capacitance", 1e-6),
|
|
2848
|
+
nF: unit("capacitance", 1e-9),
|
|
2849
|
+
pF: unit("capacitance", 1e-12),
|
|
2850
|
+
ohm: unit("resistance", 1),
|
|
2851
|
+
kohm: unit("resistance", 1e3),
|
|
2852
|
+
Mohm: unit("resistance", 1e6),
|
|
2853
|
+
S: unit("conductance", 1),
|
|
2854
|
+
mS: unit("conductance", 1e-3),
|
|
2855
|
+
uS: unit("conductance", 1e-6),
|
|
2856
|
+
Wb: unit("magnetic-flux", 1),
|
|
2857
|
+
mWb: unit("magnetic-flux", 1e-3),
|
|
2858
|
+
T: unit("magnetic-flux-density", 1),
|
|
2859
|
+
mT: unit("magnetic-flux-density", 1e-3),
|
|
2860
|
+
uT: unit("magnetic-flux-density", 1e-6),
|
|
2861
|
+
H: unit("inductance", 1),
|
|
2862
|
+
mH: unit("inductance", 1e-3),
|
|
2863
|
+
uH: unit("inductance", 1e-6),
|
|
2864
|
+
lm: unit("luminous-flux", 1),
|
|
2865
|
+
lx: unit("illuminance", 1),
|
|
2866
|
+
Bq: unit("activity", 1),
|
|
2867
|
+
Gy: unit("absorbed-dose", 1),
|
|
2868
|
+
Sv: unit("equivalent-dose", 1),
|
|
2869
|
+
kat: unit("catalytic-activity", 1)
|
|
2870
|
+
});
|
|
2871
|
+
function isUnitSymbol(value) {
|
|
2872
|
+
return typeof value === "string" && Object.hasOwn(UNITS, value);
|
|
2873
|
+
}
|
|
2874
|
+
|
|
2561
2875
|
// packages/schema-language/dist/validate-value.js
|
|
2562
2876
|
var RULE_TYPE_MISMATCH = "type-mismatch";
|
|
2563
2877
|
var RULE_UNDECLARED_PROPERTY = "undeclared-property";
|
|
@@ -2570,8 +2884,12 @@ function validateValue(schema, value) {
|
|
|
2570
2884
|
walk(schema, value, [], violations);
|
|
2571
2885
|
return violations.length === 0 ? { ok: true } : { ok: false, violations };
|
|
2572
2886
|
}
|
|
2573
|
-
function walk(schema, value, path, violations) {
|
|
2887
|
+
function walk(schema, value, path, violations, ownerProperties) {
|
|
2574
2888
|
switch (schema.kind) {
|
|
2889
|
+
case "bound": {
|
|
2890
|
+
checkBound(value, path, violations, ownerProperties);
|
|
2891
|
+
return;
|
|
2892
|
+
}
|
|
2575
2893
|
case "attachment": {
|
|
2576
2894
|
if (!isAttachmentDescriptor(value))
|
|
2577
2895
|
violations.push({ path, rule: "invalid-attachment" });
|
|
@@ -2631,7 +2949,7 @@ function walk(schema, value, path, violations) {
|
|
|
2631
2949
|
violations.push({ path, rule: RULE_ARRAY_BOUND_EXCEEDED });
|
|
2632
2950
|
}
|
|
2633
2951
|
value.forEach((item, index) => {
|
|
2634
|
-
walk(schema.items, item, [...path, String(index)], violations);
|
|
2952
|
+
walk(schema.items, item, [...path, String(index)], violations, ownerProperties);
|
|
2635
2953
|
});
|
|
2636
2954
|
return;
|
|
2637
2955
|
}
|
|
@@ -2640,23 +2958,91 @@ function walk(schema, value, path, violations) {
|
|
|
2640
2958
|
violations.push({ path, rule: RULE_TYPE_MISMATCH });
|
|
2641
2959
|
return;
|
|
2642
2960
|
}
|
|
2643
|
-
const
|
|
2961
|
+
const record2 = value;
|
|
2644
2962
|
for (const key of schema.required) {
|
|
2645
|
-
if (!Object.prototype.hasOwnProperty.call(
|
|
2963
|
+
if (!Object.prototype.hasOwnProperty.call(record2, key)) {
|
|
2646
2964
|
violations.push({ path: [...path, key], rule: RULE_MISSING_REQUIRED_PROPERTY });
|
|
2647
2965
|
}
|
|
2648
2966
|
}
|
|
2649
|
-
for (const key of Object.keys(
|
|
2967
|
+
for (const key of Object.keys(record2)) {
|
|
2650
2968
|
if (!Object.prototype.hasOwnProperty.call(schema.properties, key)) {
|
|
2651
2969
|
violations.push({ path: [...path, key], rule: RULE_UNDECLARED_PROPERTY });
|
|
2652
2970
|
continue;
|
|
2653
2971
|
}
|
|
2654
|
-
walk(schema.properties[key],
|
|
2972
|
+
walk(schema.properties[key], record2[key], [...path, key], violations, schema.properties);
|
|
2655
2973
|
}
|
|
2656
2974
|
return;
|
|
2657
2975
|
}
|
|
2658
2976
|
}
|
|
2659
2977
|
}
|
|
2978
|
+
var BOUND_FIELDS = ["quantity", "comparison", "value", "unit", "tolerance", "over"];
|
|
2979
|
+
var BOUND_COMPARISONS = ["<", "<=", ">", ">=", "within"];
|
|
2980
|
+
var BOUND_AGGREGATES = ["each", "sum", "min", "max", "count"];
|
|
2981
|
+
function isRecord(value) {
|
|
2982
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
2983
|
+
}
|
|
2984
|
+
function isPropertyKey(value) {
|
|
2985
|
+
return typeof value === "string" && value.length > 0 && value.length <= 64 && !PROTOTYPE_AFFECTING_KEYS.includes(value);
|
|
2986
|
+
}
|
|
2987
|
+
function checkBound(value, path, violations, ownerProperties) {
|
|
2988
|
+
if (!isRecord(value)) {
|
|
2989
|
+
violations.push({ path, rule: "invalid-bound" });
|
|
2990
|
+
return;
|
|
2991
|
+
}
|
|
2992
|
+
for (const key of Object.keys(value)) {
|
|
2993
|
+
if (!BOUND_FIELDS.includes(key))
|
|
2994
|
+
violations.push({ path: [...path, key], rule: RULE_UNDECLARED_PROPERTY });
|
|
2995
|
+
}
|
|
2996
|
+
if (!Object.hasOwn(value, "over") || typeof value.over !== "string" || !BOUND_AGGREGATES.includes(value.over)) {
|
|
2997
|
+
violations.push({ path: [...path, "over"], rule: "invalid-bound-over" });
|
|
2998
|
+
}
|
|
2999
|
+
if (!Object.hasOwn(value, "comparison") || typeof value.comparison !== "string" || !BOUND_COMPARISONS.includes(value.comparison)) {
|
|
3000
|
+
violations.push({ path: [...path, "comparison"], rule: "invalid-bound-comparison" });
|
|
3001
|
+
}
|
|
3002
|
+
if (value.over === "count") {
|
|
3003
|
+
if (Object.hasOwn(value, "quantity")) {
|
|
3004
|
+
violations.push({ path: [...path, "quantity"], rule: "count-bound-quantity" });
|
|
3005
|
+
}
|
|
3006
|
+
} else if (!Object.hasOwn(value, "quantity") || !isPropertyKey(value.quantity)) {
|
|
3007
|
+
violations.push({ path: [...path, "quantity"], rule: "invalid-bound-quantity" });
|
|
3008
|
+
}
|
|
3009
|
+
if (!Object.hasOwn(value, "value")) {
|
|
3010
|
+
violations.push({ path: [...path, "value"], rule: "invalid-bound-value" });
|
|
3011
|
+
} else if (isRecord(value.value)) {
|
|
3012
|
+
checkBoundReference(value.value, value.over === "count", path, violations, ownerProperties);
|
|
3013
|
+
if (Object.hasOwn(value, "unit"))
|
|
3014
|
+
violations.push({ path: [...path, "unit"], rule: "bound-reference-unit" });
|
|
3015
|
+
} else if (typeof value.value !== "number" || !Number.isFinite(value.value)) {
|
|
3016
|
+
violations.push({ path: [...path, "value"], rule: "invalid-bound-value" });
|
|
3017
|
+
} else if (value.over === "count") {
|
|
3018
|
+
if (Object.hasOwn(value, "unit") && value.unit !== "1") {
|
|
3019
|
+
violations.push({ path: [...path, "unit"], rule: "count-bound-unit" });
|
|
3020
|
+
}
|
|
3021
|
+
} else if (!Object.hasOwn(value, "unit") || !isUnitSymbol(value.unit)) {
|
|
3022
|
+
violations.push({ path: [...path, "unit"], rule: "unknown-unit" });
|
|
3023
|
+
}
|
|
3024
|
+
if (value.comparison === "within") {
|
|
3025
|
+
if (!Object.hasOwn(value, "tolerance")) {
|
|
3026
|
+
violations.push({ path: [...path, "tolerance"], rule: "missing-bound-tolerance" });
|
|
3027
|
+
} else if (typeof value.tolerance !== "number" || !Number.isFinite(value.tolerance) || value.tolerance < 0) {
|
|
3028
|
+
violations.push({ path: [...path, "tolerance"], rule: "invalid-bound-tolerance" });
|
|
3029
|
+
}
|
|
3030
|
+
} else if (Object.hasOwn(value, "tolerance")) {
|
|
3031
|
+
violations.push({ path: [...path, "tolerance"], rule: "unexpected-bound-tolerance" });
|
|
3032
|
+
}
|
|
3033
|
+
}
|
|
3034
|
+
function checkBoundReference(reference, count, path, violations, ownerProperties) {
|
|
3035
|
+
if (Object.keys(reference).length !== 1 || !Object.hasOwn(reference, "property") || !isPropertyKey(reference.property) || ownerProperties === void 0 || !Object.hasOwn(ownerProperties, reference.property)) {
|
|
3036
|
+
violations.push({ path: [...path, "value"], rule: "invalid-bound-reference" });
|
|
3037
|
+
return;
|
|
3038
|
+
}
|
|
3039
|
+
const property = ownerProperties[reference.property];
|
|
3040
|
+
if (property.kind !== "number" && property.kind !== "integer") {
|
|
3041
|
+
violations.push({ path: [...path, "value"], rule: "invalid-bound-reference" });
|
|
3042
|
+
} else if (count && property.unit !== void 0 && property.unit !== "1") {
|
|
3043
|
+
violations.push({ path: [...path, "value"], rule: "count-bound-unit" });
|
|
3044
|
+
}
|
|
3045
|
+
}
|
|
2660
3046
|
function isAttachmentDescriptor(value) {
|
|
2661
3047
|
if (typeof value !== "object" || value === null || Array.isArray(value) || !("sha256" in value) || !("name" in value) || !("mediaType" in value) || !("bytes" in value))
|
|
2662
3048
|
return false;
|
|
@@ -2675,13 +3061,25 @@ function hasForbiddenNameCharacter(name) {
|
|
|
2675
3061
|
}
|
|
2676
3062
|
|
|
2677
3063
|
// packages/schema-language/dist/language-version.js
|
|
2678
|
-
var KINDS_VERSION_1 = Object.freeze([
|
|
3064
|
+
var KINDS_VERSION_1 = Object.freeze([
|
|
3065
|
+
"null",
|
|
3066
|
+
"boolean",
|
|
3067
|
+
"string",
|
|
3068
|
+
"number",
|
|
3069
|
+
"integer",
|
|
3070
|
+
"person",
|
|
3071
|
+
"enum",
|
|
3072
|
+
"array",
|
|
3073
|
+
"object"
|
|
3074
|
+
]);
|
|
2679
3075
|
var KINDS_VERSION_2 = Object.freeze([...KINDS_VERSION_1, "datetime"]);
|
|
2680
3076
|
var KINDS_VERSION_3 = Object.freeze([...KINDS_VERSION_2, "attachment"]);
|
|
3077
|
+
var KINDS_VERSION_4 = Object.freeze([...KINDS_VERSION_3, "bound"]);
|
|
2681
3078
|
var KINDS_BY_LANGUAGE_VERSION = /* @__PURE__ */ new Map([
|
|
2682
3079
|
["1", KINDS_VERSION_1],
|
|
2683
3080
|
["2", KINDS_VERSION_2],
|
|
2684
|
-
["3", KINDS_VERSION_3]
|
|
3081
|
+
["3", KINDS_VERSION_3],
|
|
3082
|
+
["4", KINDS_VERSION_4]
|
|
2685
3083
|
]);
|
|
2686
3084
|
function schemaKindsFor(languageVersion) {
|
|
2687
3085
|
return KINDS_BY_LANGUAGE_VERSION.get(languageVersion);
|
|
@@ -2719,12 +3117,6 @@ function sortKeys(value, ancestors) {
|
|
|
2719
3117
|
return value;
|
|
2720
3118
|
}
|
|
2721
3119
|
|
|
2722
|
-
// packages/schema-language/dist/identifiers.js
|
|
2723
|
-
function normaliseIdentifier(value) {
|
|
2724
|
-
return value.normalize("NFC").toLowerCase();
|
|
2725
|
-
}
|
|
2726
|
-
var PROTOTYPE_AFFECTING_KEYS = ["__proto__", "constructor", "prototype"];
|
|
2727
|
-
|
|
2728
3120
|
// packages/schema-language/dist/limits.js
|
|
2729
3121
|
var LIMITS_VERSION_1 = {
|
|
2730
3122
|
maxDocumentBytes: 65536,
|
|
@@ -2736,7 +3128,8 @@ var LIMITS_VERSION_1 = {
|
|
|
2736
3128
|
var LIMITS_BY_LANGUAGE_VERSION = /* @__PURE__ */ new Map([
|
|
2737
3129
|
["1", LIMITS_VERSION_1],
|
|
2738
3130
|
["2", LIMITS_VERSION_1],
|
|
2739
|
-
["3", LIMITS_VERSION_1]
|
|
3131
|
+
["3", LIMITS_VERSION_1],
|
|
3132
|
+
["4", LIMITS_VERSION_1]
|
|
2740
3133
|
]);
|
|
2741
3134
|
function limitsForLanguageVersion(languageVersion) {
|
|
2742
3135
|
return LIMITS_BY_LANGUAGE_VERSION.get(languageVersion);
|
|
@@ -2785,30 +3178,47 @@ function walk2(node, path, depth, ancestors, limits, kinds, category, violations
|
|
|
2785
3178
|
violations.push({ path, rule: RULE_MALFORMED_SCHEMA });
|
|
2786
3179
|
return;
|
|
2787
3180
|
}
|
|
2788
|
-
const
|
|
2789
|
-
const kind =
|
|
3181
|
+
const record2 = node;
|
|
3182
|
+
const kind = record2.kind;
|
|
2790
3183
|
if (typeof kind !== "string" || !kinds.includes(kind)) {
|
|
2791
3184
|
violations.push({ path, rule: RULE_UNKNOWN_KIND, allowed: kinds });
|
|
2792
3185
|
return;
|
|
2793
3186
|
}
|
|
2794
3187
|
ancestors.add(node);
|
|
2795
3188
|
try {
|
|
3189
|
+
if (Object.hasOwn(record2, "unit")) {
|
|
3190
|
+
if (!kinds.includes("bound")) {
|
|
3191
|
+
violations.push({ path: [...path, "unit"], rule: "unit-language-version" });
|
|
3192
|
+
} else if (kind !== "number" && kind !== "integer") {
|
|
3193
|
+
violations.push({ path: [...path, "unit"], rule: "unit-kind" });
|
|
3194
|
+
} else if (!isUnitSymbol(record2.unit)) {
|
|
3195
|
+
violations.push({ path: [...path, "unit"], rule: "unknown-unit" });
|
|
3196
|
+
}
|
|
3197
|
+
}
|
|
3198
|
+
if (kind === "bound") {
|
|
3199
|
+
const topLevel = path.length === 2 && path[0] === "properties";
|
|
3200
|
+
const topLevelArray = path.length === 3 && path[0] === "properties" && path[2] === "items";
|
|
3201
|
+
if (category !== "object" || !topLevel && !topLevelArray) {
|
|
3202
|
+
violations.push({ path, rule: "bound-position" });
|
|
3203
|
+
}
|
|
3204
|
+
return;
|
|
3205
|
+
}
|
|
2796
3206
|
if (kind === "attachment") {
|
|
2797
3207
|
if (category !== "object" || path.length !== 2 || path[0] !== "properties") {
|
|
2798
3208
|
violations.push({ path, rule: "attachment-position" });
|
|
2799
3209
|
}
|
|
2800
|
-
if (!Array.isArray(
|
|
3210
|
+
if (!Array.isArray(record2.accept) || record2.accept.length === 0 || record2.accept.some((entry2) => typeof entry2 !== "string" || !Object.hasOwn(ATTACHMENT_CLASSES, entry2))) {
|
|
2801
3211
|
violations.push({ path, rule: RULE_MALFORMED_SCHEMA });
|
|
2802
3212
|
}
|
|
2803
3213
|
return;
|
|
2804
3214
|
}
|
|
2805
3215
|
if (kind === "object") {
|
|
2806
|
-
const properties =
|
|
3216
|
+
const properties = record2.properties;
|
|
2807
3217
|
if (typeof properties !== "object" || properties === null || Array.isArray(properties)) {
|
|
2808
3218
|
violations.push({ path, rule: RULE_MALFORMED_SCHEMA });
|
|
2809
3219
|
return;
|
|
2810
3220
|
}
|
|
2811
|
-
if (!Array.isArray(
|
|
3221
|
+
if (!Array.isArray(record2.required) || !record2.required.every((key) => typeof key === "string")) {
|
|
2812
3222
|
violations.push({ path, rule: RULE_MALFORMED_SCHEMA });
|
|
2813
3223
|
return;
|
|
2814
3224
|
}
|
|
@@ -2818,7 +3228,7 @@ function walk2(node, path, depth, ancestors, limits, kinds, category, violations
|
|
|
2818
3228
|
violations.push({ path, rule: RULE_FIELD_COUNT });
|
|
2819
3229
|
}
|
|
2820
3230
|
checkIdentifiers(keys, path, limits, violations);
|
|
2821
|
-
for (const requiredKey of
|
|
3231
|
+
for (const requiredKey of record2.required) {
|
|
2822
3232
|
if (!keys.includes(requiredKey)) {
|
|
2823
3233
|
violations.push({ path: [...path, requiredKey], rule: RULE_UNDECLARED_REQUIRED_KEY });
|
|
2824
3234
|
}
|
|
@@ -2829,22 +3239,22 @@ function walk2(node, path, depth, ancestors, limits, kinds, category, violations
|
|
|
2829
3239
|
return;
|
|
2830
3240
|
}
|
|
2831
3241
|
if (kind === "array") {
|
|
2832
|
-
if (typeof
|
|
3242
|
+
if (typeof record2.maxItems !== "number" || !Number.isFinite(record2.maxItems)) {
|
|
2833
3243
|
violations.push({ path, rule: RULE_MALFORMED_SCHEMA });
|
|
2834
3244
|
return;
|
|
2835
3245
|
}
|
|
2836
|
-
if (
|
|
3246
|
+
if (record2.maxItems > limits.maxArrayItems) {
|
|
2837
3247
|
violations.push({ path, rule: RULE_ARRAY_BOUND });
|
|
2838
3248
|
}
|
|
2839
|
-
walk2(
|
|
3249
|
+
walk2(record2.items, [...path, "items"], depth + 1, ancestors, limits, kinds, category, violations);
|
|
2840
3250
|
return;
|
|
2841
3251
|
}
|
|
2842
3252
|
if (kind === "enum") {
|
|
2843
|
-
if (!Array.isArray(
|
|
3253
|
+
if (!Array.isArray(record2.members) || !record2.members.every((member) => typeof member === "string" || typeof member === "number" && Number.isFinite(member))) {
|
|
2844
3254
|
violations.push({ path, rule: RULE_MALFORMED_SCHEMA });
|
|
2845
3255
|
return;
|
|
2846
3256
|
}
|
|
2847
|
-
const stringMembers =
|
|
3257
|
+
const stringMembers = record2.members.filter((member) => typeof member === "string");
|
|
2848
3258
|
checkIdentifiers(stringMembers, [...path, "members"], limits, violations);
|
|
2849
3259
|
return;
|
|
2850
3260
|
}
|
|
@@ -3318,8 +3728,8 @@ function validateLocally(schema, languageVersion, value, category) {
|
|
|
3318
3728
|
return checked.ok ? validateValue(checked.schema, value) : { ok: false, violations: checked.violations };
|
|
3319
3729
|
}
|
|
3320
3730
|
function checkSampleAgainstChanges(changes, typeKey, sample) {
|
|
3321
|
-
const
|
|
3322
|
-
const document = Object.hasOwn(
|
|
3731
|
+
const entries7 = entryChangesOf(changes);
|
|
3732
|
+
const document = Object.hasOwn(entries7, typeKey) ? entries7[typeKey] : void 0;
|
|
3323
3733
|
if (document === void 0) {
|
|
3324
3734
|
return { kind: "no-such-type" };
|
|
3325
3735
|
}
|
|
@@ -3334,28 +3744,28 @@ function checkSampleAgainstChanges(changes, typeKey, sample) {
|
|
|
3334
3744
|
|
|
3335
3745
|
// packages/ontology-sdk/dist/type-delta.js
|
|
3336
3746
|
var NOT_COMPARED = /* @__PURE__ */ new Set(["typeCategory", "typeKey", "version"]);
|
|
3337
|
-
function
|
|
3747
|
+
function isRecord2(value) {
|
|
3338
3748
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3339
3749
|
}
|
|
3340
3750
|
function isStringList(value) {
|
|
3341
3751
|
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
3342
3752
|
}
|
|
3343
3753
|
function isStructureView(value) {
|
|
3344
|
-
if (!
|
|
3754
|
+
if (!isRecord2(value) || typeof value.key !== "string" || typeof value.label !== "string" || !isStringList(value.steps)) {
|
|
3345
3755
|
return false;
|
|
3346
3756
|
}
|
|
3347
3757
|
const { decoration } = value;
|
|
3348
|
-
return decoration === void 0 || Array.isArray(decoration) && decoration.every((entry2) =>
|
|
3758
|
+
return decoration === void 0 || Array.isArray(decoration) && decoration.every((entry2) => isRecord2(entry2) && typeof entry2.key === "string" && typeof entry2.label === "string");
|
|
3349
3759
|
}
|
|
3350
3760
|
function isStructureDeclaration(value) {
|
|
3351
|
-
if (!
|
|
3761
|
+
if (!isRecord2(value)) {
|
|
3352
3762
|
return false;
|
|
3353
3763
|
}
|
|
3354
3764
|
const { relationships, views } = value;
|
|
3355
3765
|
return (relationships === void 0 || isStringList(relationships)) && (views === void 0 || Array.isArray(views) && views.every(isStructureView));
|
|
3356
3766
|
}
|
|
3357
3767
|
function recordOf(value, what) {
|
|
3358
|
-
if (!
|
|
3768
|
+
if (!isRecord2(value)) {
|
|
3359
3769
|
throw new Error(`${what} is not an object`);
|
|
3360
3770
|
}
|
|
3361
3771
|
return value;
|
|
@@ -3412,7 +3822,8 @@ function edgeProspective(published) {
|
|
|
3412
3822
|
propertyDefinitions: recordOf(published.propertyDefinitions, `${what} propertyDefinitions`),
|
|
3413
3823
|
requiredPropertyKeys: stringListOf(published.requiredPropertyKeys, `${what} requiredPropertyKeys`),
|
|
3414
3824
|
readRule: oneOf(published.readRule, RULES, `${what} readRule`),
|
|
3415
|
-
writeRule: oneOf(published.writeRule, RULES, `${what} writeRule`)
|
|
3825
|
+
writeRule: oneOf(published.writeRule, RULES, `${what} writeRule`),
|
|
3826
|
+
...published.review === void 0 || published.review === null ? {} : { review: published.review }
|
|
3416
3827
|
};
|
|
3417
3828
|
}
|
|
3418
3829
|
function verbProspective(published) {
|
|
@@ -3444,7 +3855,7 @@ function sameValue(left, right) {
|
|
|
3444
3855
|
if (Array.isArray(left) || Array.isArray(right)) {
|
|
3445
3856
|
return Array.isArray(left) && Array.isArray(right) && left.length === right.length && left.every((item, index) => sameValue(item, right[index]));
|
|
3446
3857
|
}
|
|
3447
|
-
if (
|
|
3858
|
+
if (isRecord2(left) && isRecord2(right)) {
|
|
3448
3859
|
const leftKeys = Object.keys(left);
|
|
3449
3860
|
return leftKeys.length === Object.keys(right).length && leftKeys.every((key) => Object.hasOwn(right, key) && sameValue(left[key], right[key]));
|
|
3450
3861
|
}
|
|
@@ -3614,7 +4025,7 @@ function kindMembers(schema, root) {
|
|
|
3614
4025
|
}
|
|
3615
4026
|
return members;
|
|
3616
4027
|
}
|
|
3617
|
-
var
|
|
4028
|
+
var isRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3618
4029
|
function resolveField(field, schemas, sent) {
|
|
3619
4030
|
const [root, ...keys] = field.split(".");
|
|
3620
4031
|
let schema;
|
|
@@ -3642,7 +4053,7 @@ function resolveField(field, schemas, sent) {
|
|
|
3642
4053
|
if (discriminator2 !== void 0 && key === discriminator2) {
|
|
3643
4054
|
return { allowedKinds: members2?.map((candidate) => candidate.kind) ?? [], discriminator: discriminator2 };
|
|
3644
4055
|
}
|
|
3645
|
-
const sentKind = discriminator2 !== void 0 &&
|
|
4056
|
+
const sentKind = discriminator2 !== void 0 && isRecord3(value) ? value[discriminator2] : void 0;
|
|
3646
4057
|
const chosen = members2?.find((candidate) => candidate.kind === sentKind);
|
|
3647
4058
|
if (chosen === void 0) {
|
|
3648
4059
|
return null;
|
|
@@ -3661,14 +4072,14 @@ function resolveField(field, schemas, sent) {
|
|
|
3661
4072
|
if (property !== void 0) {
|
|
3662
4073
|
schema = property;
|
|
3663
4074
|
} else if (typeof node2.additionalProperties === "object") {
|
|
3664
|
-
if (
|
|
4075
|
+
if (isRecord3(value) && Object.keys(value).some((name) => name.includes("."))) {
|
|
3665
4076
|
return null;
|
|
3666
4077
|
}
|
|
3667
4078
|
schema = node2.additionalProperties;
|
|
3668
4079
|
} else {
|
|
3669
4080
|
return null;
|
|
3670
4081
|
}
|
|
3671
|
-
value =
|
|
4082
|
+
value = isRecord3(value) ? value[key] : void 0;
|
|
3672
4083
|
}
|
|
3673
4084
|
if (schema === null) {
|
|
3674
4085
|
return null;
|
|
@@ -3797,7 +4208,7 @@ function fieldLines(schema, root, indent) {
|
|
|
3797
4208
|
return lines;
|
|
3798
4209
|
}
|
|
3799
4210
|
function withoutCorrelation(example) {
|
|
3800
|
-
return
|
|
4211
|
+
return isRecord3(example) ? Object.fromEntries(Object.entries(example).filter(([name]) => name !== CORRELATION_FIELD)) : example;
|
|
3801
4212
|
}
|
|
3802
4213
|
function schemaHelpLines(entry2) {
|
|
3803
4214
|
if (isBinaryRequestRoute(entry2.name)) {
|
|
@@ -4058,6 +4469,9 @@ var render = (outcome, json, scope, host) => {
|
|
|
4058
4469
|
for (const violation of result.violations ?? []) {
|
|
4059
4470
|
lines.push(`violation: ${violation.path.join(".")}; rule: ${violation.rule}`);
|
|
4060
4471
|
}
|
|
4472
|
+
if (typeof result.linkId === "string") {
|
|
4473
|
+
lines.push(`link: ${result.linkId}`);
|
|
4474
|
+
}
|
|
4061
4475
|
if (resultReference !== void 0) {
|
|
4062
4476
|
lines.push(`reference: ${resultReference}`);
|
|
4063
4477
|
}
|
|
@@ -4241,6 +4655,39 @@ import { join as join2 } from "node:path";
|
|
|
4241
4655
|
import { realpathSync } from "node:fs";
|
|
4242
4656
|
import { isAbsolute as isAbsolute2 } from "node:path";
|
|
4243
4657
|
|
|
4658
|
+
// packages/hosted-apps-sdk/dist/index.js
|
|
4659
|
+
var HOSTED_APPS_ROUTE_ENTRIES = routeEntriesOf("hosted-apps-sdk");
|
|
4660
|
+
var HOSTED_APPS_ROUTE_NAMES = Object.freeze([
|
|
4661
|
+
"createHostedApp",
|
|
4662
|
+
"readHostedBundle",
|
|
4663
|
+
"listHostedApps",
|
|
4664
|
+
"listHostedVersions",
|
|
4665
|
+
"revokeHostedApp",
|
|
4666
|
+
"revokeHostedVersion",
|
|
4667
|
+
"openHostedApp",
|
|
4668
|
+
"endHostedLaunch",
|
|
4669
|
+
"mintHostedAppToken",
|
|
4670
|
+
"setHostedOneWallSwitch",
|
|
4671
|
+
"readHostedOneWallSwitch",
|
|
4672
|
+
"grantHostedOneWall",
|
|
4673
|
+
"withdrawHostedOneWall",
|
|
4674
|
+
"listHostedOneWallGrants"
|
|
4675
|
+
]);
|
|
4676
|
+
function entries6() {
|
|
4677
|
+
return HOSTED_APPS_ROUTE_NAMES.map((name) => ROUTES[name]);
|
|
4678
|
+
}
|
|
4679
|
+
function createHostedAppsClient(transport, origin, token) {
|
|
4680
|
+
return Object.freeze({
|
|
4681
|
+
...createTypedClient(HOSTED_APPS_ROUTE_NAMES, entries6(), transport, origin, token),
|
|
4682
|
+
publishHostedVersion: (selector, file) => call(transport, origin, "publishHostedVersion", {
|
|
4683
|
+
selector,
|
|
4684
|
+
input: { name: file.appKey, body: (async function* () {
|
|
4685
|
+
yield file.bytes;
|
|
4686
|
+
})() }
|
|
4687
|
+
}, token, null)
|
|
4688
|
+
});
|
|
4689
|
+
}
|
|
4690
|
+
|
|
4244
4691
|
// packages/cli/src/session-store.ts
|
|
4245
4692
|
import { createHash, randomBytes } from "node:crypto";
|
|
4246
4693
|
import { chmodSync, closeSync, mkdirSync, openSync, readFileSync, renameSync, unlinkSync, writeSync } from "node:fs";
|
|
@@ -4573,6 +5020,7 @@ var buildClients = async (host, store, transport, streamTransport) => {
|
|
|
4573
5020
|
admin: createAdminClient(transport, origin, token),
|
|
4574
5021
|
agents: createAgentsClient(transport, origin, token),
|
|
4575
5022
|
branches: createBranchesClient(transport, origin, token),
|
|
5023
|
+
hostedApps: createHostedAppsClient(transport, origin, token),
|
|
4576
5024
|
objects: createObjectsTransportClient(transport, origin, token),
|
|
4577
5025
|
organisations: {
|
|
4578
5026
|
list: () => listOrganisations(transport, origin, token, { input: {} }),
|
|
@@ -5075,6 +5523,26 @@ var REFRESH_UNANSWERED_ADVICE = [
|
|
|
5075
5523
|
"if the next command is refused, run `openeng login`"
|
|
5076
5524
|
].join(" ");
|
|
5077
5525
|
|
|
5526
|
+
// packages/cli/src/commands/object-display.ts
|
|
5527
|
+
function record(value) {
|
|
5528
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5529
|
+
}
|
|
5530
|
+
function objectText(object, catalogue) {
|
|
5531
|
+
const type = catalogue.objects.find((candidate) => candidate.typeKey === object.typeKey);
|
|
5532
|
+
if (type === void 0 || !record(type.propertyDefinitions) || !record(object.properties)) {
|
|
5533
|
+
throw new Error("the object or its catalogue has no readable property definitions");
|
|
5534
|
+
}
|
|
5535
|
+
const definitions = type.propertyDefinitions;
|
|
5536
|
+
const properties = Object.fromEntries(Object.entries(object.properties).map(([key, envelope]) => {
|
|
5537
|
+
if (!record(envelope) || !("value" in envelope) || !Object.hasOwn(definitions, key)) {
|
|
5538
|
+
throw new Error(`the object property ${key} has no declared value shape`);
|
|
5539
|
+
}
|
|
5540
|
+
const definition = definitions[key];
|
|
5541
|
+
return [key, typeof envelope.value === "number" && record(definition) && typeof definition.unit === "string" ? { ...envelope, value: displayPropertyValue(envelope.value, definition) } : envelope];
|
|
5542
|
+
}));
|
|
5543
|
+
return JSON.stringify({ ...object, properties }, null, 2);
|
|
5544
|
+
}
|
|
5545
|
+
|
|
5078
5546
|
// packages/cli/src/generated/build.ts
|
|
5079
5547
|
var ORGANISATION_BY_SUBJECT = {
|
|
5080
5548
|
project: "required",
|
|
@@ -5198,8 +5666,19 @@ async function runGenerated(entry2, context) {
|
|
|
5198
5666
|
}
|
|
5199
5667
|
const settle2 = settleOf(entry2, key.key);
|
|
5200
5668
|
let run2;
|
|
5669
|
+
let displayedObject;
|
|
5201
5670
|
try {
|
|
5202
5671
|
run2 = await runAuthenticated(context.host, context.deps, async (clients) => {
|
|
5672
|
+
if (entry2.name === "readObject" && !context.options.json) {
|
|
5673
|
+
const request3 = body.body;
|
|
5674
|
+
const answer2 = await clients.objects.readObject(request3);
|
|
5675
|
+
if ("refusal" in answer2 || answer2.replayed === true) return answer2;
|
|
5676
|
+
const catalogue = await clients.objects.readCatalogue({ selector: { projectId: request3.selector.projectId }, input: {} });
|
|
5677
|
+
if ("refusal" in catalogue) return answer2;
|
|
5678
|
+
if (catalogue.replayed === true) return catalogue;
|
|
5679
|
+
displayedObject = objectText(answer2.result, catalogue.result);
|
|
5680
|
+
return answer2;
|
|
5681
|
+
}
|
|
5203
5682
|
const method = clientOf(clients, entry2.module)?.[entry2.name];
|
|
5204
5683
|
if (typeof method === "function") {
|
|
5205
5684
|
return await method(body.body, key.key);
|
|
@@ -5247,7 +5726,7 @@ async function runGenerated(entry2, context) {
|
|
|
5247
5726
|
if (replayed) {
|
|
5248
5727
|
context.note("the host answered a replay of an earlier request that carried this idempotency key");
|
|
5249
5728
|
}
|
|
5250
|
-
return outcomeOfEnvelope(replayed ? withoutReplay(answer) : answer, settle2, (result) => JSON.stringify(result, null, 2), {
|
|
5729
|
+
return outcomeOfEnvelope(replayed ? withoutReplay(answer) : answer, settle2, (result) => displayedObject === void 0 ? JSON.stringify(result, null, 2) : displayedObject, {
|
|
5251
5730
|
command: `openeng ${entry2.module} ${entry2.name}`,
|
|
5252
5731
|
schemas: schemasOf(entry2),
|
|
5253
5732
|
sent: body.body
|
|
@@ -5263,8 +5742,8 @@ function generatedCommandOf(entry2) {
|
|
|
5263
5742
|
run: (context) => runGenerated(entry2, context)
|
|
5264
5743
|
};
|
|
5265
5744
|
}
|
|
5266
|
-
function generatedCommandsOf(
|
|
5267
|
-
const commands =
|
|
5745
|
+
function generatedCommandsOf(entries7) {
|
|
5746
|
+
const commands = entries7.filter((entry2) => !entry2.carriesCredential).map(generatedCommandOf);
|
|
5268
5747
|
const seen = /* @__PURE__ */ new Set();
|
|
5269
5748
|
for (const command of commands) {
|
|
5270
5749
|
const words = command.words.join(" ");
|
|
@@ -10228,8 +10707,8 @@ function canonicalJson2(value) {
|
|
|
10228
10707
|
return `[${value.map((item) => canonicalJson2(item)).join(",")}]`;
|
|
10229
10708
|
}
|
|
10230
10709
|
if (typeof value === "object" && value !== null) {
|
|
10231
|
-
const
|
|
10232
|
-
return `{${
|
|
10710
|
+
const entries7 = Object.entries(value).filter(([, member]) => member !== void 0).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
|
|
10711
|
+
return `{${entries7.map(([key, member]) => `${JSON.stringify(key)}:${canonicalJson2(member)}`).join(",")}}`;
|
|
10233
10712
|
}
|
|
10234
10713
|
return JSON.stringify(value);
|
|
10235
10714
|
}
|
|
@@ -10690,11 +11169,11 @@ var connectorRun = {
|
|
|
10690
11169
|
return run2.ok ? outcomeOfEnvelope(run2.answer, settle2, (started) => `started run ${started.runId}: read it with openeng connector runs ${connectionId}`) : outcomeOfSessionFailure(run2.failure, settle2);
|
|
10691
11170
|
}
|
|
10692
11171
|
};
|
|
10693
|
-
var runText = (
|
|
10694
|
-
const counts =
|
|
10695
|
-
const complete =
|
|
10696
|
-
const failure2 =
|
|
10697
|
-
return `${
|
|
11172
|
+
var runText = (record2) => {
|
|
11173
|
+
const counts = record2.counts === null ? "counts none" : `created ${String(record2.counts.created)} updated ${String(record2.counts.updated)} unchanged ${String(record2.counts.unchanged)} withdrawn ${String(record2.counts.withdrawn)} carried ${String(record2.counts.carried)} overwritten ${String(record2.counts.overwritten)}`;
|
|
11174
|
+
const complete = record2.complete === null ? "complete unknown" : record2.complete ? "complete" : "incomplete";
|
|
11175
|
+
const failure2 = record2.failure === null ? "" : ` failure ${record2.failure.kind}: ${record2.failure.text}`;
|
|
11176
|
+
return `${record2.runId} ${record2.state} started ${record2.startedAt} finished ${record2.finishedAt === null ? "-" : record2.finishedAt} ${complete} ${counts}${failure2}`;
|
|
10698
11177
|
};
|
|
10699
11178
|
var connectorRuns = {
|
|
10700
11179
|
organisation: "required",
|
|
@@ -11947,11 +12426,11 @@ function isOutcome(value) {
|
|
|
11947
12426
|
function isSelector(value) {
|
|
11948
12427
|
return "projectId" in value;
|
|
11949
12428
|
}
|
|
11950
|
-
function
|
|
12429
|
+
function isRecord4(value) {
|
|
11951
12430
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
11952
12431
|
}
|
|
11953
12432
|
function descriptor(value) {
|
|
11954
|
-
return
|
|
12433
|
+
return isRecord4(value) && typeof value.sha256 === "string" && typeof value.name === "string" && typeof value.mediaType === "string" && typeof value.bytes === "number";
|
|
11955
12434
|
}
|
|
11956
12435
|
async function saveDescriptor(context, selector, objectId, property, file) {
|
|
11957
12436
|
const bytes = new Uint8Array(readFileSync6(file));
|
|
@@ -11969,13 +12448,13 @@ async function saveDescriptor(context, selector, objectId, property, file) {
|
|
|
11969
12448
|
if (catalogue.replayed === true) return { outcome: outcomeOfEnvelope(catalogue, settle2, (value2) => JSON.stringify(value2)) };
|
|
11970
12449
|
const type = catalogue.result.objects.find((candidate) => candidate.typeKey === object.result.typeKey);
|
|
11971
12450
|
if (type === void 0) return { outcome: invalid(`could not find the published type version for object ${objectId}`) };
|
|
11972
|
-
if (!
|
|
12451
|
+
if (!isRecord4(type.propertyDefinitions)) return { outcome: malformed2("propertyDefinitions") };
|
|
11973
12452
|
const definitions = type.propertyDefinitions;
|
|
11974
12453
|
if (definitions[property] === void 0) return { outcome: invalid(`property ${property} is not declared on ${type.typeKey}`) };
|
|
11975
|
-
if (!
|
|
12454
|
+
if (!isRecord4(object.result.properties)) return { outcome: malformed2("object properties") };
|
|
11976
12455
|
const props = object.result.properties;
|
|
11977
12456
|
const current = props[property];
|
|
11978
|
-
const previous =
|
|
12457
|
+
const previous = isRecord4(current) && "value" in current ? { value: current.value } : { absent: true };
|
|
11979
12458
|
const saved = await clients.objects.mutate({ selector, input: {
|
|
11980
12459
|
correlation: { kind: "mint" },
|
|
11981
12460
|
operation: { kind: "update-object", objectId, typeVersion: type.version, changes: { [property]: { from: previous, to: { value: staged.result } } } }
|
|
@@ -12065,16 +12544,16 @@ var attachmentGet = {
|
|
|
12065
12544
|
}
|
|
12066
12545
|
};
|
|
12067
12546
|
function attachmentProperties(object, propertyDefinitions) {
|
|
12068
|
-
if (!
|
|
12069
|
-
if (!
|
|
12547
|
+
if (!isRecord4(propertyDefinitions)) return { ok: false, outcome: malformed2("propertyDefinitions") };
|
|
12548
|
+
if (!isRecord4(object.properties)) return { ok: false, outcome: malformed2("object properties") };
|
|
12070
12549
|
const properties = object.properties;
|
|
12071
|
-
const
|
|
12072
|
-
if (!
|
|
12550
|
+
const entries7 = Object.entries(propertyDefinitions).flatMap(([property, definition]) => {
|
|
12551
|
+
if (!isRecord4(definition) || definition.kind !== "attachment") return [];
|
|
12073
12552
|
const stored = properties[property];
|
|
12074
|
-
if (!
|
|
12553
|
+
if (!isRecord4(stored) || !descriptor(stored.value)) return [];
|
|
12075
12554
|
return [{ property, descriptor: stored.value }];
|
|
12076
12555
|
});
|
|
12077
|
-
return { ok: true, entries:
|
|
12556
|
+
return { ok: true, entries: entries7 };
|
|
12078
12557
|
}
|
|
12079
12558
|
var attachmentList = {
|
|
12080
12559
|
words: ["attachment", "list"],
|
|
@@ -12106,14 +12585,312 @@ var attachmentList = {
|
|
|
12106
12585
|
if (type === void 0) return { outcome: invalid(`could not find the published type version for object ${objectId}`) };
|
|
12107
12586
|
const listed = attachmentProperties(object.result, type.propertyDefinitions);
|
|
12108
12587
|
if (!listed.ok) return { outcome: listed.outcome };
|
|
12109
|
-
const
|
|
12110
|
-
const outcome = { kind: "success", value:
|
|
12588
|
+
const entries7 = listed.entries;
|
|
12589
|
+
const outcome = { kind: "success", value: entries7, text: entries7.map((entry2) => JSON.stringify(entry2)).join("\n") || "no attachments" };
|
|
12111
12590
|
return { outcome };
|
|
12112
12591
|
});
|
|
12113
12592
|
return run2.ok ? run2.answer.outcome : outcomeOfSessionFailure(run2.failure, settle2);
|
|
12114
12593
|
}
|
|
12115
12594
|
};
|
|
12116
12595
|
|
|
12596
|
+
// packages/cli/src/commands/links.ts
|
|
12597
|
+
import { randomUUID as randomUUID6 } from "node:crypto";
|
|
12598
|
+
function boundText(bound) {
|
|
12599
|
+
const name = `${bound.property}${bound.index === void 0 ? "" : `[${bound.index}]`}`;
|
|
12600
|
+
const label = `${name}${bound.quantity === void 0 ? "" : ` quantity ${bound.quantity}`}${"over" in bound ? ` ${bound.over} ${bound.coverage}` : ""}`;
|
|
12601
|
+
switch (bound.state) {
|
|
12602
|
+
case "in":
|
|
12603
|
+
case "out": {
|
|
12604
|
+
const definition = { kind: "number", unit: bound.unit };
|
|
12605
|
+
return `${label}: ${bound.state}; ${displayPropertyValue(bound.value, definition)} ${bound.comparison} ${displayPropertyValue(bound.limit, definition)}` + (bound.tolerance === void 0 ? "" : `; tolerance ${displayPropertyValue(bound.tolerance, definition)}`);
|
|
12606
|
+
}
|
|
12607
|
+
case "no-value":
|
|
12608
|
+
return `${label}: no-value; missing ${bound.missing}${"propertyMissing" in bound ? `; property ${bound.propertyMissing}` : ""}`;
|
|
12609
|
+
case "not-visible":
|
|
12610
|
+
return `${label}: not-visible; hidden ${bound.hidden}`;
|
|
12611
|
+
case "unit-mismatch":
|
|
12612
|
+
return `${label}: unit-mismatch`;
|
|
12613
|
+
case "too-many-links":
|
|
12614
|
+
return `${label}: too-many-links`;
|
|
12615
|
+
}
|
|
12616
|
+
}
|
|
12617
|
+
function boundsText(bounds) {
|
|
12618
|
+
return "bounds" in bounds ? `${bounds.state}; ${bounds.bounds.map(boundText).join("; ")}` : bounds.state;
|
|
12619
|
+
}
|
|
12620
|
+
function statusText(answer) {
|
|
12621
|
+
return [
|
|
12622
|
+
`head: ${answer.head}`,
|
|
12623
|
+
...answer.links.length === 0 ? ["no tracked links"] : answer.links.map((link2) => `${link2.linkId} (${link2.typeKey}) ${link2.upstream.projectId}/${link2.upstream.objectId} -> ${link2.downstream.projectId}/${link2.downstream.objectId}
|
|
12624
|
+
review: ${link2.review.state}${"upstreamVersion" in link2.review ? `; version ${link2.review.upstreamVersion}` : ""}
|
|
12625
|
+
bounds: ${boundsText(link2.bounds)}` + (link2.clearing === null ? "" : `
|
|
12626
|
+
cleared by ${link2.clearing.clearedBy} at ${link2.clearing.clearedAt}`)),
|
|
12627
|
+
...answer.aggregates.map((bound) => `aggregate ${boundText(bound)}`)
|
|
12628
|
+
].join("\n");
|
|
12629
|
+
}
|
|
12630
|
+
var linksStatus = {
|
|
12631
|
+
words: ["links", "status"],
|
|
12632
|
+
arguments: 1,
|
|
12633
|
+
organisation: "required",
|
|
12634
|
+
usage: "openeng links status <object> --project <id> --ref <ref>",
|
|
12635
|
+
help: [
|
|
12636
|
+
"openeng links status <object> --project <id> --ref <ref>",
|
|
12637
|
+
"does: reads review and bounds states, clearing attribution and upstream versions; bounds show units",
|
|
12638
|
+
"example: openeng links status obj_abc --project proj_abc --ref main",
|
|
12639
|
+
"output: head, tracked links and aggregate bounds; --json returns the complete answer"
|
|
12640
|
+
],
|
|
12641
|
+
run: async ({ host, deps, options, args }) => {
|
|
12642
|
+
const { project, ref } = options;
|
|
12643
|
+
const [objectId] = args;
|
|
12644
|
+
if (project === void 0 || ref === void 0 || objectId === void 0 || objectId.length === 0) {
|
|
12645
|
+
return { kind: "client-refusal", message: "links status needs <object>, --project <id> and --ref <ref>" };
|
|
12646
|
+
}
|
|
12647
|
+
const settle2 = `openeng links status ${objectId} --project ${project} --ref ${ref}`;
|
|
12648
|
+
const run2 = await runAuthenticated(host, deps, (clients) => clients.objects.readLinkStatus({
|
|
12649
|
+
selector: { projectId: project, ref },
|
|
12650
|
+
input: { objectId }
|
|
12651
|
+
}));
|
|
12652
|
+
return run2.ok ? outcomeOfEnvelope(run2.answer, settle2, statusText) : outcomeOfSessionFailure(run2.failure, settle2);
|
|
12653
|
+
}
|
|
12654
|
+
};
|
|
12655
|
+
var linksClear = {
|
|
12656
|
+
words: ["links", "clear"],
|
|
12657
|
+
arguments: "rest",
|
|
12658
|
+
organisation: "required",
|
|
12659
|
+
usage: "openeng links clear <link>... --version <v>... --project <id> --ref <ref>",
|
|
12660
|
+
help: [
|
|
12661
|
+
"openeng links clear <link>... --version <v>... --project <id> --ref <ref>",
|
|
12662
|
+
"does: clears 1 to 100 links atomically; supply one upstream version from links status per link, in the same order",
|
|
12663
|
+
"example: openeng links clear edg_abc --version <upstream-version> --project proj_abc --ref main",
|
|
12664
|
+
"output: the clearing commit and correlation; upstream-changed requires reading the status and reviewing again"
|
|
12665
|
+
],
|
|
12666
|
+
run: async ({ host, deps, options, args }) => {
|
|
12667
|
+
const { project, ref, upstreamVersions } = options;
|
|
12668
|
+
if (project === void 0 || ref === void 0 || upstreamVersions === void 0 || args.length < 1 || args.length > MAX_CLEAR_ENTRIES || upstreamVersions.length !== args.length || args.some((link2) => link2.length === 0) || upstreamVersions.some((version) => version.length === 0)) {
|
|
12669
|
+
return { kind: "client-refusal", message: "links clear needs 1 to 100 links, one --version per link, --project <id> and --ref <ref>" };
|
|
12670
|
+
}
|
|
12671
|
+
const entries7 = args.map((linkId, index) => {
|
|
12672
|
+
const upstreamVersion = upstreamVersions[index];
|
|
12673
|
+
if (upstreamVersion === void 0) throw new Error("a clearing entry has no upstream version");
|
|
12674
|
+
return { linkId, upstreamVersion };
|
|
12675
|
+
});
|
|
12676
|
+
const settle2 = `read link status on ref ${ref} or recover the clearing by its correlation id`;
|
|
12677
|
+
const run2 = await runAuthenticated(host, deps, (clients) => clients.objects.clearLinks({
|
|
12678
|
+
selector: { projectId: project },
|
|
12679
|
+
input: { correlation: { kind: "mint" }, ref, entries: entries7 }
|
|
12680
|
+
}, randomUUID6()));
|
|
12681
|
+
if (!run2.ok) return outcomeOfSessionFailure(run2.failure, settle2);
|
|
12682
|
+
if ("result" in run2.answer && run2.answer.result.kind === "unknown") {
|
|
12683
|
+
return { kind: "unknown-outcome-no-answer", message: `clearing outcome unknown; correlation ${run2.answer.result.correlationId}`, settle: settle2 };
|
|
12684
|
+
}
|
|
12685
|
+
return outcomeOfEnvelope(run2.answer, settle2, (answer) => {
|
|
12686
|
+
if (answer.kind !== "succeeded") throw new Error("a clearing success was required");
|
|
12687
|
+
return `cleared ${entries7.length} ${entries7.length === 1 ? "link" : "links"}; ${"hash" in answer.commit ? `commit ${answer.commit.hash}` : "no change"}; correlation ${answer.correlationId}`;
|
|
12688
|
+
});
|
|
12689
|
+
}
|
|
12690
|
+
};
|
|
12691
|
+
|
|
12692
|
+
// packages/cli/src/commands/branches.ts
|
|
12693
|
+
function impactText(answer) {
|
|
12694
|
+
return [
|
|
12695
|
+
`base head: ${answer.baseHead}
|
|
12696
|
+
head: ${answer.head}
|
|
12697
|
+
withheld: ${answer.withheld}`,
|
|
12698
|
+
...answer.reviewChanges.map((change) => `review ${change.linkId}: ${change.base.state} -> ${change.head.state}`),
|
|
12699
|
+
...answer.boundsChanges.map((change) => `bounds ${change.linkId}: ${boundsText(change.base)} -> ${boundsText(change.head)}`),
|
|
12700
|
+
...answer.aggregateChanges.map((change) => `aggregate ${change.owner.projectId}/${change.owner.objectId} ${change.property}${change.index === void 0 ? "" : `[${change.index}]`}: ${"over" in change.base ? boundText(change.base) : change.base.state} -> ${"over" in change.head ? boundText(change.head) : change.head.state}`),
|
|
12701
|
+
...answer.reach.map((entry2) => `reach ${entry2.depth}: ${entry2.address.projectId}/${entry2.address.objectId} via ${entry2.linkId}`),
|
|
12702
|
+
...answer.hidden.map((entry2) => `hidden ${entry2.depth}: ${entry2.count}`)
|
|
12703
|
+
].join("\n");
|
|
12704
|
+
}
|
|
12705
|
+
var branchesImpact = {
|
|
12706
|
+
words: ["branches", "impact"],
|
|
12707
|
+
arguments: 1,
|
|
12708
|
+
organisation: "required",
|
|
12709
|
+
usage: "openeng branches impact <ref> --base <base> --project <id>",
|
|
12710
|
+
help: [
|
|
12711
|
+
"openeng branches impact <ref> --base <base> --project <id>",
|
|
12712
|
+
"does: reads review and bounds changes against the merge base, downstream reach and hidden counts",
|
|
12713
|
+
"example: openeng branches impact proj_abc/work --base main --project proj_abc",
|
|
12714
|
+
"output: both heads, changes with units, reach and hidden counts; --json returns the complete answer"
|
|
12715
|
+
],
|
|
12716
|
+
run: async ({ host, deps, options, args }) => {
|
|
12717
|
+
const { project, base } = options;
|
|
12718
|
+
const [ref] = args;
|
|
12719
|
+
if (project === void 0 || base === void 0 || ref === void 0 || ref.length === 0) {
|
|
12720
|
+
return { kind: "client-refusal", message: "branches impact needs <ref>, --base <base> and --project <id>" };
|
|
12721
|
+
}
|
|
12722
|
+
const settle2 = `openeng branches impact ${ref} --base ${base} --project ${project}`;
|
|
12723
|
+
const run2 = await runAuthenticated(host, deps, (clients) => clients.branches.readChangeImpact({
|
|
12724
|
+
selector: { projectId: project },
|
|
12725
|
+
input: { ref, base }
|
|
12726
|
+
}));
|
|
12727
|
+
return run2.ok ? outcomeOfEnvelope(run2.answer, settle2, impactText) : outcomeOfSessionFailure(run2.failure, settle2);
|
|
12728
|
+
}
|
|
12729
|
+
};
|
|
12730
|
+
|
|
12731
|
+
// packages/cli/src/commands/hosted-app.ts
|
|
12732
|
+
import { readFileSync as readFileSync7 } from "node:fs";
|
|
12733
|
+
var ONE_WALL_WARNING = "This app runs without the WebRTC wall. Its code can send anything a viewer of the app can read to any host on the internet, over WebRTC or through DNS lookups, and nothing reports it. It runs with each viewer's authority. Review the current code, and every later version, for WebRTC use, DNS hints and other exploits before people open it. A coding agent can do the review. Withdrawing this permission stops the app's next request, but not data it has already read.";
|
|
12734
|
+
var ONE_WALL_UNKNOWN = "This account cannot read whether the app may send data out of the browser. An administrator can check its one-wall permission.";
|
|
12735
|
+
var usagePublish = "openeng hosted-app publish <bundle> --project <id> --key <app key>";
|
|
12736
|
+
var usageList2 = "openeng hosted-app list --project <id>";
|
|
12737
|
+
var usageVersions = "openeng hosted-app versions <app key> --project <id>";
|
|
12738
|
+
var usageRevoke = "openeng hosted-app revoke <app key | app id | version id> --project <id>";
|
|
12739
|
+
var invalid2 = (message) => ({ kind: "client-refusal", message });
|
|
12740
|
+
function projectOf(context, name) {
|
|
12741
|
+
const { project } = context.options;
|
|
12742
|
+
return project === void 0 || project === "" ? invalid2(`openeng hosted-app ${name} needs --project <id>`) : project;
|
|
12743
|
+
}
|
|
12744
|
+
function argumentOf(context, usage) {
|
|
12745
|
+
const [first, ...rest] = context.args;
|
|
12746
|
+
return first === void 0 || first === "" || rest.length > 0 ? invalid2(`usage: ${usage}`) : first;
|
|
12747
|
+
}
|
|
12748
|
+
function isOutcome2(value) {
|
|
12749
|
+
return typeof value !== "string";
|
|
12750
|
+
}
|
|
12751
|
+
var appLine = (app) => `${app.key} ${app.appId} ${app.state} created ${app.createdAt} by ${app.createdBy}`;
|
|
12752
|
+
var versionLine = (version) => `${version.versionId} ${version.state} sha256 ${version.bundleSha256} ${String(version.size)} bytes published ${version.publishedAt} by ${version.publishedBy}`;
|
|
12753
|
+
async function appOfKey(clients, projectId, key, settle2) {
|
|
12754
|
+
const listed = await clients.hostedApps.listHostedApps({ selector: { projectId }, input: {} });
|
|
12755
|
+
if ("refusal" in listed || listed.replayed === true) return { outcome: outcomeOfEnvelope(listed, settle2, () => "") };
|
|
12756
|
+
const app = listed.result.apps.find((candidate) => candidate.key === key);
|
|
12757
|
+
return app === void 0 ? { outcome: invalid2(`project ${projectId} has no hosted app with key ${key}`) } : { app };
|
|
12758
|
+
}
|
|
12759
|
+
var hostedAppPublish = {
|
|
12760
|
+
words: ["hosted-app", "publish"],
|
|
12761
|
+
arguments: 1,
|
|
12762
|
+
organisation: "required",
|
|
12763
|
+
usage: usagePublish,
|
|
12764
|
+
help: [
|
|
12765
|
+
usagePublish,
|
|
12766
|
+
"does: publishes a bundle file as the next version of the project's hosted app under the key, creating the app when the project has none under that key",
|
|
12767
|
+
"example: openeng hosted-app publish ./dist/app.js --project proj_abc --key rover-dashboard",
|
|
12768
|
+
"output: the version id, its SHA-256 and its size; for an app that holds the one-wall permission, the one-wall warning as well"
|
|
12769
|
+
],
|
|
12770
|
+
run: async (context) => {
|
|
12771
|
+
const project = projectOf(context, "publish");
|
|
12772
|
+
if (isOutcome2(project)) return project;
|
|
12773
|
+
const file = argumentOf(context, usagePublish);
|
|
12774
|
+
if (isOutcome2(file)) return file;
|
|
12775
|
+
const key = context.options.key;
|
|
12776
|
+
if (key === void 0 || key === "") return invalid2(`openeng hosted-app publish needs --key <app key>; usage: ${usagePublish}`);
|
|
12777
|
+
const bytes = new Uint8Array(readFileSync7(file));
|
|
12778
|
+
const settle2 = `openeng hosted-app versions ${key} --project ${project}, which only reads; publish again only if the version is absent`;
|
|
12779
|
+
const run2 = await runAuthenticated(context.host, context.deps, async (clients) => {
|
|
12780
|
+
const found = await appOfKey(clients, project, key, settle2);
|
|
12781
|
+
let appId;
|
|
12782
|
+
if ("app" in found) {
|
|
12783
|
+
appId = found.app.appId;
|
|
12784
|
+
} else if (found.outcome.kind === "client-refusal") {
|
|
12785
|
+
const created = await clients.hostedApps.createHostedApp({ selector: { projectId: project }, input: { key } });
|
|
12786
|
+
if ("refusal" in created || created.replayed === true) return { outcome: outcomeOfEnvelope(created, settle2, () => "") };
|
|
12787
|
+
appId = created.result.appId;
|
|
12788
|
+
} else {
|
|
12789
|
+
return { outcome: found.outcome };
|
|
12790
|
+
}
|
|
12791
|
+
const published = await clients.hostedApps.publishHostedVersion({ projectId: project }, { appKey: key, bytes });
|
|
12792
|
+
if ("refusal" in published || published.replayed === true) return { outcome: outcomeOfEnvelope(published, settle2, () => "") };
|
|
12793
|
+
const grants = await clients.hostedApps.listHostedOneWallGrants({ input: {} });
|
|
12794
|
+
const unreadable = "refusal" in grants && (grants.refusal.kind === "not-found" || grants.refusal.kind === "refused" && grants.refusal.rule === "not-permitted");
|
|
12795
|
+
if (!unreadable && ("refusal" in grants || grants.replayed === true)) return { outcome: outcomeOfEnvelope(grants, settle2, () => "") };
|
|
12796
|
+
const oneWall = "result" in grants ? grants.result.grants.some((grant) => grant.appId === appId) : "unknown";
|
|
12797
|
+
const notes = oneWall === true ? [ONE_WALL_WARNING] : oneWall === "unknown" ? [ONE_WALL_UNKNOWN] : [];
|
|
12798
|
+
const text = (version) => [`published ${version.versionId} of ${key} sha256 ${version.bundleSha256} ${String(version.size)} bytes`, ...notes].join("\n");
|
|
12799
|
+
const outcome = outcomeOfEnvelope(published, settle2, text);
|
|
12800
|
+
if (outcome.kind !== "success") return { outcome };
|
|
12801
|
+
return {
|
|
12802
|
+
outcome: {
|
|
12803
|
+
...outcome,
|
|
12804
|
+
value: {
|
|
12805
|
+
...outcome.value,
|
|
12806
|
+
oneWall,
|
|
12807
|
+
...oneWall === false ? {} : { warning: oneWall === true ? ONE_WALL_WARNING : ONE_WALL_UNKNOWN }
|
|
12808
|
+
}
|
|
12809
|
+
}
|
|
12810
|
+
};
|
|
12811
|
+
});
|
|
12812
|
+
return run2.ok ? run2.answer.outcome : outcomeOfSessionFailure(run2.failure, settle2);
|
|
12813
|
+
}
|
|
12814
|
+
};
|
|
12815
|
+
var hostedAppList = {
|
|
12816
|
+
words: ["hosted-app", "list"],
|
|
12817
|
+
organisation: "required",
|
|
12818
|
+
usage: usageList2,
|
|
12819
|
+
help: [
|
|
12820
|
+
usageList2,
|
|
12821
|
+
"does: lists the hosted apps of the project",
|
|
12822
|
+
"example: openeng hosted-app list --project proj_abc",
|
|
12823
|
+
"output: one line per app: key, id, state, creation time and creator"
|
|
12824
|
+
],
|
|
12825
|
+
run: async (context) => {
|
|
12826
|
+
const project = projectOf(context, "list");
|
|
12827
|
+
if (isOutcome2(project)) return project;
|
|
12828
|
+
const settle2 = "repeat openeng hosted-app list, which only reads";
|
|
12829
|
+
const run2 = await runAuthenticated(context.host, context.deps, (clients) => clients.hostedApps.listHostedApps({ selector: { projectId: project }, input: {} }));
|
|
12830
|
+
return run2.ok ? outcomeOfEnvelope(run2.answer, settle2, (listed) => listed.apps.length === 0 ? "no hosted apps" : listed.apps.map(appLine).join("\n")) : outcomeOfSessionFailure(run2.failure, settle2);
|
|
12831
|
+
}
|
|
12832
|
+
};
|
|
12833
|
+
var hostedAppVersions = {
|
|
12834
|
+
words: ["hosted-app", "versions"],
|
|
12835
|
+
arguments: 1,
|
|
12836
|
+
organisation: "required",
|
|
12837
|
+
usage: usageVersions,
|
|
12838
|
+
help: [
|
|
12839
|
+
usageVersions,
|
|
12840
|
+
"does: lists the versions of the project's hosted app under the key, newest first",
|
|
12841
|
+
"example: openeng hosted-app versions rover-dashboard --project proj_abc",
|
|
12842
|
+
"output: one line per version: id, state, SHA-256, size, publication time and publisher"
|
|
12843
|
+
],
|
|
12844
|
+
run: async (context) => {
|
|
12845
|
+
const project = projectOf(context, "versions");
|
|
12846
|
+
if (isOutcome2(project)) return project;
|
|
12847
|
+
const key = argumentOf(context, usageVersions);
|
|
12848
|
+
if (isOutcome2(key)) return key;
|
|
12849
|
+
const settle2 = `repeat ${usageVersions}, which only reads`;
|
|
12850
|
+
const run2 = await runAuthenticated(context.host, context.deps, async (clients) => {
|
|
12851
|
+
const found = await appOfKey(clients, project, key, settle2);
|
|
12852
|
+
if ("outcome" in found) return { outcome: found.outcome };
|
|
12853
|
+
const listed = await clients.hostedApps.listHostedVersions({ selector: { projectId: project }, input: { appId: found.app.appId } });
|
|
12854
|
+
return { outcome: outcomeOfEnvelope(listed, settle2, (result) => result.versions.length === 0 ? "no versions" : result.versions.map(versionLine).join("\n")) };
|
|
12855
|
+
});
|
|
12856
|
+
return run2.ok ? run2.answer.outcome : outcomeOfSessionFailure(run2.failure, settle2);
|
|
12857
|
+
}
|
|
12858
|
+
};
|
|
12859
|
+
var hostedAppRevoke = {
|
|
12860
|
+
words: ["hosted-app", "revoke"],
|
|
12861
|
+
arguments: 1,
|
|
12862
|
+
organisation: "required",
|
|
12863
|
+
usage: usageRevoke,
|
|
12864
|
+
help: [
|
|
12865
|
+
usageRevoke,
|
|
12866
|
+
"does: revokes one version (an argument starting hav_) or the whole app (its key or app_ id); the next call under any launch of it is refused",
|
|
12867
|
+
"example: openeng hosted-app revoke hav_abc... --project proj_abc",
|
|
12868
|
+
"output: one line naming what was revoked"
|
|
12869
|
+
],
|
|
12870
|
+
run: async (context) => {
|
|
12871
|
+
const project = projectOf(context, "revoke");
|
|
12872
|
+
if (isOutcome2(project)) return project;
|
|
12873
|
+
const target = argumentOf(context, usageRevoke);
|
|
12874
|
+
if (isOutcome2(target)) return target;
|
|
12875
|
+
const settle2 = `repeat openeng hosted-app list --project ${project}, then revoke again only if the app or version is still live`;
|
|
12876
|
+
const run2 = await runAuthenticated(context.host, context.deps, async (clients) => {
|
|
12877
|
+
if (target.startsWith("hav_")) {
|
|
12878
|
+
const revoked2 = await clients.hostedApps.revokeHostedVersion({ selector: { projectId: project }, input: { versionId: target } });
|
|
12879
|
+
return { outcome: outcomeOfEnvelope(revoked2, settle2, (result) => `revoked version ${result.versionId}`) };
|
|
12880
|
+
}
|
|
12881
|
+
if (target.startsWith("app_")) {
|
|
12882
|
+
const revoked2 = await clients.hostedApps.revokeHostedApp({ selector: { projectId: project }, input: { appId: target } });
|
|
12883
|
+
return { outcome: outcomeOfEnvelope(revoked2, settle2, (result) => `revoked app ${target} (${result.appId})`) };
|
|
12884
|
+
}
|
|
12885
|
+
const found = await appOfKey(clients, project, target, settle2);
|
|
12886
|
+
if ("outcome" in found) return { outcome: found.outcome };
|
|
12887
|
+
const revoked = await clients.hostedApps.revokeHostedApp({ selector: { projectId: project }, input: { appId: found.app.appId } });
|
|
12888
|
+
return { outcome: outcomeOfEnvelope(revoked, settle2, (result) => `revoked app ${target} (${result.appId})`) };
|
|
12889
|
+
});
|
|
12890
|
+
return run2.ok ? run2.answer.outcome : outcomeOfSessionFailure(run2.failure, settle2);
|
|
12891
|
+
}
|
|
12892
|
+
};
|
|
12893
|
+
|
|
12117
12894
|
// packages/cli/src/commands/public.ts
|
|
12118
12895
|
var loginCommand = {
|
|
12119
12896
|
words: ["login"],
|
|
@@ -12191,6 +12968,13 @@ var PUBLIC_HAND_WRITTEN_COMMANDS = [
|
|
|
12191
12968
|
attachmentAdd,
|
|
12192
12969
|
attachmentGet,
|
|
12193
12970
|
attachmentList,
|
|
12971
|
+
linksStatus,
|
|
12972
|
+
linksClear,
|
|
12973
|
+
branchesImpact,
|
|
12974
|
+
hostedAppPublish,
|
|
12975
|
+
hostedAppList,
|
|
12976
|
+
hostedAppVersions,
|
|
12977
|
+
hostedAppRevoke,
|
|
12194
12978
|
typesList,
|
|
12195
12979
|
typesExport,
|
|
12196
12980
|
typesDraftOpen,
|
|
@@ -12221,7 +13005,7 @@ var PUBLIC_COMMANDS = [
|
|
|
12221
13005
|
|
|
12222
13006
|
// packages/cli/src/main.ts
|
|
12223
13007
|
import { spawn } from "node:child_process";
|
|
12224
|
-
import { readFileSync as
|
|
13008
|
+
import { readFileSync as readFileSync9 } from "node:fs";
|
|
12225
13009
|
import { homedir } from "node:os";
|
|
12226
13010
|
import { parseArgs } from "node:util";
|
|
12227
13011
|
|
|
@@ -12242,6 +13026,7 @@ var CLI_OPTIONS = {
|
|
|
12242
13026
|
consequence: { type: "string" },
|
|
12243
13027
|
"rule-id": { type: "string" },
|
|
12244
13028
|
ref: { type: "string" },
|
|
13029
|
+
base: { type: "string" },
|
|
12245
13030
|
name: { type: "string" },
|
|
12246
13031
|
"change-set": { type: "string" },
|
|
12247
13032
|
revision: { type: "string" },
|
|
@@ -12262,9 +13047,11 @@ var CLI_OPTIONS = {
|
|
|
12262
13047
|
owner: { type: "string" },
|
|
12263
13048
|
label: { type: "string" },
|
|
12264
13049
|
out: { type: "string" },
|
|
13050
|
+
key: { type: "string" },
|
|
12265
13051
|
help: { type: "boolean", short: "h" },
|
|
12266
13052
|
version: { type: "boolean" }
|
|
12267
13053
|
};
|
|
13054
|
+
var APP_KEY_FORM = /^[a-z0-9][a-z0-9-]{0,62}$/;
|
|
12268
13055
|
|
|
12269
13056
|
// packages/cli/src/cli-version.ts
|
|
12270
13057
|
var PATCH_VERSION = 0;
|
|
@@ -12284,8 +13071,8 @@ var readEnvironment = () => Object.freeze({
|
|
|
12284
13071
|
var createTransport = (host) => host.kind === "unix" ? createHostFetch(host.socketPath) : createHttpsTransport(host.origin);
|
|
12285
13072
|
|
|
12286
13073
|
// packages/cli/src/update-check.ts
|
|
12287
|
-
import { randomUUID as
|
|
12288
|
-
import { existsSync, mkdirSync as mkdirSync3, readFileSync as
|
|
13074
|
+
import { randomUUID as randomUUID7 } from "node:crypto";
|
|
13075
|
+
import { existsSync, mkdirSync as mkdirSync3, readFileSync as readFileSync8, renameSync as renameSync2, unlinkSync as unlinkSync3, writeFileSync as writeFileSync2 } from "node:fs";
|
|
12289
13076
|
import { join as join4 } from "node:path";
|
|
12290
13077
|
function versionParts(value) {
|
|
12291
13078
|
if (typeof value !== "string" || !/^\d+\.\d+\.\d+$/.test(value)) {
|
|
@@ -12298,7 +13085,7 @@ function readCache(file) {
|
|
|
12298
13085
|
if (!existsSync(file)) {
|
|
12299
13086
|
return null;
|
|
12300
13087
|
}
|
|
12301
|
-
const value = JSON.parse(
|
|
13088
|
+
const value = JSON.parse(readFileSync8(file, "utf8"));
|
|
12302
13089
|
if (typeof value !== "object" || value === null || !("latest" in value) || !("checkedAt" in value)) {
|
|
12303
13090
|
return null;
|
|
12304
13091
|
}
|
|
@@ -12329,7 +13116,7 @@ async function fetchLatest() {
|
|
|
12329
13116
|
}
|
|
12330
13117
|
function writeCache(directory, file, cache) {
|
|
12331
13118
|
mkdirSync3(directory, { recursive: true, mode: 448 });
|
|
12332
|
-
const temporary = `${file}.${
|
|
13119
|
+
const temporary = `${file}.${randomUUID7()}.tmp`;
|
|
12333
13120
|
try {
|
|
12334
13121
|
writeFileSync2(temporary, JSON.stringify(cache), { flag: "wx", mode: 384 });
|
|
12335
13122
|
renameSync2(temporary, file);
|
|
@@ -12452,12 +13239,22 @@ var addressPrinter = (json) => (address) => {
|
|
|
12452
13239
|
var promptSecret = createSecretPrompt(process.stdin, process.stderr);
|
|
12453
13240
|
function parseInvocation(argv) {
|
|
12454
13241
|
try {
|
|
13242
|
+
const preliminary = parseArgs({
|
|
13243
|
+
args: [...argv],
|
|
13244
|
+
allowPositionals: true,
|
|
13245
|
+
strict: false,
|
|
13246
|
+
options: CLI_OPTIONS
|
|
13247
|
+
});
|
|
13248
|
+
const clearing = preliminary.positionals[0] === "links" && preliminary.positionals[1] === "clear";
|
|
12455
13249
|
const { values, positionals } = parseArgs({
|
|
12456
13250
|
args: [...argv],
|
|
12457
13251
|
allowPositionals: true,
|
|
12458
13252
|
strict: true,
|
|
12459
|
-
options: CLI_OPTIONS
|
|
13253
|
+
options: clearing ? { ...CLI_OPTIONS, version: { type: "string", multiple: true } } : CLI_OPTIONS
|
|
12460
13254
|
});
|
|
13255
|
+
if (values.key !== void 0 && !APP_KEY_FORM.test(values.key)) {
|
|
13256
|
+
return { kind: "client-refusal", message: "--key takes an app key: lower-case letters, digits and hyphens, starting with a letter or digit, at most 63 characters" };
|
|
13257
|
+
}
|
|
12461
13258
|
return {
|
|
12462
13259
|
words: positionals,
|
|
12463
13260
|
help: values.help === true,
|
|
@@ -12478,6 +13275,8 @@ function parseInvocation(argv) {
|
|
|
12478
13275
|
consequence: values.consequence,
|
|
12479
13276
|
ruleId: values["rule-id"],
|
|
12480
13277
|
ref: values.ref,
|
|
13278
|
+
base: values.base,
|
|
13279
|
+
...clearing && Array.isArray(values.version) ? { upstreamVersions: values.version } : {},
|
|
12481
13280
|
name: values.name,
|
|
12482
13281
|
changeSet: values["change-set"],
|
|
12483
13282
|
revision: values.revision,
|
|
@@ -12497,7 +13296,8 @@ function parseInvocation(argv) {
|
|
|
12497
13296
|
team: values.team,
|
|
12498
13297
|
owner: values.owner,
|
|
12499
13298
|
label: values.label,
|
|
12500
|
-
out: values.out
|
|
13299
|
+
out: values.out,
|
|
13300
|
+
key: values.key
|
|
12501
13301
|
}
|
|
12502
13302
|
};
|
|
12503
13303
|
} catch (error) {
|
|
@@ -12570,7 +13370,7 @@ ${usageLines(commands).join("\n")}` : unknownCommandMessage(commands, invocation
|
|
|
12570
13370
|
deps,
|
|
12571
13371
|
options,
|
|
12572
13372
|
args: invocation.words.slice(command.words.length),
|
|
12573
|
-
readStandardInput: () =>
|
|
13373
|
+
readStandardInput: () => readFileSync9(0, "utf8"),
|
|
12574
13374
|
promptSecret,
|
|
12575
13375
|
writeLine: (line) => process.stdout.write(`${line}
|
|
12576
13376
|
`),
|