@inklok/api-spec 7.5.1 → 7.6.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.
Files changed (2) hide show
  1. package/openapi.yaml +383 -7
  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.5.1"
11
+ version: "7.6.0"
12
12
  contact:
13
13
  name: Inklok API Support
14
14
  email: support@inklok.com
@@ -408,6 +408,89 @@ paths:
408
408
  '500':
409
409
  $ref: '#/components/responses/InternalServerError'
410
410
 
411
+ /platform/entitlements:
412
+ get:
413
+ operationId: getPlatformEntitlements
414
+ summary: Lookup Platform entitlements
415
+ x-visibility: internal
416
+ description: |
417
+ Looks up organization entitlement information for internal operators.
418
+ Requires an authorized platform administrator.
419
+ x-required-global-roles: [PLATFORM_ADMIN]
420
+ tags:
421
+ - Platform
422
+ parameters:
423
+ - in: query
424
+ name: orgId
425
+ schema:
426
+ type: string
427
+ description: Organization ID to inspect.
428
+ - in: query
429
+ name: accountId
430
+ schema:
431
+ type: string
432
+ description: Customer account identifier to inspect.
433
+ - in: query
434
+ name: q
435
+ schema:
436
+ type: string
437
+ description: Organization name or identifier search.
438
+ responses:
439
+ '200':
440
+ description: Successfully retrieved Platform entitlement information
441
+ content:
442
+ application/json:
443
+ schema:
444
+ $ref: '#/components/schemas/PlatformEntitlementLookupResponse'
445
+ '400':
446
+ $ref: '#/components/responses/BadRequest'
447
+ '401':
448
+ $ref: '#/components/responses/Unauthorized'
449
+ '403':
450
+ $ref: '#/components/responses/Forbidden'
451
+ '500':
452
+ $ref: '#/components/responses/InternalServerError'
453
+
454
+ /platform/entitlements/{orgId}:
455
+ patch:
456
+ operationId: updatePlatformEntitlement
457
+ summary: Update Platform seat entitlements
458
+ x-visibility: internal
459
+ description: |
460
+ Updates editable seat entitlement values for an organization.
461
+ effectiveSeatLimit is always derived server-side.
462
+ Requires an authorized platform administrator.
463
+ x-required-global-roles: [PLATFORM_ADMIN]
464
+ tags:
465
+ - Platform
466
+ parameters:
467
+ - in: path
468
+ name: orgId
469
+ required: true
470
+ schema:
471
+ type: string
472
+ requestBody:
473
+ required: true
474
+ content:
475
+ application/json:
476
+ schema:
477
+ $ref: '#/components/schemas/PlatformEntitlementUpdateRequest'
478
+ responses:
479
+ '200':
480
+ description: Successfully updated Platform entitlement information
481
+ content:
482
+ application/json:
483
+ schema:
484
+ $ref: '#/components/schemas/PlatformEntitlementDetail'
485
+ '400':
486
+ $ref: '#/components/responses/BadRequest'
487
+ '401':
488
+ $ref: '#/components/responses/Unauthorized'
489
+ '403':
490
+ $ref: '#/components/responses/Forbidden'
491
+ '500':
492
+ $ref: '#/components/responses/InternalServerError'
493
+
411
494
  /platform/ses:
412
495
  get:
413
496
  operationId: getPlatformSes
@@ -2202,19 +2285,30 @@ paths:
2202
2285
  x-visibility: internal
2203
2286
  description: |
2204
2287
  Returns simulated emails generated by sandbox agreement workflows visible
2205
- to the authenticated account or the caller's sandbox API-key organization.
2288
+ to the authenticated Cognito user account. API key authentication is not
2289
+ supported for Sandbox Inbox.
2206
2290
  When an agreement action would normally send a notification to a party,
2207
2291
  Inklok creates a simulated email in Sandbox Inbox instead. No emails are
2208
2292
  sent to recipients. Recipient email address is not used for visibility.
2209
2293
  The endpoint uses an explicit allowlist of agreement lifecycle email event
2210
2294
  types and never returns authentication, identity, invitation, security, or
2211
2295
  generic outbound email history. List items are summary-only and do not
