@whooshbang/contracts 1.0.0-rc.21 → 1.0.0-rc.22
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/CHANGELOG.md +15 -0
- package/contract-manifest.json +34 -32
- package/dist/generated/artifact-index.d.ts +34 -34
- package/dist/generated/artifact-index.js +34 -32
- package/dist/generated/artifact-index.js.map +1 -1
- package/dist/generated/validators-standalone.d.ts +340 -288
- package/dist/generated/validators-standalone.js +5459 -2824
- package/dist/generated/validators-standalone.js.map +1 -1
- package/dist/generated/validators.d.ts +5 -1
- package/dist/generated/validators.js +5 -1
- package/dist/generated/validators.js.map +1 -1
- package/dist/generated/whooshbang-v1.d.ts +89 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/fixtures/core-v1/fixture-index.json +17 -1
- package/fixtures/core-v1/problems/live-simulator-refused.json +16 -0
- package/fixtures/core-v1/requests/update-project.json +3 -0
- package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +1 -1
- package/fixtures/core-v1/scenarios/cancellation-too-late.json +1 -1
- package/fixtures/core-v1/scenarios/cross-account-project.json +1 -1
- package/fixtures/core-v1/scenarios/cross-project-resource.json +1 -1
- package/fixtures/core-v1/scenarios/environment-mismatch.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/malformed-bearer.json +1 -1
- package/fixtures/core-v1/scenarios/metadata-overrun.json +1 -1
- package/fixtures/core-v1/scenarios/missing-scope.json +1 -1
- package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/project-slug-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-activation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-authorization-capability-opacity.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-cross-connection-callback-rejected.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-expired-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-selected-connection-replay.json +1 -1
- package/fixtures/core-v1/success/project-collection.json +2 -1
- package/fixtures/core-v1/success/project-created.json +2 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/membership-broadcast-snapshot.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/preferred-binding-resolution.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/recipient-session-security.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/subscriber-initial-groups-transaction.json +1 -1
- package/openapi/generated/whooshbang-v1.bundle.json +360 -11
- package/openapi/whooshbang-v1.yaml +216 -2
- package/package.json +1 -1
- package/schemas/core-scenario.schema.json +1 -1
- package/schemas/events/agent-binding-degraded-v1.schema.json +1 -1
- package/schemas/events/interaction-expired-v1.schema.json +1 -1
- package/schemas/events/interaction-received-v1.schema.json +1 -1
- package/schemas/events/message-delivered-v1.schema.json +1 -1
- package/schemas/events/message-expired-v1.schema.json +1 -1
- package/schemas/events/message-failed-v1.schema.json +1 -1
- package/schemas/events/message-provider-accepted-v1.schema.json +1 -1
- package/schemas/events/subscription-activated-v1.schema.json +1 -1
- package/schemas/events/subscription-revoked-v1.schema.json +1 -1
- package/schemas/events/whooshbang-event-v1.schema.json +1 -1
- package/schemas/fixture-index.schema.json +1 -1
- package/schemas/interaction-machine-scenario.schema.json +1 -1
- package/schemas/interaction-v1.schema.json +1 -1
- package/schemas/machine-v1.schema.json +1 -1
- package/schemas/provider-capabilities-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-delivery-case-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-signing-vector-v1.schema.json +1 -1
- package/schemas/whooshbang-v1.schema.json +225 -3
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
openapi: 3.1.1
|
|
2
2
|
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
|
|
3
3
|
# whooshbang:public-origin production api https://api.whooshbang.com
|
|
4
|
-
x-contract-version: 1.0.0-rc.
|
|
4
|
+
x-contract-version: 1.0.0-rc.22
|
|
5
5
|
info:
|
|
6
6
|
title: WhooshBang API
|
|
7
|
-
version: 1.0.0-rc.
|
|
7
|
+
version: 1.0.0-rc.22
|
|
8
8
|
description: |
|
|
9
9
|
The V1 contract for human account/project administration, project-scoped
|
|
10
10
|
subscription links, and asynchronous text messages. A Clerk session selects
|
|
@@ -99,6 +99,56 @@ paths:
|
|
|
99
99
|
$ref: "#/components/responses/Forbidden"
|
|
100
100
|
"429":
|
|
101
101
|
$ref: "#/components/responses/RateLimited"
|
|
102
|
+
/v1/account/close:
|
|
103
|
+
post:
|
|
104
|
+
operationId: closeAccount
|
|
105
|
+
summary: Close the current customer account
|
|
106
|
+
description: |
|
|
107
|
+
Terminally closes the account selected by the verified Clerk
|
|
108
|
+
organization session. Only an administrator may close it. OAuth grants
|
|
109
|
+
and API credentials are deliberately excluded: delegated authority must
|
|
110
|
+
not be able to erase the account that granted it.
|
|
111
|
+
|
|
112
|
+
The request requires the exact confirmation `close-account`. Repeating a
|
|
113
|
+
completed closure is safe and returns the original `closed_at`. The
|
|
114
|
+
result names provider-owned resources the administrator must still retire
|
|
115
|
+
outside WhooshBang, such as revoking a customer-managed Telegram bot token
|
|
116
|
+
in BotFather; no provider credential is returned.
|
|
117
|
+
tags:
|
|
118
|
+
- Account
|
|
119
|
+
security:
|
|
120
|
+
- clerkSession: []
|
|
121
|
+
x-account-membership: required
|
|
122
|
+
x-required-membership-role: admin
|
|
123
|
+
x-repeat-semantics:
|
|
124
|
+
same_target: idempotent
|
|
125
|
+
secret_returned: false
|
|
126
|
+
requestBody:
|
|
127
|
+
required: true
|
|
128
|
+
content:
|
|
129
|
+
application/json:
|
|
130
|
+
schema:
|
|
131
|
+
$ref: "#/components/schemas/CloseAccountRequest"
|
|
132
|
+
responses:
|
|
133
|
+
"200":
|
|
134
|
+
description: The account is closed, with any manual provider retirement still required.
|
|
135
|
+
headers:
|
|
136
|
+
WhooshBang-Diagnostic-Id:
|
|
137
|
+
$ref: "#/components/headers/DiagnosticId"
|
|
138
|
+
content:
|
|
139
|
+
application/json:
|
|
140
|
+
schema:
|
|
141
|
+
$ref: "#/components/schemas/AccountClosureResult"
|
|
142
|
+
"400":
|
|
143
|
+
$ref: "#/components/responses/BadRequest"
|
|
144
|
+
"401":
|
|
145
|
+
$ref: "#/components/responses/Unauthorized"
|
|
146
|
+
"403":
|
|
147
|
+
$ref: "#/components/responses/Forbidden"
|
|
148
|
+
"409":
|
|
149
|
+
$ref: "#/components/responses/Conflict"
|
|
150
|
+
"429":
|
|
151
|
+
$ref: "#/components/responses/RateLimited"
|
|
102
152
|
/v1/account/credentials:
|
|
103
153
|
get:
|
|
104
154
|
operationId: listAccountCredentials
|
|
@@ -426,6 +476,57 @@ paths:
|
|
|
426
476
|
$ref: "#/components/responses/NotFound"
|
|
427
477
|
"429":
|
|
428
478
|
$ref: "#/components/responses/RateLimited"
|
|
479
|
+
patch:
|
|
480
|
+
operationId: updateProject
|
|
481
|
+
summary: Set a project's privacy policy
|
|
482
|
+
description: |
|
|
483
|
+
Changes profile collection for both project environments. minimal is the
|
|
484
|
+
default for new and existing projects. standard permits messenger profiles;
|
|
485
|
+
minimal keeps recipient language only; private keeps delivery routing and
|
|
486
|
+
the customer-supplied subscriber identifier, with no profile data.
|
|
487
|
+
Moving standard to minimal erases existing identifying profile fields.
|
|
488
|
+
Moving to private also erases recipient language. Increasing collection
|
|
489
|
+
does not restore erased data. The operation is naturally idempotent.
|
|
490
|
+
An absent project and one outside the account return the same 404.
|
|
491
|
+
tags:
|
|
492
|
+
- Projects
|
|
493
|
+
security:
|
|
494
|
+
- clerkSession: []
|
|
495
|
+
- bearerGrant: []
|
|
496
|
+
- bearerCredential: []
|
|
497
|
+
- bearerAccountCredential: []
|
|
498
|
+
x-required-scopes:
|
|
499
|
+
- projects:write
|
|
500
|
+
x-account-membership: required
|
|
501
|
+
requestBody:
|
|
502
|
+
required: true
|
|
503
|
+
content:
|
|
504
|
+
application/json:
|
|
505
|
+
schema:
|
|
506
|
+
$ref: "#/components/schemas/UpdateProjectRequest"
|
|
507
|
+
examples:
|
|
508
|
+
updateProject:
|
|
509
|
+
externalValue: ../fixtures/core-v1/requests/update-project.json
|
|
510
|
+
responses:
|
|
511
|
+
"200":
|
|
512
|
+
description: The project after changing its privacy policy and clearing disallowed profile fields.
|
|
513
|
+
headers:
|
|
514
|
+
WhooshBang-Diagnostic-Id:
|
|
515
|
+
$ref: "#/components/headers/DiagnosticId"
|
|
516
|
+
content:
|
|
517
|
+
application/json:
|
|
518
|
+
schema:
|
|
519
|
+
$ref: "#/components/schemas/Project"
|
|
520
|
+
"400":
|
|
521
|
+
$ref: "#/components/responses/BadRequest"
|
|
522
|
+
"401":
|
|
523
|
+
$ref: "#/components/responses/Unauthorized"
|
|
524
|
+
"403":
|
|
525
|
+
$ref: "#/components/responses/Forbidden"
|
|
526
|
+
"404":
|
|
527
|
+
$ref: "#/components/responses/NotFound"
|
|
528
|
+
"429":
|
|
529
|
+
$ref: "#/components/responses/RateLimited"
|
|
429
530
|
/v1/projects/{project_id}/recipient-copy-overrides:
|
|
430
531
|
parameters:
|
|
431
532
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -1021,6 +1122,10 @@ paths:
|
|
|
1021
1122
|
Durably accepts one logical text message for one subscriber and one
|
|
1022
1123
|
resolved channel binding. `202` proves API acceptance only; it does not
|
|
1023
1124
|
claim provider acceptance or end-device delivery.
|
|
1125
|
+
The reserved `test:` subscriber prefix and `delivery_target: simulator`
|
|
1126
|
+
are test-environment-only. Live sends are refused before acceptance or
|
|
1127
|
+
idempotent replay with `400 request_invalid`; reserved subscriber IDs
|
|
1128
|
+
carry a field error at `/to/subscriber_id`.
|
|
1024
1129
|
tags:
|
|
1025
1130
|
- Messages
|
|
1026
1131
|
security:
|
|
@@ -1276,6 +1381,8 @@ paths:
|
|
|
1276
1381
|
project credential. The notifier, subscriber, and active binding become
|
|
1277
1382
|
immutable authorization bounds. The response never contains a readable
|
|
1278
1383
|
secret or digest.
|
|
1384
|
+
Live environments reject the reserved `test:` subscriber prefix with
|
|
1385
|
+
`400 request_invalid` and a field error at `/subscriber_id` before creation.
|
|
1279
1386
|
tags:
|
|
1280
1387
|
- Machine clients
|
|
1281
1388
|
security:
|
|
@@ -4740,6 +4847,103 @@ paths:
|
|
|
4740
4847
|
$ref: "#/components/responses/Forbidden"
|
|
4741
4848
|
"404":
|
|
4742
4849
|
$ref: "#/components/responses/NotFound"
|
|
4850
|
+
/v1/projects/{project_id}/subscribers/{subscriber_id}:
|
|
4851
|
+
parameters:
|
|
4852
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
4853
|
+
- name: subscriber_id
|
|
4854
|
+
in: path
|
|
4855
|
+
required: true
|
|
4856
|
+
schema:
|
|
4857
|
+
$ref: "#/components/schemas/OpaqueIdentifier"
|
|
4858
|
+
delete:
|
|
4859
|
+
operationId: eraseSubscriber
|
|
4860
|
+
summary: Erase one subscriber across the project
|
|
4861
|
+
description: |
|
|
4862
|
+
Erases the person represented by this customer-supplied subscriber id
|
|
4863
|
+
across both project environments. Personal content, answers, identities,
|
|
4864
|
+
and identifiers are removed while non-identifying delivery and usage
|
|
4865
|
+
shells remain. Pending work and old capabilities cannot restore or send
|
|
4866
|
+
data for the erased person.
|
|
4867
|
+
|
|
4868
|
+
Repeating the operation is safe, including when the subscriber is already
|
|
4869
|
+
absent. Project-environment credentials cannot call this project-wide
|
|
4870
|
+
operation. A provider action that has already begun returns
|
|
4871
|
+
`privacy_operation_in_progress` rather than claiming erasure won the race;
|
|
4872
|
+
retry after that operation finishes.
|
|
4873
|
+
tags:
|
|
4874
|
+
- Subscribers
|
|
4875
|
+
security:
|
|
4876
|
+
- clerkSession: []
|
|
4877
|
+
- bearerGrant: []
|
|
4878
|
+
- bearerAccountCredential: []
|
|
4879
|
+
x-required-scopes:
|
|
4880
|
+
- subscriptions:write
|
|
4881
|
+
- messages:write
|
|
4882
|
+
- machine-clients:write
|
|
4883
|
+
x-account-membership: required
|
|
4884
|
+
x-repeat-semantics:
|
|
4885
|
+
same_target: idempotent
|
|
4886
|
+
secret_returned: false
|
|
4887
|
+
responses:
|
|
4888
|
+
"204":
|
|
4889
|
+
description: The subscriber's personal data is erased or was already absent.
|
|
4890
|
+
"401":
|
|
4891
|
+
$ref: "#/components/responses/Unauthorized"
|
|
4892
|
+
"403":
|
|
4893
|
+
$ref: "#/components/responses/Forbidden"
|
|
4894
|
+
"404":
|
|
4895
|
+
$ref: "#/components/responses/NotFound"
|
|
4896
|
+
"409":
|
|
4897
|
+
$ref: "#/components/responses/Conflict"
|
|
4898
|
+
"429":
|
|
4899
|
+
$ref: "#/components/responses/RateLimited"
|
|
4900
|
+
/v1/projects/{project_id}/subscribers/{subscriber_id}/data-export:
|
|
4901
|
+
parameters:
|
|
4902
|
+
- $ref: "#/components/parameters/ProjectId"
|
|
4903
|
+
- name: subscriber_id
|
|
4904
|
+
in: path
|
|
4905
|
+
required: true
|
|
4906
|
+
schema:
|
|
4907
|
+
$ref: "#/components/schemas/OpaqueIdentifier"
|
|
4908
|
+
get:
|
|
4909
|
+
operationId: getSubscriberDataExport
|
|
4910
|
+
summary: Export all customer-controlled data held for one subscriber
|
|
4911
|
+
description: |
|
|
4912
|
+
Returns one complete, machine-readable artifact across every environment
|
|
4913
|
+
in the project. `provided_by_subscriber` is the Article 20 portable subset;
|
|
4914
|
+
the three provenance sections together provide the Article 15 access copy.
|
|
4915
|
+
WhooshBang-controller audit and service log data is identified as excluded
|
|
4916
|
+
and requires a separate recipient request. Project-environment credentials
|
|
4917
|
+
cannot call this project-wide operation.
|
|
4918
|
+
tags:
|
|
4919
|
+
- Subscribers
|
|
4920
|
+
security:
|
|
4921
|
+
- clerkSession: []
|
|
4922
|
+
- bearerGrant: []
|
|
4923
|
+
- bearerAccountCredential: []
|
|
4924
|
+
x-required-scopes:
|
|
4925
|
+
- subscriptions:read
|
|
4926
|
+
- messages:read
|
|
4927
|
+
- machine-clients:read
|
|
4928
|
+
x-account-membership: required
|
|
4929
|
+
responses:
|
|
4930
|
+
"200":
|
|
4931
|
+
description: Complete project-wide customer-controller subscriber data export.
|
|
4932
|
+
headers:
|
|
4933
|
+
Content-Disposition:
|
|
4934
|
+
schema:
|
|
4935
|
+
type: string
|
|
4936
|
+
description: Fixed safe attachment filename.
|
|
4937
|
+
content:
|
|
4938
|
+
application/json:
|
|
4939
|
+
schema:
|
|
4940
|
+
$ref: "#/components/schemas/SubscriberDataExport"
|
|
4941
|
+
"401":
|
|
4942
|
+
$ref: "#/components/responses/Unauthorized"
|
|
4943
|
+
"403":
|
|
4944
|
+
$ref: "#/components/responses/Forbidden"
|
|
4945
|
+
"404":
|
|
4946
|
+
$ref: "#/components/responses/NotFound"
|
|
4743
4947
|
/v1/projects/{project_id}/environments/{environment_id}/recipient-groups:
|
|
4744
4948
|
parameters:
|
|
4745
4949
|
- $ref: "#/components/parameters/ProjectId"
|
|
@@ -5577,6 +5781,10 @@ components:
|
|
|
5577
5781
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/IdempotencyKey
|
|
5578
5782
|
AccountProjection:
|
|
5579
5783
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/AccountProjection
|
|
5784
|
+
UpdateProjectRequest:
|
|
5785
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/UpdateProjectRequest
|
|
5786
|
+
PrivacyMode:
|
|
5787
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/PrivacyMode
|
|
5580
5788
|
CreateProjectRequest:
|
|
5581
5789
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/CreateProjectRequest
|
|
5582
5790
|
DefaultNotifierSummary:
|
|
@@ -5725,6 +5933,12 @@ components:
|
|
|
5725
5933
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/CreateSubscriberRequest
|
|
5726
5934
|
Subscriber:
|
|
5727
5935
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/Subscriber
|
|
5936
|
+
SubscriberDataExport:
|
|
5937
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/SubscriberDataExport
|
|
5938
|
+
CloseAccountRequest:
|
|
5939
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/CloseAccountRequest
|
|
5940
|
+
AccountClosureResult:
|
|
5941
|
+
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/AccountClosureResult
|
|
5728
5942
|
CreateRecipientGroupRequest:
|
|
5729
5943
|
$ref: ../schemas/whooshbang-v1.schema.json#/$defs/CreateRecipientGroupRequest
|
|
5730
5944
|
UpdateRecipientGroupRequest:
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/core-scenario.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "CoreContractScenario",
|
|
6
6
|
"description": "A deterministic C0-02 semantic, state, idempotency, or isolation scenario.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/agent-binding-degraded-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "AgentBindingDegradedEventV1",
|
|
6
6
|
"description": "An agent binding entered a provider-neutral degraded state.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/AgentBindingDegradedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/interaction-expired-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "InteractionExpiredEventV1",
|
|
6
6
|
"description": "An interaction reached its terminal expiry without a valid answer.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/InteractionExpiredEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/interaction-received-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "InteractionReceivedEventV1",
|
|
6
6
|
"description": "One authenticated, provider-neutral interaction answer was received.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/InteractionReceivedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-delivered-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "MessageDeliveredEventV1",
|
|
6
6
|
"description": "A provider supplied trustworthy evidence that a message was delivered.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageDeliveredEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-expired-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "MessageExpiredEventV1",
|
|
6
6
|
"description": "A message expired before reaching a later delivery state.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageExpiredEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-failed-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "MessageFailedEventV1",
|
|
6
6
|
"description": "A message reached a classified terminal failure.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageFailedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/message-provider-accepted-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "MessageProviderAcceptedEventV1",
|
|
6
6
|
"description": "The provider accepted a message without implying delivery.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/MessageProviderAcceptedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/subscription-activated-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "SubscriptionActivatedEventV1",
|
|
6
6
|
"description": "A subscription became active with a safe public channel binding.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/SubscriptionActivatedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/subscription-revoked-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "SubscriptionRevokedEventV1",
|
|
6
6
|
"description": "A subscription and its safe public channel binding were revoked.",
|
|
7
7
|
"$ref": "whooshbang-event-v1.schema.json#/$defs/SubscriptionRevokedEvent"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/events/whooshbang-event-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "WhooshBangEventV1ContractDocument",
|
|
6
6
|
"description": "Strict public customer-event envelope and initial WhooshBang event union.",
|
|
7
7
|
"oneOf": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/fixture-index.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "CoreFixtureIndex",
|
|
6
6
|
"description": "The machine-readable index of deterministic C0-02 through C0-04 golden fixtures.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/interaction-machine-scenario.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "InteractionMachineScenario",
|
|
6
6
|
"description": "A deterministic C0-03 interaction, credential, authorization, polling, acknowledgement, or quarantine scenario.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/interaction-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "InteractionV1ContractDocument",
|
|
6
6
|
"description": "Provider-neutral confirm, single-select, input, lifecycle, callback-token, and authenticated answer-event contracts.",
|
|
7
7
|
"oneOf": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/machine-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "MachineV1ContractDocument",
|
|
6
6
|
"description": "Machine-client administration, locally generated credential metadata, durable long-poll, and contiguous acknowledgement contracts.",
|
|
7
7
|
"oneOf": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/provider-capabilities-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "ProviderCapabilitiesV1",
|
|
6
6
|
"description": "Provider-neutral, renderer-facing delivery and interaction capabilities with explicit degradation.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/webhooks/webhook-delivery-case-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "WebhookDeliveryCaseSetV1",
|
|
6
6
|
"description": "Deterministic customer webhook response classification, Retry-After, and delivery-bound cases.",
|
|
7
7
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://whooshbang.flowxo.com/schemas/webhooks/webhook-signing-vector-v1.schema.json",
|
|
4
|
-
"x-contract-version": "1.0.0-rc.
|
|
4
|
+
"x-contract-version": "1.0.0-rc.22",
|
|
5
5
|
"title": "WebhookSigningVectorSetV1",
|
|
6
6
|
"description": "Language-neutral deterministic Standard Webhooks V1 verification vectors. All key material is public synthetic test data and must never be used outside fixtures.",
|
|
7
7
|
"type": "object",
|