@orvello/sdk 0.3.0 → 0.4.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/dist/openapi.json CHANGED
@@ -8718,6 +8718,153 @@
8718
8718
  ]
8719
8719
  }
8720
8720
  },
8721
+ "/invoices/external/:invoiceId/payment-instructions": {
8722
+ "get": {
8723
+ "operationId": "invoices_payment_instructions_external",
8724
+ "tags": [
8725
+ "invoices-external"
8726
+ ],
8727
+ "summary": "Read immutable bank payment instructions",
8728
+ "description": "Reference and recipient frozen on first issue. Decimal amount is a string. Historical invoices without a snapshot return 409; no reference is created by reading. This is not evidence of payment or permission to provision.",
8729
+ "responses": {
8730
+ "200": {
8731
+ "description": "JSON response",
8732
+ "content": {
8733
+ "application/json": {
8734
+ "schema": {
8735
+ "type": "object",
8736
+ "properties": {
8737
+ "success": {
8738
+ "type": "boolean"
8739
+ },
8740
+ "message": {
8741
+ "anyOf": [
8742
+ {
8743
+ "type": "string"
8744
+ },
8745
+ {
8746
+ "type": "null"
8747
+ }
8748
+ ]
8749
+ },
8750
+ "code": {
8751
+ "anyOf": [
8752
+ {
8753
+ "type": "string"
8754
+ },
8755
+ {
8756
+ "type": "null"
8757
+ }
8758
+ ]
8759
+ },
8760
+ "data": {
8761
+ "anyOf": [
8762
+ {
8763
+ "type": "object",
8764
+ "properties": {
8765
+ "invoiceId": {
8766
+ "type": "integer",
8767
+ "exclusiveMinimum": 0
8768
+ },
8769
+ "reference": {
8770
+ "type": "string"
8771
+ },
8772
+ "accountOwner": {
8773
+ "type": "string"
8774
+ },
8775
+ "iban": {
8776
+ "type": "string"
8777
+ },
8778
+ "bic": {
8779
+ "anyOf": [
8780
+ {
8781
+ "type": "string"
8782
+ },
8783
+ {
8784
+ "type": "null"
8785
+ }
8786
+ ]
8787
+ },
8788
+ "bankName": {
8789
+ "anyOf": [
8790
+ {
8791
+ "type": "string"
8792
+ },
8793
+ {
8794
+ "type": "null"
8795
+ }
8796
+ ]
8797
+ },
8798
+ "currency": {
8799
+ "type": "string"
8800
+ },
8801
+ "invoiceAmount": {
8802
+ "type": "string"
8803
+ },
8804
+ "createdAt": {
8805
+ "type": "string",
8806
+ "format": "date-time"
8807
+ }
8808
+ },
8809
+ "required": [
8810
+ "invoiceId",
8811
+ "reference",
8812
+ "accountOwner",
8813
+ "iban",
8814
+ "bic",
8815
+ "bankName",
8816
+ "currency",
8817
+ "invoiceAmount",
8818
+ "createdAt"
8819
+ ],
8820
+ "additionalProperties": false
8821
+ },
8822
+ {
8823
+ "type": "null"
8824
+ }
8825
+ ]
8826
+ }
8827
+ },
8828
+ "required": [
8829
+ "success",
8830
+ "data"
8831
+ ],
8832
+ "additionalProperties": false
8833
+ }
8834
+ }
8835
+ }
8836
+ }
8837
+ },
8838
+ "parameters": [
8839
+ {
8840
+ "name": "invoiceId",
8841
+ "in": "path",
8842
+ "required": true,
8843
+ "schema": {
8844
+ "type": "integer",
8845
+ "exclusiveMinimum": 0
8846
+ }
8847
+ }
8848
+ ],
8849
+ "security": [
8850
+ {
8851
+ "oauth2Bearer": []
8852
+ },
8853
+ {
8854
+ "companyApiKeyBearer": []
8855
+ }
8856
+ ],
8857
+ "x-auth": {
8858
+ "allowOAuth2": true,
8859
+ "allowApiKey": true,
8860
+ "allowUserSession": false,
8861
+ "requireRole": "viewer"
8862
+ },
8863
+ "x-scopes": [
8864
+ "invoices:read"
8865
+ ]
8866
+ }
8867
+ },
8721
8868
  "/invoices/external": {
8722
8869
  "get": {
8723
8870
  "operationId": "invoices_search_external",
@@ -58486,13 +58633,13 @@
58486
58633
  }
58487
58634
  }
58488
58635
  },
