@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/v2/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 API
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.36.0
|
|
5
5
|
summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
|
|
6
6
|
description: GENERATED by scripts/derive-v2-api.py from api/openapi.yaml and the RFC 0167 children (v2 charter Phase 3,
|
|
7
7
|
P3-C). Bare origin, unversioned path keys, negotiation by `OpenWOP-Version` + `protocolVersions[]` (RFC 0172 §A). No seam
|
|
@@ -141,6 +141,13 @@ paths:
|
|
|
141
141
|
- workflows
|
|
142
142
|
summary: Read a workflow definition.
|
|
143
143
|
operationId: getWorkflow
|
|
144
|
+
security:
|
|
145
|
+
- ApiKeyAuth:
|
|
146
|
+
- manifest:read
|
|
147
|
+
- OAuth2:
|
|
148
|
+
- manifest:read
|
|
149
|
+
- OpenIdConnect:
|
|
150
|
+
- manifest:read
|
|
144
151
|
parameters:
|
|
145
152
|
- $ref: '#/components/parameters/WorkflowId'
|
|
146
153
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -166,6 +173,13 @@ paths:
|
|
|
166
173
|
- runs
|
|
167
174
|
summary: Create a new run.
|
|
168
175
|
operationId: createRun
|
|
176
|
+
security:
|
|
177
|
+
- ApiKeyAuth:
|
|
178
|
+
- runs:create
|
|
179
|
+
- OAuth2:
|
|
180
|
+
- runs:create
|
|
181
|
+
- OpenIdConnect:
|
|
182
|
+
- runs:create
|
|
169
183
|
parameters:
|
|
170
184
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
171
185
|
- in: header
|
|
@@ -383,12 +397,26 @@ paths:
|
|
|
383
397
|
$ref: '#/components/responses/Unauthenticated'
|
|
384
398
|
'404':
|
|
385
399
|
$ref: '#/components/responses/NotFound'
|
|
400
|
+
security:
|
|
401
|
+
- ApiKeyAuth:
|
|
402
|
+
- runs:read
|
|
403
|
+
- OAuth2:
|
|
404
|
+
- runs:read
|
|
405
|
+
- OpenIdConnect:
|
|
406
|
+
- runs:read
|
|
386
407
|
/runs/{runId}:
|
|
387
408
|
get:
|
|
388
409
|
tags:
|
|
389
410
|
- runs
|
|
390
411
|
summary: Read run state (cached projection).
|
|
391
412
|
operationId: getRun
|
|
413
|
+
security:
|
|
414
|
+
- ApiKeyAuth:
|
|
415
|
+
- runs:read
|
|
416
|
+
- OAuth2:
|
|
417
|
+
- runs:read
|
|
418
|
+
- OpenIdConnect:
|
|
419
|
+
- runs:read
|
|
392
420
|
parameters:
|
|
393
421
|
- $ref: '#/components/parameters/RunId'
|
|
394
422
|
- in: header
|
|
@@ -453,6 +481,13 @@ paths:
|
|
|
453
481
|
- runs
|
|
454
482
|
summary: SSE stream of run events.
|
|
455
483
|
operationId: streamRunEvents
|
|
484
|
+
security:
|
|
485
|
+
- ApiKeyAuth:
|
|
486
|
+
- runs:read
|
|
487
|
+
- OAuth2:
|
|
488
|
+
- runs:read
|
|
489
|
+
- OpenIdConnect:
|
|
490
|
+
- runs:read
|
|
456
491
|
parameters:
|
|
457
492
|
- $ref: '#/components/parameters/RunId'
|
|
458
493
|
- in: query
|
|
@@ -519,6 +554,13 @@ paths:
|
|
|
519
554
|
- runs
|
|
520
555
|
summary: Long-poll fallback for non-SSE clients.
|
|
521
556
|
operationId: pollRunEvents
|
|
557
|
+
security:
|
|
558
|
+
- ApiKeyAuth:
|
|
559
|
+
- runs:read
|
|
560
|
+
- OAuth2:
|
|
561
|
+
- runs:read
|
|
562
|
+
- OpenIdConnect:
|
|
563
|
+
- runs:read
|
|
522
564
|
parameters:
|
|
523
565
|
- $ref: '#/components/parameters/RunId'
|
|
524
566
|
- in: query
|
|
@@ -582,6 +624,13 @@ paths:
|
|
|
582
624
|
- runs
|
|
583
625
|
summary: Cancel an in-flight run.
|
|
584
626
|
operationId: cancelRun
|
|
627
|
+
security:
|
|
628
|
+
- ApiKeyAuth:
|
|
629
|
+
- runs:cancel
|
|
630
|
+
- OAuth2:
|
|
631
|
+
- runs:cancel
|
|
632
|
+
- OpenIdConnect:
|
|
633
|
+
- runs:cancel
|
|
585
634
|
parameters:
|
|
586
635
|
- $ref: '#/components/parameters/RunId'
|
|
587
636
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -624,6 +673,13 @@ paths:
|
|
|
624
673
|
- runs
|
|
625
674
|
summary: Record a non-blocking quality annotation on a run (RFC 0056).
|
|
626
675
|
operationId: createAnnotation
|
|
676
|
+
security:
|
|
677
|
+
- ApiKeyAuth:
|
|
678
|
+
- runs:annotate
|
|
679
|
+
- OAuth2:
|
|
680
|
+
- runs:annotate
|
|
681
|
+
- OpenIdConnect:
|
|
682
|
+
- runs:annotate
|
|
627
683
|
parameters:
|
|
628
684
|
- $ref: '#/components/parameters/RunId'
|
|
629
685
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -666,6 +722,13 @@ paths:
|
|
|
666
722
|
- runs
|
|
667
723
|
summary: List the annotations recorded on a run (RFC 0056).
|
|
668
724
|
operationId: listAnnotations
|
|
725
|
+
security:
|
|
726
|
+
- ApiKeyAuth:
|
|
727
|
+
- runs:read
|
|
728
|
+
- OAuth2:
|
|
729
|
+
- runs:read
|
|
730
|
+
- OpenIdConnect:
|
|
731
|
+
- runs:read
|
|
669
732
|
parameters:
|
|
670
733
|
- $ref: '#/components/parameters/RunId'
|
|
671
734
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -721,6 +784,13 @@ paths:
|
|
|
721
784
|
|
|
722
785
|
'
|
|
723
786
|
operationId: createTriggerSubscription
|
|
787
|
+
security:
|
|
788
|
+
- ApiKeyAuth:
|
|
789
|
+
- webhooks:manage
|
|
790
|
+
- OAuth2:
|
|
791
|
+
- webhooks:manage
|
|
792
|
+
- OpenIdConnect:
|
|
793
|
+
- webhooks:manage
|
|
724
794
|
parameters:
|
|
725
795
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
726
796
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -866,6 +936,13 @@ paths:
|
|
|
866
936
|
|
|
867
937
|
'
|
|
868
938
|
operationId: listContentPages
|
|
939
|
+
security:
|
|
940
|
+
- ApiKeyAuth:
|
|
941
|
+
- content:read
|
|
942
|
+
- OAuth2:
|
|
943
|
+
- content:read
|
|
944
|
+
- OpenIdConnect:
|
|
945
|
+
- content:read
|
|
869
946
|
responses:
|
|
870
947
|
'200':
|
|
871
948
|
description: The caller-tenant's pages.
|
|
@@ -899,6 +976,13 @@ paths:
|
|
|
899
976
|
summary: Create a content page (RFC 0103 §D, admin).
|
|
900
977
|
description: Tenant-scoped page creation. Requires `content.write` scope.
|
|
901
978
|
operationId: createContentPage
|
|
979
|
+
security:
|
|
980
|
+
- ApiKeyAuth:
|
|
981
|
+
- content:write
|
|
982
|
+
- OAuth2:
|
|
983
|
+
- content:write
|
|
984
|
+
- OpenIdConnect:
|
|
985
|
+
- content:write
|
|
902
986
|
requestBody:
|
|
903
987
|
required: true
|
|
904
988
|
content:
|
|
@@ -937,12 +1021,19 @@ paths:
|
|
|
937
1021
|
summary: Upsert a section's base or per-locale fields (RFC 0103 §D, admin).
|
|
938
1022
|
description: 'Locale-targeted write: `locale == content.baseLocale` upserts the
|
|
939
1023
|
|
|
940
|
-
section''s base `data`; any other (BCP
|
|
1024
|
+
section''s base `data`; any other (case-canonical BCP 47 subset, RFC 0206) locale upserts
|
|
941
1025
|
|
|
942
1026
|
`localizations[locale]`. Tenant-scoped; requires `content.write`.
|
|
943
1027
|
|
|
944
1028
|
'
|
|
945
1029
|
operationId: putContentSection
|
|
1030
|
+
security:
|
|
1031
|
+
- ApiKeyAuth:
|
|
1032
|
+
- content:write
|
|
1033
|
+
- OAuth2:
|
|
1034
|
+
- content:write
|
|
1035
|
+
- OpenIdConnect:
|
|
1036
|
+
- content:write
|
|
946
1037
|
parameters:
|
|
947
1038
|
- name: pageId
|
|
948
1039
|
in: path
|
|
@@ -970,7 +1061,7 @@ paths:
|
|
|
970
1061
|
properties:
|
|
971
1062
|
locale:
|
|
972
1063
|
type: string
|
|
973
|
-
pattern: ^[a-z]{2}(-[A-Z]{2})?$
|
|
1064
|
+
pattern: ^[a-z]{2,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$
|
|
974
1065
|
description: Target locale; baseLocale upserts `data`, else `localizations[locale]`.
|
|
975
1066
|
data:
|
|
976
1067
|
type: object
|
|
@@ -1008,6 +1099,13 @@ paths:
|
|
|
1008
1099
|
summary: Read the tenant's content language settings (RFC 0103 §B, admin).
|
|
1009
1100
|
description: Tenant-scoped read of `{ baseLocale, supportedLocales, autoTranslateOnPublish }`. Requires `content.read`.
|
|
1010
1101
|
operationId: getContentSettings
|
|
1102
|
+
security:
|
|
1103
|
+
- ApiKeyAuth:
|
|
1104
|
+
- content:read
|
|
1105
|
+
- OAuth2:
|
|
1106
|
+
- content:read
|
|
1107
|
+
- OpenIdConnect:
|
|
1108
|
+
- content:read
|
|
1011
1109
|
responses:
|
|
1012
1110
|
'200':
|
|
1013
1111
|
description: The tenant's language settings.
|
|
@@ -1043,6 +1141,13 @@ paths:
|
|
|
1043
1141
|
|
|
1044
1142
|
'
|
|
1045
1143
|
operationId: putContentSettings
|
|
1144
|
+
security:
|
|
1145
|
+
- ApiKeyAuth:
|
|
1146
|
+
- content:write
|
|
1147
|
+
- OAuth2:
|
|
1148
|
+
- content:write
|
|
1149
|
+
- OpenIdConnect:
|
|
1150
|
+
- content:write
|
|
1046
1151
|
requestBody:
|
|
1047
1152
|
required: true
|
|
1048
1153
|
content:
|
|
@@ -1095,6 +1200,13 @@ paths:
|
|
|
1095
1200
|
|
|
1096
1201
|
'
|
|
1097
1202
|
operationId: bulkCancelRuns
|
|
1203
|
+
security:
|
|
1204
|
+
- ApiKeyAuth:
|
|
1205
|
+
- runs:cancel
|
|
1206
|
+
- OAuth2:
|
|
1207
|
+
- runs:cancel
|
|
1208
|
+
- OpenIdConnect:
|
|
1209
|
+
- runs:cancel
|
|
1098
1210
|
parameters:
|
|
1099
1211
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
1100
1212
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -1164,6 +1276,16 @@ paths:
|
|
|
1164
1276
|
- runs
|
|
1165
1277
|
summary: Fork the run for replay or branch (see `replay.md`).
|
|
1166
1278
|
operationId: forkRun
|
|
1279
|
+
security:
|
|
1280
|
+
- ApiKeyAuth:
|
|
1281
|
+
- runs:create
|
|
1282
|
+
- runs:read
|
|
1283
|
+
- OAuth2:
|
|
1284
|
+
- runs:create
|
|
1285
|
+
- runs:read
|
|
1286
|
+
- OpenIdConnect:
|
|
1287
|
+
- runs:create
|
|
1288
|
+
- runs:read
|
|
1167
1289
|
parameters:
|
|
1168
1290
|
- $ref: '#/components/parameters/RunId'
|
|
1169
1291
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -1273,6 +1395,13 @@ paths:
|
|
|
1273
1395
|
|
|
1274
1396
|
'
|
|
1275
1397
|
operationId: getRunAncestry
|
|
1398
|
+
security:
|
|
1399
|
+
- ApiKeyAuth:
|
|
1400
|
+
- runs:read
|
|
1401
|
+
- OAuth2:
|
|
1402
|
+
- runs:read
|
|
1403
|
+
- OpenIdConnect:
|
|
1404
|
+
- runs:read
|
|
1276
1405
|
parameters:
|
|
1277
1406
|
- $ref: '#/components/parameters/RunId'
|
|
1278
1407
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -1343,9 +1472,18 @@ paths:
|
|
|
1343
1472
|
|
|
1344
1473
|
'
|
|
1345
1474
|
operationId: listAgents
|
|
1475
|
+
security:
|
|
1476
|
+
- ApiKeyAuth:
|
|
1477
|
+
- runs:read
|
|
1478
|
+
- OAuth2:
|
|
1479
|
+
- runs:read
|
|
1480
|
+
- OpenIdConnect:
|
|
1481
|
+
- runs:read
|
|
1346
1482
|
responses:
|
|
1347
1483
|
'200':
|
|
1348
|
-
description: Installed manifest agents (agentId-sorted).
|
|
1484
|
+
description: 'Installed manifest agents (agentId-sorted). RFC 0202: when the host advertises `a2a.agentCards`, an
|
|
1485
|
+
entry the host routes a workflow to carries `a2aTenant`, the opaque A2A `tenant` value of that agent''s card (interop.md
|
|
1486
|
+
§Per-agent cards).'
|
|
1349
1487
|
content:
|
|
1350
1488
|
application/json:
|
|
1351
1489
|
schema:
|
|
@@ -1392,6 +1530,13 @@ paths:
|
|
|
1392
1530
|
|
|
1393
1531
|
'
|
|
1394
1532
|
operationId: getAgent
|
|
1533
|
+
security:
|
|
1534
|
+
- ApiKeyAuth:
|
|
1535
|
+
- runs:read
|
|
1536
|
+
- OAuth2:
|
|
1537
|
+
- runs:read
|
|
1538
|
+
- OpenIdConnect:
|
|
1539
|
+
- runs:read
|
|
1395
1540
|
parameters:
|
|
1396
1541
|
- in: path
|
|
1397
1542
|
name: agentId
|
|
@@ -1411,7 +1556,9 @@ paths:
|
|
|
1411
1556
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
1412
1557
|
responses:
|
|
1413
1558
|
'200':
|
|
1414
|
-
description: The agent's inventory entry.
|
|
1559
|
+
description: 'The agent''s inventory entry. RFC 0202: when the host advertises `a2a.agentCards`, an entry the host
|
|
1560
|
+
routes a workflow to carries `a2aTenant`, the opaque A2A `tenant` value of that agent''s card (interop.md §Per-agent
|
|
1561
|
+
cards).'
|
|
1415
1562
|
content:
|
|
1416
1563
|
application/json:
|
|
1417
1564
|
schema:
|
|
@@ -1452,6 +1599,13 @@ paths:
|
|
|
1452
1599
|
|
|
1453
1600
|
'
|
|
1454
1601
|
operationId: listAgentDeployments
|
|
1602
|
+
security:
|
|
1603
|
+
- ApiKeyAuth:
|
|
1604
|
+
- runs:read
|
|
1605
|
+
- OAuth2:
|
|
1606
|
+
- runs:read
|
|
1607
|
+
- OpenIdConnect:
|
|
1608
|
+
- runs:read
|
|
1455
1609
|
parameters:
|
|
1456
1610
|
- in: path
|
|
1457
1611
|
name: agentId
|
|
@@ -1515,6 +1669,13 @@ paths:
|
|
|
1515
1669
|
|
|
1516
1670
|
'
|
|
1517
1671
|
operationId: transitionAgentDeployment
|
|
1672
|
+
security:
|
|
1673
|
+
- ApiKeyAuth:
|
|
1674
|
+
- deploy:*
|
|
1675
|
+
- OAuth2:
|
|
1676
|
+
- deploy:*
|
|
1677
|
+
- OpenIdConnect:
|
|
1678
|
+
- deploy:*
|
|
1518
1679
|
parameters:
|
|
1519
1680
|
- in: path
|
|
1520
1681
|
name: agentId
|
|
@@ -1599,6 +1760,13 @@ paths:
|
|
|
1599
1760
|
|
|
1600
1761
|
'
|
|
1601
1762
|
operationId: listAgentRoster
|
|
1763
|
+
security:
|
|
1764
|
+
- ApiKeyAuth:
|
|
1765
|
+
- runs:read
|
|
1766
|
+
- OAuth2:
|
|
1767
|
+
- runs:read
|
|
1768
|
+
- OpenIdConnect:
|
|
1769
|
+
- runs:read
|
|
1602
1770
|
responses:
|
|
1603
1771
|
'200':
|
|
1604
1772
|
description: The caller's standing roster (rosterId-sorted).
|
|
@@ -1640,6 +1808,13 @@ paths:
|
|
|
1640
1808
|
|
|
1641
1809
|
'
|
|
1642
1810
|
operationId: getAgentRosterEntry
|
|
1811
|
+
security:
|
|
1812
|
+
- ApiKeyAuth:
|
|
1813
|
+
- runs:read
|
|
1814
|
+
- OAuth2:
|
|
1815
|
+
- runs:read
|
|
1816
|
+
- OpenIdConnect:
|
|
1817
|
+
- runs:read
|
|
1643
1818
|
parameters:
|
|
1644
1819
|
- in: path
|
|
1645
1820
|
name: rosterId
|
|
@@ -1687,6 +1862,13 @@ paths:
|
|
|
1687
1862
|
|
|
1688
1863
|
'
|
|
1689
1864
|
operationId: getAgentOrgChart
|
|
1865
|
+
security:
|
|
1866
|
+
- ApiKeyAuth:
|
|
1867
|
+
- runs:read
|
|
1868
|
+
- OAuth2:
|
|
1869
|
+
- runs:read
|
|
1870
|
+
- OpenIdConnect:
|
|
1871
|
+
- runs:read
|
|
1690
1872
|
responses:
|
|
1691
1873
|
'200':
|
|
1692
1874
|
description: The caller's org-chart.
|
|
@@ -1728,6 +1910,13 @@ paths:
|
|
|
1728
1910
|
|
|
1729
1911
|
'
|
|
1730
1912
|
operationId: getAgentOrgChartDepartment
|
|
1913
|
+
security:
|
|
1914
|
+
- ApiKeyAuth:
|
|
1915
|
+
- runs:read
|
|
1916
|
+
- OAuth2:
|
|
1917
|
+
- runs:read
|
|
1918
|
+
- OpenIdConnect:
|
|
1919
|
+
- runs:read
|
|
1731
1920
|
parameters:
|
|
1732
1921
|
- in: path
|
|
1733
1922
|
name: departmentId
|
|
@@ -1788,6 +1977,13 @@ paths:
|
|
|
1788
1977
|
|
|
1789
1978
|
'
|
|
1790
1979
|
operationId: listTools
|
|
1980
|
+
security:
|
|
1981
|
+
- ApiKeyAuth:
|
|
1982
|
+
- runs:read
|
|
1983
|
+
- OAuth2:
|
|
1984
|
+
- runs:read
|
|
1985
|
+
- OpenIdConnect:
|
|
1986
|
+
- runs:read
|
|
1791
1987
|
parameters:
|
|
1792
1988
|
- name: view
|
|
1793
1989
|
in: query
|
|
@@ -1854,6 +2050,13 @@ paths:
|
|
|
1854
2050
|
|
|
1855
2051
|
'
|
|
1856
2052
|
operationId: getTool
|
|
2053
|
+
security:
|
|
2054
|
+
- ApiKeyAuth:
|
|
2055
|
+
- runs:read
|
|
2056
|
+
- OAuth2:
|
|
2057
|
+
- runs:read
|
|
2058
|
+
- OpenIdConnect:
|
|
2059
|
+
- runs:read
|
|
1857
2060
|
parameters:
|
|
1858
2061
|
- in: path
|
|
1859
2062
|
name: toolId
|
|
@@ -1923,6 +2126,13 @@ paths:
|
|
|
1923
2126
|
|
|
1924
2127
|
'
|
|
1925
2128
|
operationId: getEvalSummary
|
|
2129
|
+
security:
|
|
2130
|
+
- ApiKeyAuth:
|
|
2131
|
+
- runs:read
|
|
2132
|
+
- OAuth2:
|
|
2133
|
+
- runs:read
|
|
2134
|
+
- OpenIdConnect:
|
|
2135
|
+
- runs:read
|
|
1926
2136
|
parameters:
|
|
1927
2137
|
- $ref: '#/components/parameters/RunId'
|
|
1928
2138
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -1978,6 +2188,13 @@ paths:
|
|
|
1978
2188
|
|
|
1979
2189
|
'
|
|
1980
2190
|
operationId: diffRun
|
|
2191
|
+
security:
|
|
2192
|
+
- ApiKeyAuth:
|
|
2193
|
+
- runs:read
|
|
2194
|
+
- OAuth2:
|
|
2195
|
+
- runs:read
|
|
2196
|
+
- OpenIdConnect:
|
|
2197
|
+
- runs:read
|
|
1981
2198
|
parameters:
|
|
1982
2199
|
- $ref: '#/components/parameters/RunId'
|
|
1983
2200
|
- name: against
|
|
@@ -2051,6 +2268,13 @@ paths:
|
|
|
2051
2268
|
|
|
2052
2269
|
'
|
|
2053
2270
|
operationId: pauseRun
|
|
2271
|
+
security:
|
|
2272
|
+
- ApiKeyAuth:
|
|
2273
|
+
- runs:cancel
|
|
2274
|
+
- OAuth2:
|
|
2275
|
+
- runs:cancel
|
|
2276
|
+
- OpenIdConnect:
|
|
2277
|
+
- runs:cancel
|
|
2054
2278
|
parameters:
|
|
2055
2279
|
- $ref: '#/components/parameters/RunId'
|
|
2056
2280
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -2123,6 +2347,13 @@ paths:
|
|
|
2123
2347
|
|
|
2124
2348
|
'
|
|
2125
2349
|
operationId: resumeRun
|
|
2350
|
+
security:
|
|
2351
|
+
- ApiKeyAuth:
|
|
2352
|
+
- runs:cancel
|
|
2353
|
+
- OAuth2:
|
|
2354
|
+
- runs:cancel
|
|
2355
|
+
- OpenIdConnect:
|
|
2356
|
+
- runs:cancel
|
|
2126
2357
|
parameters:
|
|
2127
2358
|
- $ref: '#/components/parameters/RunId'
|
|
2128
2359
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -2180,6 +2411,13 @@ paths:
|
|
|
2180
2411
|
- hitl
|
|
2181
2412
|
summary: Resolve an interrupt via the run-scoped surface.
|
|
2182
2413
|
operationId: resolveInterruptByRun
|
|
2414
|
+
security:
|
|
2415
|
+
- ApiKeyAuth:
|
|
2416
|
+
- approvals:respond
|
|
2417
|
+
- OAuth2:
|
|
2418
|
+
- approvals:respond
|
|
2419
|
+
- OpenIdConnect:
|
|
2420
|
+
- approvals:respond
|
|
2183
2421
|
parameters:
|
|
2184
2422
|
- $ref: '#/components/parameters/RunId'
|
|
2185
2423
|
- in: path
|
|
@@ -2333,6 +2571,13 @@ paths:
|
|
|
2333
2571
|
- artifacts
|
|
2334
2572
|
summary: Read a run-produced artifact.
|
|
2335
2573
|
operationId: getArtifact
|
|
2574
|
+
security:
|
|
2575
|
+
- ApiKeyAuth:
|
|
2576
|
+
- artifacts:read
|
|
2577
|
+
- OAuth2:
|
|
2578
|
+
- artifacts:read
|
|
2579
|
+
- OpenIdConnect:
|
|
2580
|
+
- artifacts:read
|
|
2336
2581
|
parameters:
|
|
2337
2582
|
- $ref: '#/components/parameters/RunId'
|
|
2338
2583
|
- in: path
|
|
@@ -2344,12 +2589,17 @@ paths:
|
|
|
2344
2589
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
2345
2590
|
responses:
|
|
2346
2591
|
'200':
|
|
2347
|
-
description: Artifact payload.
|
|
2592
|
+
description: Artifact payload. Under `application/json` the shape is implementation-defined; under `application/a2a+json`
|
|
2593
|
+
(RFC 0205 §A, negotiated by `Accept`; a host SHOULD offer it) it is an A2A `Artifact` whose `artifactId` equals
|
|
2594
|
+
the path segment, and a `url` Part in it MUST NOT resolve beyond the caller's `artifacts:read` authorization.
|
|
2348
2595
|
content:
|
|
2349
2596
|
application/json:
|
|
2350
2597
|
schema:
|
|
2351
2598
|
type: object
|
|
2352
2599
|
description: Implementation-defined artifact shape.
|
|
2600
|
+
application/a2a+json:
|
|
2601
|
+
schema:
|
|
2602
|
+
$ref: ../../schemas/v2/artifact.schema.json
|
|
2353
2603
|
headers:
|
|
2354
2604
|
OpenWOP-Version:
|
|
2355
2605
|
$ref: '#/components/headers/OpenWOPVersion'
|
|
@@ -2365,6 +2615,13 @@ paths:
|
|
|
2365
2615
|
- webhooks
|
|
2366
2616
|
summary: Register a webhook subscription.
|
|
2367
2617
|
operationId: registerWebhook
|
|
2618
|
+
security:
|
|
2619
|
+
- ApiKeyAuth:
|
|
2620
|
+
- webhooks:manage
|
|
2621
|
+
- OAuth2:
|
|
2622
|
+
- webhooks:manage
|
|
2623
|
+
- OpenIdConnect:
|
|
2624
|
+
- webhooks:manage
|
|
2368
2625
|
parameters:
|
|
2369
2626
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
2370
2627
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -2388,12 +2645,34 @@ paths:
|
|
|
2388
2645
|
description: Event types to subscribe to (see `run-event.schema.json` enum).
|
|
2389
2646
|
secret:
|
|
2390
2647
|
type: string
|
|
2391
|
-
description: Server signs payloads with this secret using HMAC-SHA256.
|
|
2648
|
+
description: 'Server signs payloads with this secret using HMAC-SHA256. REQUIRED in the Standard Webhooks
|
|
2649
|
+
form `whsec_<base64>` (24–64 decoded bytes) when `signatureAlgorithms` lists `standard-webhooks-1` (RFC
|
|
2650
|
+
0201 §B.6); never echoed in any response.
|
|
2651
|
+
|
|
2652
|
+
'
|
|
2392
2653
|
tags:
|
|
2393
2654
|
type: array
|
|
2394
2655
|
items:
|
|
2395
2656
|
type: string
|
|
2396
2657
|
description: Filter to runs carrying these tags (see `run-options.md`).
|
|
2658
|
+
signatureAlgorithms:
|
|
2659
|
+
type: array
|
|
2660
|
+
minItems: 1
|
|
2661
|
+
uniqueItems: true
|
|
2662
|
+
contains:
|
|
2663
|
+
const: v1
|
|
2664
|
+
items:
|
|
2665
|
+
type: string
|
|
2666
|
+
enum:
|
|
2667
|
+
- v1
|
|
2668
|
+
- standard-webhooks-1
|
|
2669
|
+
description: 'RFC 0201 §B — the per-subscription opt-in. Absent means `["v1"]`, today''s behaviour byte
|
|
2670
|
+
for byte. When present it MUST contain `v1`, MUST NOT repeat a value, and every value MUST be listed in
|
|
2671
|
+
the host''s `webhooks.signatureAlgorithms`; otherwise `400 validation_error`. Listing `standard-webhooks-1`
|
|
2672
|
+
opts the subscription into the Standard Webhooks 1.0.0 companion scheme, which runs endpoint verification
|
|
2673
|
+
before the `201` (`400 webhook_endpoint_unverified` when the endpoint does not echo the challenge).
|
|
2674
|
+
|
|
2675
|
+
'
|
|
2397
2676
|
additionalProperties: false
|
|
2398
2677
|
responses:
|
|
2399
2678
|
'201':
|
|
@@ -2407,11 +2686,28 @@ paths:
|
|
|
2407
2686
|
properties:
|
|
2408
2687
|
webhookId:
|
|
2409
2688
|
$ref: ../../schemas/v2/ids.schema.json#/$defs/subscriptionId
|
|
2689
|
+
signatureAlgorithms:
|
|
2690
|
+
type: array
|
|
2691
|
+
items:
|
|
2692
|
+
type: string
|
|
2693
|
+
description: RFC 0201 §B.7 — the list the dispatcher will apply; present whenever the request carried
|
|
2694
|
+
`signatureAlgorithms`.
|
|
2410
2695
|
headers:
|
|
2411
2696
|
OpenWOP-Version:
|
|
2412
2697
|
$ref: '#/components/headers/OpenWOPVersion'
|
|
2413
2698
|
'400':
|
|
2414
|
-
|
|
2699
|
+
description: '`validation_error` (malformed body, or an invalid `signatureAlgorithms` / `secret` opt-in, RFC 0201
|
|
2700
|
+
§B), `webhook_url_rejected` (egress), or `webhook_endpoint_unverified` (RFC 0201 §D — an opted-in endpoint did
|
|
2701
|
+
not echo the verification challenge; no subscription is persisted).
|
|
2702
|
+
|
|
2703
|
+
'
|
|
2704
|
+
content:
|
|
2705
|
+
application/json:
|
|
2706
|
+
schema:
|
|
2707
|
+
$ref: ../../schemas/v2/error-envelope.schema.json
|
|
2708
|
+
headers:
|
|
2709
|
+
OpenWOP-Version:
|
|
2710
|
+
$ref: '#/components/headers/OpenWOPVersion'
|
|
2415
2711
|
'401':
|
|
2416
2712
|
$ref: '#/components/responses/Unauthenticated'
|
|
2417
2713
|
'403':
|
|
@@ -2422,6 +2718,13 @@ paths:
|
|
|
2422
2718
|
- webhooks
|
|
2423
2719
|
summary: Unregister a webhook.
|
|
2424
2720
|
operationId: unregisterWebhook
|
|
2721
|
+
security:
|
|
2722
|
+
- ApiKeyAuth:
|
|
2723
|
+
- webhooks:manage
|
|
2724
|
+
- OAuth2:
|
|
2725
|
+
- webhooks:manage
|
|
2726
|
+
- OpenIdConnect:
|
|
2727
|
+
- webhooks:manage
|
|
2425
2728
|
parameters:
|
|
2426
2729
|
- in: path
|
|
2427
2730
|
name: webhookId
|
|
@@ -2471,6 +2774,13 @@ paths:
|
|
|
2471
2774
|
|
|
2472
2775
|
'
|
|
2473
2776
|
operationId: verifyAuditLog
|
|
2777
|
+
security:
|
|
2778
|
+
- ApiKeyAuth:
|
|
2779
|
+
- audit:read
|
|
2780
|
+
- OAuth2:
|
|
2781
|
+
- audit:read
|
|
2782
|
+
- OpenIdConnect:
|
|
2783
|
+
- audit:read
|
|
2474
2784
|
parameters:
|
|
2475
2785
|
- in: query
|
|
2476
2786
|
name: fromSeq
|
|
@@ -2518,6 +2828,13 @@ paths:
|
|
|
2518
2828
|
- prompts
|
|
2519
2829
|
summary: List prompt templates available to the caller.
|
|
2520
2830
|
operationId: listPromptTemplates
|
|
2831
|
+
security:
|
|
2832
|
+
- ApiKeyAuth:
|
|
2833
|
+
- prompts:read
|
|
2834
|
+
- OAuth2:
|
|
2835
|
+
- prompts:read
|
|
2836
|
+
- OpenIdConnect:
|
|
2837
|
+
- prompts:read
|
|
2521
2838
|
parameters:
|
|
2522
2839
|
- in: query
|
|
2523
2840
|
name: kind
|
|
@@ -2607,6 +2924,13 @@ paths:
|
|
|
2607
2924
|
- prompts
|
|
2608
2925
|
summary: Create a new prompt template (mutable libraries only).
|
|
2609
2926
|
operationId: createPromptTemplate
|
|
2927
|
+
security:
|
|
2928
|
+
- ApiKeyAuth:
|
|
2929
|
+
- prompts:write
|
|
2930
|
+
- OAuth2:
|
|
2931
|
+
- prompts:write
|
|
2932
|
+
- OpenIdConnect:
|
|
2933
|
+
- prompts:write
|
|
2610
2934
|
parameters:
|
|
2611
2935
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
2612
2936
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -2682,6 +3006,13 @@ paths:
|
|
|
2682
3006
|
- prompts
|
|
2683
3007
|
summary: Fetch a single prompt template.
|
|
2684
3008
|
operationId: getPromptTemplate
|
|
3009
|
+
security:
|
|
3010
|
+
- ApiKeyAuth:
|
|
3011
|
+
- prompts:read
|
|
3012
|
+
- OAuth2:
|
|
3013
|
+
- prompts:read
|
|
3014
|
+
- OpenIdConnect:
|
|
3015
|
+
- prompts:read
|
|
2685
3016
|
responses:
|
|
2686
3017
|
'200':
|
|
2687
3018
|
description: The PromptTemplate.
|
|
@@ -2744,6 +3075,13 @@ paths:
|
|
|
2744
3075
|
- prompts
|
|
2745
3076
|
summary: Replace a prompt template (mutable libraries; user-source only).
|
|
2746
3077
|
operationId: updatePromptTemplate
|
|
3078
|
+
security:
|
|
3079
|
+
- ApiKeyAuth:
|
|
3080
|
+
- prompts:write
|
|
3081
|
+
- OAuth2:
|
|
3082
|
+
- prompts:write
|
|
3083
|
+
- OpenIdConnect:
|
|
3084
|
+
- prompts:write
|
|
2747
3085
|
parameters:
|
|
2748
3086
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
2749
3087
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
@@ -2808,6 +3146,13 @@ paths:
|
|
|
2808
3146
|
- prompts
|
|
2809
3147
|
summary: Delete a prompt template (mutable libraries; user-source only).
|
|
2810
3148
|
operationId: deletePromptTemplate
|
|
3149
|
+
security:
|
|
3150
|
+
- ApiKeyAuth:
|
|
3151
|
+
- prompts:write
|
|
3152
|
+
- OAuth2:
|
|
3153
|
+
- prompts:write
|
|
3154
|
+
- OpenIdConnect:
|
|
3155
|
+
- prompts:write
|
|
2811
3156
|
responses:
|
|
2812
3157
|
'204':
|
|
2813
3158
|
description: Template deleted.
|
|
@@ -2870,6 +3215,13 @@ paths:
|
|
|
2870
3215
|
|
|
2871
3216
|
'
|
|
2872
3217
|
operationId: renderPromptTemplate
|
|
3218
|
+
security:
|
|
3219
|
+
- ApiKeyAuth:
|
|
3220
|
+
- prompts:read
|
|
3221
|
+
- OAuth2:
|
|
3222
|
+
- prompts:read
|
|
3223
|
+
- OpenIdConnect:
|
|
3224
|
+
- prompts:read
|
|
2873
3225
|
requestBody:
|
|
2874
3226
|
required: true
|
|
2875
3227
|
content:
|
|
@@ -2999,6 +3351,13 @@ paths:
|
|
|
2999
3351
|
$ref: '#/components/responses/Unauthenticated'
|
|
3000
3352
|
parameters:
|
|
3001
3353
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
3354
|
+
security:
|
|
3355
|
+
- ApiKeyAuth:
|
|
3356
|
+
- runs:read
|
|
3357
|
+
- OAuth2:
|
|
3358
|
+
- runs:read
|
|
3359
|
+
- OpenIdConnect:
|
|
3360
|
+
- runs:read
|
|
3002
3361
|
/runs/{runId}/compensation:
|
|
3003
3362
|
parameters:
|
|
3004
3363
|
- $ref: '#/components/parameters/RunId'
|
|
@@ -3023,6 +3382,13 @@ paths:
|
|
|
3023
3382
|
$ref: '#/components/responses/NotFound'
|
|
3024
3383
|
parameters:
|
|
3025
3384
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
3385
|
+
security:
|
|
3386
|
+
- ApiKeyAuth:
|
|
3387
|
+
- runs:read
|
|
3388
|
+
- OAuth2:
|
|
3389
|
+
- runs:read
|
|
3390
|
+
- OpenIdConnect:
|
|
3391
|
+
- runs:read
|
|
3026
3392
|
/runs/{runId}/effects:
|
|
3027
3393
|
parameters:
|
|
3028
3394
|
- $ref: '#/components/parameters/RunId'
|
|
@@ -3046,6 +3412,13 @@ paths:
|
|
|
3046
3412
|
$ref: '#/components/responses/NotFound'
|
|
3047
3413
|
parameters:
|
|
3048
3414
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
3415
|
+
security:
|
|
3416
|
+
- ApiKeyAuth:
|
|
3417
|
+
- runs:read
|
|
3418
|
+
- OAuth2:
|
|
3419
|
+
- runs:read
|
|
3420
|
+
- OpenIdConnect:
|
|
3421
|
+
- runs:read
|
|
3049
3422
|
/webhooks/{webhookId}/dead-letters:
|
|
3050
3423
|
get:
|
|
3051
3424
|
tags:
|
|
@@ -3100,6 +3473,13 @@ paths:
|
|
|
3100
3473
|
$ref: '#/components/responses/Forbidden'
|
|
3101
3474
|
'404':
|
|
3102
3475
|
$ref: '#/components/responses/NotFound'
|
|
3476
|
+
security:
|
|
3477
|
+
- ApiKeyAuth:
|
|
3478
|
+
- webhooks:manage
|
|
3479
|
+
- OAuth2:
|
|
3480
|
+
- webhooks:manage
|
|
3481
|
+
- OpenIdConnect:
|
|
3482
|
+
- webhooks:manage
|
|
3103
3483
|
/host/events:
|
|
3104
3484
|
get:
|
|
3105
3485
|
tags:
|
|
@@ -3122,6 +3502,88 @@ paths:
|
|
|
3122
3502
|
$ref: '#/components/responses/Unauthenticated'
|
|
3123
3503
|
parameters:
|
|
3124
3504
|
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
3505
|
+
security:
|
|
3506
|
+
- ApiKeyAuth:
|
|
3507
|
+
- runs:read
|
|
3508
|
+
- OAuth2:
|
|
3509
|
+
- runs:read
|
|
3510
|
+
- OpenIdConnect:
|
|
3511
|
+
- runs:read
|
|
3512
|
+
/webhooks/{webhookId}/rotate-secret:
|
|
3513
|
+
post:
|
|
3514
|
+
tags:
|
|
3515
|
+
- webhooks
|
|
3516
|
+
operationId: rotateWebhookSecret
|
|
3517
|
+
summary: Rotate a Standard Webhooks subscription's secret with an overlap (RFC 0201 §E)
|
|
3518
|
+
description: 'Gated on `webhooks.secretRotation`: a host that does not advertise it MUST answer `404 not_found`. Only
|
|
3519
|
+
for a subscription that opted into `standard-webhooks-1`; any other subscription gets `400 validation_error` (its
|
|
3520
|
+
single `v1` signature cannot overlap). Tenant checks are exactly those of `unregisterWebhook`: `403 id_tenant_mismatch`
|
|
3521
|
+
when the id''s tenant segment is not the caller''s, checked before the lookup (`identity.md` §5); `404` when unknown.
|
|
3522
|
+
For `overlapSeconds` after `rotatedAt`, `webhook-signature` carries one entry under the new secret and one under the
|
|
3523
|
+
previous one, and `OpenWOP-Signature` stays on the previous secret; at `previousSecretExpiresAt` only the new secret
|
|
3524
|
+
signs. A second rotation inside an overlap retires the oldest secret immediately. Rotation does not re-verify the
|
|
3525
|
+
endpoint. The response carries no secret.'
|
|
3526
|
+
parameters:
|
|
3527
|
+
- name: webhookId
|
|
3528
|
+
in: path
|
|
3529
|
+
required: true
|
|
3530
|
+
schema:
|
|
3531
|
+
$ref: ../../schemas/v2/ids.schema.json#/$defs/subscriptionId
|
|
3532
|
+
description: 'Tenant-bound `<tenantId>/<opaque>` (`identity.md` §5, RFC 0187 §A.1), one path segment: `~`-projected
|
|
3533
|
+
(RFC 0184) or percent-encoded.'
|
|
3534
|
+
- $ref: '#/components/parameters/IdempotencyKey'
|
|
3535
|
+
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
3536
|
+
requestBody:
|
|
3537
|
+
required: true
|
|
3538
|
+
content:
|
|
3539
|
+
application/json:
|
|
3540
|
+
schema:
|
|
3541
|
+
type: object
|
|
3542
|
+
required:
|
|
3543
|
+
- secret
|
|
3544
|
+
additionalProperties: false
|
|
3545
|
+
properties:
|
|
3546
|
+
secret:
|
|
3547
|
+
type: string
|
|
3548
|
+
pattern: ^whsec_[A-Za-z0-9+/]+={0,2}$
|
|
3549
|
+
description: The new secret, `whsec_<base64>` decoding to 24–64 bytes (RFC 0201 §B.6).
|
|
3550
|
+
responses:
|
|
3551
|
+
'200':
|
|
3552
|
+
description: Rotated. No secret is returned.
|
|
3553
|
+
content:
|
|
3554
|
+
application/json:
|
|
3555
|
+
schema:
|
|
3556
|
+
type: object
|
|
3557
|
+
required:
|
|
3558
|
+
- rotatedAt
|
|
3559
|
+
- previousSecretExpiresAt
|
|
3560
|
+
additionalProperties: false
|
|
3561
|
+
properties:
|
|
3562
|
+
rotatedAt:
|
|
3563
|
+
type: string
|
|
3564
|
+
format: date-time
|
|
3565
|
+
previousSecretExpiresAt:
|
|
3566
|
+
type: string
|
|
3567
|
+
format: date-time
|
|
3568
|
+
description: '`rotatedAt + overlapSeconds`.'
|
|
3569
|
+
headers:
|
|
3570
|
+
OpenWOP-Version:
|
|
3571
|
+
$ref: '#/components/headers/OpenWOPVersion'
|
|
3572
|
+
'400':
|
|
3573
|
+
$ref: '#/components/responses/ValidationError'
|
|
3574
|
+
'401':
|
|
3575
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
3576
|
+
'403':
|
|
3577
|
+
$ref: '#/components/responses/Forbidden'
|
|
3578
|
+
'404':
|
|
3579
|
+
$ref: '#/components/responses/NotFound'
|
|
3580
|
+
security:
|
|
3581
|
+
- ApiKeyAuth:
|
|
3582
|
+
- webhooks:manage
|
|
3583
|
+
- OAuth2:
|
|
3584
|
+
- webhooks:manage
|
|
3585
|
+
- OpenIdConnect:
|
|
3586
|
+
- webhooks:manage
|
|
3125
3587
|
components:
|
|
3126
3588
|
securitySchemes:
|
|
3127
3589
|
ApiKeyAuth:
|
|
@@ -3138,6 +3600,88 @@ components:
|
|
|
3138
3600
|
|
|
3139
3601
|
See `auth.md`.
|
|
3140
3602
|
|
|
3603
|
+
'
|
|
3604
|
+
OAuth2:
|
|
3605
|
+
type: oauth2
|
|
3606
|
+
description: 'RFC 0200 §F. OAuth 2.0 lanes — v1 `openwop-auth-oauth2-client-credentials`,
|
|
3607
|
+
|
|
3608
|
+
v2 `auth.lanes[].lane: "oauth2"`. Discovery is RFC 9728 Protected Resource
|
|
3609
|
+
|
|
3610
|
+
Metadata at the path-inserted well-known URI (`identity.md` §2.5).
|
|
3611
|
+
|
|
3612
|
+
Placeholder URLs.
|
|
3613
|
+
|
|
3614
|
+
'
|
|
3615
|
+
flows:
|
|
3616
|
+
clientCredentials:
|
|
3617
|
+
tokenUrl: https://issuer.example/oauth2/token
|
|
3618
|
+
scopes:
|
|
3619
|
+
manifest:read: Read workflow / canvas-type / endpoint manifests
|
|
3620
|
+
runs:create: Create new runs
|
|
3621
|
+
runs:read: Read run state and event stream
|
|
3622
|
+
runs:cancel: Cancel an in-flight run
|
|
3623
|
+
runs:annotate: Record a quality annotation on a run
|
|
3624
|
+
artifacts:read: Read artifacts produced by runs
|
|
3625
|
+
webhooks:manage: Register/unregister webhook subscriptions
|
|
3626
|
+
approvals:respond: Respond to HITL approval gates
|
|
3627
|
+
packs:publish: Publish node-pack versions
|
|
3628
|
+
packs:read: Fetch a published node-pack tarball or signature
|
|
3629
|
+
packs:yank: Yank a node-pack version
|
|
3630
|
+
packs:yank-revert: Reinstate a yanked node-pack version
|
|
3631
|
+
audit:read: Verify audit-log integrity
|
|
3632
|
+
workspace:read: Read agent-workspace files
|
|
3633
|
+
workspace:write: Write agent-workspace files
|
|
3634
|
+
prompts:read: Read and render prompt templates
|
|
3635
|
+
prompts:write: Create, update and delete prompt templates
|
|
3636
|
+
content:read: Read authored content pages and locale settings
|
|
3637
|
+
content:write: Create, publish and translate authored content pages
|
|
3638
|
+
deploy:*: Drive an agent deployment state transition
|
|
3639
|
+
authorizationCode:
|
|
3640
|
+
authorizationUrl: https://issuer.example/oauth2/authorize
|
|
3641
|
+
tokenUrl: https://issuer.example/oauth2/token
|
|
3642
|
+
scopes:
|
|
3643
|
+
manifest:read: Read workflow / canvas-type / endpoint manifests
|
|
3644
|
+
runs:create: Create new runs
|
|
3645
|
+
runs:read: Read run state and event stream
|
|
3646
|
+
runs:cancel: Cancel an in-flight run
|
|
3647
|
+
runs:annotate: Record a quality annotation on a run
|
|
3648
|
+
artifacts:read: Read artifacts produced by runs
|
|
3649
|
+
webhooks:manage: Register/unregister webhook subscriptions
|
|
3650
|
+
approvals:respond: Respond to HITL approval gates
|
|
3651
|
+
packs:publish: Publish node-pack versions
|
|
3652
|
+
packs:read: Fetch a published node-pack tarball or signature
|
|
3653
|
+
packs:yank: Yank a node-pack version
|
|
3654
|
+
packs:yank-revert: Reinstate a yanked node-pack version
|
|
3655
|
+
audit:read: Verify audit-log integrity
|
|
3656
|
+
workspace:read: Read agent-workspace files
|
|
3657
|
+
workspace:write: Write agent-workspace files
|
|
3658
|
+
prompts:read: Read and render prompt templates
|
|
3659
|
+
prompts:write: Create, update and delete prompt templates
|
|
3660
|
+
content:read: Read authored content pages and locale settings
|
|
3661
|
+
content:write: Create, publish and translate authored content pages
|
|
3662
|
+
deploy:*: Drive an agent deployment state transition
|
|
3663
|
+
OpenIdConnect:
|
|
3664
|
+
type: openIdConnect
|
|
3665
|
+
openIdConnectUrl: https://issuer.example/.well-known/openid-configuration
|
|
3666
|
+
description: 'RFC 0200 §F. v1 `openwop-auth-oidc-user-bearer` / v2 `auth.lanes[].lane: "oidc"`.
|
|
3667
|
+
|
|
3668
|
+
An ID token MAY be the bearer only when its `aud` equals the host''s configured
|
|
3669
|
+
|
|
3670
|
+
audience (`identity.md` §2.1); any other `aud` is `audience_mismatch`.
|
|
3671
|
+
|
|
3672
|
+
Placeholder URL.
|
|
3673
|
+
|
|
3674
|
+
'
|
|
3675
|
+
MutualTLS:
|
|
3676
|
+
type: mutualTLS
|
|
3677
|
+
description: 'RFC 0200 §F. v1 `openwop-auth-mtls` / v2 `auth.lanes[].lane: "mtls"`. In OpenWOP
|
|
3678
|
+
|
|
3679
|
+
mTLS is required *in addition to* a bearer, never instead of one, so it appears
|
|
3680
|
+
|
|
3681
|
+
in no canonical requirement below: a host that requires it adds `MutualTLS: []`
|
|
3682
|
+
|
|
3683
|
+
inside each requirement object (AND).
|
|
3684
|
+
|
|
3141
3685
|
'
|
|
3142
3686
|
parameters:
|
|
3143
3687
|
WorkflowId:
|
|
@@ -3184,12 +3728,24 @@ components:
|
|
|
3184
3728
|
responses:
|
|
3185
3729
|
Unauthenticated:
|
|
3186
3730
|
description: Missing or invalid credential.
|
|
3731
|
+
headers:
|
|
3732
|
+
WWW-Authenticate:
|
|
3733
|
+
description: RFC 0200 §B — `Bearer` challenge; `resource_metadata` and `error="invalid_token"` on a host with an
|
|
3734
|
+
oauth2/oidc lane. Never on a non-disclosure 404.
|
|
3735
|
+
schema:
|
|
3736
|
+
type: string
|
|
3187
3737
|
content:
|
|
3188
3738
|
application/json:
|
|
3189
3739
|
schema:
|
|
3190
3740
|
$ref: '#/components/schemas/Error'
|
|
3191
3741
|
Forbidden:
|
|
3192
3742
|
description: Credential valid but lacks required scope or fails resource binding.
|
|
3743
|
+
headers:
|
|
3744
|
+
WWW-Authenticate:
|
|
3745
|
+
description: RFC 0200 §B — `error="insufficient_scope"` with every required `scope` on a scope refusal; absent on
|
|
3746
|
+
a resource-binding 403.
|
|
3747
|
+
schema:
|
|
3748
|
+
type: string
|
|
3193
3749
|
content:
|
|
3194
3750
|
application/json:
|
|
3195
3751
|
schema:
|