@inklok/api-spec 7.8.2 → 7.8.3

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 +142 -1
  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.8.2"
11
+ version: "7.8.3"
12
12
  contact:
13
13
  name: Inklok API Support
14
14
  email: support@inklok.com
@@ -239,6 +239,96 @@ paths:
239
239
  $ref: '#/components/responses/Unauthorized'
240
240
  '403':
241
241
  $ref: '#/components/responses/Forbidden'
242
+ '409':
243
+ $ref: '#/components/responses/Conflict'
244
+ '500':
245
+ $ref: '#/components/responses/InternalServerError'
246
+
247
+ /v1/crypto/identities/{publicKeyId}/recovery:
248
+ get:
249
+ operationId: getCryptoIdentityRecoveryBundleV1
250
+ summary: Get crypto identity recovery bundle
251
+ x-visibility: internal
252
+ description: |
253
+ Returns the encrypted client-side recovery bundle for an authorized account crypto identity. Recovery Keys are never accepted by this API.
254
+ x-required-roles: [workflow-editor, workflow-operator, agreement-auditor, organization-admin]
255
+ tags:
256
+ - Crypto Identities
257
+ parameters:
258
+ - name: publicKeyId
259
+ in: path
260
+ required: true
261
+ schema:
262
+ type: string
263
+ - name: X-Inklok-Org-Id
264
+ in: header
265
+ required: false
266
+ schema:
267
+ type: string
268
+ responses:
269
+ '200':
270
+ description: Encrypted recovery bundle
271
+ content:
272
+ application/json:
273
+ schema:
274
+ type: object
275
+ required: [bundle]
276
+ properties:
277
+ bundle:
278
+ $ref: '#/components/schemas/CryptoIdentityRecoveryBundle'
279
+ '401':
280
+ $ref: '#/components/responses/Unauthorized'
281
+ '403':
282
+ $ref: '#/components/responses/Forbidden'
283
+ '404':
284
+ $ref: '#/components/responses/NotFound'
285
+ '500':
286
+ $ref: '#/components/responses/InternalServerError'
287
+ put:
288
+ operationId: putCryptoIdentityRecoveryBundleV1
289
+ summary: Replace crypto identity recovery bundle
290
+ x-visibility: internal
291
+ description: |
292
+ Stores an encrypted client-side recovery bundle for an authorized account crypto identity. The plaintext private key and Recovery Key are never accepted.
293
+ x-required-roles: [workflow-editor, workflow-operator, agreement-auditor, organization-admin]
294
+ tags:
295
+ - Crypto Identities
296
+ parameters:
297
+ - name: publicKeyId
298
+ in: path
299
+ required: true
300
+ schema:
301
+ type: string
302
+ - name: X-Inklok-Org-Id
303
+ in: header
304
+ required: false
305
+ schema:
306
+ type: string
307
+ requestBody:
308
+ required: true
309
+ content:
310
+ application/json:
311
+ schema:
312
+ $ref: '#/components/schemas/CryptoIdentityRecoveryBundle'
313
+ responses:
314
+ '200':
315
+ description: Stored encrypted recovery bundle
316
+ content:
317
+ application/json:
318
+ schema:
319
+ type: object
320
+ required: [bundle]
321
+ properties:
322
+ bundle:
323
+ $ref: '#/components/schemas/CryptoIdentityRecoveryBundle'
324
+ '400':
325
+ $ref: '#/components/responses/BadRequest'
326
+ '401':
327
+ $ref: '#/components/responses/Unauthorized'
328
+ '403':
329
+ $ref: '#/components/responses/Forbidden'
330
+ '404':
331
+ $ref: '#/components/responses/NotFound'
242
332
  '500':
243
333
  $ref: '#/components/responses/InternalServerError'
244
334
 
@@ -5859,6 +5949,57 @@ components:
5859
5949
  format: date-time
5860
5950
  readOnly: true
5861
5951
 
5952
+ CryptoIdentityRecoveryBundle:
5953
+ type: object
5954
+ description: Client-encrypted account private-key recovery payload. The Recovery Key is never included.
5955
+ required: [identityId, encryptedPrivateKey, salt, iv, kdf, kdfVersion, kdfParams, encryptionAlg, encryptionVersion, aad]
5956
+ properties:
5957
+ identityId:
5958
+ type: string
5959
+ encryptedPrivateKey:
5960
+ type: string
5961
+ description: Base64 AES-GCM ciphertext of the account private key export.
5962
+ salt:
5963
+ type: string
5964
+ iv:
5965
+ type: string
5966
+ kdf:
5967
+ type: string
5968
+ enum: [PBKDF2-SHA-256]
5969
+ kdfVersion:
5970
+ type: integer
5971
+ enum: [1]
5972
+ kdfParams:
5973
+ type: object
5974
+ required: [iterations, hash, saltBytes]
5975
+ properties:
5976
+ iterations:
5977
+ type: integer
5978
+ minimum: 310000
5979
+ hash:
5980
+ type: string
5981
+ enum: [SHA-256]
5982
+ saltBytes:
5983
+ type: integer
5984
+ enum: [16]
5985
+ encryptionAlg:
5986
+ type: string
5987
+ enum: [AES-GCM-256]
5988
+ encryptionVersion:
5989
+ type: integer
5990
+ enum: [1]
5991
+ aad:
5992
+ type: string
5993
+ description: Identity-bound AES-GCM additional authenticated data.
5994
+ createdAt:
5995
+ type: string
5996
+ format: date-time
5997
+ readOnly: true
5998
+ updatedAt:
5999
+ type: string
6000
+ format: date-time
6001
+ readOnly: true
6002
+
5862
6003
  AppendExecutionEventRequest:
5863
6004
  type: object
5864
6005
  required: [type, actorType]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inklok/api-spec",
3
- "version": "7.8.2",
3
+ "version": "7.8.3",
4
4
  "description": "Canonical OpenAPI specification for the Inklok public API.",
5
5
  "main": "openapi.yaml",
6
6
  "license": "MIT",