58489
- "/auth/register": {
58636
+ "/auth/mfa/complete": {
58490
58637
  "post": {
58491
- "operationId": "auth_register",
58638
+ "operationId": "auth_mfa_complete",
58492
58639
  "tags": [
58493
58640
  "auth"
58494
58641
  ],
58495
- "summary": "Register a new direct-auth account",
58642
+ "summary": "Complete a first-factor login with TOTP or a recovery code",
58496
58643
  "responses": {
58497
58644
  "200": {
58498
58645
  "description": "JSON response",
@@ -58550,25 +58697,28 @@
58550
58697
  "schema": {
58551
58698
  "type": "object",
58552
58699
  "properties": {
58553
- "email": {
58700
+ "challengeToken": {
58554
58701
  "type": "string",
58555
- "format": "email",
58556
- "maxLength": 320
58702
+ "minLength": 32,
58703
+ "maxLength": 128
58557
58704
  },
58558
- "password": {
58705
+ "code": {
58559
58706
  "type": "string",
58560
- "minLength": 8,
58561
- "maxLength": 256
58707
+ "minLength": 6,
58708
+ "maxLength": 64
58562
58709
  },
58563
- "name": {
58710
+ "kind": {
58564
58711
  "type": "string",
58565
- "minLength": 1,
58566
- "maxLength": 200
58712
+ "enum": [
58713
+ "totp",
58714
+ "recovery"
58715
+ ],
58716
+ "default": "totp"
58567
58717
  }
58568
58718
  },
58569
58719
  "required": [
58570
- "email",
58571
- "password"
58720
+ "challengeToken",
58721
+ "code"
58572
58722
  ],
58573
58723
  "additionalProperties": false
58574
58724
  }
@@ -58577,13 +58727,13 @@
58577
58727
  }
58578
58728
  }
58579
58729
  },
58580
- "/auth/login": {
58581
- "post": {
58582
- "operationId": "auth_login",
58730
+ "/auth/mfa": {
58731
+ "get": {
58732
+ "operationId": "auth_mfa_status",
58583
58733
  "tags": [
58584
58734
  "auth"
58585
58735
  ],
58586
- "summary": "Log in with email + password",
58736
+ "summary": "Read the current product account's MFA status",
58587
58737
  "responses": {
58588
58738
  "200": {
58589
58739
  "description": "JSON response",
@@ -58617,7 +58767,29 @@
58617
58767
  },
58618
58768
  "data": {
58619
58769
  "anyOf": [
58620
- {},
58770
+ {
58771
+ "type": "object",
58772
+ "properties": {
58773
+ "enabled": {
58774
+ "type": "boolean"
58775
+ },
58776
+ "methods": {
58777
+ "type": "array",
58778
+ "items": {
58779
+ "type": "string"
58780
+ }
58781
+ },
58782
+ "recoveryCodesRemaining": {
58783
+ "type": "number"
58784
+ }
58785
+ },
58786
+ "required": [
58787
+ "enabled",
58788
+ "methods",
58789
+ "recoveryCodesRemaining"
58790
+ ],
58791
+ "additionalProperties": false
58792
+ },
58621
58793
  {
58622
58794
  "type": "null"
58623
58795
  }
@@ -58634,42 +58806,21 @@
58634
58806
  }
58635
58807
  }
58636
58808
  },
58637
- "requestBody": {
58638
- "required": true,
58639
- "content": {
58640
- "application/json": {
58641
- "schema": {
58642
- "type": "object",
58643
- "properties": {
58644
- "email": {
58645
- "type": "string",
58646
- "format": "email",
58647
- "maxLength": 320
58648
- },
58649
- "password": {
58650
- "type": "string",
58651
- "minLength": 8,
58652
- "maxLength": 256
58653
- }
58654
- },
58655
- "required": [
58656
- "email",
58657
- "password"
58658
- ],
58659
- "additionalProperties": false
58660
- }
58661
- }
58809
+ "security": [
58810
+ {
58811
+ "frontendBearer": []
58662
58812
  }
58663
- }
58813
+ ],
58814
+ "x-transport": "http"
58664
58815
  }
58665
58816
  },
58666
- "/auth/refresh": {
58817
+ "/auth/mfa/setup": {
58667
58818
  "post": {
58668
- "operationId": "auth_refresh",
58819
+ "operationId": "auth_mfa_setup",
58669
58820
  "tags": [
58670
58821
  "auth"
58671
58822
  ],
58672
- "summary": "Rotate access + refresh tokens",
58823
+ "summary": "Prepare TOTP enrollment after rechecking the password",
58673
58824
  "responses": {
58674
58825
  "200": {
58675
58826
  "description": "JSON response",
@@ -58703,7 +58854,26 @@
58703
58854
  },
58704
58855
  "data": {
58705
58856
  "anyOf": [
58706
- {},
58857
+ {
58858
+ "type": "object",
58859
+ "properties": {
58860
+ "secret": {
58861
+ "type": "string"
58862
+ },
58863
+ "otpauthUri": {
58864
+ "type": "string"
58865
+ },
58866
+ "expiresAt": {
58867
+ "type": "string"
58868
+ }
58869
+ },
58870
+ "required": [
58871
+ "secret",
58872
+ "otpauthUri",
58873
+ "expiresAt"
58874
+ ],
58875
+ "additionalProperties": false
58876
+ },
58707
58877
  {
58708
58878
  "type": "null"
58709
58879
  }
@@ -58727,30 +58897,37 @@
58727
58897
  "schema": {
58728
58898
  "type": "object",
58729
58899
  "properties": {
58730
- "refreshToken": {
58900
+ "password": {
58731
58901
  "type": "string",
58732
- "minLength": 20
58902
+ "minLength": 8,
58903
+ "maxLength": 256
58733
58904
  }
58734
58905
  },
58735
58906
  "required": [
58736
- "refreshToken"
58907
+ "password"
58737
58908
  ],
58738
58909
  "additionalProperties": false
58739
58910
  }
58740
58911
  }
58741
58912
  }
58742
- }
58913
+ },
58914
+ "security": [
58915
+ {
58916
+ "frontendBearer": []
58917
+ }
58918
+ ],
58919
+ "x-transport": "http"
58743
58920
  }
58744
58921
  },
58745
- "/auth/logout": {
58922
+ "/auth/mfa/enable": {
58746
58923
  "post": {
58747
- "operationId": "auth_logout",
58924
+ "operationId": "auth_mfa_enable",
58748
58925
  "tags": [
58749
58926
  "auth"
58750
58927
  ],
58751
- "summary": "Revoke the current refresh token",
58928
+ "summary": "Confirm TOTP enrollment and return recovery codes once",
58752
58929
  "responses": {
58753
- "204": {
58930
+ "200": {
58754
58931
  "description": "JSON response",
58755
58932
  "content": {
58756
58933
  "application/json": {
@@ -58784,7 +58961,25 @@
58784
58961
  "anyOf": [
58785
58962
  {
58786
58963
  "type": "object",
58787
- "properties": {},
58964
+ "properties": {
58965
+ "enabled": {
58966
+ "type": "boolean"
58967
+ },
58968
+ "recoveryCodes": {
58969
+ "type": "array",
58970
+ "items": {
58971
+ "type": "string"
58972
+ }
58973
+ },
58974
+ "reauthenticationRequired": {
58975
+ "type": "boolean"
58976
+ }
58977
+ },
58978
+ "required": [
58979
+ "enabled",
58980
+ "recoveryCodes",
58981
+ "reauthenticationRequired"
58982
+ ],
58788
58983
  "additionalProperties": false
58789
58984
  },
58790
58985
  {
@@ -58803,6 +58998,473 @@
58803
58998
  }
58804
58999
  }
58805
59000
  },
59001
+ "requestBody": {
59002
+ "required": true,
59003
+ "content": {
59004
+ "application/json": {
59005
+ "schema": {
59006
+ "type": "object",
59007
+ "properties": {
59008
+ "code": {
59009
+ "type": "string",
59010
+ "pattern": "^\\d{6}$"
59011
+ }
59012
+ },
59013
+ "required": [
59014
+ "code"
59015
+ ],
59016
+ "additionalProperties": false
59017
+ }
59018
+ }
59019
+ }
59020
+ },
59021
+ "security": [
59022
+ {
59023
+ "frontendBearer": []
59024
+ }
59025
+ ],
59026
+ "x-transport": "http"
59027
+ }
59028
+ },
59029
+ "/auth/mfa/disable": {
59030
+ "post": {
59031
+ "operationId": "auth_mfa_disable",
59032
+ "tags": [
59033
+ "auth"
59034
+ ],
59035
+ "summary": "Disable MFA using both the password and a second factor",
59036
+ "responses": {
59037
+ "200": {
59038
+ "description": "JSON response",
59039
+ "content": {
59040
+ "application/json": {
59041
+ "schema": {
59042
+ "type": "object",
59043
+ "properties": {
59044
+ "success": {
59045
+ "type": "boolean"
59046
+ },
59047
+ "message": {
59048
+ "anyOf": [
59049
+ {
59050
+ "type": "string"
59051
+ },
59052
+ {
59053
+ "type": "null"
59054
+ }
59055
+ ]
59056
+ },
59057
+ "code": {
59058
+ "anyOf": [
59059
+ {
59060
+ "type": "string"
59061
+ },
59062
+ {
59063
+ "type": "null"
59064
+ }
59065
+ ]
59066
+ },
59067
+ "data": {
59068
+ "anyOf": [
59069
+ {
59070
+ "type": "object",
59071
+ "properties": {
59072
+ "ok": {
59073
+ "type": "boolean"
59074
+ },
59075
+ "reauthenticationRequired": {
59076
+ "type": "boolean"
59077
+ }
59078
+ },
59079
+ "required": [
59080
+ "ok",
59081
+ "reauthenticationRequired"
59082
+ ],
59083
+ "additionalProperties": false
59084
+ },
59085
+ {
59086
+ "type": "null"
59087
+ }
59088
+ ]
59089
+ }
59090
+ },
59091
+ "required": [
59092
+ "success",
59093
+ "data"
59094
+ ],
59095
+ "additionalProperties": false
59096
+ }
59097
+ }
59098
+ }
59099
+ }
59100
+ },
59101
+ "requestBody": {
59102
+ "required": true,
59103
+ "content": {
59104
+ "application/json": {
59105
+ "schema": {
59106
+ "type": "object",
59107
+ "properties": {
59108
+ "password": {
59109
+ "type": "string",
59110
+ "minLength": 8,
59111
+ "maxLength": 256
59112
+ },
59113
+ "code": {
59114
+ "type": "string",
59115
+ "minLength": 6,
59116
+ "maxLength": 64
59117
+ },
59118
+ "kind": {
59119
+ "type": "string",
59120
+ "enum": [
59121
+ "totp",
59122
+ "recovery"
59123
+ ],
59124
+ "default": "totp"
59125
+ }
59126
+ },
59127
+ "required": [
59128
+ "password",
59129
+ "code"
59130
+ ],
59131
+ "additionalProperties": false
59132
+ }
59133
+ }
59134
+ }
59135
+ },
59136
+ "security": [
59137
+ {
59138
+ "frontendBearer": []
59139
+ }
59140
+ ],
59141
+ "x-transport": "http"
59142
+ }
59143
+ },
59144
+ "/auth/register": {
59145
+ "post": {
59146
+ "operationId": "auth_register",
59147
+ "tags": [
59148
+ "auth"
59149
+ ],
59150
+ "summary": "Register a new direct-auth account",
59151
+ "responses": {
59152
+ "200": {
59153
+ "description": "JSON response",
59154
+ "content": {
59155
+ "application/json": {
59156
+ "schema": {
59157
+ "type": "object",
59158
+ "properties": {
59159
+ "success": {
59160
+ "type": "boolean"
59161
+ },
59162
+ "message": {
59163
+ "anyOf": [
59164
+ {
59165
+ "type": "string"
59166
+ },
59167
+ {
59168
+ "type": "null"
59169
+ }
59170
+ ]
59171
+ },
59172
+ "code": {
59173
+ "anyOf": [
59174
+ {
59175
+ "type": "string"
59176
+ },
59177
+ {
59178
+ "type": "null"
59179
+ }
59180
+ ]
59181
+ },
59182
+ "data": {
59183
+ "anyOf": [
59184
+ {},
59185
+ {
59186
+ "type": "null"
59187
+ }
59188
+ ]
59189
+ }
59190
+ },
59191
+ "required": [
59192
+ "success",
59193
+ "data"
59194
+ ],
59195
+ "additionalProperties": false
59196
+ }
59197
+ }
59198
+ }
59199
+ }
59200
+ },
59201
+ "requestBody": {
59202
+ "required": true,
59203
+ "content": {
59204
+ "application/json": {
59205
+ "schema": {
59206
+ "type": "object",
59207
+ "properties": {
59208
+ "email": {
59209
+ "type": "string",
59210
+ "format": "email",
59211
+ "maxLength": 320
59212
+ },
59213
+ "password": {
59214
+ "type": "string",
59215
+ "minLength": 8,
59216
+ "maxLength": 256
59217
+ },
59218
+ "name": {
59219
+ "type": "string",
59220
+ "minLength": 1,
59221
+ "maxLength": 200
59222
+ },
59223
+ "firstName": {
59224
+ "type": "string",
59225
+ "minLength": 1,
59226
+ "maxLength": 100
59227
+ },
59228
+ "lastName": {
59229
+ "type": "string",
59230
+ "minLength": 1,
59231
+ "maxLength": 100
59232
+ },
59233
+ "device": {
59234
+ "type": "object",
59235
+ "properties": {
59236
+ "deviceId": {
59237
+ "type": "string",
59238
+ "minLength": 1,
59239
+ "maxLength": 200
59240
+ },
59241
+ "deviceName": {
59242
+ "type": "string",
59243
+ "minLength": 1,
59244
+ "maxLength": 200
59245
+ },
59246
+ "deviceModel": {
59247
+ "type": "string",
59248
+ "minLength": 1,
59249
+ "maxLength": 200
59250
+ },
59251
+ "deviceOs": {
59252
+ "type": "string",
59253
+ "minLength": 1,
59254
+ "maxLength": 200
59255
+ },
59256
+ "appVersion": {
59257
+ "type": "string",
59258
+ "minLength": 1,
59259
+ "maxLength": 100
59260
+ },
59261
+ "platform": {
59262
+ "type": "string",
59263
+ "enum": [
59264
+ "ios",
59265
+ "android",
59266
+ "web",
59267
+ "expo"
59268
+ ]
59269
+ }
59270
+ },
59271
+ "additionalProperties": false
59272
+ }
59273
+ },
59274
+ "required": [
59275
+ "email",
59276
+ "password"
59277
+ ],
59278
+ "additionalProperties": false
59279
+ }
59280
+ }
59281
+ }
59282
+ }
59283
+ }
59284
+ },
59285
+ "/auth/login": {
59286
+ "post": {
59287
+ "operationId": "auth_login",
59288
+ "tags": [
59289
+ "auth"
59290
+ ],
59291
+ "summary": "Log in with email + password",
59292
+ "responses": {
59293
+ "200": {
59294
+ "description": "JSON response",
59295
+ "content": {
59296
+ "application/json": {
59297
+ "schema": {
59298
+ "type": "object",
59299
+ "properties": {
59300
+ "success": {
59301
+ "type": "boolean"
59302
+ },
59303
+ "message": {
59304
+ "anyOf": [
59305
+ {
59306
+ "type": "string"
59307
+ },
59308
+ {
59309
+ "type": "null"
59310
+ }
59311
+ ]
59312
+ },
59313
+ "code": {
59314
+ "anyOf": [
59315
+ {
59316
+ "type": "string"
59317
+ },
59318
+ {
59319
+ "type": "null"
59320
+ }
59321
+ ]
59322
+ },
59323
+ "data": {
59324
+ "anyOf": [
59325
+ {},
59326
+ {
59327
+ "type": "null"
59328
+ }
59329
+ ]
59330
+ }
59331
+ },
59332
+ "required": [
59333
+ "success",
59334
+ "data"
59335
+ ],
59336
+ "additionalProperties": false
59337
+ }
59338
+ }
59339
+ }
59340
+ }
59341
+ },
59342
+ "requestBody": {
59343
+ "required": true,
59344
+ "content": {
59345
+ "application/json": {
59346
+ "schema": {
59347
+ "type": "object",
59348
+ "properties": {
59349
+ "email": {
59350
+ "type": "string",
59351
+ "format": "email",
59352
+ "maxLength": 320
59353
+ },
59354
+ "password": {
59355
+ "type": "string",
59356
+ "minLength": 8,
59357
+ "maxLength": 256
59358
+ },
59359
+ "device": {
59360
+ "type": "object",
59361
+ "properties": {
59362
+ "deviceId": {
59363
+ "type": "string",
59364
+ "minLength": 1,
59365
+ "maxLength": 200
59366
+ },
59367
+ "deviceName": {
59368
+ "type": "string",
59369
+ "minLength": 1,
59370
+ "maxLength": 200
59371
+ },
59372
+ "deviceModel": {
59373
+ "type": "string",
59374
+ "minLength": 1,
59375
+ "maxLength": 200
59376
+ },
59377
+ "deviceOs": {
59378
+ "type": "string",
59379
+ "minLength": 1,
59380
+ "maxLength": 200
59381
+ },
59382
+ "appVersion": {
59383
+ "type": "string",
59384
+ "minLength": 1,
59385
+ "maxLength": 100
59386
+ },
59387
+ "platform": {
59388
+ "type": "string",
59389
+ "enum": [
59390
+ "ios",
59391
+ "android",
59392
+ "web",
59393
+ "expo"
59394
+ ]
59395
+ }
59396
+ },
59397
+ "additionalProperties": false
59398
+ }
59399
+ },
59400
+ "required": [
59401
+ "email",
59402
+ "password"
59403
+ ],
59404
+ "additionalProperties": false
59405
+ }
59406
+ }
59407
+ }
59408
+ }
59409
+ }
59410
+ },
59411
+ "/auth/refresh": {
59412
+ "post": {
59413
+ "operationId": "auth_refresh",
59414
+ "tags": [
59415
+ "auth"
59416
+ ],
59417
+ "summary": "Rotate access + refresh tokens",
59418
+ "responses": {
59419
+ "200": {
59420
+ "description": "JSON response",
59421
+ "content": {
59422
+ "application/json": {
59423
+ "schema": {
59424
+ "type": "object",
59425
+ "properties": {
59426
+ "success": {
59427
+ "type": "boolean"
59428
+ },
59429
+ "message": {
59430
+ "anyOf": [
59431
+ {
59432
+ "type": "string"
59433
+ },
59434
+ {
59435
+ "type": "null"
59436
+ }
59437
+ ]
59438
+ },
59439
+ "code": {
59440
+ "anyOf": [
59441
+ {
59442
+ "type": "string"
59443
+ },
59444
+ {
59445
+ "type": "null"
59446
+ }
59447
+ ]
59448
+ },
59449
+ "data": {
59450
+ "anyOf": [
59451
+ {},
59452
+ {
59453
+ "type": "null"
59454
+ }
59455
+ ]
59456
+ }
59457
+ },
59458
+ "required": [
59459
+ "success",
59460
+ "data"
59461
+ ],
59462
+ "additionalProperties": false
59463
+ }
59464
+ }
59465
+ }
59466
+ }
59467
+ },
58806
59468
  "requestBody": {
58807
59469
  "required": true,
58808
59470
  "content": {
@@ -58813,22 +59475,489 @@
58813
59475
  "refreshToken": {
58814
59476
  "type": "string",
58815
59477
  "minLength": 20
59478
+ },
59479
+ "device": {
59480
+ "type": "object",
59481
+ "properties": {
59482
+ "deviceId": {
59483
+ "type": "string",
59484
+ "minLength": 1,
59485
+ "maxLength": 200
59486
+ },
59487
+ "deviceName": {
59488
+ "type": "string",
59489
+ "minLength": 1,
59490
+ "maxLength": 200
59491
+ },
59492
+ "deviceModel": {
59493
+ "type": "string",
59494
+ "minLength": 1,
59495
+ "maxLength": 200
59496
+ },
59497
+ "deviceOs": {
59498
+ "type": "string",
59499
+ "minLength": 1,
59500
+ "maxLength": 200
59501
+ },
59502
+ "appVersion": {
59503
+ "type": "string",
59504
+ "minLength": 1,
59505
+ "maxLength": 100
59506
+ },
59507
+ "platform": {
59508
+ "type": "string",
59509
+ "enum": [
59510
+ "ios",
59511
+ "android",
59512
+ "web",
59513
+ "expo"
59514
+ ]
59515
+ }
59516
+ },
59517
+ "additionalProperties": false
59518
+ }
59519
+ },
59520
+ "required": [
59521
+ "refreshToken"
59522
+ ],
59523
+ "additionalProperties": false
59524
+ }
59525
+ }
59526
+ }
59527
+ }
59528
+ }
59529
+ },
59530
+ "/auth/logout": {
59531
+ "post": {
59532
+ "operationId": "auth_logout",
59533
+ "tags": [
59534
+ "auth"
59535
+ ],
59536
+ "summary": "Revoke the current refresh token",
59537
+ "responses": {
59538
+ "204": {
59539
+ "description": "JSON response",
59540
+ "content": {
59541
+ "application/json": {
59542
+ "schema": {
59543
+ "type": "object",
59544
+ "properties": {
59545
+ "success": {
59546
+ "type": "boolean"
59547
+ },
59548
+ "message": {
59549
+ "anyOf": [
59550
+ {
59551
+ "type": "string"
59552
+ },
59553
+ {
59554
+ "type": "null"
59555
+ }
59556
+ ]
59557
+ },
59558
+ "code": {
59559
+ "anyOf": [
59560
+ {
59561
+ "type": "string"
59562
+ },
59563
+ {
59564
+ "type": "null"
59565
+ }
59566
+ ]
59567
+ },
59568
+ "data": {
59569
+ "anyOf": [
59570
+ {
59571
+ "type": "object",
59572
+ "properties": {},
59573
+ "additionalProperties": false
59574
+ },
59575
+ {
59576
+ "type": "null"
59577
+ }
59578
+ ]
59579
+ }
59580
+ },
59581
+ "required": [
59582
+ "success",
59583
+ "data"
59584
+ ],
59585
+ "additionalProperties": false
59586
+ }
59587
+ }
59588
+ }
59589
+ }
59590
+ },
59591
+ "requestBody": {
59592
+ "required": true,
59593
+ "content": {
59594
+ "application/json": {
59595
+ "schema": {
59596
+ "type": "object",
59597
+ "properties": {
59598
+ "refreshToken": {
59599
+ "type": "string",
59600
+ "minLength": 20
59601
+ }
59602
+ },
59603
+ "additionalProperties": false
59604
+ }
59605
+ }
59606
+ }
59607
+ }
59608
+ }
59609
+ },
59610
+ "/auth/me": {
59611
+ "get": {
59612
+ "operationId": "auth_me",
59613
+ "tags": [
59614
+ "auth"
59615
+ ],
59616
+ "summary": "Get the current user incl. roles and isAdmin (Bearer access JWT)",
59617
+ "responses": {
59618
+ "200": {
59619
+ "description": "JSON response",
59620
+ "content": {
59621
+ "application/json": {
59622
+ "schema": {
59623
+ "type": "object",
59624
+ "properties": {
59625
+ "success": {
59626
+ "type": "boolean"
59627
+ },
59628
+ "message": {
59629
+ "anyOf": [
59630
+ {
59631
+ "type": "string"
59632
+ },
59633
+ {
59634
+ "type": "null"
59635
+ }
59636
+ ]
59637
+ },
59638
+ "code": {
59639
+ "anyOf": [
59640
+ {
59641
+ "type": "string"
59642
+ },
59643
+ {
59644
+ "type": "null"
59645
+ }
59646
+ ]
59647
+ },
59648
+ "data": {
59649
+ "anyOf": [
59650
+ {},
59651
+ {
59652
+ "type": "null"
59653
+ }
59654
+ ]
59655
+ }
59656
+ },
59657
+ "required": [
59658
+ "success",
59659
+ "data"
59660
+ ],
59661
+ "additionalProperties": false
59662
+ }
59663
+ }
59664
+ }
59665
+ }
59666
+ },
59667
+ "security": [
59668
+ {
59669
+ "frontendBearer": []
59670
+ }
59671
+ ],
59672
+ "x-transport": "http"
59673
+ }
59674
+ },
59675
+ "/auth/me/profile": {
59676
+ "patch": {
59677
+ "operationId": "auth_me_profile_update",
59678
+ "tags": [
59679
+ "auth"
59680
+ ],
59681
+ "summary": "Update the current user's own profile (name, avatar)",
59682
+ "responses": {
59683
+ "200": {
59684
+ "description": "JSON response",
59685
+ "content": {
59686
+ "application/json": {
59687
+ "schema": {
59688
+ "type": "object",
59689
+ "properties": {
59690
+ "success": {
59691
+ "type": "boolean"
59692
+ },
59693
+ "message": {
59694
+ "anyOf": [
59695
+ {
59696
+ "type": "string"
59697
+ },
59698
+ {
59699
+ "type": "null"
59700
+ }
59701
+ ]
59702
+ },
59703
+ "code": {
59704
+ "anyOf": [
59705
+ {
59706
+ "type": "string"
59707
+ },
59708
+ {
59709
+ "type": "null"
59710
+ }
59711
+ ]
59712
+ },
59713
+ "data": {
59714
+ "anyOf": [
59715
+ {},
59716
+ {
59717
+ "type": "null"
59718
+ }
59719
+ ]
59720
+ }
59721
+ },
59722
+ "required": [
59723
+ "success",
59724
+ "data"
59725
+ ],
59726
+ "additionalProperties": false
59727
+ }
59728
+ }
59729
+ }
59730
+ }
59731
+ },
59732
+ "requestBody": {
59733
+ "required": true,
59734
+ "content": {
59735
+ "application/json": {
59736
+ "schema": {
59737
+ "type": "object",
59738
+ "properties": {
59739
+ "avatarStyle": {
59740
+ "anyOf": [
59741
+ {
59742
+ "type": "object",
59743
+ "properties": {
59744
+ "seed": {
59745
+ "type": "string",
59746
+ "minLength": 1,
59747
+ "maxLength": 200
59748
+ },
59749
+ "hue": {
59750
+ "type": "integer",
59751
+ "minimum": 0,
59752
+ "maximum": 359
59753
+ },
59754
+ "shape": {
59755
+ "type": "string",
59756
+ "enum": [
59757
+ "round",
59758
+ "organic",
59759
+ "boxy",
59760
+ "nub",
59761
+ "cloud",
59762
+ "sun",
59763
+ "capsule",
59764
+ "triangle",
59765
+ "hexagon",
59766
+ "droplet"
59767
+ ]
59768
+ },
59769
+ "expression": {
59770
+ "type": "string",
59771
+ "enum": [
59772
+ "idle",
59773
+ "happy",
59774
+ "sad",
59775
+ "mad",
59776
+ "surprised",
59777
+ "wink",
59778
+ "sleepy",
59779
+ "smug",
59780
+ "unsure",
59781
+ "scared",
59782
+ "love",
59783
+ "shy",
59784
+ "sick",
59785
+ "thinking"
59786
+ ]
59787
+ },
59788
+ "background": {
59789
+ "type": "string",
59790
+ "enum": [
59791
+ "none",
59792
+ "squircle",
59793
+ "circle"
59794
+ ]
59795
+ }
59796
+ },
59797
+ "additionalProperties": false
59798
+ },
59799
+ {
59800
+ "type": "null"
59801
+ }
59802
+ ]
59803
+ },
59804
+ "name": {
59805
+ "anyOf": [
59806
+ {
59807
+ "type": "string",
59808
+ "minLength": 1,
59809
+ "maxLength": 200
59810
+ },
59811
+ {
59812
+ "type": "null"
59813
+ }
59814
+ ]
59815
+ },
59816
+ "firstName": {
59817
+ "anyOf": [
59818
+ {
59819
+ "type": "string",
59820
+ "minLength": 1,
59821
+ "maxLength": 100
59822
+ },
59823
+ {
59824
+ "type": "null"
59825
+ }
59826
+ ]
59827
+ },
59828
+ "lastName": {
59829
+ "anyOf": [
59830
+ {
59831
+ "type": "string",
59832
+ "minLength": 1,
59833
+ "maxLength": 100
59834
+ },
59835
+ {
59836
+ "type": "null"
59837
+ }
59838
+ ]
59839
+ }
59840
+ },
59841
+ "additionalProperties": false
59842
+ }
59843
+ }
59844
+ }
59845
+ },
59846
+ "security": [
59847
+ {
59848
+ "frontendBearer": []
59849
+ }
59850
+ ],
59851
+ "x-transport": "http"
59852
+ }
59853
+ },
59854
+ "/auth/push-token": {
59855
+ "post": {
59856
+ "operationId": "auth_push_token_upsert",
59857
+ "tags": [
59858
+ "auth"
59859
+ ],
59860
+ "summary": "Register a device push token for the current user",
59861
+ "responses": {
59862
+ "204": {
59863
+ "description": "JSON response",
59864
+ "content": {
59865
+ "application/json": {
59866
+ "schema": {
59867
+ "type": "object",
59868
+ "properties": {
59869
+ "success": {
59870
+ "type": "boolean"
59871
+ },
59872
+ "message": {
59873
+ "anyOf": [
59874
+ {
59875
+ "type": "string"
59876
+ },
59877
+ {
59878
+ "type": "null"
59879
+ }
59880
+ ]
59881
+ },
59882
+ "code": {
59883
+ "anyOf": [
59884
+ {
59885
+ "type": "string"
59886
+ },
59887
+ {
59888
+ "type": "null"
59889
+ }
59890
+ ]
59891
+ },
59892
+ "data": {
59893
+ "anyOf": [
59894
+ {
59895
+ "type": "object",
59896
+ "properties": {},
59897
+ "additionalProperties": false
59898
+ },
59899
+ {
59900
+ "type": "null"
59901
+ }
59902
+ ]
59903
+ }
59904
+ },
59905
+ "required": [
59906
+ "success",
59907
+ "data"
59908
+ ],
59909
+ "additionalProperties": false
59910
+ }
59911
+ }
59912
+ }
59913
+ }
59914
+ },
59915
+ "requestBody": {
59916
+ "required": true,
59917
+ "content": {
59918
+ "application/json": {
59919
+ "schema": {
59920
+ "type": "object",
59921
+ "properties": {
59922
+ "token": {
59923
+ "type": "string",
59924
+ "minLength": 1,
59925
+ "maxLength": 500
59926
+ },
59927
+ "platform": {
59928
+ "type": "string",
59929
+ "enum": [
59930
+ "ios",
59931
+ "android",
59932
+ "web",
59933
+ "expo"
59934
+ ]
58816
59935
  }
58817
59936
  },
59937
+ "required": [
59938
+ "token",
59939
+ "platform"
59940
+ ],
58818
59941
  "additionalProperties": false
58819
59942
  }
58820
59943
  }
58821
59944
  }
58822
- }
59945
+ },
59946
+ "security": [
59947
+ {
59948
+ "frontendBearer": []
59949
+ }
59950
+ ],
59951
+ "x-transport": "http"
58823
59952
  }
58824
59953
  },
58825
- "/auth/me": {
58826
- "get": {
58827
- "operationId": "auth_me",
59954
+ "/auth/verify-email/request": {
59955
+ "post": {
59956
+ "operationId": "auth_verify_email_request",
58828
59957
  "tags": [
58829
59958
  "auth"
58830
59959
  ],
58831
- "summary": "Get the current user incl. roles and isAdmin (Bearer access JWT)",
59960
+ "summary": "Send a fresh email-verification link to the current user",
58832
59961
  "responses": {
58833
59962
  "200": {
58834
59963
  "description": "JSON response",
@@ -58879,6 +60008,18 @@
58879
60008
  }
58880
60009
  }
58881
60010
  },
60011
+ "requestBody": {
60012
+ "required": true,
60013
+ "content": {
60014
+ "application/json": {
60015
+ "schema": {
60016
+ "type": "object",
60017
+ "properties": {},
60018
+ "additionalProperties": false
60019
+ }
60020
+ }
60021
+ }
60022
+ },
58882
60023
  "security": [
58883
60024
  {
58884
60025
  "frontendBearer": []
@@ -58887,13 +60028,13 @@
58887
60028
  "x-transport": "http"
58888
60029
  }
58889
60030
  },
58890
- "/auth/me/profile": {
58891
- "patch": {
58892
- "operationId": "auth_me_profile_update",
60031
+ "/auth/verify-email/confirm": {
60032
+ "post": {
60033
+ "operationId": "auth_verify_email_confirm",
58893
60034
  "tags": [
58894
60035
  "auth"
58895
60036
  ],
58896
- "summary": "Update the current user's own profile (name, avatar)",
60037
+ "summary": "Confirm an email-verification token (programmatic / deep-link flow)",
58897
60038
  "responses": {
58898
60039
  "200": {
58899
60040
  "description": "JSON response",
@@ -58951,99 +60092,65 @@
58951
60092
  "schema": {
58952
60093
  "type": "object",
58953
60094
  "properties": {
58954
- "name": {
60095
+ "token": {
58955
60096
  "type": "string",
58956
- "minLength": 1,
58957
- "maxLength": 200
58958
- },
58959
- "avatarStyle": {
58960
- "anyOf": [
58961
- {
58962
- "type": "object",
58963
- "properties": {
58964
- "seed": {
58965
- "type": "string",
58966
- "minLength": 1,
58967
- "maxLength": 200
58968
- },
58969
- "hue": {
58970
- "type": "integer",
58971
- "minimum": 0,
58972
- "maximum": 359
58973
- },
58974
- "shape": {
58975
- "type": "string",
58976
- "enum": [
58977
- "round",
58978
- "organic",
58979
- "boxy",
58980
- "nub",
58981
- "cloud",
58982
- "sun",
58983
- "capsule",
58984
- "triangle",
58985
- "hexagon",
58986
- "droplet"
58987
- ]
58988
- },
58989
- "expression": {
58990
- "type": "string",
58991
- "enum": [
58992
- "idle",
58993
- "happy",
58994
- "sad",
58995
- "mad",
58996
- "surprised",
58997
- "wink",
58998
- "sleepy",
58999
- "smug",
59000
- "unsure",
59001
- "scared",
59002
- "love",
59003
- "shy",
59004
- "sick",
59005
- "thinking"
59006
- ]
59007
- },
59008
- "background": {
59009
- "type": "string",
59010
- "enum": [
59011
- "none",
59012
- "squircle",
59013
- "circle"
59014
- ]
59015
- }
59016
- },
59017
- "additionalProperties": false
59018
- },
59019
- {
59020
- "type": "null"
59021
- }
59022
- ]
60097
+ "minLength": 20,
60098
+ "maxLength": 500
59023
60099
  }
59024
60100
  },
60101
+ "required": [
60102
+ "token"
60103
+ ],
59025
60104
  "additionalProperties": false
59026
60105
  }
59027
60106
  }
59028
60107
  }
60108
+ }
60109
+ }
60110
+ },
60111
+ "/auth/verify-email": {
60112
+ "get": {
60113
+ "operationId": "auth_verify_email_landing",
60114
+ "tags": [
60115
+ "auth"
60116
+ ],
60117
+ "summary": "Browser landing page that consumes the verification token",
60118
+ "responses": {
60119
+ "200": {
60120
+ "description": "Binary response",
60121
+ "content": {
60122
+ "text/html": {
60123
+ "schema": {
60124
+ "type": "string",
60125
+ "format": "binary"
60126
+ }
60127
+ }
60128
+ }
60129
+ }
59029
60130
  },
59030
- "security": [
60131
+ "parameters": [
59031
60132
  {
59032
- "frontendBearer": []
60133
+ "name": "token",
60134
+ "in": "query",
60135
+ "required": false,
60136
+ "schema": {
60137
+ "type": "string",
60138
+ "minLength": 1,
60139
+ "maxLength": 500
60140
+ }
59033
60141
  }
59034
- ],
59035
- "x-transport": "http"
60142
+ ]
59036
60143
  }
59037
60144
  },
59038
- "/auth/push-token": {
59039
- "post": {
59040
- "operationId": "auth_push_token_upsert",
60145
+ "/auth/me/email": {
60146
+ "patch": {
60147
+ "operationId": "auth_me_email_patch",
59041
60148
  "tags": [
59042
60149
  "auth"
59043
60150
  ],
59044
- "summary": "Register a device push token for the current user",
60151
+ "summary": "Change current user's email after password confirmation",
59045
60152
  "responses": {
59046
- "204": {
60153
+ "200": {
59047
60154
  "description": "JSON response",
59048
60155
  "content": {
59049
60156
  "application/json": {
@@ -59075,11 +60182,7 @@
59075
60182
  },
59076
60183
  "data": {
59077
60184
  "anyOf": [
59078
- {
59079
- "type": "object",
59080
- "properties": {},
59081
- "additionalProperties": false
59082
- },
60185
+ {},
59083
60186
  {
59084
60187
  "type": "null"
59085
60188
  }
@@ -59103,24 +60206,20 @@
59103
60206
  "schema": {
59104
60207
  "type": "object",
59105
60208
  "properties": {
59106
- "token": {
60209
+ "email": {
59107
60210
  "type": "string",
59108
- "minLength": 1,
59109
- "maxLength": 500
60211
+ "format": "email",
60212
+ "maxLength": 320
59110
60213
  },
59111
- "platform": {
60214
+ "password": {
59112
60215
  "type": "string",
59113
- "enum": [
59114
- "ios",
59115
- "android",
59116
- "web",
59117
- "expo"
59118
- ]
60216
+ "minLength": 8,
60217
+ "maxLength": 256
59119
60218
  }
59120
60219
  },
59121
60220
  "required": [
59122
- "token",
59123
- "platform"
60221
+ "email",
60222
+ "password"
59124
60223
  ],
59125
60224
  "additionalProperties": false
59126
60225
  }
@@ -59135,13 +60234,13 @@
59135
60234
  "x-transport": "http"
59136
60235
  }
59137
60236
  },
59138
- "/auth/verify-email/request": {
60237
+ "/auth/password/change": {
59139
60238
  "post": {
59140
- "operationId": "auth_verify_email_request",
60239
+ "operationId": "auth_password_change",
59141
60240
  "tags": [
59142
60241
  "auth"
59143
60242
  ],
59144
- "summary": "Send a fresh email-verification link to the current user",
60243
+ "summary": "Change password for the current user",
59145
60244
  "responses": {
59146
60245
  "200": {
59147
60246
  "description": "JSON response",
@@ -59198,7 +60297,30 @@
59198
60297
  "application/json": {
59199
60298
  "schema": {
59200
60299
  "type": "object",
59201
- "properties": {},
60300
+ "properties": {
60301
+ "currentPassword": {
60302
+ "type": "string",
60303
+ "minLength": 8,
60304
+ "maxLength": 256
60305
+ },
60306
+ "newPassword": {
60307
+ "type": "string",
60308
+ "minLength": 8,
60309
+ "maxLength": 256
60310
+ },
60311
+ "revokeOtherSessions": {
60312
+ "type": "boolean",
60313
+ "default": true
60314
+ },
60315
+ "refreshToken": {
60316
+ "type": "string",
60317
+ "minLength": 20
60318
+ }
60319
+ },
60320
+ "required": [
60321
+ "currentPassword",
60322
+ "newPassword"
60323
+ ],
59202
60324
  "additionalProperties": false
59203
60325
  }
59204
60326
  }
@@ -59212,13 +60334,93 @@
59212
60334
  "x-transport": "http"
59213
60335
  }
59214
60336
  },
59215
- "/auth/verify-email/confirm": {
60337
+ "/auth/password/reset/request": {
59216
60338
  "post": {
59217
- "operationId": "auth_verify_email_confirm",
60339
+ "operationId": "auth_password_reset_request",
59218
60340
  "tags": [
59219
60341
  "auth"
59220
60342
  ],
59221
- "summary": "Confirm an email-verification token (programmatic / deep-link flow)",
60343
+ "summary": "Request a password reset email",
60344
+ "responses": {
60345
+ "200": {
60346
+ "description": "JSON response",
60347
+ "content": {
60348
+ "application/json": {
60349
+ "schema": {
60350
+ "type": "object",
60351
+ "properties": {
60352
+ "success": {
60353
+ "type": "boolean"
60354
+ },
60355
+ "message": {
60356
+ "anyOf": [
60357
+ {
60358
+ "type": "string"
60359
+ },
60360
+ {
60361
+ "type": "null"
60362
+ }
60363
+ ]
60364
+ },
60365
+ "code": {
60366
+ "anyOf": [
60367
+ {
60368
+ "type": "string"
60369
+ },
60370
+ {
60371
+ "type": "null"
60372
+ }
60373
+ ]
60374
+ },
60375
+ "data": {
60376
+ "anyOf": [
60377
+ {},
60378
+ {
60379
+ "type": "null"
60380
+ }
60381
+ ]
60382
+ }
60383
+ },
60384
+ "required": [
60385
+ "success",
60386
+ "data"
60387
+ ],
60388
+ "additionalProperties": false
60389
+ }
60390
+ }
60391
+ }
60392
+ }
60393
+ },
60394
+ "requestBody": {
60395
+ "required": true,
60396
+ "content": {
60397
+ "application/json": {
60398
+ "schema": {
60399
+ "type": "object",
60400
+ "properties": {
60401
+ "email": {
60402
+ "type": "string",
60403
+ "format": "email",
60404
+ "maxLength": 320
60405
+ }
60406
+ },
60407
+ "required": [
60408
+ "email"
60409
+ ],
60410
+ "additionalProperties": false
60411
+ }
60412
+ }
60413
+ }
60414
+ }
60415
+ }
60416
+ },
60417
+ "/auth/password/reset/confirm": {
60418
+ "post": {
60419
+ "operationId": "auth_password_reset_confirm",
60420
+ "tags": [
60421
+ "auth"
60422
+ ],
60423
+ "summary": "Reset password with an email token",
59222
60424
  "responses": {
59223
60425
  "200": {
59224
60426
  "description": "JSON response",
@@ -59280,10 +60482,16 @@
59280
60482
  "type": "string",
59281
60483
  "minLength": 20,
59282
60484
  "maxLength": 500
60485
+ },
60486
+ "newPassword": {
60487
+ "type": "string",
60488
+ "minLength": 8,
60489
+ "maxLength": 256
59283
60490
  }
59284
60491
  },
59285
60492
  "required": [
59286
- "token"
60493
+ "token",
60494
+ "newPassword"
59287
60495
  ],
59288
60496
  "additionalProperties": false
59289
60497
  }
@@ -59292,13 +60500,13 @@
59292
60500
  }
59293
60501
  }
59294
60502
  },
59295
- "/auth/verify-email": {
60503
+ "/auth/password/reset": {
59296
60504
  "get": {
59297
- "operationId": "auth_verify_email_landing",
60505
+ "operationId": "auth_password_reset_landing",
59298
60506
  "tags": [
59299
60507
  "auth"
59300
60508
  ],
59301
- "summary": "Browser landing page that consumes the verification token",
60509
+ "summary": "Browser landing page for password reset links",
59302
60510
  "responses": {
59303
60511
  "200": {
59304
60512
  "description": "Binary response",
@@ -59326,6 +60534,232 @@
59326
60534
  ]
59327
60535
  }
59328
60536
  },
60537
+ "/auth/sessions": {
60538
+ "get": {
60539
+ "operationId": "auth_sessions_list",
60540
+ "tags": [
60541
+ "auth"
60542
+ ],
60543
+ "summary": "List active refresh-token sessions for the current user",
60544
+ "responses": {
60545
+ "200": {
60546
+ "description": "JSON response",
60547
+ "content": {
60548
+ "application/json": {
60549
+ "schema": {
60550
+ "type": "object",
60551
+ "properties": {
60552
+ "success": {
60553
+ "type": "boolean"
60554
+ },
60555
+ "message": {
60556
+ "anyOf": [
60557
+ {
60558
+ "type": "string"
60559
+ },
60560
+ {
60561
+ "type": "null"
60562
+ }
60563
+ ]
60564
+ },
60565
+ "code": {
60566
+ "anyOf": [
60567
+ {
60568
+ "type": "string"
60569
+ },
60570
+ {
60571
+ "type": "null"
60572
+ }
60573
+ ]
60574
+ },
60575
+ "data": {
60576
+ "anyOf": [
60577
+ {},
60578
+ {
60579
+ "type": "null"
60580
+ }
60581
+ ]
60582
+ }
60583
+ },
60584
+ "required": [
60585
+ "success",
60586
+ "data"
60587
+ ],
60588
+ "additionalProperties": false
60589
+ }
60590
+ }
60591
+ }
60592
+ }
60593
+ },
60594
+ "security": [
60595
+ {
60596
+ "frontendBearer": []
60597
+ }
60598
+ ],
60599
+ "x-transport": "http"
60600
+ }
60601
+ },
60602
+ "/auth/sessions/:sessionId": {
60603
+ "delete": {
60604
+ "operationId": "auth_sessions_revoke",
60605
+ "tags": [
60606
+ "auth"
60607
+ ],
60608
+ "summary": "Revoke one active session",
60609
+ "responses": {
60610
+ "200": {
60611
+ "description": "JSON response",
60612
+ "content": {
60613
+ "application/json": {
60614
+ "schema": {
60615
+ "type": "object",
60616
+ "properties": {
60617
+ "success": {
60618
+ "type": "boolean"
60619
+ },
60620
+ "message": {
60621
+ "anyOf": [
60622
+ {
60623
+ "type": "string"
60624
+ },
60625
+ {
60626
+ "type": "null"
60627
+ }
60628
+ ]
60629
+ },
60630
+ "code": {
60631
+ "anyOf": [
60632
+ {
60633
+ "type": "string"
60634
+ },
60635
+ {
60636
+ "type": "null"
60637
+ }
60638
+ ]
60639
+ },
60640
+ "data": {
60641
+ "anyOf": [
60642
+ {},
60643
+ {
60644
+ "type": "null"
60645
+ }
60646
+ ]
60647
+ }
60648
+ },
60649
+ "required": [
60650
+ "success",
60651
+ "data"
60652
+ ],
60653
+ "additionalProperties": false
60654
+ }
60655
+ }
60656
+ }
60657
+ }
60658
+ },
60659
+ "parameters": [
60660
+ {
60661
+ "name": "sessionId",
60662
+ "in": "path",
60663
+ "required": true,
60664
+ "schema": {
60665
+ "type": "integer",
60666
+ "exclusiveMinimum": 0
60667
+ }
60668
+ }
60669
+ ],
60670
+ "security": [
60671
+ {
60672
+ "frontendBearer": []
60673
+ }
60674
+ ],
60675
+ "x-transport": "http"
60676
+ }
60677
+ },
60678
+ "/auth/sessions/revoke-other": {
60679
+ "post": {
60680
+ "operationId": "auth_sessions_revoke_other",
60681
+ "tags": [
60682
+ "auth"
60683
+ ],
60684
+ "summary": "Revoke all sessions except the supplied current refresh token",
60685
+ "responses": {
60686
+ "200": {
60687
+ "description": "JSON response",
60688
+ "content": {
60689
+ "application/json": {
60690
+ "schema": {
60691
+ "type": "object",
60692
+ "properties": {
60693
+ "success": {
60694
+ "type": "boolean"
60695
+ },
60696
+ "message": {
60697
+ "anyOf": [
60698
+ {
60699
+ "type": "string"
60700
+ },
60701
+ {
60702
+ "type": "null"
60703
+ }
60704
+ ]
60705
+ },
60706
+ "code": {
60707
+ "anyOf": [
60708
+ {
60709
+ "type": "string"
60710
+ },
60711
+ {
60712
+ "type": "null"
60713
+ }
60714
+ ]
60715
+ },
60716
+ "data": {
60717
+ "anyOf": [
60718
+ {},
60719
+ {
60720
+ "type": "null"
60721
+ }
60722
+ ]
60723
+ }
60724
+ },
60725
+ "required": [
60726
+ "success",
60727
+ "data"
60728
+ ],
60729
+ "additionalProperties": false
60730
+ }
60731
+ }
60732
+ }
60733
+ }
60734
+ },
60735
+ "requestBody": {
60736
+ "required": true,
60737
+ "content": {
60738
+ "application/json": {
60739
+ "schema": {
60740
+ "type": "object",
60741
+ "properties": {
60742
+ "refreshToken": {
60743
+ "type": "string",
60744
+ "minLength": 20
60745
+ }
60746
+ },
60747
+ "required": [
60748
+ "refreshToken"
60749
+ ],
60750
+ "additionalProperties": false
60751
+ }
60752
+ }
60753
+ }
60754
+ },
60755
+ "security": [
60756
+ {
60757
+ "frontendBearer": []
60758
+ }
60759
+ ],
60760
+ "x-transport": "http"
60761
+ }
60762
+ },
59329
60763
  "/internal/users/provision": {
59330
60764
  "post": {
59331
60765
  "operationId": "internal_users_provision",