@openwop/spec-artifacts 2.0.0-rc.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/CORPUS-STAMP.json +234 -0
- package/LICENSE +201 -0
- package/README.md +7 -0
- package/api/.redocly.lint-ignore.yaml +22 -0
- package/api/asyncapi.yaml +834 -0
- package/api/grpc/openwop.proto +251 -0
- package/api/openapi.yaml +2693 -0
- package/api/redocly.yaml +23 -0
- package/api/seams-v2.yaml +680 -0
- package/api/v2/asyncapi.yaml +528 -0
- package/api/v2/openapi.yaml +3139 -0
- package/api/v2/redocly.yaml +16 -0
- package/package.json +10 -0
- package/schemas/README.md +144 -0
- package/schemas/a2a-task-state.schema.json +78 -0
- package/schemas/a2ui-surface-delta-frame.schema.json +48 -0
- package/schemas/agent-deployment-transition.schema.json +49 -0
- package/schemas/agent-deployment.schema.json +54 -0
- package/schemas/agent-eval-suite.schema.json +140 -0
- package/schemas/agent-inventory-response.schema.json +115 -0
- package/schemas/agent-manifest.schema.json +156 -0
- package/schemas/agent-org-chart.schema.json +82 -0
- package/schemas/agent-ref.schema.json +63 -0
- package/schemas/agent-roster-entry.schema.json +81 -0
- package/schemas/agent-roster-response.schema.json +21 -0
- package/schemas/ai-envelope.schema.json +134 -0
- package/schemas/annotation-create.schema.json +37 -0
- package/schemas/annotation.schema.json +56 -0
- package/schemas/artifact-type-pack-manifest.schema.json +244 -0
- package/schemas/audit-verify-result.schema.json +90 -0
- package/schemas/budget-policy.schema.json +18 -0
- package/schemas/capabilities.schema.json +4160 -0
- package/schemas/certification-bundle-v2.schema.json +118 -0
- package/schemas/channel-presence-payload.schema.json +41 -0
- package/schemas/channel-written-payload.schema.json +55 -0
- package/schemas/chat-card-pack-manifest.schema.json +253 -0
- package/schemas/compact-tool-descriptor.schema.json +51 -0
- package/schemas/compensation-policy.schema.json +64 -0
- package/schemas/conformance-certification-bundle.schema.json +86 -0
- package/schemas/connection-pack-manifest.schema.json +353 -0
- package/schemas/conversation-event.schema.json +168 -0
- package/schemas/conversation-turn.schema.json +117 -0
- package/schemas/core-conformance-mock-agent-config.schema.json +152 -0
- package/schemas/credential-provenance.schema.json +18 -0
- package/schemas/credential-reference.schema.json +21 -0
- package/schemas/debug-bundle.schema.json +196 -0
- package/schemas/dispatch-config.schema.json +112 -0
- package/schemas/envelopes/clarification.request.schema.json +52 -0
- package/schemas/envelopes/error.schema.json +30 -0
- package/schemas/envelopes/media.audio.schema.json +38 -0
- package/schemas/envelopes/media.file.schema.json +37 -0
- package/schemas/envelopes/media.image.schema.json +33 -0
- package/schemas/envelopes/schema.request.schema.json +26 -0
- package/schemas/envelopes/schema.response.schema.json +22 -0
- package/schemas/envelopes/ui.a2ui-surface.schema.json +154 -0
- package/schemas/error-envelope.schema.json +25 -0
- package/schemas/eval-summary.schema.json +92 -0
- package/schemas/export-bundle.schema.json +66 -0
- package/schemas/form-content-pack-manifest.schema.json +243 -0
- package/schemas/frontend-plugin-manifest.schema.json +109 -0
- package/schemas/goal.schema.json +104 -0
- package/schemas/heartbeat-evaluated.schema.json +14 -0
- package/schemas/heartbeat-state-changed.schema.json +14 -0
- package/schemas/localized-content-language-settings.schema.json +26 -0
- package/schemas/localized-content-page-response.schema.json +60 -0
- package/schemas/localized-content-page.schema.json +62 -0
- package/schemas/localized-content-section.schema.json +51 -0
- package/schemas/memory-entry.schema.json +36 -0
- package/schemas/memory-list-options.schema.json +37 -0
- package/schemas/node-pack-manifest.schema.json +654 -0
- package/schemas/orchestrator-decision.schema.json +90 -0
- package/schemas/org-chart-responsibility-view.schema.json +26 -0
- package/schemas/pack-lockfile.schema.json +108 -0
- package/schemas/prompt-kind.schema.json +8 -0
- package/schemas/prompt-pack-manifest.schema.json +117 -0
- package/schemas/prompt-ref.schema.json +40 -0
- package/schemas/prompt-template.schema.json +149 -0
- package/schemas/proposal.schema.json +84 -0
- package/schemas/registry-version-manifest.schema.json +208 -0
- package/schemas/residency.schema.json +16 -0
- package/schemas/run-ancestry-response.schema.json +54 -0
- package/schemas/run-diff-response.schema.json +64 -0
- package/schemas/run-event-payloads.schema.json +4452 -0
- package/schemas/run-event.schema.json +211 -0
- package/schemas/run-options.schema.json +80 -0
- package/schemas/run-orchestrator-decided-event.schema.json +20 -0
- package/schemas/run-snapshot.schema.json +148 -0
- package/schemas/security-advisory.schema.json +109 -0
- package/schemas/self-hosted-runner-dispatch-frame.schema.json +79 -0
- package/schemas/self-hosted-runner-registration.schema.json +53 -0
- package/schemas/self-hosted-runner-result-frame.schema.json +38 -0
- package/schemas/subject.schema.json +56 -0
- package/schemas/suspend-request.schema.json +207 -0
- package/schemas/tool-descriptor.schema.json +63 -0
- package/schemas/trigger-event.schema.json +222 -0
- package/schemas/trigger-subscription-registration.schema.json +67 -0
- package/schemas/trigger-subscription.schema.json +26 -0
- package/schemas/ui-plugin-message.schema.json +90 -0
- package/schemas/v2/a2a-task-state.schema.json +102 -0
- package/schemas/v2/a2ui-surface-delta-frame.schema.json +62 -0
- package/schemas/v2/agent-deployment-transition.schema.json +67 -0
- package/schemas/v2/agent-deployment.schema.json +68 -0
- package/schemas/v2/agent-eval-suite.schema.json +214 -0
- package/schemas/v2/agent-inventory-response.schema.json +172 -0
- package/schemas/v2/agent-manifest.schema.json +218 -0
- package/schemas/v2/agent-org-chart.schema.json +149 -0
- package/schemas/v2/agent-ref.schema.json +67 -0
- package/schemas/v2/agent-roster-entry.schema.json +104 -0
- package/schemas/v2/agent-roster-response.schema.json +27 -0
- package/schemas/v2/ai-envelope.schema.json +167 -0
- package/schemas/v2/annotation-create.schema.json +109 -0
- package/schemas/v2/annotation.schema.json +142 -0
- package/schemas/v2/artifact-type-pack-manifest.schema.json +245 -0
- package/schemas/v2/audit-verify-result.schema.json +110 -0
- package/schemas/v2/budget-policy.schema.json +61 -0
- package/schemas/v2/capabilities.schema.json +7644 -0
- package/schemas/v2/certification-bundle.schema.json +401 -0
- package/schemas/v2/channel-presence-payload.schema.json +60 -0
- package/schemas/v2/channel-written-payload.schema.json +64 -0
- package/schemas/v2/chat-card-pack-manifest.schema.json +254 -0
- package/schemas/v2/compact-tool-descriptor.schema.json +108 -0
- package/schemas/v2/compensation-policy.schema.json +91 -0
- package/schemas/v2/compensation-projection.schema.json +95 -0
- package/schemas/v2/configurable.schema.json +110 -0
- package/schemas/v2/connection-pack-manifest.schema.json +354 -0
- package/schemas/v2/conversation-event.schema.json +281 -0
- package/schemas/v2/conversation-turn.schema.json +165 -0
- package/schemas/v2/credential-provenance.schema.json +62 -0
- package/schemas/v2/credential-reference.schema.json +28 -0
- package/schemas/v2/debug-bundle.schema.json +312 -0
- package/schemas/v2/dispatch-config.schema.json +147 -0
- package/schemas/v2/effect-ledger-projection.schema.json +71 -0
- package/schemas/v2/effect-seam-manifest.schema.json +98 -0
- package/schemas/v2/envelopes/clarification.request.schema.json +59 -0
- package/schemas/v2/envelopes/error.schema.json +35 -0
- package/schemas/v2/envelopes/media.audio.schema.json +41 -0
- package/schemas/v2/envelopes/media.file.schema.json +40 -0
- package/schemas/v2/envelopes/media.image.schema.json +36 -0
- package/schemas/v2/envelopes/schema.request.schema.json +29 -0
- package/schemas/v2/envelopes/schema.response.schema.json +26 -0
- package/schemas/v2/envelopes/ui.a2ui-surface.schema.json +292 -0
- package/schemas/v2/error-envelope.schema.json +229 -0
- package/schemas/v2/eval-summary.schema.json +166 -0
- package/schemas/v2/export-bundle.schema.json +94 -0
- package/schemas/v2/form-content-pack-manifest.schema.json +241 -0
- package/schemas/v2/frontend-plugin-manifest.schema.json +152 -0
- package/schemas/v2/goal.schema.json +188 -0
- package/schemas/v2/heartbeat-evaluated.schema.json +34 -0
- package/schemas/v2/heartbeat-state-changed.schema.json +31 -0
- package/schemas/v2/ids.schema.json +31 -0
- package/schemas/v2/localized-content-language-settings.schema.json +34 -0
- package/schemas/v2/localized-content-page-response.schema.json +94 -0
- package/schemas/v2/localized-content-page.schema.json +87 -0
- package/schemas/v2/localized-content-section.schema.json +63 -0
- package/schemas/v2/memory-entry.schema.json +45 -0
- package/schemas/v2/memory-list-options.schema.json +41 -0
- package/schemas/v2/node-pack-manifest.schema.json +657 -0
- package/schemas/v2/orchestrator-decision.schema.json +120 -0
- package/schemas/v2/org-chart-responsibility-view.schema.json +36 -0
- package/schemas/v2/pack-lockfile.schema.json +139 -0
- package/schemas/v2/prompt-kind.schema.json +14 -0
- package/schemas/v2/prompt-pack-manifest.schema.json +118 -0
- package/schemas/v2/prompt-ref.schema.json +42 -0
- package/schemas/v2/prompt-template.schema.json +209 -0
- package/schemas/v2/proposal.schema.json +145 -0
- package/schemas/v2/registry-version-manifest.schema.json +292 -0
- package/schemas/v2/residency.schema.json +19 -0
- package/schemas/v2/run-ancestry-response.schema.json +68 -0
- package/schemas/v2/run-diff-response.schema.json +80 -0
- package/schemas/v2/run-event-payloads.schema.json +4588 -0
- package/schemas/v2/run-event.schema.json +324 -0
- package/schemas/v2/run-options.schema.json +90 -0
- package/schemas/v2/run-orchestrator-decided-event.schema.json +22 -0
- package/schemas/v2/run-snapshot.schema.json +207 -0
- package/schemas/v2/security-advisory.schema.json +138 -0
- package/schemas/v2/self-hosted-runner-dispatch-frame.schema.json +119 -0
- package/schemas/v2/self-hosted-runner-registration.schema.json +74 -0
- package/schemas/v2/self-hosted-runner-result-frame.schema.json +47 -0
- package/schemas/v2/subject-link.schema.json +69 -0
- package/schemas/v2/subject.schema.json +597 -0
- package/schemas/v2/suspend-request.schema.json +370 -0
- package/schemas/v2/tool-descriptor.schema.json +150 -0
- package/schemas/v2/trigger-event.schema.json +508 -0
- package/schemas/v2/trigger-subscription-registration.schema.json +99 -0
- package/schemas/v2/trigger-subscription.schema.json +79 -0
- package/schemas/v2/ui-plugin-message.schema.json +149 -0
- package/schemas/v2/workflow-chain-pack-manifest.schema.json +610 -0
- package/schemas/v2/workflow-definition.schema.json +864 -0
- package/schemas/v2/workload-identity.schema.json +115 -0
- package/schemas/v2/workspace-file-create.schema.json +23 -0
- package/schemas/v2/workspace-file.schema.json +45 -0
- package/schemas/workflow-chain-pack-manifest.schema.json +615 -0
- package/schemas/workflow-definition.schema.json +850 -0
- package/schemas/workload-identity.schema.json +79 -0
- package/schemas/workspace-file-create.schema.json +20 -0
- package/schemas/workspace-file.schema.json +39 -0
- package/spec/v1/alias-detectors.json +283 -0
- package/spec/v1/capability-declaration-classes.json +176 -0
- package/spec/v1/core-standard-manifest.json +423 -0
- package/spec/v1/deprecations.json +854 -0
- package/spec/v1/deprecations.schema.json +187 -0
- package/spec/v1/event-codemap.json +1089 -0
- package/spec/v1/event-codemap.schema.json +41 -0
- package/spec/v1/extensions.json +1273 -0
- package/spec/v1/gaps.json +14581 -0
- package/spec/v1/gaps.schema.json +55 -0
- package/spec/v1/migrations.json +1822 -0
- package/spec/v1/migrations.schema.json +44 -0
- package/spec/v1/operation-path-manifest.json +462 -0
- package/spec/v1/spec-gaps.json +4823 -0
- package/spec/v2/declaration.json +1862 -0
- package/spec/v2/declaration.schema.json +305 -0
- package/spec/v2/errors.json +837 -0
- package/spec/v2/event-codemap.json +1099 -0
- package/spec/v2/event-codemap.schema.json +114 -0
- package/spec/v2/ext/provider-idempotency/registry.json +6 -0
- package/spec/v2/facets/a2a.schema.json +51 -0
- package/spec/v2/facets/aiProviders.schema.json +56 -0
- package/spec/v2/facets/auth.schema.json +91 -0
- package/spec/v2/facets/heartbeat.schema.json +20 -0
- package/spec/v2/facets/interrupt.schema.json +29 -0
- package/spec/v2/facets/mcp.schema.json +81 -0
- package/spec/v2/facets/replay.schema.json +34 -0
- package/spec/v2/facets/sandbox.schema.json +31 -0
- package/spec/v2/facets/webhooks.schema.json +18 -0
- package/spec/v2/path-manifest.json +279 -0
- package/spec/v2/peer-dependency-aliases.json +165 -0
- package/spec/v2/profiles.json +45 -0
- package/spec/v2/release.json +6 -0
package/api/redocly.yaml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
extends:
|
|
2
|
+
- recommended
|
|
3
|
+
|
|
4
|
+
rules:
|
|
5
|
+
# Discovery endpoints (`/.well-known/openwop`, `/v1/openapi.json`) are unauthenticated
|
|
6
|
+
# and take no input — they have no meaningful 4XX response surface. 5XX is the
|
|
7
|
+
# only honest failure mode and is documented inline.
|
|
8
|
+
operation-4xx-response: off
|
|
9
|
+
|
|
10
|
+
# The rule flags `then: { required: [<name>] }` clauses where <name> is not
|
|
11
|
+
# defined in the `then` clause's OWN `properties` block — but in the standard
|
|
12
|
+
# JSON Schema 2020-12 `if/then` conditional-requirement idiom (used by
|
|
13
|
+
# `capabilities.schema.json` to tighten required-fields when `supported: true`),
|
|
14
|
+
# the property IS defined in the parent's `properties` block. Redocly's rule
|
|
15
|
+
# doesn't walk to parent scope, so it false-positives on every valid use of
|
|
16
|
+
# the idiom. Disabling globally is safe because:
|
|
17
|
+
#
|
|
18
|
+
# - the typo-in-required protection the rule provides is also covered by
|
|
19
|
+
# `scripts/check-required-properties-defined.mjs` (which walks parent
|
|
20
|
+
# scope correctly), wired into `openwop-check.sh` step [4/9] (was cited as [7/9] until RFC 0178 §E.3 corrected it);
|
|
21
|
+
# - our only `then/required` sites are the two in `capabilities.schema.json`,
|
|
22
|
+
# both of which are well-formed.
|
|
23
|
+
no-required-schema-properties-undefined: off
|
|
@@ -0,0 +1,680 @@
|
|
|
1
|
+
openapi: 3.1.0
|
|
2
|
+
info:
|
|
3
|
+
title: OpenWOP conformance seams profile (openwop-conformance-seams-v2)
|
|
4
|
+
version: 2.0.0-rc.0
|
|
5
|
+
description: 'GENERATED by scripts/derive-v2-api.py. RFC 0168 §C: the seams are a versioned conformance profile with their
|
|
6
|
+
own document and path space (/conformance/seams/…), validated against the canonical v2 schemas with no tolerance path,
|
|
7
|
+
forbidden from the capability namespace (a host advertises the profile, never a testSeams flag). This document carries
|
|
8
|
+
the nine operations the v1 canonical document used to carry; the remaining host-sample-test-seams.md paths enter with
|
|
9
|
+
the 2.0.0 suite driver (P3-E).'
|
|
10
|
+
servers:
|
|
11
|
+
- url: https://{host}
|
|
12
|
+
description: openwop-compliant server
|
|
13
|
+
variables:
|
|
14
|
+
host:
|
|
15
|
+
default: api.example.com
|
|
16
|
+
description: Replace with your server's hostname.
|
|
17
|
+
paths:
|
|
18
|
+
/conformance/seams/sample/a2a/tasks/{taskId}:
|
|
19
|
+
get:
|
|
20
|
+
tags:
|
|
21
|
+
- host
|
|
22
|
+
summary: Read the persisted durable A2A task projection (RFC 0100, host-extension).
|
|
23
|
+
description: 'Returns the persisted `A2ATaskState` for `taskId` (== the backing
|
|
24
|
+
|
|
25
|
+
`runId`) per RFC 0100 §2 — a host-extension convenience read of the
|
|
26
|
+
|
|
27
|
+
durable projection that survives caller disconnect. The normative A2A
|
|
28
|
+
|
|
29
|
+
read surface remains the A2A `tasks/get` JSON-RPC method. Hosts that do
|
|
30
|
+
|
|
31
|
+
not advertise `capabilities.a2a.durableTasks` return `501`.
|
|
32
|
+
|
|
33
|
+
'
|
|
34
|
+
operationId: getA2ATaskState
|
|
35
|
+
parameters:
|
|
36
|
+
- name: taskId
|
|
37
|
+
in: path
|
|
38
|
+
required: true
|
|
39
|
+
schema:
|
|
40
|
+
type: string
|
|
41
|
+
minLength: 1
|
|
42
|
+
description: The A2A Task.id (equals the backing OpenWOP runId).
|
|
43
|
+
responses:
|
|
44
|
+
'200':
|
|
45
|
+
description: The persisted durable A2A task projection.
|
|
46
|
+
content:
|
|
47
|
+
application/json:
|
|
48
|
+
schema:
|
|
49
|
+
$ref: ../schemas/v2/a2a-task-state.schema.json
|
|
50
|
+
'401':
|
|
51
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
52
|
+
'403':
|
|
53
|
+
$ref: '#/components/responses/Forbidden'
|
|
54
|
+
'404':
|
|
55
|
+
$ref: '#/components/responses/NotFound'
|
|
56
|
+
'501':
|
|
57
|
+
description: Host does not advertise capabilities.a2a.durableTasks (RFC 0100).
|
|
58
|
+
content:
|
|
59
|
+
application/json:
|
|
60
|
+
schema:
|
|
61
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
62
|
+
/conformance/seams/workspace/files:
|
|
63
|
+
get:
|
|
64
|
+
tags:
|
|
65
|
+
- host
|
|
66
|
+
summary: List workspace file metadata for the caller's tenant·workspace (RFC 0059).
|
|
67
|
+
description: 'Returns file metadata (no bodies) for the caller''s `{tenant,
|
|
68
|
+
|
|
69
|
+
workspace}` per RFC 0059 §C. Optional `?prefix=` filters the flat
|
|
70
|
+
|
|
71
|
+
`path` namespace to entries starting with the given prefix.
|
|
72
|
+
|
|
73
|
+
'
|
|
74
|
+
operationId: listWorkspaceFiles
|
|
75
|
+
parameters:
|
|
76
|
+
- $ref: '#/components/parameters/WorkspacePrefix'
|
|
77
|
+
responses:
|
|
78
|
+
'200':
|
|
79
|
+
description: Workspace file metadata (tenant·workspace-scoped; bodies omitted).
|
|
80
|
+
content:
|
|
81
|
+
application/json:
|
|
82
|
+
schema:
|
|
83
|
+
type: object
|
|
84
|
+
required:
|
|
85
|
+
- files
|
|
86
|
+
properties:
|
|
87
|
+
files:
|
|
88
|
+
type: array
|
|
89
|
+
items:
|
|
90
|
+
$ref: ../schemas/v2/workspace-file.schema.json
|
|
91
|
+
additionalProperties: false
|
|
92
|
+
'401':
|
|
93
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
94
|
+
'403':
|
|
95
|
+
$ref: '#/components/responses/Forbidden'
|
|
96
|
+
'501':
|
|
97
|
+
description: Host does not advertise capabilities.workspace.supported (RFC 0059).
|
|
98
|
+
content:
|
|
99
|
+
application/json:
|
|
100
|
+
schema:
|
|
101
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
102
|
+
/conformance/seams/workspace/files/{path}:
|
|
103
|
+
get:
|
|
104
|
+
tags:
|
|
105
|
+
- host
|
|
106
|
+
summary: Read one workspace file (RFC 0059).
|
|
107
|
+
description: 'Returns the `WorkspaceFile` at `path` for the caller''s `{tenant,
|
|
108
|
+
|
|
109
|
+
workspace}`. When `capabilities.workspace.versioned: true`, an
|
|
110
|
+
|
|
111
|
+
optional `?version=N` returns the historical snapshot at version N.
|
|
112
|
+
|
|
113
|
+
'
|
|
114
|
+
operationId: getWorkspaceFile
|
|
115
|
+
parameters:
|
|
116
|
+
- $ref: '#/components/parameters/WorkspacePath'
|
|
117
|
+
- $ref: '#/components/parameters/WorkspaceVersion'
|
|
118
|
+
responses:
|
|
119
|
+
'200':
|
|
120
|
+
description: The workspace file (current version, or `?version=N` when versioned).
|
|
121
|
+
content:
|
|
122
|
+
application/json:
|
|
123
|
+
schema:
|
|
124
|
+
$ref: ../schemas/v2/workspace-file.schema.json
|
|
125
|
+
'401':
|
|
126
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
127
|
+
'403':
|
|
128
|
+
$ref: '#/components/responses/Forbidden'
|
|
129
|
+
'404':
|
|
130
|
+
$ref: '#/components/responses/NotFound'
|
|
131
|
+
'501':
|
|
132
|
+
description: Host does not advertise capabilities.workspace.supported (RFC 0059).
|
|
133
|
+
content:
|
|
134
|
+
application/json:
|
|
135
|
+
schema:
|
|
136
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
137
|
+
put:
|
|
138
|
+
tags:
|
|
139
|
+
- host
|
|
140
|
+
summary: Atomic create/replace of a workspace file (RFC 0059).
|
|
141
|
+
description: 'Atomically creates or replaces the file at `path` per RFC 0059 §C.
|
|
142
|
+
|
|
143
|
+
MUST honor `If-Match: <etag>` — a stale token returns `409
|
|
144
|
+
|
|
145
|
+
workspace_conflict` (`details.currentVersion` carries the live
|
|
146
|
+
|
|
147
|
+
version). On success the host bumps `version`, recomputes `etag`,
|
|
148
|
+
|
|
149
|
+
and emits a `workspace.updated` event. A `content` exceeding
|
|
150
|
+
|
|
151
|
+
`capabilities.workspace.maxFileBytes` returns `workspace_too_large`.
|
|
152
|
+
|
|
153
|
+
'
|
|
154
|
+
operationId: putWorkspaceFile
|
|
155
|
+
parameters:
|
|
156
|
+
- $ref: '#/components/parameters/WorkspacePath'
|
|
157
|
+
- $ref: '#/components/parameters/IfMatch'
|
|
158
|
+
- $ref: '#/components/parameters/IdempotencyKey'
|
|
159
|
+
requestBody:
|
|
160
|
+
required: true
|
|
161
|
+
content:
|
|
162
|
+
application/json:
|
|
163
|
+
schema:
|
|
164
|
+
$ref: ../schemas/v2/workspace-file-create.schema.json
|
|
165
|
+
responses:
|
|
166
|
+
'200':
|
|
167
|
+
description: File created or replaced. Returns the persisted WorkspaceFile.
|
|
168
|
+
content:
|
|
169
|
+
application/json:
|
|
170
|
+
schema:
|
|
171
|
+
$ref: ../schemas/v2/workspace-file.schema.json
|
|
172
|
+
'400':
|
|
173
|
+
$ref: '#/components/responses/ValidationError'
|
|
174
|
+
'401':
|
|
175
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
176
|
+
'403':
|
|
177
|
+
$ref: '#/components/responses/Forbidden'
|
|
178
|
+
'409':
|
|
179
|
+
description: Stale `If-Match` — the file changed since the supplied etag (`workspace_conflict`).
|
|
180
|
+
content:
|
|
181
|
+
application/json:
|
|
182
|
+
schema:
|
|
183
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
184
|
+
'413':
|
|
185
|
+
description: Content exceeds `capabilities.workspace.maxFileBytes` (`workspace_too_large`).
|
|
186
|
+
content:
|
|
187
|
+
application/json:
|
|
188
|
+
schema:
|
|
189
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
190
|
+
'501':
|
|
191
|
+
description: Host does not advertise capabilities.workspace.supported (RFC 0059).
|
|
192
|
+
content:
|
|
193
|
+
application/json:
|
|
194
|
+
schema:
|
|
195
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
196
|
+
delete:
|
|
197
|
+
tags:
|
|
198
|
+
- host
|
|
199
|
+
summary: Delete a workspace file (RFC 0059).
|
|
200
|
+
description: 'Removes the file at `path` (and, when `versioned: true`, writes a
|
|
201
|
+
|
|
202
|
+
tombstone). Emits a `workspace.updated` event on success.
|
|
203
|
+
|
|
204
|
+
'
|
|
205
|
+
operationId: deleteWorkspaceFile
|
|
206
|
+
parameters:
|
|
207
|
+
- $ref: '#/components/parameters/WorkspacePath'
|
|
208
|
+
- $ref: '#/components/parameters/IdempotencyKey'
|
|
209
|
+
responses:
|
|
210
|
+
'204':
|
|
211
|
+
description: File deleted.
|
|
212
|
+
'401':
|
|
213
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
214
|
+
'403':
|
|
215
|
+
$ref: '#/components/responses/Forbidden'
|
|
216
|
+
'404':
|
|
217
|
+
$ref: '#/components/responses/NotFound'
|
|
218
|
+
'501':
|
|
219
|
+
description: Host does not advertise capabilities.workspace.supported (RFC 0059).
|
|
220
|
+
content:
|
|
221
|
+
application/json:
|
|
222
|
+
schema:
|
|
223
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
224
|
+
/conformance/seams/packs-test/{name}/-/{version}.tgz:
|
|
225
|
+
parameters:
|
|
226
|
+
- $ref: '#/components/parameters/PackName'
|
|
227
|
+
- $ref: '#/components/parameters/PackVersion'
|
|
228
|
+
put:
|
|
229
|
+
tags:
|
|
230
|
+
- packs-test
|
|
231
|
+
summary: Publish a pack tarball to the isolated test catalog.
|
|
232
|
+
description: 'Mirror of `PUT /v1/packs/{name}/-/{version}.tgz` per
|
|
233
|
+
|
|
234
|
+
`spec/v1/node-packs.md` §"PUT /v1/packs/{name}/-/{version}.tgz".
|
|
235
|
+
|
|
236
|
+
Request shape, response shape, status codes, and the 19-code
|
|
237
|
+
|
|
238
|
+
publish error catalog (`invalid_pack_scope`, `invalid_pack_name`,
|
|
239
|
+
|
|
240
|
+
`invalid_version`, `invalid_body`, eight `tarball_*` codes,
|
|
241
|
+
|
|
242
|
+
`invalid_manifest`, `manifest_mismatch` (or the granular
|
|
243
|
+
|
|
244
|
+
`manifest_name_mismatch` / `manifest_version_mismatch` pair),
|
|
245
|
+
|
|
246
|
+
`pack_integrity_failure`, `unsupported_runtime`, `forbidden`,
|
|
247
|
+
|
|
248
|
+
`conflict`/`version_conflict`) MUST be served verbatim. The
|
|
249
|
+
|
|
250
|
+
test catalog MUST be isolated per RFC 0025 §C — a pack PUT''d
|
|
251
|
+
|
|
252
|
+
here MUST NOT appear in `GET /v1/packs/{name}` listings.
|
|
253
|
+
|
|
254
|
+
The mirrored production path is registry-service surface
|
|
255
|
+
|
|
256
|
+
(`registry-operations.md`), not defined in this host document
|
|
257
|
+
|
|
258
|
+
(see the `packs-test` tag scope note).
|
|
259
|
+
|
|
260
|
+
'
|
|
261
|
+
operationId: putTestPackTarball
|
|
262
|
+
parameters:
|
|
263
|
+
- in: header
|
|
264
|
+
name: OpenWOP-Pack-Signing-Method
|
|
265
|
+
required: false
|
|
266
|
+
schema:
|
|
267
|
+
type: string
|
|
268
|
+
enum:
|
|
269
|
+
- sigstore
|
|
270
|
+
- manual
|
|
271
|
+
- none
|
|
272
|
+
- in: header
|
|
273
|
+
name: OpenWOP-Pack-Sha256
|
|
274
|
+
required: false
|
|
275
|
+
schema:
|
|
276
|
+
type: string
|
|
277
|
+
pattern: ^sha256-[A-Za-z0-9+/=]+$
|
|
278
|
+
description: Caller-asserted SHA-256 (server verifies; mismatch surfaces `pack_integrity_failure`).
|
|
279
|
+
requestBody:
|
|
280
|
+
required: true
|
|
281
|
+
description: Gzipped tarball bytes (`application/tar+gzip`, `application/gzip`, `application/x-gzip`, or `application/octet-stream`).
|
|
282
|
+
content:
|
|
283
|
+
application/gzip:
|
|
284
|
+
schema:
|
|
285
|
+
type: string
|
|
286
|
+
format: binary
|
|
287
|
+
application/x-gzip:
|
|
288
|
+
schema:
|
|
289
|
+
type: string
|
|
290
|
+
format: binary
|
|
291
|
+
application/tar+gzip:
|
|
292
|
+
schema:
|
|
293
|
+
type: string
|
|
294
|
+
format: binary
|
|
295
|
+
application/octet-stream:
|
|
296
|
+
schema:
|
|
297
|
+
type: string
|
|
298
|
+
format: binary
|
|
299
|
+
responses:
|
|
300
|
+
'200':
|
|
301
|
+
description: Idempotent re-publish — identical sha256 content already published; existing record returned.
|
|
302
|
+
content:
|
|
303
|
+
application/json:
|
|
304
|
+
schema:
|
|
305
|
+
$ref: '#/components/schemas/TestPackPublishRecord'
|
|
306
|
+
'201':
|
|
307
|
+
description: New version published to the test catalog.
|
|
308
|
+
content:
|
|
309
|
+
application/json:
|
|
310
|
+
schema:
|
|
311
|
+
$ref: '#/components/schemas/TestPackPublishRecord'
|
|
312
|
+
'400':
|
|
313
|
+
description: 'One of the 17 spec-documented 400-class publish error codes:
|
|
314
|
+
|
|
315
|
+
URL/scope (`invalid_pack_scope`, `invalid_pack_name`, `invalid_version`),
|
|
316
|
+
|
|
317
|
+
body shape (`invalid_body`),
|
|
318
|
+
|
|
319
|
+
tarball extraction (`tarball_gunzip_failed`, `tarball_too_large`,
|
|
320
|
+
|
|
321
|
+
`tarball_manifest_missing`, `tarball_manifest_too_large`,
|
|
322
|
+
|
|
323
|
+
`tarball_manifest_not_json`, `tarball_entry_missing`,
|
|
324
|
+
|
|
325
|
+
`tarball_entry_too_large`, `tarball_path_traversal`,
|
|
326
|
+
|
|
327
|
+
`tarball_tar_parse_failed`),
|
|
328
|
+
|
|
329
|
+
manifest contents (`invalid_manifest`, `manifest_mismatch` or
|
|
330
|
+
|
|
331
|
+
the granular `manifest_name_mismatch` / `manifest_version_mismatch` pair,
|
|
332
|
+
|
|
333
|
+
`pack_integrity_failure`, `unsupported_runtime`).
|
|
334
|
+
|
|
335
|
+
'
|
|
336
|
+
content:
|
|
337
|
+
application/json:
|
|
338
|
+
schema:
|
|
339
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
340
|
+
'401':
|
|
341
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
342
|
+
'403':
|
|
343
|
+
description: '`forbidden` — caller lacks `packs:publish` scope or the namespace claim.'
|
|
344
|
+
content:
|
|
345
|
+
application/json:
|
|
346
|
+
schema:
|
|
347
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
348
|
+
'404':
|
|
349
|
+
description: 'Host does not advertise `capabilities.packs.testMode.supported: true`, or the test-mode env-gate is
|
|
350
|
+
unset.'
|
|
351
|
+
content:
|
|
352
|
+
application/json:
|
|
353
|
+
schema:
|
|
354
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
355
|
+
'409':
|
|
356
|
+
description: '`conflict` (or `version_conflict`) — `(name, version)` already published with different content.'
|
|
357
|
+
content:
|
|
358
|
+
application/json:
|
|
359
|
+
schema:
|
|
360
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
361
|
+
get:
|
|
362
|
+
tags:
|
|
363
|
+
- packs-test
|
|
364
|
+
summary: Fetch a published test-catalog tarball.
|
|
365
|
+
description: 'Mirror of `GET /v1/packs/{name}/-/{version}.tgz`. Returns the gzipped tarball bytes with `Content-Type:
|
|
366
|
+
application/tar+gzip` and an `ETag: "sha256-..."` matching the manifest''s `tarballSha256`. The mirrored production
|
|
367
|
+
path is registry-service surface (`registry-operations.md`), not defined in this host document (see the `packs-test`
|
|
368
|
+
tag scope note).'
|
|
369
|
+
operationId: getTestPackTarball
|
|
370
|
+
responses:
|
|
371
|
+
'200':
|
|
372
|
+
description: Tarball bytes.
|
|
373
|
+
content:
|
|
374
|
+
application/tar+gzip:
|
|
375
|
+
schema:
|
|
376
|
+
type: string
|
|
377
|
+
format: binary
|
|
378
|
+
'400':
|
|
379
|
+
description: '`invalid_pack_name` or `invalid_version` — URL params malformed.'
|
|
380
|
+
content:
|
|
381
|
+
application/json:
|
|
382
|
+
schema:
|
|
383
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
384
|
+
'401':
|
|
385
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
386
|
+
'403':
|
|
387
|
+
description: '`forbidden` — caller lacks `packs:read` scope.'
|
|
388
|
+
content:
|
|
389
|
+
application/json:
|
|
390
|
+
schema:
|
|
391
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
392
|
+
'404':
|
|
393
|
+
description: 'Pack version not found in the test catalog (or host does not advertise `capabilities.packs.testMode.supported:
|
|
394
|
+
true`).'
|
|
395
|
+
content:
|
|
396
|
+
application/json:
|
|
397
|
+
schema:
|
|
398
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
399
|
+
/conformance/seams/packs-test/{name}/-/{version}:
|
|
400
|
+
parameters:
|
|
401
|
+
- $ref: '#/components/parameters/PackName'
|
|
402
|
+
- $ref: '#/components/parameters/PackVersion'
|
|
403
|
+
delete:
|
|
404
|
+
tags:
|
|
405
|
+
- packs-test
|
|
406
|
+
summary: Unpublish a test-catalog version (mirrors unpublish-window semantics).
|
|
407
|
+
description: 'Mirror of `DELETE /v1/packs/{name}/-/{version}` per
|
|
408
|
+
|
|
409
|
+
`spec/v1/node-packs.md`. Returns `400 unpublish_window_expired`
|
|
410
|
+
|
|
411
|
+
for versions older than the registry''s unpublish window
|
|
412
|
+
|
|
413
|
+
(default 72h). Test-mode implementations MAY shorten the
|
|
414
|
+
|
|
415
|
+
window for tractable conformance fixtures but MUST surface
|
|
416
|
+
|
|
417
|
+
the same error code. The mirrored production path is
|
|
418
|
+
|
|
419
|
+
registry-service surface (`registry-operations.md`), not
|
|
420
|
+
|
|
421
|
+
defined in this host document (see the `packs-test` tag
|
|
422
|
+
|
|
423
|
+
scope note).
|
|
424
|
+
|
|
425
|
+
'
|
|
426
|
+
operationId: deleteTestPackVersion
|
|
427
|
+
responses:
|
|
428
|
+
'204':
|
|
429
|
+
description: Version successfully unpublished from the test catalog.
|
|
430
|
+
'400':
|
|
431
|
+
description: '`unpublish_window_expired`, `invalid_pack_name`, or `invalid_version`.'
|
|
432
|
+
content:
|
|
433
|
+
application/json:
|
|
434
|
+
schema:
|
|
435
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
436
|
+
'401':
|
|
437
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
438
|
+
'403':
|
|
439
|
+
description: '`forbidden` — caller lacks `packs:publish` scope.'
|
|
440
|
+
content:
|
|
441
|
+
application/json:
|
|
442
|
+
schema:
|
|
443
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
444
|
+
'404':
|
|
445
|
+
description: Version doesn't exist in the test catalog, or host does not advertise the test-mode capability.
|
|
446
|
+
content:
|
|
447
|
+
application/json:
|
|
448
|
+
schema:
|
|
449
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
450
|
+
/conformance/seams/packs-test/{name}/-/{version}.sig:
|
|
451
|
+
parameters:
|
|
452
|
+
- $ref: '#/components/parameters/PackName'
|
|
453
|
+
- $ref: '#/components/parameters/PackVersion'
|
|
454
|
+
get:
|
|
455
|
+
tags:
|
|
456
|
+
- packs-test
|
|
457
|
+
summary: Fetch the detached Ed25519 signature for a test-catalog pack.
|
|
458
|
+
description: 'Mirror of `GET /v1/packs/{name}/-/{version}.sig`. Returns the
|
|
459
|
+
|
|
460
|
+
signature blob over `pack.json` for this version. MAY 302-redirect
|
|
461
|
+
|
|
462
|
+
to a storage-backend signed URL. The mirrored production path is
|
|
463
|
+
|
|
464
|
+
registry-service surface (`registry-operations.md`), not defined
|
|
465
|
+
|
|
466
|
+
in this host document (see the `packs-test` tag scope note).
|
|
467
|
+
|
|
468
|
+
'
|
|
469
|
+
operationId: getTestPackSignature
|
|
470
|
+
responses:
|
|
471
|
+
'200':
|
|
472
|
+
description: Signature blob.
|
|
473
|
+
content:
|
|
474
|
+
application/octet-stream:
|
|
475
|
+
schema:
|
|
476
|
+
type: string
|
|
477
|
+
format: binary
|
|
478
|
+
'302':
|
|
479
|
+
description: Redirect to a storage-backend signed URL (clients SHOULD follow).
|
|
480
|
+
headers:
|
|
481
|
+
Location:
|
|
482
|
+
schema:
|
|
483
|
+
type: string
|
|
484
|
+
format: uri
|
|
485
|
+
'400':
|
|
486
|
+
description: '`invalid_pack_name` or `invalid_version` — URL params malformed.'
|
|
487
|
+
content:
|
|
488
|
+
application/json:
|
|
489
|
+
schema:
|
|
490
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
491
|
+
'401':
|
|
492
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
493
|
+
'403':
|
|
494
|
+
description: '`forbidden` — caller lacks `packs:read` scope.'
|
|
495
|
+
content:
|
|
496
|
+
application/json:
|
|
497
|
+
schema:
|
|
498
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
499
|
+
'404':
|
|
500
|
+
description: '`signature_not_available` — version is missing, yanked,
|
|
501
|
+
|
|
502
|
+
unsigned at publish time, OR the registry''s storage backend
|
|
503
|
+
|
|
504
|
+
is unwired. The four cases are intentionally
|
|
505
|
+
|
|
506
|
+
indistinguishable per spec/v1/node-packs.md §"GET /v1/packs/{name}/-/{version}.sig".
|
|
507
|
+
|
|
508
|
+
Also returned when the host does not advertise
|
|
509
|
+
|
|
510
|
+
`capabilities.packs.testMode.supported: true`.
|
|
511
|
+
|
|
512
|
+
'
|
|
513
|
+
content:
|
|
514
|
+
application/json:
|
|
515
|
+
schema:
|
|
516
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
517
|
+
components:
|
|
518
|
+
securitySchemes:
|
|
519
|
+
ApiKeyAuth:
|
|
520
|
+
type: http
|
|
521
|
+
scheme: bearer
|
|
522
|
+
bearerFormat: API key
|
|
523
|
+
description: 'openwop API key. Format implementation-defined; reference impl uses `hk_`/`hk_test_` prefixes.
|
|
524
|
+
|
|
525
|
+
Each key carries one or more scopes from the canonical vocabulary
|
|
526
|
+
|
|
527
|
+
(`manifest:read`, `runs:create`, `runs:read`, `runs:cancel`,
|
|
528
|
+
|
|
529
|
+
`artifacts:read`, `webhooks:manage`, `approvals:respond`, `audit:read`).
|
|
530
|
+
|
|
531
|
+
See `auth.md`.
|
|
532
|
+
|
|
533
|
+
'
|
|
534
|
+
parameters:
|
|
535
|
+
IdempotencyKey:
|
|
536
|
+
in: header
|
|
537
|
+
name: Idempotency-Key
|
|
538
|
+
required: false
|
|
539
|
+
schema:
|
|
540
|
+
type: string
|
|
541
|
+
maxLength: 255
|
|
542
|
+
description: 'Per-mutation idempotency token (see `idempotency.md` Layer 1).
|
|
543
|
+
|
|
544
|
+
Server caches `(tenantId, endpoint, key)` → response for ≥24h.
|
|
545
|
+
|
|
546
|
+
Duplicate requests return the cached response with header
|
|
547
|
+
|
|
548
|
+
`OpenWOP-Idempotent-Replay: true`.
|
|
549
|
+
|
|
550
|
+
'
|
|
551
|
+
WorkspacePath:
|
|
552
|
+
in: path
|
|
553
|
+
name: path
|
|
554
|
+
required: true
|
|
555
|
+
schema:
|
|
556
|
+
type: string
|
|
557
|
+
pattern: ^[A-Za-z0-9][A-Za-z0-9._/-]{0,255}$
|
|
558
|
+
description: 'RFC 0059 workspace-relative file path. Flat namespace with
|
|
559
|
+
|
|
560
|
+
`/`-in-names; no `..`, no leading `/`. Matches
|
|
561
|
+
|
|
562
|
+
`workspace-file.schema.json#path`.
|
|
563
|
+
|
|
564
|
+
'
|
|
565
|
+
WorkspacePrefix:
|
|
566
|
+
in: query
|
|
567
|
+
name: prefix
|
|
568
|
+
required: false
|
|
569
|
+
schema:
|
|
570
|
+
type: string
|
|
571
|
+
maxLength: 256
|
|
572
|
+
description: RFC 0059. Optional prefix filter over the flat `path` namespace for `listWorkspaceFiles`.
|
|
573
|
+
WorkspaceVersion:
|
|
574
|
+
in: query
|
|
575
|
+
name: version
|
|
576
|
+
required: false
|
|
577
|
+
schema:
|
|
578
|
+
type: integer
|
|
579
|
+
minimum: 1
|
|
580
|
+
description: 'RFC 0059. When `capabilities.workspace.versioned: true`, request the
|
|
581
|
+
|
|
582
|
+
historical snapshot at this version. Absent = latest.
|
|
583
|
+
|
|
584
|
+
'
|
|
585
|
+
IfMatch:
|
|
586
|
+
in: header
|
|
587
|
+
name: If-Match
|
|
588
|
+
required: false
|
|
589
|
+
schema:
|
|
590
|
+
type: string
|
|
591
|
+
maxLength: 255
|
|
592
|
+
description: 'RFC 0059 optimistic-concurrency token — the file''s current `etag`.
|
|
593
|
+
|
|
594
|
+
A `PUT` carrying a stale `If-Match` returns `409 workspace_conflict`.
|
|
595
|
+
|
|
596
|
+
'
|
|
597
|
+
PackName:
|
|
598
|
+
in: path
|
|
599
|
+
name: name
|
|
600
|
+
required: true
|
|
601
|
+
schema:
|
|
602
|
+
type: string
|
|
603
|
+
minLength: 3
|
|
604
|
+
maxLength: 214
|
|
605
|
+
description: Reverse-DNS pack name per `spec/v1/node-packs.md` §Naming (e.g. `vendor.acme.salesforce-tools`).
|
|
606
|
+
PackVersion:
|
|
607
|
+
in: path
|
|
608
|
+
name: version
|
|
609
|
+
required: true
|
|
610
|
+
schema:
|
|
611
|
+
type: string
|
|
612
|
+
pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[\w.-]+)?(?:\+[\w.-]+)?$
|
|
613
|
+
description: SemVer 2.0.0 version of the pack.
|
|
614
|
+
responses:
|
|
615
|
+
Unauthenticated:
|
|
616
|
+
description: Missing or invalid credential.
|
|
617
|
+
content:
|
|
618
|
+
application/json:
|
|
619
|
+
schema:
|
|
620
|
+
$ref: '#/components/schemas/Error'
|
|
621
|
+
Forbidden:
|
|
622
|
+
description: Credential valid but lacks required scope or fails resource binding.
|
|
623
|
+
content:
|
|
624
|
+
application/json:
|
|
625
|
+
schema:
|
|
626
|
+
$ref: '#/components/schemas/Error'
|
|
627
|
+
NotFound:
|
|
628
|
+
description: Resource doesn't exist or caller can't see it (do not leak existence).
|
|
629
|
+
content:
|
|
630
|
+
application/json:
|
|
631
|
+
schema:
|
|
632
|
+
$ref: '#/components/schemas/Error'
|
|
633
|
+
ValidationError:
|
|
634
|
+
description: Request body or parameters malformed.
|
|
635
|
+
content:
|
|
636
|
+
application/json:
|
|
637
|
+
schema:
|
|
638
|
+
$ref: '#/components/schemas/Error'
|
|
639
|
+
schemas:
|
|
640
|
+
Error:
|
|
641
|
+
$ref: ../schemas/v2/error-envelope.schema.json
|
|
642
|
+
TestPackPublishRecord:
|
|
643
|
+
description: 'Response body for a successful publish against the test-mode
|
|
644
|
+
|
|
645
|
+
registry namespace (RFC 0025). Mirror of the production publish
|
|
646
|
+
|
|
647
|
+
record returned by `PUT /v1/packs/{name}/-/{version}.tgz`.
|
|
648
|
+
|
|
649
|
+
'
|
|
650
|
+
type: object
|
|
651
|
+
required:
|
|
652
|
+
- name
|
|
653
|
+
- version
|
|
654
|
+
- tarballSha256
|
|
655
|
+
- publishedAt
|
|
656
|
+
properties:
|
|
657
|
+
name:
|
|
658
|
+
type: string
|
|
659
|
+
description: Reverse-DNS pack name as PUT'd.
|
|
660
|
+
version:
|
|
661
|
+
type: string
|
|
662
|
+
description: SemVer 2.0.0 version as PUT'd.
|
|
663
|
+
tarballSha256:
|
|
664
|
+
type: string
|
|
665
|
+
pattern: ^sha256-[A-Za-z0-9+/=]+$
|
|
666
|
+
description: Server-computed SHA-256 over the uploaded tarball bytes.
|
|
667
|
+
publishedAt:
|
|
668
|
+
type: string
|
|
669
|
+
format: date-time
|
|
670
|
+
signed:
|
|
671
|
+
type: boolean
|
|
672
|
+
description: Whether a sibling `.sig` signature blob was persisted.
|
|
673
|
+
signingMethod:
|
|
674
|
+
type: string
|
|
675
|
+
enum:
|
|
676
|
+
- sigstore
|
|
677
|
+
- manual
|
|
678
|
+
- none
|
|
679
|
+
security:
|
|
680
|
+
- ApiKeyAuth: []
|