@inklok/api-spec 7.10.0 → 7.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/openapi.yaml +138 -4
- package/package.json +1 -1
package/openapi.yaml
CHANGED
|
@@ -8,7 +8,7 @@ info:
|
|
|
8
8
|
Authenticate using an API key or bearer token, then use the resources below to manage
|
|
9
9
|
templates, agreements, documents, and signing. For your first integration, start with
|
|
10
10
|
the Quick Start guide.
|
|
11
|
-
version: "7.
|
|
11
|
+
version: "7.11.0"
|
|
12
12
|
contact:
|
|
13
13
|
name: Inklok API Support
|
|
14
14
|
email: support@inklok.com
|
|
@@ -2567,6 +2567,38 @@ paths:
|
|
|
2567
2567
|
'500':
|
|
2568
2568
|
$ref: '#/components/responses/InternalServerError'
|
|
2569
2569
|
|
|
2570
|
+
/v1/templates/{workflowId}/agreements/prepare:
|
|
2571
|
+
post:
|
|
2572
|
+
operationId: prepareAgreementGuestInvitationsV1
|
|
2573
|
+
summary: Prepare an agreement cryptographic context
|
|
2574
|
+
description: |
|
|
2575
|
+
First stage of agreement creation. Reserves the authoritative execution and party IDs,
|
|
2576
|
+
then returns short-lived one-time bootstrap material used by the client to construct the
|
|
2577
|
+
guest invitation capabilities required by the create/finalize request. Preparation does
|
|
2578
|
+
not create a Vault-visible agreement or consume agreement creation usage.
|
|
2579
|
+
|
|
2580
|
+
The response must be finalized against the same workflow, organization, and authenticated
|
|
2581
|
+
principal before `expiresIn` elapses. Raw bootstrap values are never persisted by Inklok.
|
|
2582
|
+
x-required-roles: [workflow-operator, organization-admin]
|
|
2583
|
+
x-required-scopes: [agreements:write]
|
|
2584
|
+
tags: [Agreements]
|
|
2585
|
+
parameters:
|
|
2586
|
+
- name: workflowId
|
|
2587
|
+
in: path
|
|
2588
|
+
required: true
|
|
2589
|
+
schema: { type: string }
|
|
2590
|
+
responses:
|
|
2591
|
+
'200':
|
|
2592
|
+
description: Short-lived authoritative context and one-time material for agreement creation
|
|
2593
|
+
content:
|
|
2594
|
+
application/json:
|
|
2595
|
+
schema:
|
|
2596
|
+
$ref: '#/components/schemas/PrepareGuestInvitationsResponse'
|
|
2597
|
+
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
2598
|
+
'403': { $ref: '#/components/responses/Forbidden' }
|
|
2599
|
+
'404': { $ref: '#/components/responses/NotFound' }
|
|
2600
|
+
'500': { $ref: '#/components/responses/InternalServerError' }
|
|
2601
|
+
|
|
2570
2602
|
/v1/agreements/{executionId}:
|
|
2571
2603
|
get:
|
|
2572
2604
|
operationId: getAgreementV1
|
|
@@ -3075,6 +3107,10 @@ paths:
|
|
|
3075
3107
|
properties:
|
|
3076
3108
|
execution_id:
|
|
3077
3109
|
type: string
|
|
3110
|
+
expires_at:
|
|
3111
|
+
type: string
|
|
3112
|
+
format: date-time
|
|
3113
|
+
description: Immutable agreement deadline; signing is rejected at or after this instant.
|
|
3078
3114
|
agreement_title:
|
|
3079
3115
|
type: string
|
|
3080
3116
|
nullable: true
|
|
@@ -3131,6 +3167,19 @@ paths:
|
|
|
3131
3167
|
type: string
|
|
3132
3168
|
example: RSA-OAEP-256
|
|
3133
3169
|
description: Encrypted document key metadata for this signer
|
|
3170
|
+
key_scopes:
|
|
3171
|
+
type: array
|
|
3172
|
+
items:
|
|
3173
|
+
$ref: '#/components/schemas/KeyScope'
|
|
3174
|
+
key_envelopes:
|
|
3175
|
+
type: array
|
|
3176
|
+
items:
|
|
3177
|
+
$ref: '#/components/schemas/KeyEnvelope'
|
|
3178
|
+
invitation_capabilities:
|
|
3179
|
+
type: array
|
|
3180
|
+
description: Active agreement-specific guest capabilities. Only the authenticated party receives its encrypted private-key package; other parties expose public addressing data only.
|
|
3181
|
+
items:
|
|
3182
|
+
$ref: '#/components/schemas/GuestInvitationCapability'
|
|
3134
3183
|
parties:
|
|
3135
3184
|
type: array
|
|
3136
3185
|
items:
|
|
@@ -6183,7 +6232,7 @@ components:
|
|
|
6183
6232
|
|
|
6184
6233
|
ExecutionStatus:
|
|
6185
6234
|
type: string
|
|
6186
|
-
enum: [pending, in_progress, completed, cancelled]
|
|
6235
|
+
enum: [pending, in_progress, completed, cancelled, expired]
|
|
6187
6236
|
|
|
6188
6237
|
ParticipantStatus:
|
|
6189
6238
|
type: string
|
|
@@ -6288,8 +6337,16 @@ components:
|
|
|
6288
6337
|
|
|
6289
6338
|
CreateExecutionRequest:
|
|
6290
6339
|
type: object
|
|
6291
|
-
required: [agreementTitle, participants, crypto]
|
|
6340
|
+
required: [agreementTitle, participants, crypto, preparedExecutionId, guestInvitations]
|
|
6292
6341
|
properties:
|
|
6342
|
+
preparedExecutionId:
|
|
6343
|
+
type: string
|
|
6344
|
+
format: uuid
|
|
6345
|
+
guestInvitations:
|
|
6346
|
+
type: array
|
|
6347
|
+
minItems: 1
|
|
6348
|
+
items:
|
|
6349
|
+
$ref: '#/components/schemas/CreateGuestInvitationInput'
|
|
6293
6350
|
agreementTitle:
|
|
6294
6351
|
type: string
|
|
6295
6352
|
minLength: 1
|
|
@@ -6324,6 +6381,65 @@ components:
|
|
|
6324
6381
|
items:
|
|
6325
6382
|
$ref: '#/components/schemas/ManagedRecoveryCapability'
|
|
6326
6383
|
|
|
6384
|
+
PrepareGuestInvitationsResponse:
|
|
6385
|
+
type: object
|
|
6386
|
+
required: [executionId, expiresIn, parties]
|
|
6387
|
+
properties:
|
|
6388
|
+
executionId: { type: string, format: uuid }
|
|
6389
|
+
expiresIn: { type: integer }
|
|
6390
|
+
parties:
|
|
6391
|
+
type: array
|
|
6392
|
+
items:
|
|
6393
|
+
type: object
|
|
6394
|
+
required: [roleId, partyId, authorizationCode, bootstrapSecret]
|
|
6395
|
+
properties:
|
|
6396
|
+
roleId: { type: string }
|
|
6397
|
+
partyId: { type: string }
|
|
6398
|
+
authorizationCode: { type: string, writeOnly: true }
|
|
6399
|
+
bootstrapSecret: { type: string, writeOnly: true }
|
|
6400
|
+
|
|
6401
|
+
CreateGuestInvitationInput:
|
|
6402
|
+
type: object
|
|
6403
|
+
required: [partyId, authorizationCode, bootstrapSecret, capability]
|
|
6404
|
+
properties:
|
|
6405
|
+
partyId: { type: string }
|
|
6406
|
+
authorizationCode: { type: string, writeOnly: true }
|
|
6407
|
+
bootstrapSecret: { type: string, writeOnly: true }
|
|
6408
|
+
capability:
|
|
6409
|
+
$ref: '#/components/schemas/GuestInvitationCapabilityInput'
|
|
6410
|
+
|
|
6411
|
+
GuestInvitationCapabilityInput:
|
|
6412
|
+
type: object
|
|
6413
|
+
required: [protocol, invitationKeyId, publicKeySpki, encryptedPrivateKey, iv, salt, aad, kdf, cipher]
|
|
6414
|
+
properties:
|
|
6415
|
+
protocol: { type: string, enum: [inklok-guest-invitation-v1] }
|
|
6416
|
+
invitationKeyId: { type: string }
|
|
6417
|
+
publicKeySpki: { type: string }
|
|
6418
|
+
encryptedPrivateKey: { type: string }
|
|
6419
|
+
iv: { type: string }
|
|
6420
|
+
salt: { type: string }
|
|
6421
|
+
aad: { type: string }
|
|
6422
|
+
kdf: { type: string, enum: [HKDF-SHA-256] }
|
|
6423
|
+
cipher: { type: string, enum: [AES-256-GCM] }
|
|
6424
|
+
|
|
6425
|
+
GuestInvitationCapability:
|
|
6426
|
+
type: object
|
|
6427
|
+
required: [protocol, partyId, invitationKeyId, invitationPrincipalId, publicKeySpki, status]
|
|
6428
|
+
properties:
|
|
6429
|
+
protocol: { type: string, enum: [inklok-guest-invitation-v1] }
|
|
6430
|
+
partyId: { type: string }
|
|
6431
|
+
invitationKeyId: { type: string }
|
|
6432
|
+
invitationPrincipalId: { type: string }
|
|
6433
|
+
publicKeySpki: { type: string }
|
|
6434
|
+
encryptedPrivateKey: { type: string }
|
|
6435
|
+
iv: { type: string }
|
|
6436
|
+
salt: { type: string }
|
|
6437
|
+
aad: { type: string }
|
|
6438
|
+
kdf: { type: string, enum: [HKDF-SHA-256] }
|
|
6439
|
+
cipher: { type: string, enum: [AES-256-GCM] }
|
|
6440
|
+
status: { type: string, enum: [active] }
|
|
6441
|
+
createdAt: { type: string, format: date-time }
|
|
6442
|
+
|
|
6327
6443
|
KeyScope:
|
|
6328
6444
|
type: object
|
|
6329
6445
|
required: [keyScopeId, type, version]
|
|
@@ -6342,6 +6458,13 @@ components:
|
|
|
6342
6458
|
type: array
|
|
6343
6459
|
items:
|
|
6344
6460
|
type: string
|
|
6461
|
+
fieldIds:
|
|
6462
|
+
type: array
|
|
6463
|
+
minItems: 1
|
|
6464
|
+
uniqueItems: true
|
|
6465
|
+
description: Protected workflow fields assigned to this scope. Required by new agreement creation clients so one party may own multiple scopes with different sharing policies.
|
|
6466
|
+
items:
|
|
6467
|
+
type: string
|
|
6345
6468
|
authorizationPolicy:
|
|
6346
6469
|
type: object
|
|
6347
6470
|
additionalProperties: true
|
|
@@ -6355,7 +6478,7 @@ components:
|
|
|
6355
6478
|
protectionMode:
|
|
6356
6479
|
type: string
|
|
6357
6480
|
enum: [MANAGED, STRICT_ZK]
|
|
6358
|
-
description:
|
|
6481
|
+
description: Agreement signing creation requires STRICT_ZK. MANAGED remains in the response model for legacy records.
|
|
6359
6482
|
createdAt:
|
|
6360
6483
|
type: string
|
|
6361
6484
|
format: date-time
|
|
@@ -6912,6 +7035,7 @@ components:
|
|
|
6912
7035
|
currentStep,
|
|
6913
7036
|
totalSteps,
|
|
6914
7037
|
createdAt,
|
|
7038
|
+
expiresAt,
|
|
6915
7039
|
updatedAt,
|
|
6916
7040
|
pdfEngineVersion,
|
|
6917
7041
|
agreementTitle,
|
|
@@ -6944,6 +7068,11 @@ components:
|
|
|
6944
7068
|
type: string
|
|
6945
7069
|
format: date-time
|
|
6946
7070
|
readOnly: true
|
|
7071
|
+
expiresAt:
|
|
7072
|
+
type: string
|
|
7073
|
+
format: date-time
|
|
7074
|
+
readOnly: true
|
|
7075
|
+
description: Immutable deadline exactly 30 days after agreement creation.
|
|
6947
7076
|
updatedAt:
|
|
6948
7077
|
type: string
|
|
6949
7078
|
format: date-time
|
|
@@ -7036,6 +7165,11 @@ components:
|
|
|
7036
7165
|
executionId:
|
|
7037
7166
|
type: string
|
|
7038
7167
|
description: The identifier of an agreement instance.
|
|
7168
|
+
expiresAt:
|
|
7169
|
+
type: string
|
|
7170
|
+
format: date-time
|
|
7171
|
+
nullable: true
|
|
7172
|
+
description: Immutable agreement deadline for active agreements.
|
|
7039
7173
|
organizationId:
|
|
7040
7174
|
type: string
|
|
7041
7175
|
nullable: true
|