@inklok/api-spec 7.11.0 → 7.11.2

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.
Files changed (2) hide show
  1. package/openapi.yaml +48 -9
  2. 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.0"
11
+ version: "7.11.2"
12
12
  contact:
13
13
  name: Inklok API Support
14
14
  email: support@inklok.com
@@ -1278,12 +1278,13 @@ paths:
1278
1278
  operationId: exchangeMagicLink
1279
1279
  summary: Exchange a signing link for an access token
1280
1280
  description: |
1281
- Exchanges a signing link code for a short-lived bearer token that lets a
1282
- recipient view or sign an agreement.
1281
+ Exchanges an agreement-link code for a short-lived party-scoped bearer token.
1283
1282
 
1284
- Codes can be used once. If a code has expired and the agreement is still
1285
- available, Inklok may send the recipient a refreshed signing link. Agreements
1286
- that can no longer be signed return an unavailable status.
1283
+ SIGNING links are one-time capabilities. When an eligible signing link is no
1284
+ longer usable, callers may request a replacement signing link. COMPLETED_VIEW
1285
+ links are read-only capabilities that may be exchanged repeatedly during their
1286
+ finite validity window so a client can renew an expired signer JWT. The backend
1287
+ stored link purpose, not a URL query parameter, controls replay policy.
1287
1288
  tags:
1288
1289
  - Authentication
1289
1290
  requestBody:
@@ -1296,8 +1297,16 @@ paths:
1296
1297
  properties:
1297
1298
  code:
1298
1299
  type: string
1300
+ request_reissue:
1301
+ type: boolean
1302
+ default: false
1303
+ description: |
1304
+ Requests a replacement link when an eligible one-time SIGNING code
1305
+ can no longer be used. COMPLETED_VIEW links are reusable and are not
1306
+ reissued through this mechanism.
1299
1307
  example:
1300
1308
  code: "7f3c9e2a-4d7a-4f35-a977-2d2b7e0fd9a1"
1309
+ request_reissue: false
1301
1310
  responses:
1302
1311
  '200':
1303
1312
  description: Token issued, link reissued, or signing unavailable
@@ -1306,7 +1315,7 @@ paths:
1306
1315
  schema:
1307
1316
  oneOf:
1308
1317
  - type: object
1309
- required: [access_token, token_type, expires_in]
1318
+ required: [access_token, token_type, expires_in, link_purpose, reusable]
1310
1319
  properties:
1311
1320
  access_token:
1312
1321
  type: string
@@ -1316,6 +1325,13 @@ paths:
1316
1325
  expires_in:
1317
1326
  type: integer
1318
1327
  description: Token lifetime in seconds
1328
+ link_purpose:
1329
+ type: string
1330
+ enum: [SIGNING, COMPLETED_VIEW]
1331
+ description: Server-authoritative purpose stored with the link record.
1332
+ reusable:
1333
+ type: boolean
1334
+ description: Whether the same code may be exchanged again during its validity window.
1319
1335
  - type: object
1320
1336
  required: [status, message]
1321
1337
  properties:
@@ -1339,6 +1355,8 @@ paths:
1339
1355
  access_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
1340
1356
  token_type: "Bearer"
1341
1357
  expires_in: 900
1358
+ link_purpose: "COMPLETED_VIEW"
1359
+ reusable: true
1342
1360
  '400':
1343
1361
  $ref: '#/components/responses/BadRequest'
1344
1362
  '401':
@@ -3081,12 +3099,29 @@ paths:
3081
3099
  operationId: getSigningAgreement
3082
3100
  summary: Get signing details
3083
3101
  description: |
3084
- Returns the agreement details visible to the authenticated signer, including
3085
- the document, participant status, fields, and current signing state.
3102
+ Returns the agreement details visible to the authorized participant. A party-scoped
3103
+ signer bearer token uses the party embedded in the token and requires no query selectors.
3104
+ An authenticated Cognito account may instead supply both `executionId` and `partyId` to
3105
+ read a completed agreement when that exact party is durably bound to the authenticated
3106
+ user. Completed account reads are read-only, expose only the matching USER envelope
3107
+ projection, and never return guest invitation capability secrets.
3086
3108
  tags:
3087
3109
  - Signing
3088
3110
  security:
3089
3111
  - bearerAuth: []
3112
+ parameters:
3113
+ - name: executionId
3114
+ in: query
3115
+ required: false
3116
+ description: Required with `partyId` only for authenticated account access to a completed agreement. Ignored for party-scoped signer tokens.
3117
+ schema:
3118
+ type: string
3119
+ - name: partyId
3120
+ in: query
3121
+ required: false
3122
+ description: Required with `executionId` only for authenticated account access. The party must already be durably bound to the authenticated USER.
3123
+ schema:
3124
+ type: string
3090
3125
  responses:
3091
3126
  '200':
3092
3127
  description: Agreement data for signer
@@ -3225,8 +3260,12 @@ paths:
3225
3260
  description: JSON-serialized ScopedEncryptedFieldValue (v2). The server stores this string verbatim only after structural and authoritative binding validation.
3226
3261
  required:
3227
3262
  type: boolean
3263
+ '400':
3264
+ $ref: '#/components/responses/BadRequest'
3228
3265
  '401':
3229
3266
  $ref: '#/components/responses/Unauthorized'
3267
+ '403':
3268
+ $ref: '#/components/responses/Forbidden'
3230
3269
  '500':
3231
3270
  $ref: '#/components/responses/InternalServerError'
3232
3271
  x-inklok-lambda: signing-get-execution
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inklok/api-spec",
3
- "version": "7.11.0",
3
+ "version": "7.11.2",
4
4
  "description": "Canonical OpenAPI specification for the Inklok public API.",
5
5
  "main": "openapi.yaml",
6
6
  "license": "MIT",