2212
- include rendered email bodies.
2296
+ include rendered email bodies. When `messageId` is supplied, the response
2297
+ includes sanitized rendered preview content with executable hrefs, magic
2298
+ links, signer tokens, signing URLs, and replay-enabling identifiers removed.
2299
+ Sanitization is applied to every user-visible Sandbox Inbox field in the
2300
+ response, including subject, preview text, participant labels, agreement
2301
+ titles, and rendered bodies. Email event records remain unchanged.
2213
2302
  x-required-roles: [workflow-editor, workflow-operator, agreement-auditor, organization-admin, platform-super-admin]
2214
- x-required-scopes: [agreements:read]
2215
2303
  tags:
2216
2304
  - Me
2217
2305
  parameters:
2306
+ - name: messageId
2307
+ in: query
2308
+ required: false
2309
+ schema:
2310
+ type: string
2311
+ description: Optional Sandbox Inbox message identifier. When supplied, returns a sanitized message detail instead of a paginated summary list.
2218
2312
  - name: limit
2219
2313
  in: query
2220
2314
  required: false
@@ -2233,11 +2327,13 @@ paths:
2233
2327
  description: Opaque pagination cursor returned by a previous response.
2234
2328
  responses:
2235
2329
  '200':
2236
- description: Simulated Sandbox agreement emails for the authenticated user
2330
+ description: Simulated Sandbox agreement emails or sanitized message detail for the authenticated user
2237
2331
  content:
2238
2332
  application/json:
2239
2333
  schema:
2240
- $ref: '#/components/schemas/SandboxInboxResponse'
2334
+ oneOf:
2335
+ - $ref: '#/components/schemas/SandboxInboxResponse'
2336
+ - $ref: '#/components/schemas/SandboxInboxDetail'
2241
2337
  '401':
2242
2338
  $ref: '#/components/responses/Unauthorized'
2243
2339
  '403':
@@ -3311,10 +3407,11 @@ components:
3311
3407
  email:
3312
3408
  type: string
3313
3409
  nullable: true
3314
- format: email
3410
+ description: Sanitized recipient address preview. Token-like values and replay-enabling identifiers are removed at retrieval time.
3315
3411
  label:
3316
3412
  type: string
3317
3413
  nullable: true
3414
+ description: Sanitized participant display label. Token-like values and replay-enabling identifiers are removed at retrieval time.
3318
3415
 
3319
3416
  SandboxInboxItem:
3320
3417
  type: object
@@ -3336,6 +3433,7 @@ components:
3336
3433
  agreementTitle:
3337
3434
  type: string
3338
3435
  nullable: true
3436
+ description: Sanitized agreement title preview. Token-like values and replay-enabling identifiers are removed at retrieval time.
3339
3437
  eventType:
3340
3438
  type: string
3341
3439
  enum: [SIGN_REQUEST, NEXT_STEP, COMPLETED, REMINDER, SIGNING_REMINDER, AGREEMENT_REMINDER]
@@ -3344,15 +3442,35 @@ components:
3344
3442
  sender:
3345
3443
  type: string
3346
3444
  nullable: true
3445
+ description: Sanitized sender preview. Token-like values and replay-enabling identifiers are removed at retrieval time.
3347
3446
  subject:
3348
3447
  type: string
3349
3448
  nullable: true
3449
+ description: Sanitized email subject preview. Token-like values, signing URLs, and replay-enabling identifiers are removed at retrieval time.
3350
3450
  preview:
3351
3451
  type: string
3452
+ description: Sanitized list preview. Token-like values, signing URLs, and replay-enabling identifiers are removed at retrieval time.
3352
3453
  sentAt:
3353
3454
  type: string
3354
3455
  format: date-time
3355
3456
 
3457
+ SandboxInboxDetail:
3458
+ allOf:
3459
+ - $ref: '#/components/schemas/SandboxInboxItem'
3460
+ - type: object
3461
+ required:
3462
+ - htmlBody
3463
+ - textBody
3464
+ properties:
3465
+ htmlBody:
3466
+ type: string
3467
+ nullable: true
3468
+ description: Sanitized rendered HTML preview. Executable hrefs, magic links, signer tokens, signing URLs, and replay-enabling identifiers are removed at retrieval time.
3469
+ textBody:
3470
+ type: string
3471
+ nullable: true
3472
+ description: Sanitized plain-text preview. Magic links, signer tokens, signing URLs, and replay-enabling identifiers are removed at retrieval time.
3473
+
3356
3474
  SandboxInboxResponse:
