@openwop/spec-artifacts 2.35.1 → 2.36.1
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 +103 -89
- package/api/openapi.yaml +325 -4
- package/api/seams-v2.yaml +342 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +564 -8
- package/package.json +1 -1
- package/schemas/a2a-task-state.schema.json +3 -3
- package/schemas/artifact-type-pack-manifest.schema.json +3 -3
- package/schemas/capabilities.schema.json +34 -1
- package/schemas/connection-pack-manifest.schema.json +14 -0
- package/schemas/debug-bundle.schema.json +20 -0
- package/schemas/dispatch-config.schema.json +1 -1
- package/schemas/localized-content-language-settings.schema.json +3 -3
- package/schemas/localized-content-page.schema.json +2 -2
- package/schemas/localized-content-section.schema.json +3 -3
- package/schemas/run-event-payloads.schema.json +4 -2
- package/schemas/suspend-request.schema.json +61 -4
- package/schemas/v2/a2a-task-state.schema.json +10 -9
- package/schemas/v2/agent-deployment-transition.schema.json +4 -4
- package/schemas/v2/agent-deployment.schema.json +7 -7
- package/schemas/v2/agent-eval-suite.schema.json +10 -10
- package/schemas/v2/agent-inventory-response.schema.json +8 -2
- package/schemas/v2/artifact-type-pack-manifest.schema.json +3 -3
- package/schemas/v2/artifact.schema.json +84 -0
- package/schemas/v2/capabilities.schema.json +82 -8
- package/schemas/v2/certification-bundle.schema.json +1 -1
- package/schemas/v2/channel-presence-payload.schema.json +3 -3
- package/schemas/v2/connection-pack-manifest.schema.json +14 -0
- package/schemas/v2/conversation-event.schema.json +9 -2
- package/schemas/v2/conversation-turn.schema.json +19 -12
- package/schemas/v2/dispatch-config.schema.json +1 -1
- package/schemas/v2/envelopes/ui.a2ui-surface.schema.json +920 -22
- package/schemas/v2/error-envelope.schema.json +11 -1
- package/schemas/v2/eval-summary.schema.json +1 -2
- package/schemas/v2/goal.schema.json +4 -4
- package/schemas/v2/localized-content-language-settings.schema.json +3 -3
- package/schemas/v2/localized-content-page.schema.json +2 -2
- package/schemas/v2/localized-content-section.schema.json +3 -3
- package/schemas/v2/node-pack-manifest.schema.json +105 -0
- package/schemas/v2/part.schema.json +81 -0
- package/schemas/v2/proposal.schema.json +6 -6
- package/schemas/v2/run-event-payloads.schema.json +5 -3
- package/schemas/v2/self-hosted-runner-dispatch-frame.schema.json +2 -2
- package/schemas/v2/self-hosted-runner-result-frame.schema.json +1 -1
- package/schemas/v2/suspend-request.schema.json +251 -6
- package/schemas/v2/tool-descriptor.schema.json +246 -2
- package/schemas/v2/trigger-event.schema.json +1 -2
- package/schemas/v2/trigger-subscription.schema.json +1 -2
- package/schemas/v2/webhook-verification.schema.json +22 -0
- package/schemas/v2/workflow-definition.schema.json +25 -25
- package/spec/v1/alias-detectors.json +13 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/deprecations.json +45 -1
- package/spec/v1/deprecations.schema.json +119 -4
- package/spec/v1/gaps.json +1925 -4
- package/spec/v2/README.md +5 -2
- package/spec/v2/core/capabilities.md +13 -26
- package/spec/v2/core/conformance.md +5 -8
- package/spec/v2/core/connection-packs.md +1 -1
- package/spec/v2/core/conversation.md +1 -1
- package/spec/v2/core/errors.md +8 -3
- package/spec/v2/core/events.md +8 -20
- package/spec/v2/core/form-content-packs.md +2 -2
- package/spec/v2/core/headers.md +5 -4
- package/spec/v2/core/host-services.md +6 -2
- package/spec/v2/core/idempotency.md +1 -1
- package/spec/v2/core/identity.md +23 -12
- package/spec/v2/core/interop.md +34 -4
- package/spec/v2/core/interrupt.md +6 -3
- package/spec/v2/core/node-pack-runtimes.md +20 -0
- package/spec/v2/core/oauth.md +32 -0
- package/spec/v2/core/overview.md +19 -6
- package/spec/v2/core/packs.md +4 -6
- package/spec/v2/core/persistence.md +20 -55
- package/spec/v2/core/replay.md +5 -11
- package/spec/v2/core/runs.md +9 -8
- package/spec/v2/core/security-defaults.md +18 -20
- package/spec/v2/core/tool-catalog.md +22 -0
- package/spec/v2/core/versioning.md +10 -28
- package/spec/v2/core/webhooks.md +16 -4
- package/spec/v2/core/workflow-chain-packs.md +1 -1
- package/spec/v2/corrections.json +32 -0
- package/spec/v2/corrections.schema.json +49 -0
- package/spec/v2/declaration.json +18 -13
- package/spec/v2/declaration.schema.json +3 -1
- package/spec/v2/errors.json +46 -1
- package/spec/v2/ext/a2uiSurface/README.md +131 -17
- package/spec/v2/ext/dataIntegration/README.md +5 -0
- package/spec/v2/facets/a2a.schema.json +4 -0
- package/spec/v2/facets/auth.schema.json +24 -0
- package/spec/v2/facets/mcp.schema.json +4 -0
- package/spec/v2/facets/oauth.schema.json +70 -0
- package/spec/v2/facets/webhooks.schema.json +23 -2
- package/spec/v2/id-field-bindings.json +2 -0
- package/spec/v2/interop-map.json +639 -0
- package/spec/v2/interop-map.schema.json +458 -0
- package/spec/v2/migrations.json +7 -0
- package/spec/v2/migrations.schema.json +58 -0
- package/spec/v2/path-manifest.json +6 -1
- package/spec/v2/release.json +3 -3
- package/spec/v2/surface-baseline.json +7981 -0
package/api/openapi.yaml
CHANGED
|
@@ -170,6 +170,10 @@ paths:
|
|
|
170
170
|
tags: [workflows]
|
|
171
171
|
summary: Read a workflow definition.
|
|
172
172
|
operationId: getWorkflow
|
|
173
|
+
security:
|
|
174
|
+
- ApiKeyAuth: ['manifest:read']
|
|
175
|
+
- OAuth2: ['manifest:read']
|
|
176
|
+
- OpenIdConnect: ['manifest:read']
|
|
173
177
|
parameters:
|
|
174
178
|
- $ref: '#/components/parameters/WorkflowId'
|
|
175
179
|
responses:
|
|
@@ -189,6 +193,10 @@ paths:
|
|
|
189
193
|
tags: [runs]
|
|
190
194
|
summary: Create a new run.
|
|
191
195
|
operationId: createRun
|
|
196
|
+
security:
|
|
197
|
+
- ApiKeyAuth: ['runs:create']
|
|
198
|
+
- OAuth2: ['runs:create']
|
|
199
|
+
- OpenIdConnect: ['runs:create']
|
|
192
200
|
parameters:
|
|
193
201
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
194
202
|
- in: header
|
|
@@ -315,6 +323,10 @@ paths:
|
|
|
315
323
|
tags: [runs]
|
|
316
324
|
summary: Read run state (cached projection).
|
|
317
325
|
operationId: getRun
|
|
326
|
+
security:
|
|
327
|
+
- ApiKeyAuth: ['runs:read']
|
|
328
|
+
- OAuth2: ['runs:read']
|
|
329
|
+
- OpenIdConnect: ['runs:read']
|
|
318
330
|
parameters:
|
|
319
331
|
- $ref: '#/components/parameters/RunId'
|
|
320
332
|
- in: header
|
|
@@ -357,6 +369,10 @@ paths:
|
|
|
357
369
|
tags: [runs]
|
|
358
370
|
summary: SSE stream of run events.
|
|
359
371
|
operationId: streamRunEvents
|
|
372
|
+
security:
|
|
373
|
+
- ApiKeyAuth: ['runs:read']
|
|
374
|
+
- OAuth2: ['runs:read']
|
|
375
|
+
- OpenIdConnect: ['runs:read']
|
|
360
376
|
parameters:
|
|
361
377
|
- $ref: '#/components/parameters/RunId'
|
|
362
378
|
- in: query
|
|
@@ -412,6 +428,10 @@ paths:
|
|
|
412
428
|
tags: [runs]
|
|
413
429
|
summary: Long-poll fallback for non-SSE clients.
|
|
414
430
|
operationId: pollRunEvents
|
|
431
|
+
security:
|
|
432
|
+
- ApiKeyAuth: ['runs:read']
|
|
433
|
+
- OAuth2: ['runs:read']
|
|
434
|
+
- OpenIdConnect: ['runs:read']
|
|
415
435
|
parameters:
|
|
416
436
|
- $ref: '#/components/parameters/RunId'
|
|
417
437
|
- in: query
|
|
@@ -444,6 +464,10 @@ paths:
|
|
|
444
464
|
tags: [runs]
|
|
445
465
|
summary: Cancel an in-flight run.
|
|
446
466
|
operationId: cancelRun
|
|
467
|
+
security:
|
|
468
|
+
- ApiKeyAuth: ['runs:cancel']
|
|
469
|
+
- OAuth2: ['runs:cancel']
|
|
470
|
+
- OpenIdConnect: ['runs:cancel']
|
|
447
471
|
parameters:
|
|
448
472
|
- $ref: '#/components/parameters/RunId'
|
|
449
473
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -478,6 +502,10 @@ paths:
|
|
|
478
502
|
tags: [runs]
|
|
479
503
|
summary: Record a non-blocking quality annotation on a run (RFC 0056).
|
|
480
504
|
operationId: createAnnotation
|
|
505
|
+
security:
|
|
506
|
+
- ApiKeyAuth: ['runs:annotate']
|
|
507
|
+
- OAuth2: ['runs:annotate']
|
|
508
|
+
- OpenIdConnect: ['runs:annotate']
|
|
481
509
|
parameters:
|
|
482
510
|
- $ref: '#/components/parameters/RunId'
|
|
483
511
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -508,6 +536,10 @@ paths:
|
|
|
508
536
|
tags: [runs]
|
|
509
537
|
summary: List the annotations recorded on a run (RFC 0056).
|
|
510
538
|
operationId: listAnnotations
|
|
539
|
+
security:
|
|
540
|
+
- ApiKeyAuth: ['runs:read']
|
|
541
|
+
- OAuth2: ['runs:read']
|
|
542
|
+
- OpenIdConnect: ['runs:read']
|
|
511
543
|
parameters:
|
|
512
544
|
- $ref: '#/components/parameters/RunId'
|
|
513
545
|
responses:
|
|
@@ -553,6 +585,10 @@ paths:
|
|
|
553
585
|
TriggerSubscription plus a source-specific `binding`; the binding
|
|
554
586
|
secret/URL is returned ONCE and is not re-fetchable in cleartext.
|
|
555
587
|
operationId: createTriggerSubscription
|
|
588
|
+
security:
|
|
589
|
+
- ApiKeyAuth: ['webhooks:manage']
|
|
590
|
+
- OAuth2: ['webhooks:manage']
|
|
591
|
+
- OpenIdConnect: ['webhooks:manage']
|
|
556
592
|
parameters:
|
|
557
593
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
558
594
|
requestBody:
|
|
@@ -662,6 +698,10 @@ paths:
|
|
|
662
698
|
Tenant-scoped admin listing of pages (draft + published). Requires a
|
|
663
699
|
principal with `content.read` scope.
|
|
664
700
|
operationId: listContentPages
|
|
701
|
+
security:
|
|
702
|
+
- ApiKeyAuth: ['content:read']
|
|
703
|
+
- OAuth2: ['content:read']
|
|
704
|
+
- OpenIdConnect: ['content:read']
|
|
665
705
|
responses:
|
|
666
706
|
'200':
|
|
667
707
|
description: The caller-tenant's pages.
|
|
@@ -684,6 +724,10 @@ paths:
|
|
|
684
724
|
summary: Create a content page (RFC 0103 §D, admin).
|
|
685
725
|
description: Tenant-scoped page creation. Requires `content.write` scope.
|
|
686
726
|
operationId: createContentPage
|
|
727
|
+
security:
|
|
728
|
+
- ApiKeyAuth: ['content:write']
|
|
729
|
+
- OAuth2: ['content:write']
|
|
730
|
+
- OpenIdConnect: ['content:write']
|
|
687
731
|
requestBody:
|
|
688
732
|
required: true
|
|
689
733
|
content:
|
|
@@ -712,9 +756,13 @@ paths:
|
|
|
712
756
|
summary: Upsert a section's base or per-locale fields (RFC 0103 §D, admin).
|
|
713
757
|
description: |
|
|
714
758
|
Locale-targeted write: `locale == content.baseLocale` upserts the
|
|
715
|
-
section's base `data`; any other (BCP
|
|
759
|
+
section's base `data`; any other (case-canonical BCP 47 subset, RFC 0206) locale upserts
|
|
716
760
|
`localizations[locale]`. Tenant-scoped; requires `content.write`.
|
|
717
761
|
operationId: putContentSection
|
|
762
|
+
security:
|
|
763
|
+
- ApiKeyAuth: ['content:write']
|
|
764
|
+
- OAuth2: ['content:write']
|
|
765
|
+
- OpenIdConnect: ['content:write']
|
|
718
766
|
parameters:
|
|
719
767
|
- name: pageId
|
|
720
768
|
in: path
|
|
@@ -735,7 +783,7 @@ paths:
|
|
|
735
783
|
properties:
|
|
736
784
|
locale:
|
|
737
785
|
type: string
|
|
738
|
-
pattern: '^[a-z]{2}(-[A-Z]{2})?$'
|
|
786
|
+
pattern: '^[a-z]{2,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$'
|
|
739
787
|
description: Target locale; baseLocale upserts `data`, else `localizations[locale]`.
|
|
740
788
|
data:
|
|
741
789
|
type: object
|
|
@@ -764,6 +812,10 @@ paths:
|
|
|
764
812
|
summary: Read the tenant's content language settings (RFC 0103 §B, admin).
|
|
765
813
|
description: Tenant-scoped read of `{ baseLocale, supportedLocales, autoTranslateOnPublish }`. Requires `content.read`.
|
|
766
814
|
operationId: getContentSettings
|
|
815
|
+
security:
|
|
816
|
+
- ApiKeyAuth: ['content:read']
|
|
817
|
+
- OAuth2: ['content:read']
|
|
818
|
+
- OpenIdConnect: ['content:read']
|
|
767
819
|
responses:
|
|
768
820
|
'200':
|
|
769
821
|
description: The tenant's language settings.
|
|
@@ -786,6 +838,10 @@ paths:
|
|
|
786
838
|
Tenant-scoped settings update. The invariant `baseLocale ∉
|
|
787
839
|
supportedLocales` MUST hold (else `400`). Requires `content.write`.
|
|
788
840
|
operationId: putContentSettings
|
|
841
|
+
security:
|
|
842
|
+
- ApiKeyAuth: ['content:write']
|
|
843
|
+
- OAuth2: ['content:write']
|
|
844
|
+
- OpenIdConnect: ['content:write']
|
|
789
845
|
requestBody:
|
|
790
846
|
required: true
|
|
791
847
|
content:
|
|
@@ -824,6 +880,10 @@ paths:
|
|
|
824
880
|
read surface remains the A2A `tasks/get` JSON-RPC method. Hosts that do
|
|
825
881
|
not advertise `capabilities.a2a.durableTasks` return `501`.
|
|
826
882
|
operationId: getA2ATaskState
|
|
883
|
+
security:
|
|
884
|
+
- ApiKeyAuth: ['runs:read']
|
|
885
|
+
- OAuth2: ['runs:read']
|
|
886
|
+
- OpenIdConnect: ['runs:read']
|
|
827
887
|
parameters:
|
|
828
888
|
- name: taskId
|
|
829
889
|
in: path
|
|
@@ -862,6 +922,10 @@ paths:
|
|
|
862
922
|
workspace}` per RFC 0059 §C. Optional `?prefix=` filters the flat
|
|
863
923
|
`path` namespace to entries starting with the given prefix.
|
|
864
924
|
operationId: listWorkspaceFiles
|
|
925
|
+
security:
|
|
926
|
+
- ApiKeyAuth: ['workspace:read']
|
|
927
|
+
- OAuth2: ['workspace:read']
|
|
928
|
+
- OpenIdConnect: ['workspace:read']
|
|
865
929
|
parameters:
|
|
866
930
|
- $ref: '#/components/parameters/WorkspacePrefix'
|
|
867
931
|
responses:
|
|
@@ -896,6 +960,10 @@ paths:
|
|
|
896
960
|
workspace}`. When `capabilities.workspace.versioned: true`, an
|
|
897
961
|
optional `?version=N` returns the historical snapshot at version N.
|
|
898
962
|
operationId: getWorkspaceFile
|
|
963
|
+
security:
|
|
964
|
+
- ApiKeyAuth: ['workspace:read']
|
|
965
|
+
- OAuth2: ['workspace:read']
|
|
966
|
+
- OpenIdConnect: ['workspace:read']
|
|
899
967
|
parameters:
|
|
900
968
|
- $ref: '#/components/parameters/WorkspacePath'
|
|
901
969
|
- $ref: '#/components/parameters/WorkspaceVersion'
|
|
@@ -926,6 +994,10 @@ paths:
|
|
|
926
994
|
and emits a `workspace.updated` event. A `content` exceeding
|
|
927
995
|
`capabilities.workspace.maxFileBytes` returns `workspace_too_large`.
|
|
928
996
|
operationId: putWorkspaceFile
|
|
997
|
+
security:
|
|
998
|
+
- ApiKeyAuth: ['workspace:write']
|
|
999
|
+
- OAuth2: ['workspace:write']
|
|
1000
|
+
- OpenIdConnect: ['workspace:write']
|
|
929
1001
|
parameters:
|
|
930
1002
|
- $ref: '#/components/parameters/WorkspacePath'
|
|
931
1003
|
- $ref: '#/components/parameters/IfMatch'
|
|
@@ -971,6 +1043,10 @@ paths:
|
|
|
971
1043
|
Removes the file at `path` (and, when `versioned: true`, writes a
|
|
972
1044
|
tombstone). Emits a `workspace.updated` event on success.
|
|
973
1045
|
operationId: deleteWorkspaceFile
|
|
1046
|
+
security:
|
|
1047
|
+
- ApiKeyAuth: ['workspace:write']
|
|
1048
|
+
- OAuth2: ['workspace:write']
|
|
1049
|
+
- OpenIdConnect: ['workspace:write']
|
|
974
1050
|
parameters:
|
|
975
1051
|
- $ref: '#/components/parameters/WorkspacePath'
|
|
976
1052
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -1000,6 +1076,10 @@ paths:
|
|
|
1000
1076
|
Hosts enforce a host-defined cap on the array length (RECOMMENDED
|
|
1001
1077
|
100); over-cap requests return `400 validation_error`.
|
|
1002
1078
|
operationId: bulkCancelRuns
|
|
1079
|
+
security:
|
|
1080
|
+
- ApiKeyAuth: ['runs:cancel']
|
|
1081
|
+
- OAuth2: ['runs:cancel']
|
|
1082
|
+
- OpenIdConnect: ['runs:cancel']
|
|
1003
1083
|
parameters:
|
|
1004
1084
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
1005
1085
|
requestBody:
|
|
@@ -1048,6 +1128,10 @@ paths:
|
|
|
1048
1128
|
tags: [runs]
|
|
1049
1129
|
summary: Fork the run for replay or branch (see `replay.md`).
|
|
1050
1130
|
operationId: forkRun
|
|
1131
|
+
security:
|
|
1132
|
+
- ApiKeyAuth: ['runs:create', 'runs:read']
|
|
1133
|
+
- OAuth2: ['runs:create', 'runs:read']
|
|
1134
|
+
- OpenIdConnect: ['runs:create', 'runs:read']
|
|
1051
1135
|
parameters:
|
|
1052
1136
|
- $ref: '#/components/parameters/RunId'
|
|
1053
1137
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -1113,6 +1197,10 @@ paths:
|
|
|
1113
1197
|
chain by following `parent.wellKnownUrl` per response, one hop at a
|
|
1114
1198
|
time.
|
|
1115
1199
|
operationId: getRunAncestry
|
|
1200
|
+
security:
|
|
1201
|
+
- ApiKeyAuth: ['runs:read']
|
|
1202
|
+
- OAuth2: ['runs:read']
|
|
1203
|
+
- OpenIdConnect: ['runs:read']
|
|
1116
1204
|
parameters:
|
|
1117
1205
|
- $ref: '#/components/parameters/RunId'
|
|
1118
1206
|
responses:
|
|
@@ -1154,6 +1242,10 @@ paths:
|
|
|
1154
1242
|
RFC 0072. A `'tenant'`-scoped host MUST reject unauthenticated/unscoped
|
|
1155
1243
|
requests per its standard auth contract rather than fall back to a global list.
|
|
1156
1244
|
operationId: listAgents
|
|
1245
|
+
security:
|
|
1246
|
+
- ApiKeyAuth: ['runs:read']
|
|
1247
|
+
- OAuth2: ['runs:read']
|
|
1248
|
+
- OpenIdConnect: ['runs:read']
|
|
1157
1249
|
responses:
|
|
1158
1250
|
'200':
|
|
1159
1251
|
description: Installed manifest agents (agentId-sorted).
|
|
@@ -1183,6 +1275,10 @@ paths:
|
|
|
1183
1275
|
approved 404s identically to "not installed", so the surface never
|
|
1184
1276
|
discloses another tenant's inventory.
|
|
1185
1277
|
operationId: getAgent
|
|
1278
|
+
security:
|
|
1279
|
+
- ApiKeyAuth: ['runs:read']
|
|
1280
|
+
- OAuth2: ['runs:read']
|
|
1281
|
+
- OpenIdConnect: ['runs:read']
|
|
1186
1282
|
parameters:
|
|
1187
1283
|
- in: path
|
|
1188
1284
|
name: agentId
|
|
@@ -1220,6 +1316,10 @@ paths:
|
|
|
1220
1316
|
it return 404. Tenant-scoped to the caller's owner triple (RFC 0048/0074)
|
|
1221
1317
|
when `installScope: 'tenant'`.
|
|
1222
1318
|
operationId: listAgentDeployments
|
|
1319
|
+
security:
|
|
1320
|
+
- ApiKeyAuth: ['runs:read']
|
|
1321
|
+
- OAuth2: ['runs:read']
|
|
1322
|
+
- OpenIdConnect: ['runs:read']
|
|
1223
1323
|
parameters:
|
|
1224
1324
|
- in: path
|
|
1225
1325
|
name: agentId
|
|
@@ -1257,6 +1357,10 @@ paths:
|
|
|
1257
1357
|
BEFORE emitting `deployment.promoted`. On success returns the updated
|
|
1258
1358
|
deployment record and emits the matching content-free `deployment.*` event.
|
|
1259
1359
|
operationId: transitionAgentDeployment
|
|
1360
|
+
security:
|
|
1361
|
+
- ApiKeyAuth: ['deploy:*']
|
|
1362
|
+
- OAuth2: ['deploy:*']
|
|
1363
|
+
- OpenIdConnect: ['deploy:*']
|
|
1260
1364
|
parameters:
|
|
1261
1365
|
- in: path
|
|
1262
1366
|
name: agentId
|
|
@@ -1311,6 +1415,10 @@ paths:
|
|
|
1311
1415
|
RFC 0074 — on an `installScope: 'tenant'` host only the caller's
|
|
1312
1416
|
owner-triple entries are returned. Read-only; content-free (SR-1).
|
|
1313
1417
|
operationId: listAgentRoster
|
|
1418
|
+
security:
|
|
1419
|
+
- ApiKeyAuth: ['runs:read']
|
|
1420
|
+
- OAuth2: ['runs:read']
|
|
1421
|
+
- OpenIdConnect: ['runs:read']
|
|
1314
1422
|
responses:
|
|
1315
1423
|
'200':
|
|
1316
1424
|
description: The caller's standing roster (rosterId-sorted).
|
|
@@ -1336,6 +1444,10 @@ paths:
|
|
|
1336
1444
|
caller's owner triple — a cross-tenant entry 404s identically to
|
|
1337
1445
|
"not found", never disclosing another tenant's roster.
|
|
1338
1446
|
operationId: getAgentRosterEntry
|
|
1447
|
+
security:
|
|
1448
|
+
- ApiKeyAuth: ['runs:read']
|
|
1449
|
+
- OAuth2: ['runs:read']
|
|
1450
|
+
- OpenIdConnect: ['runs:read']
|
|
1339
1451
|
parameters:
|
|
1340
1452
|
- in: path
|
|
1341
1453
|
name: rosterId
|
|
@@ -1367,6 +1479,10 @@ paths:
|
|
|
1367
1479
|
advertise it return 404. Tenant-scoped per RFC 0074. DESCRIPTIVE only:
|
|
1368
1480
|
an org edge confers no authority (§B `org-position-no-authority-escalation`).
|
|
1369
1481
|
operationId: getAgentOrgChart
|
|
1482
|
+
security:
|
|
1483
|
+
- ApiKeyAuth: ['runs:read']
|
|
1484
|
+
- OAuth2: ['runs:read']
|
|
1485
|
+
- OpenIdConnect: ['runs:read']
|
|
1370
1486
|
responses:
|
|
1371
1487
|
'200':
|
|
1372
1488
|
description: The caller's org-chart.
|
|
@@ -1392,6 +1508,10 @@ paths:
|
|
|
1392
1508
|
404 when the department is unknown, cross-tenant, or the host doesn't
|
|
1393
1509
|
advertise `capabilities.agents.orgChart`. The roll-up grants nothing (§B).
|
|
1394
1510
|
operationId: getAgentOrgChartDepartment
|
|
1511
|
+
security:
|
|
1512
|
+
- ApiKeyAuth: ['runs:read']
|
|
1513
|
+
- OAuth2: ['runs:read']
|
|
1514
|
+
- OpenIdConnect: ['runs:read']
|
|
1395
1515
|
parameters:
|
|
1396
1516
|
- in: path
|
|
1397
1517
|
name: departmentId
|
|
@@ -1431,6 +1551,10 @@ paths:
|
|
|
1431
1551
|
NOT see another principal's tools (non-disclosure). Read-only; each
|
|
1432
1552
|
descriptor is content-free of any credential material (SR-1).
|
|
1433
1553
|
operationId: listTools
|
|
1554
|
+
security:
|
|
1555
|
+
- ApiKeyAuth: ['runs:read']
|
|
1556
|
+
- OAuth2: ['runs:read']
|
|
1557
|
+
- OpenIdConnect: ['runs:read']
|
|
1434
1558
|
parameters:
|
|
1435
1559
|
- name: view
|
|
1436
1560
|
in: query
|
|
@@ -1475,6 +1599,10 @@ paths:
|
|
|
1475
1599
|
non-disclosure — a cross-principal tool 404s identically to "not
|
|
1476
1600
|
found"), or the host doesn't advertise `capabilities.toolCatalog`.
|
|
1477
1601
|
operationId: getTool
|
|
1602
|
+
security:
|
|
1603
|
+
- ApiKeyAuth: ['runs:read']
|
|
1604
|
+
- OAuth2: ['runs:read']
|
|
1605
|
+
- OpenIdConnect: ['runs:read']
|
|
1478
1606
|
parameters:
|
|
1479
1607
|
- in: path
|
|
1480
1608
|
name: toolId
|
|
@@ -1522,6 +1650,10 @@ paths:
|
|
|
1522
1650
|
`capabilities.agents.evalSuite.supported: true`; hosts that don't advertise
|
|
1523
1651
|
it return 404. 409 when the run is not yet terminal.
|
|
1524
1652
|
operationId: getEvalSummary
|
|
1653
|
+
security:
|
|
1654
|
+
- ApiKeyAuth: ['runs:read']
|
|
1655
|
+
- OAuth2: ['runs:read']
|
|
1656
|
+
- OpenIdConnect: ['runs:read']
|
|
1525
1657
|
parameters:
|
|
1526
1658
|
- $ref: '#/components/parameters/RunId'
|
|
1527
1659
|
responses:
|
|
@@ -1556,6 +1688,10 @@ paths:
|
|
|
1556
1688
|
the two event logs (see `replay.md` determinism contract). Requires
|
|
1557
1689
|
`runs:read` on BOTH runs. Hosts that don't implement it return 404.
|
|
1558
1690
|
operationId: diffRun
|
|
1691
|
+
security:
|
|
1692
|
+
- ApiKeyAuth: ['runs:read']
|
|
1693
|
+
- OAuth2: ['runs:read']
|
|
1694
|
+
- OpenIdConnect: ['runs:read']
|
|
1559
1695
|
parameters:
|
|
1560
1696
|
- $ref: '#/components/parameters/RunId'
|
|
1561
1697
|
- name: against
|
|
@@ -1602,6 +1738,10 @@ paths:
|
|
|
1602
1738
|
Operator-driven pause distinct from cancel (terminal) and HITL suspend (workflow-driven).
|
|
1603
1739
|
Emits a `run.paused` event when the pause takes effect; exit only via `:resume` or `:cancel`.
|
|
1604
1740
|
operationId: pauseRun
|
|
1741
|
+
security:
|
|
1742
|
+
- ApiKeyAuth: ['runs:cancel']
|
|
1743
|
+
- OAuth2: ['runs:cancel']
|
|
1744
|
+
- OpenIdConnect: ['runs:cancel']
|
|
1605
1745
|
parameters:
|
|
1606
1746
|
- $ref: '#/components/parameters/RunId'
|
|
1607
1747
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -1650,6 +1790,10 @@ paths:
|
|
|
1650
1790
|
description: |
|
|
1651
1791
|
Reverses a prior `:pause`. Run transitions from `paused` to `running` and emits `run.resumed`.
|
|
1652
1792
|
operationId: resumeRun
|
|
1793
|
+
security:
|
|
1794
|
+
- ApiKeyAuth: ['runs:cancel']
|
|
1795
|
+
- OAuth2: ['runs:cancel']
|
|
1796
|
+
- OpenIdConnect: ['runs:cancel']
|
|
1653
1797
|
parameters:
|
|
1654
1798
|
- $ref: '#/components/parameters/RunId'
|
|
1655
1799
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -1688,6 +1832,10 @@ paths:
|
|
|
1688
1832
|
tags: [hitl]
|
|
1689
1833
|
summary: Resolve an interrupt via the run-scoped surface.
|
|
1690
1834
|
operationId: resolveInterruptByRun
|
|
1835
|
+
security:
|
|
1836
|
+
- ApiKeyAuth: ['approvals:respond']
|
|
1837
|
+
- OAuth2: ['approvals:respond']
|
|
1838
|
+
- OpenIdConnect: ['approvals:respond']
|
|
1691
1839
|
parameters:
|
|
1692
1840
|
- $ref: '#/components/parameters/RunId'
|
|
1693
1841
|
- in: path
|
|
@@ -1794,6 +1942,10 @@ paths:
|
|
|
1794
1942
|
tags: [artifacts]
|
|
1795
1943
|
summary: Read a run-produced artifact.
|
|
1796
1944
|
operationId: getArtifact
|
|
1945
|
+
security:
|
|
1946
|
+
- ApiKeyAuth: ['artifacts:read']
|
|
1947
|
+
- OAuth2: ['artifacts:read']
|
|
1948
|
+
- OpenIdConnect: ['artifacts:read']
|
|
1797
1949
|
parameters:
|
|
1798
1950
|
- $ref: '#/components/parameters/RunId'
|
|
1799
1951
|
- in: path
|
|
@@ -1818,6 +1970,10 @@ paths:
|
|
|
1818
1970
|
tags: [webhooks]
|
|
1819
1971
|
summary: Register a webhook subscription.
|
|
1820
1972
|
operationId: registerWebhook
|
|
1973
|
+
security:
|
|
1974
|
+
- ApiKeyAuth: ['webhooks:manage']
|
|
1975
|
+
- OAuth2: ['webhooks:manage']
|
|
1976
|
+
- OpenIdConnect: ['webhooks:manage']
|
|
1821
1977
|
parameters:
|
|
1822
1978
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
1823
1979
|
requestBody:
|
|
@@ -1835,11 +1991,30 @@ paths:
|
|
|
1835
1991
|
description: Event types to subscribe to (see `run-event.schema.json` enum).
|
|
1836
1992
|
secret:
|
|
1837
1993
|
type: string
|
|
1838
|
-
description:
|
|
1994
|
+
description: >
|
|
1995
|
+
Server signs payloads with this secret using HMAC-SHA256. REQUIRED in the
|
|
1996
|
+
Standard Webhooks form `whsec_<base64>` (24–64 decoded bytes) when
|
|
1997
|
+
`signatureAlgorithms` lists `standard-webhooks-1` (RFC 0201 §B.6); never
|
|
1998
|
+
echoed in any response.
|
|
1839
1999
|
tags:
|
|
1840
2000
|
type: array
|
|
1841
2001
|
items: { type: string }
|
|
1842
2002
|
description: Filter to runs carrying these tags (see `run-options.md`).
|
|
2003
|
+
signatureAlgorithms:
|
|
2004
|
+
type: array
|
|
2005
|
+
minItems: 1
|
|
2006
|
+
uniqueItems: true
|
|
2007
|
+
contains: { const: v1 }
|
|
2008
|
+
items: { type: string }
|
|
2009
|
+
description: >
|
|
2010
|
+
RFC 0201 §B — the per-subscription opt-in. Absent means `["v1"]`, today's
|
|
2011
|
+
behaviour byte for byte. When present it MUST contain `v1`, MUST NOT repeat a
|
|
2012
|
+
value, and every value MUST be listed in the host's
|
|
2013
|
+
`webhooks.signatureAlgorithms`; otherwise `400 validation_error`. Listing
|
|
2014
|
+
`standard-webhooks-1` opts the subscription into the Standard Webhooks 1.0.0
|
|
2015
|
+
companion scheme, which runs endpoint verification before the `201`
|
|
2016
|
+
(`400 webhook_endpoint_unverified` when the endpoint does not echo the
|
|
2017
|
+
challenge).
|
|
1843
2018
|
additionalProperties: false
|
|
1844
2019
|
responses:
|
|
1845
2020
|
'201':
|
|
@@ -1851,7 +2026,19 @@ paths:
|
|
|
1851
2026
|
required: [webhookId]
|
|
1852
2027
|
properties:
|
|
1853
2028
|
webhookId: { type: string }
|
|
1854
|
-
|
|
2029
|
+
signatureAlgorithms:
|
|
2030
|
+
type: array
|
|
2031
|
+
items: { type: string }
|
|
2032
|
+
description: RFC 0201 §B.7 — the list the dispatcher will apply; present whenever the request carried `signatureAlgorithms`.
|
|
2033
|
+
'400':
|
|
2034
|
+
description: >
|
|
2035
|
+
`validation_error` (malformed body, or an invalid `signatureAlgorithms` / `secret`
|
|
2036
|
+
opt-in, RFC 0201 §B), `webhook_url_rejected` (egress), or
|
|
2037
|
+
`webhook_endpoint_unverified` (RFC 0201 §D — an opted-in endpoint did not echo the
|
|
2038
|
+
verification challenge; no subscription is persisted).
|
|
2039
|
+
content:
|
|
2040
|
+
application/json:
|
|
2041
|
+
schema: { $ref: '../schemas/error-envelope.schema.json' }
|
|
1855
2042
|
'401': { $ref: '#/components/responses/Unauthenticated' }
|
|
1856
2043
|
'403': { $ref: '#/components/responses/Forbidden' }
|
|
1857
2044
|
|
|
@@ -1860,6 +2047,10 @@ paths:
|
|
|
1860
2047
|
tags: [webhooks]
|
|
1861
2048
|
summary: Unregister a webhook.
|
|
1862
2049
|
operationId: unregisterWebhook
|
|
2050
|
+
security:
|
|
2051
|
+
- ApiKeyAuth: ['webhooks:manage']
|
|
2052
|
+
- OAuth2: ['webhooks:manage']
|
|
2053
|
+
- OpenIdConnect: ['webhooks:manage']
|
|
1863
2054
|
parameters:
|
|
1864
2055
|
- in: path
|
|
1865
2056
|
name: webhookId
|
|
@@ -1888,6 +2079,10 @@ paths:
|
|
|
1888
2079
|
advertise the `openwop-audit-log-integrity` profile MAY omit this
|
|
1889
2080
|
endpoint entirely (clients SHOULD pre-flight via `/.well-known/openwop`).
|
|
1890
2081
|
operationId: verifyAuditLog
|
|
2082
|
+
security:
|
|
2083
|
+
- ApiKeyAuth: ['audit:read']
|
|
2084
|
+
- OAuth2: ['audit:read']
|
|
2085
|
+
- OpenIdConnect: ['audit:read']
|
|
1891
2086
|
parameters:
|
|
1892
2087
|
- in: query
|
|
1893
2088
|
name: fromSeq
|
|
@@ -1926,6 +2121,10 @@ paths:
|
|
|
1926
2121
|
tags: [prompts]
|
|
1927
2122
|
summary: List prompt templates available to the caller.
|
|
1928
2123
|
operationId: listPromptTemplates
|
|
2124
|
+
security:
|
|
2125
|
+
- ApiKeyAuth: ['prompts:read']
|
|
2126
|
+
- OAuth2: ['prompts:read']
|
|
2127
|
+
- OpenIdConnect: ['prompts:read']
|
|
1929
2128
|
parameters:
|
|
1930
2129
|
- in: query
|
|
1931
2130
|
name: kind
|
|
@@ -1982,6 +2181,10 @@ paths:
|
|
|
1982
2181
|
tags: [prompts]
|
|
1983
2182
|
summary: Create a new prompt template (mutable libraries only).
|
|
1984
2183
|
operationId: createPromptTemplate
|
|
2184
|
+
security:
|
|
2185
|
+
- ApiKeyAuth: ['prompts:write']
|
|
2186
|
+
- OAuth2: ['prompts:write']
|
|
2187
|
+
- OpenIdConnect: ['prompts:write']
|
|
1985
2188
|
parameters:
|
|
1986
2189
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
1987
2190
|
requestBody:
|
|
@@ -2041,6 +2244,10 @@ paths:
|
|
|
2041
2244
|
tags: [prompts]
|
|
2042
2245
|
summary: Fetch a single prompt template.
|
|
2043
2246
|
operationId: getPromptTemplate
|
|
2247
|
+
security:
|
|
2248
|
+
- ApiKeyAuth: ['prompts:read']
|
|
2249
|
+
- OAuth2: ['prompts:read']
|
|
2250
|
+
- OpenIdConnect: ['prompts:read']
|
|
2044
2251
|
responses:
|
|
2045
2252
|
'200':
|
|
2046
2253
|
description: The PromptTemplate.
|
|
@@ -2081,6 +2288,10 @@ paths:
|
|
|
2081
2288
|
tags: [prompts]
|
|
2082
2289
|
summary: Replace a prompt template (mutable libraries; user-source only).
|
|
2083
2290
|
operationId: updatePromptTemplate
|
|
2291
|
+
security:
|
|
2292
|
+
- ApiKeyAuth: ['prompts:write']
|
|
2293
|
+
- OAuth2: ['prompts:write']
|
|
2294
|
+
- OpenIdConnect: ['prompts:write']
|
|
2084
2295
|
parameters:
|
|
2085
2296
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
2086
2297
|
requestBody:
|
|
@@ -2126,6 +2337,10 @@ paths:
|
|
|
2126
2337
|
tags: [prompts]
|
|
2127
2338
|
summary: Delete a prompt template (mutable libraries; user-source only).
|
|
2128
2339
|
operationId: deletePromptTemplate
|
|
2340
|
+
security:
|
|
2341
|
+
- ApiKeyAuth: ['prompts:write']
|
|
2342
|
+
- OAuth2: ['prompts:write']
|
|
2343
|
+
- OpenIdConnect: ['prompts:write']
|
|
2129
2344
|
responses:
|
|
2130
2345
|
'204':
|
|
2131
2346
|
description: Template deleted.
|
|
@@ -2164,6 +2379,10 @@ paths:
|
|
|
2164
2379
|
host resolves the plaintext internally and never echoes it in
|
|
2165
2380
|
the `composed` response field per SR-1.
|
|
2166
2381
|
operationId: renderPromptTemplate
|
|
2382
|
+
security:
|
|
2383
|
+
- ApiKeyAuth: ['prompts:read']
|
|
2384
|
+
- OAuth2: ['prompts:read']
|
|
2385
|
+
- OpenIdConnect: ['prompts:read']
|
|
2167
2386
|
requestBody:
|
|
2168
2387
|
required: true
|
|
2169
2388
|
content:
|
|
@@ -2269,6 +2488,10 @@ paths:
|
|
|
2269
2488
|
(`registry-operations.md`), not defined in this host document
|
|
2270
2489
|
(see the `packs-test` tag scope note).
|
|
2271
2490
|
operationId: putTestPackTarball
|
|
2491
|
+
security:
|
|
2492
|
+
- ApiKeyAuth: ['packs:publish']
|
|
2493
|
+
- OAuth2: ['packs:publish']
|
|
2494
|
+
- OpenIdConnect: ['packs:publish']
|
|
2272
2495
|
parameters:
|
|
2273
2496
|
- in: header
|
|
2274
2497
|
name: X-Pack-Signing-Method
|
|
@@ -2341,6 +2564,10 @@ paths:
|
|
|
2341
2564
|
summary: Fetch a published test-catalog tarball.
|
|
2342
2565
|
description: 'Mirror of `GET /v1/packs/{name}/-/{version}.tgz`. Returns the gzipped tarball bytes with `Content-Type: application/tar+gzip` and an `ETag: "sha256-..."` matching the manifest''s `tarballSha256`. The mirrored production path is registry-service surface (`registry-operations.md`), not defined in this host document (see the `packs-test` tag scope note).'
|
|
2343
2566
|
operationId: getTestPackTarball
|
|
2567
|
+
security:
|
|
2568
|
+
- ApiKeyAuth: ['packs:read']
|
|
2569
|
+
- OAuth2: ['packs:read']
|
|
2570
|
+
- OpenIdConnect: ['packs:read']
|
|
2344
2571
|
responses:
|
|
2345
2572
|
'200':
|
|
2346
2573
|
description: Tarball bytes.
|
|
@@ -2381,6 +2608,10 @@ paths:
|
|
|
2381
2608
|
defined in this host document (see the `packs-test` tag
|
|
2382
2609
|
scope note).
|
|
2383
2610
|
operationId: deleteTestPackVersion
|
|
2611
|
+
security:
|
|
2612
|
+
- ApiKeyAuth: ['packs:publish']
|
|
2613
|
+
- OAuth2: ['packs:publish']
|
|
2614
|
+
- OpenIdConnect: ['packs:publish']
|
|
2384
2615
|
responses:
|
|
2385
2616
|
'204':
|
|
2386
2617
|
description: Version successfully unpublished from the test catalog.
|
|
@@ -2415,6 +2646,10 @@ paths:
|
|
|
2415
2646
|
registry-service surface (`registry-operations.md`), not defined
|
|
2416
2647
|
in this host document (see the `packs-test` tag scope note).
|
|
2417
2648
|
operationId: getTestPackSignature
|
|
2649
|
+
security:
|
|
2650
|
+
- ApiKeyAuth: ['packs:read']
|
|
2651
|
+
- OAuth2: ['packs:read']
|
|
2652
|
+
- OpenIdConnect: ['packs:read']
|
|
2418
2653
|
responses:
|
|
2419
2654
|
'200':
|
|
2420
2655
|
description: Signature blob.
|
|
@@ -2466,6 +2701,84 @@ components:
|
|
|
2466
2701
|
`artifacts:read`, `webhooks:manage`, `approvals:respond`, `audit:read`).
|
|
2467
2702
|
See `auth.md`.
|
|
2468
2703
|
|
|
2704
|
+
# RFC 0200 §F. The three lanes below describe auth the corpus already defines
|
|
2705
|
+
# in `auth-profiles.md` (v1) and `spec/v2/core/identity.md` §2 (v2). Declaring
|
|
2706
|
+
# them changes no wire behaviour: an operation's three alternatives carry the
|
|
2707
|
+
# SAME scope, and a host enforces only the lanes it advertises. The URLs are
|
|
2708
|
+
# placeholders, exactly as `servers` uses `api.example.com`; a host serving its
|
|
2709
|
+
# own document replaces them with its advertised issuers and drops the schemes
|
|
2710
|
+
# for lanes it does not advertise (`a2a-integration.md` §AgentCard, §F.5).
|
|
2711
|
+
OAuth2:
|
|
2712
|
+
type: oauth2
|
|
2713
|
+
description: |
|
|
2714
|
+
RFC 0200 §F. OAuth 2.0 lanes — v1 `openwop-auth-oauth2-client-credentials`,
|
|
2715
|
+
v2 `auth.lanes[].lane: "oauth2"`. Discovery is RFC 9728 Protected Resource
|
|
2716
|
+
Metadata at the path-inserted well-known URI (`identity.md` §2.5).
|
|
2717
|
+
Placeholder URLs.
|
|
2718
|
+
flows:
|
|
2719
|
+
clientCredentials:
|
|
2720
|
+
tokenUrl: https://issuer.example/oauth2/token
|
|
2721
|
+
scopes:
|
|
2722
|
+
'manifest:read': Read workflow / canvas-type / endpoint manifests
|
|
2723
|
+
'runs:create': Create new runs
|
|
2724
|
+
'runs:read': Read run state and event stream
|
|
2725
|
+
'runs:cancel': Cancel an in-flight run
|
|
2726
|
+
'runs:annotate': Record a quality annotation on a run
|
|
2727
|
+
'artifacts:read': Read artifacts produced by runs
|
|
2728
|
+
'webhooks:manage': Register/unregister webhook subscriptions
|
|
2729
|
+
'approvals:respond': Respond to HITL approval gates
|
|
2730
|
+
'packs:publish': Publish node-pack versions
|
|
2731
|
+
'packs:read': Fetch a published node-pack tarball or signature
|
|
2732
|
+
'packs:yank': Yank a node-pack version
|
|
2733
|
+
'packs:yank-revert': Reinstate a yanked node-pack version
|
|
2734
|
+
'audit:read': Verify audit-log integrity
|
|
2735
|
+
'workspace:read': Read agent-workspace files
|
|
2736
|
+
'workspace:write': Write agent-workspace files
|
|
2737
|
+
'prompts:read': Read and render prompt templates
|
|
2738
|
+
'prompts:write': Create, update and delete prompt templates
|
|
2739
|
+
'content:read': Read authored content pages and locale settings
|
|
2740
|
+
'content:write': Create, publish and translate authored content pages
|
|
2741
|
+
'deploy:*': Drive an agent deployment state transition
|
|
2742
|
+
authorizationCode:
|
|
2743
|
+
authorizationUrl: https://issuer.example/oauth2/authorize
|
|
2744
|
+
tokenUrl: https://issuer.example/oauth2/token
|
|
2745
|
+
scopes:
|
|
2746
|
+
'manifest:read': Read workflow / canvas-type / endpoint manifests
|
|
2747
|
+
'runs:create': Create new runs
|
|
2748
|
+
'runs:read': Read run state and event stream
|
|
2749
|
+
'runs:cancel': Cancel an in-flight run
|
|
2750
|
+
'runs:annotate': Record a quality annotation on a run
|
|
2751
|
+
'artifacts:read': Read artifacts produced by runs
|
|
2752
|
+
'webhooks:manage': Register/unregister webhook subscriptions
|
|
2753
|
+
'approvals:respond': Respond to HITL approval gates
|
|
2754
|
+
'packs:publish': Publish node-pack versions
|
|
2755
|
+
'packs:read': Fetch a published node-pack tarball or signature
|
|
2756
|
+
'packs:yank': Yank a node-pack version
|
|
2757
|
+
'packs:yank-revert': Reinstate a yanked node-pack version
|
|
2758
|
+
'audit:read': Verify audit-log integrity
|
|
2759
|
+
'workspace:read': Read agent-workspace files
|
|
2760
|
+
'workspace:write': Write agent-workspace files
|
|
2761
|
+
'prompts:read': Read and render prompt templates
|
|
2762
|
+
'prompts:write': Create, update and delete prompt templates
|
|
2763
|
+
'content:read': Read authored content pages and locale settings
|
|
2764
|
+
'content:write': Create, publish and translate authored content pages
|
|
2765
|
+
'deploy:*': Drive an agent deployment state transition
|
|
2766
|
+
OpenIdConnect:
|
|
2767
|
+
type: openIdConnect
|
|
2768
|
+
openIdConnectUrl: https://issuer.example/.well-known/openid-configuration
|
|
2769
|
+
description: |
|
|
2770
|
+
RFC 0200 §F. v1 `openwop-auth-oidc-user-bearer` / v2 `auth.lanes[].lane: "oidc"`.
|
|
2771
|
+
An ID token MAY be the bearer only when its `aud` equals the host's configured
|
|
2772
|
+
audience (`identity.md` §2.1); any other `aud` is `audience_mismatch`.
|
|
2773
|
+
Placeholder URL.
|
|
2774
|
+
MutualTLS:
|
|
2775
|
+
type: mutualTLS
|
|
2776
|
+
description: |
|
|
2777
|
+
RFC 0200 §F. v1 `openwop-auth-mtls` / v2 `auth.lanes[].lane: "mtls"`. In OpenWOP
|
|
2778
|
+
mTLS is required *in addition to* a bearer, never instead of one, so it appears
|
|
2779
|
+
in no canonical requirement below: a host that requires it adds `MutualTLS: []`
|
|
2780
|
+
inside each requirement object (AND).
|
|
2781
|
+
|
|
2469
2782
|
parameters:
|
|
2470
2783
|
WorkflowId:
|
|
2471
2784
|
in: path
|
|
@@ -2551,12 +2864,20 @@ components:
|
|
|
2551
2864
|
responses:
|
|
2552
2865
|
Unauthenticated:
|
|
2553
2866
|
description: Missing or invalid credential.
|
|
2867
|
+
headers:
|
|
2868
|
+
WWW-Authenticate:
|
|
2869
|
+
description: RFC 0200 §B — `Bearer` challenge; `resource_metadata` and `error="invalid_token"` on a host with an oauth2/oidc lane. Never on a non-disclosure 404.
|
|
2870
|
+
schema: { type: string }
|
|
2554
2871
|
content:
|
|
2555
2872
|
application/json:
|
|
2556
2873
|
schema: { $ref: '#/components/schemas/Error' }
|
|
2557
2874
|
|
|
2558
2875
|
Forbidden:
|
|
2559
2876
|
description: Credential valid but lacks required scope or fails resource binding.
|
|
2877
|
+
headers:
|
|
2878
|
+
WWW-Authenticate:
|
|
2879
|
+
description: RFC 0200 §B — `error="insufficient_scope"` with every required `scope` on a scope refusal; absent on a resource-binding 403.
|
|
2880
|
+
schema: { type: string }
|
|
2560
2881
|
content:
|
|
2561
2882
|
application/json:
|
|
2562
2883
|
schema: { $ref: '#/components/schemas/Error' }
|