3357
3475
  type: object
3358
3476
  required:
@@ -3876,6 +3994,264 @@ components:
3876
3994
  type: string
3877
3995
  format: date-time
3878
3996
 
3997
+ PlatformPlan:
3998
+ type: string
3999
+ enum:
4000
+ - free
4001
+ - pro
4002
+ - team
4003
+ - enterprise
4004
+
4005
+ PlatformPlanLimits:
4006
+ type: object
4007
+ required:
4008
+ - includedSeats
4009
+ - additionalSeats
4010
+ - effectiveSeatLimit
4011
+ - maxProductionAgreementsLifetime
4012
+ - maxEmailsPerDay
4013
+ - maxAgreementCreatesPerMinute
4014
+ - maxApiRequestsPerMinute
4015
+ properties:
4016
+ includedSeats:
4017
+ type: integer
4018
+ nullable: true
4019
+ minimum: 0
4020
+ additionalSeats:
4021
+ type: integer
4022
+ minimum: 0
4023
+ effectiveSeatLimit:
4024
+ type: integer
4025
+ nullable: true
4026
+ minimum: 0
4027
+ readOnly: true
4028
+ maxProductionAgreementsLifetime:
4029
+ type: integer
4030
+ nullable: true
4031
+ minimum: 0
4032
+ maxEmailsPerDay:
4033
+ type: integer
4034
+ nullable: true
4035
+ minimum: 0
4036
+ maxAgreementCreatesPerMinute:
4037
+ type: integer
4038
+ nullable: true
4039
+ minimum: 0
4040
+ maxApiRequestsPerMinute:
4041
+ type: integer
4042
+ nullable: true
4043
+ minimum: 0
4044
+
4045
+ PlatformEntitlement:
4046
+ type: object
4047
+ required:
4048
+ - accountId
4049
+ - plan
4050
+ - subscriptionStatus
4051
+ - source
4052
+ - limits
4053
+ properties:
4054
+ accountId:
4055
+ type: string
4056
+ plan:
4057
+ $ref: '#/components/schemas/PlatformPlan'
4058
+ subscriptionStatus:
4059
+ type: string
4060
+ source:
4061
+ type: string
4062
+ enum:
4063
+ - stored
4064
+ - plan-default
4065
+ limits:
4066
+ $ref: '#/components/schemas/PlatformPlanLimits'
4067
+
4068
+ PlatformEntitlementOrganization:
4069
+ type: object
4070
+ required:
4071
+ - orgId
4072
+ - name
4073
+ - type
4074
+ - accountId
4075
+ - isPersonal
4076
+ - createdAt
4077
+ properties:
4078
+ orgId:
4079
+ type: string
4080
+ name:
4081
+ type: string
4082
+ nullable: true
4083
+ type:
4084
+ type: string
4085
+ enum:
4086
+ - PRODUCTION
4087
+ - SANDBOX
4088
+ accountId:
4089
+ type: string
4090
+ nullable: true
4091
+ isPersonal:
4092
+ type: boolean
4093
+ createdAt:
4094
+ type: string
4095
+ format: date-time
4096
+
4097
+ PlatformEntitlementSeats:
4098
+ type: object
4099
+ required:
4100
+ - includedSeats
4101
+ - additionalSeats
4102
+ - effectiveSeatLimit
4103
+ - reservedSeats
4104
+ - activeMembers
4105
+ - pendingInvitations
4106
+ properties:
4107
+ includedSeats:
4108
+ type: integer
4109
+ nullable: true
4110
+ minimum: 0
4111
+ additionalSeats:
4112
+ type: integer
4113
+ minimum: 0
4114
+ effectiveSeatLimit:
4115
+ type: integer
4116
+ nullable: true
4117
+ minimum: 0
4118
+ readOnly: true
4119
+ reservedSeats:
4120
+ type: integer
4121
+ minimum: 0
4122
+ activeMembers:
4123
+ type: integer
4124
+ minimum: 0
4125
+ pendingInvitations:
4126
+ type: integer
4127
+ minimum: 0
4128
+
4129
+ PlatformEntitlementMember:
4130
+ type: object
4131
+ required:
4132
+ - userId
4133
+ - displayName
4134
+ - email
4135
+ - role
4136
+ - status
4137
+ - joinedAt
4138
+ properties:
4139
+ userId:
4140
+ type: string
4141
+ displayName:
4142
+ type: string
4143
+ email:
4144
+ type: string
4145
+ role:
4146
+ $ref: '#/components/schemas/Role'
4147
+ status:
4148
+ type: string
4149
+ enum:
4150
+ - active
4151
+ - inactive
4152
+ joinedAt:
4153
+ type: string
4154
+
4155
+ PlatformEntitlementUsage:
4156
+ type: object
4157
+ required:
4158
+ - usageTrackingConfigured
4159
+ - productionAgreementsLifetime
4160
+ - productionAgreementsLimit
4161
+ - maxApiRequestsPerMinute
4162
+ properties:
4163
+ usageTrackingConfigured:
4164
+ type: boolean
4165
+ productionAgreementsLifetime:
4166
+ type: integer
4167
+ nullable: true
4168
+ minimum: 0
4169
+ productionAgreementsLimit:
4170
+ type: integer
4171
+ nullable: true
4172
+ minimum: 0
4173
+ maxApiRequestsPerMinute:
4174
+ type: integer
4175
+ nullable: true
4176
+ minimum: 0
4177
+
4178
+ PlatformApiLimitReadiness:
4179
+ type: object
4180
+ required:
4181
+ - maxApiRequestsPerMinute
4182
+ - customApiOverridesReady
4183
+ - usageVisibilityReady
4184
+ properties:
4185
+ maxApiRequestsPerMinute:
4186
+ type: integer
4187
+ nullable: true
4188
+ minimum: 0
4189
+ customApiOverridesReady:
4190
+ type: boolean
4191
+ usageVisibilityReady:
4192
+ type: boolean
4193
+
4194
+ PlatformEntitlementDetail:
4195
+ type: object
4196
+ required:
4197
+ - organization
4198
+ - entitlement
4199
+ - seats
4200
+ - members
4201
+ - usage
4202
+ - apiLimitReadiness
4203
+ - generatedAt
4204
+ properties:
4205
+ organization:
4206
+ $ref: '#/components/schemas/PlatformEntitlementOrganization'
4207
+ entitlement:
4208
+ $ref: '#/components/schemas/PlatformEntitlement'
4209
+ seats:
4210
+ $ref: '#/components/schemas/PlatformEntitlementSeats'
4211
+ members:
4212
+ type: array
4213
+ items:
4214
+ $ref: '#/components/schemas/PlatformEntitlementMember'
4215
+ usage:
4216
+ $ref: '#/components/schemas/PlatformEntitlementUsage'
4217
+ apiLimitReadiness:
4218
+ $ref: '#/components/schemas/PlatformApiLimitReadiness'
4219
+ generatedAt:
4220
+ type: string
4221
+ format: date-time
4222
+
4223
+ PlatformEntitlementLookupResponse:
4224
+ type: object
4225
+ required:
4226
+ - organizations
4227
+ - selected
4228
+ - generatedAt
4229
+ properties:
4230
+ organizations:
4231
+ type: array
4232
+ items:
4233
+ $ref: '#/components/schemas/PlatformEntitlementOrganization'
4234
+ selected:
4235
+ nullable: true
4236
+ allOf:
4237
+ - $ref: '#/components/schemas/PlatformEntitlementDetail'
4238
+ generatedAt:
4239
+ type: string
4240
+ format: date-time
4241
+
4242
+ PlatformEntitlementUpdateRequest:
4243
+ type: object
4244
+ additionalProperties: false
4245
+ properties:
4246
+ additionalSeats:
4247
+ type: integer
4248
+ minimum: 0
4249
+ includedSeats:
4250
+ type: integer
4251
+ nullable: true
4252
+ minimum: 0
4253
+ description: Enterprise custom included seat value. Ignored for non-Enterprise plans.
4254
+
3879
4255
  PlatformCostsResponse:
3880
4256
  type: object
3881
4257
  required:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inklok/api-spec",
3
- "version": "7.5.1",
3
+ "version": "7.6.0",
4
4
  "description": "Canonical OpenAPI specification for the Inklok public API.",
5
5
  "main": "openapi.yaml",
6
6
  "license": "MIT",