@wevion/cli 1.0.2381 → 1.0.2382
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/README.md +100 -27
- package/openapi.json +449 -32
- package/package.json +1 -1
- package/selftest.mjs +258 -12
- package/src/index.mjs +540 -27
package/openapi.json
CHANGED
|
@@ -22823,7 +22823,7 @@
|
|
|
22823
22823
|
"tags": [
|
|
22824
22824
|
"auth"
|
|
22825
22825
|
],
|
|
22826
|
-
"description": "
|
|
22826
|
+
"description": "Generates a new inactive TOTP secret and QR code for first-time 2FA setup. Account password is never required inside the app.",
|
|
22827
22827
|
"requestBody": {
|
|
22828
22828
|
"required": true,
|
|
22829
22829
|
"content": {
|
|
@@ -22831,12 +22831,7 @@
|
|
|
22831
22831
|
"schema": {
|
|
22832
22832
|
"additionalProperties": false,
|
|
22833
22833
|
"type": "object",
|
|
22834
|
-
"properties": {
|
|
22835
|
-
"password": {
|
|
22836
|
-
"maxLength": 128,
|
|
22837
|
-
"type": "string"
|
|
22838
|
-
}
|
|
22839
|
-
}
|
|
22834
|
+
"properties": {}
|
|
22840
22835
|
}
|
|
22841
22836
|
}
|
|
22842
22837
|
}
|
|
@@ -23071,6 +23066,32 @@
|
|
|
23071
23066
|
}
|
|
23072
23067
|
}
|
|
23073
23068
|
}
|
|
23069
|
+
},
|
|
23070
|
+
"503": {
|
|
23071
|
+
"description": "Service unavailable",
|
|
23072
|
+
"content": {
|
|
23073
|
+
"application/json": {
|
|
23074
|
+
"schema": {
|
|
23075
|
+
"type": "object",
|
|
23076
|
+
"required": [
|
|
23077
|
+
"statusCode",
|
|
23078
|
+
"error",
|
|
23079
|
+
"message"
|
|
23080
|
+
],
|
|
23081
|
+
"properties": {
|
|
23082
|
+
"statusCode": {
|
|
23083
|
+
"type": "number"
|
|
23084
|
+
},
|
|
23085
|
+
"error": {
|
|
23086
|
+
"type": "string"
|
|
23087
|
+
},
|
|
23088
|
+
"message": {
|
|
23089
|
+
"type": "string"
|
|
23090
|
+
}
|
|
23091
|
+
}
|
|
23092
|
+
}
|
|
23093
|
+
}
|
|
23094
|
+
}
|
|
23074
23095
|
}
|
|
23075
23096
|
}
|
|
23076
23097
|
}
|
|
@@ -23078,11 +23099,11 @@
|
|
|
23078
23099
|
"/api/v1/auth/2fa/disable": {
|
|
23079
23100
|
"post": {
|
|
23080
23101
|
"operationId": "postApiV1Auth2faDisable",
|
|
23081
|
-
"summary": "
|
|
23102
|
+
"summary": "Reset 2FA enrollment",
|
|
23082
23103
|
"tags": [
|
|
23083
23104
|
"auth"
|
|
23084
23105
|
],
|
|
23085
|
-
"description": "
|
|
23106
|
+
"description": "Clears the current TOTP secret and backup codes after a TOTP/backup-code step-up. Used by the reset flow; account password is never accepted.",
|
|
23086
23107
|
"requestBody": {
|
|
23087
23108
|
"required": true,
|
|
23088
23109
|
"content": {
|
|
@@ -23094,10 +23115,6 @@
|
|
|
23094
23115
|
"code"
|
|
23095
23116
|
],
|
|
23096
23117
|
"properties": {
|
|
23097
|
-
"password": {
|
|
23098
|
-
"maxLength": 128,
|
|
23099
|
-
"type": "string"
|
|
23100
|
-
},
|
|
23101
23118
|
"code": {
|
|
23102
23119
|
"minLength": 6,
|
|
23103
23120
|
"maxLength": 8,
|
|
@@ -23380,7 +23397,7 @@
|
|
|
23380
23397
|
"tags": [
|
|
23381
23398
|
"auth"
|
|
23382
23399
|
],
|
|
23383
|
-
"description": "Generates a new set of backup codes. Requires step-up authentication on top of the JWT session:
|
|
23400
|
+
"description": "Generates a new set of backup codes. Requires step-up authentication on top of the JWT session: the user must provide a valid current TOTP or one existing backup code. Account password is never accepted.",
|
|
23384
23401
|
"requestBody": {
|
|
23385
23402
|
"required": true,
|
|
23386
23403
|
"content": {
|
|
@@ -23388,11 +23405,10 @@
|
|
|
23388
23405
|
"schema": {
|
|
23389
23406
|
"additionalProperties": false,
|
|
23390
23407
|
"type": "object",
|
|
23408
|
+
"required": [
|
|
23409
|
+
"code"
|
|
23410
|
+
],
|
|
23391
23411
|
"properties": {
|
|
23392
|
-
"password": {
|
|
23393
|
-
"maxLength": 128,
|
|
23394
|
-
"type": "string"
|
|
23395
|
-
},
|
|
23396
23412
|
"code": {
|
|
23397
23413
|
"minLength": 6,
|
|
23398
23414
|
"maxLength": 8,
|
|
@@ -24386,7 +24402,10 @@
|
|
|
24386
24402
|
"login_method",
|
|
24387
24403
|
"success",
|
|
24388
24404
|
"failure_reason",
|
|
24389
|
-
"created_at"
|
|
24405
|
+
"created_at",
|
|
24406
|
+
"country",
|
|
24407
|
+
"is_new_device",
|
|
24408
|
+
"is_new_country"
|
|
24390
24409
|
],
|
|
24391
24410
|
"properties": {
|
|
24392
24411
|
"id": {
|
|
@@ -24430,6 +24449,36 @@
|
|
|
24430
24449
|
},
|
|
24431
24450
|
"created_at": {
|
|
24432
24451
|
"type": "string"
|
|
24452
|
+
},
|
|
24453
|
+
"country": {
|
|
24454
|
+
"anyOf": [
|
|
24455
|
+
{
|
|
24456
|
+
"type": "string"
|
|
24457
|
+
},
|
|
24458
|
+
{
|
|
24459
|
+
"type": "null"
|
|
24460
|
+
}
|
|
24461
|
+
]
|
|
24462
|
+
},
|
|
24463
|
+
"is_new_device": {
|
|
24464
|
+
"anyOf": [
|
|
24465
|
+
{
|
|
24466
|
+
"type": "boolean"
|
|
24467
|
+
},
|
|
24468
|
+
{
|
|
24469
|
+
"type": "null"
|
|
24470
|
+
}
|
|
24471
|
+
]
|
|
24472
|
+
},
|
|
24473
|
+
"is_new_country": {
|
|
24474
|
+
"anyOf": [
|
|
24475
|
+
{
|
|
24476
|
+
"type": "boolean"
|
|
24477
|
+
},
|
|
24478
|
+
{
|
|
24479
|
+
"type": "null"
|
|
24480
|
+
}
|
|
24481
|
+
]
|
|
24433
24482
|
}
|
|
24434
24483
|
}
|
|
24435
24484
|
}
|
|
@@ -24510,7 +24559,7 @@
|
|
|
24510
24559
|
"tags": [
|
|
24511
24560
|
"auth"
|
|
24512
24561
|
],
|
|
24513
|
-
"description": "Returns the REAL non-expired BetterAuth sessions (auth_session rows) for the current user — one per signed-in device. Revoking these truly logs out the corresponding device.",
|
|
24562
|
+
"description": "Returns the REAL non-expired BetterAuth sessions (auth_session rows) for the current user — one per signed-in device. The current device (`is_current`) is identified by the JWT `sid` claim (= auth_session.id, exposed as request.authSessionId); legacy tokens with no `sid` fall back to an IP + user-agent match. Revoking these truly logs out the corresponding device.",
|
|
24514
24563
|
"security": [
|
|
24515
24564
|
{
|
|
24516
24565
|
"bearerAuth": []
|
|
@@ -24642,7 +24691,7 @@
|
|
|
24642
24691
|
"tags": [
|
|
24643
24692
|
"auth"
|
|
24644
24693
|
],
|
|
24645
|
-
"description": "Logs out all
|
|
24694
|
+
"description": "Logs out all devices, including the current one: deletes every BetterAuth session (auth_session row) for the user, denylists every sid in Redis for immediate JWT rejection, and sets token_invalidated_before=now so already-issued short-lived JWTs are rejected at once. Requires a current TOTP or backup code; account password is never accepted.",
|
|
24646
24695
|
"requestBody": {
|
|
24647
24696
|
"required": true,
|
|
24648
24697
|
"content": {
|
|
@@ -24650,9 +24699,13 @@
|
|
|
24650
24699
|
"schema": {
|
|
24651
24700
|
"additionalProperties": false,
|
|
24652
24701
|
"type": "object",
|
|
24702
|
+
"required": [
|
|
24703
|
+
"code"
|
|
24704
|
+
],
|
|
24653
24705
|
"properties": {
|
|
24654
|
-
"
|
|
24655
|
-
"
|
|
24706
|
+
"code": {
|
|
24707
|
+
"minLength": 6,
|
|
24708
|
+
"maxLength": 8,
|
|
24656
24709
|
"type": "string"
|
|
24657
24710
|
}
|
|
24658
24711
|
}
|
|
@@ -24772,7 +24825,7 @@
|
|
|
24772
24825
|
"tags": [
|
|
24773
24826
|
"auth"
|
|
24774
24827
|
],
|
|
24775
|
-
"description": "Truly revokes a specific device by deleting its
|
|
24828
|
+
"description": "Truly revokes a specific device by deleting its BetterAuth session (auth_session row). The :sessionId is an auth_session.id (= the JWT `sid`). The session identified as current (sessionId === the caller’s sid) cannot be revoked here. The revoked sid is denylisted in Redis so the device’s outstanding short-lived JWT is rejected immediately.",
|
|
24776
24829
|
"parameters": [
|
|
24777
24830
|
{
|
|
24778
24831
|
"schema": {
|
|
@@ -24922,7 +24975,7 @@
|
|
|
24922
24975
|
"tags": [
|
|
24923
24976
|
"auth"
|
|
24924
24977
|
],
|
|
24925
|
-
"description": "Schedules account for deletion after 30-day grace period. Requires typing \"DELETE\".
|
|
24978
|
+
"description": "Schedules account for deletion after 30-day grace period. Requires typing \"DELETE\". Also requires a current TOTP or backup code; account password is never accepted.",
|
|
24926
24979
|
"requestBody": {
|
|
24927
24980
|
"required": true,
|
|
24928
24981
|
"content": {
|
|
@@ -24931,18 +24984,20 @@
|
|
|
24931
24984
|
"additionalProperties": false,
|
|
24932
24985
|
"type": "object",
|
|
24933
24986
|
"required": [
|
|
24934
|
-
"confirmation"
|
|
24987
|
+
"confirmation",
|
|
24988
|
+
"code"
|
|
24935
24989
|
],
|
|
24936
24990
|
"properties": {
|
|
24937
|
-
"password": {
|
|
24938
|
-
"maxLength": 128,
|
|
24939
|
-
"type": "string"
|
|
24940
|
-
},
|
|
24941
24991
|
"confirmation": {
|
|
24942
24992
|
"type": "string",
|
|
24943
24993
|
"enum": [
|
|
24944
24994
|
"DELETE"
|
|
24945
24995
|
]
|
|
24996
|
+
},
|
|
24997
|
+
"code": {
|
|
24998
|
+
"minLength": 6,
|
|
24999
|
+
"maxLength": 8,
|
|
25000
|
+
"type": "string"
|
|
24946
25001
|
}
|
|
24947
25002
|
}
|
|
24948
25003
|
}
|
|
@@ -25321,6 +25376,289 @@
|
|
|
25321
25376
|
}
|
|
25322
25377
|
}
|
|
25323
25378
|
},
|
|
25379
|
+
"/api/v1/auth/security-nudge": {
|
|
25380
|
+
"get": {
|
|
25381
|
+
"operationId": "getApiV1AuthSecurityNudge",
|
|
25382
|
+
"summary": "Get 2FA nudge state",
|
|
25383
|
+
"tags": [
|
|
25384
|
+
"auth"
|
|
25385
|
+
],
|
|
25386
|
+
"description": "Returns the current user's 2FA-enable nudge banner state (last dismissal time, last shown time, snooze count). Defaults are returned when no state has been persisted yet.",
|
|
25387
|
+
"security": [
|
|
25388
|
+
{
|
|
25389
|
+
"bearerAuth": []
|
|
25390
|
+
}
|
|
25391
|
+
],
|
|
25392
|
+
"responses": {
|
|
25393
|
+
"200": {
|
|
25394
|
+
"description": "Successful response",
|
|
25395
|
+
"content": {
|
|
25396
|
+
"application/json": {
|
|
25397
|
+
"schema": {
|
|
25398
|
+
"type": "object",
|
|
25399
|
+
"required": [
|
|
25400
|
+
"dismissed_at",
|
|
25401
|
+
"last_shown_at",
|
|
25402
|
+
"snooze_count"
|
|
25403
|
+
],
|
|
25404
|
+
"properties": {
|
|
25405
|
+
"dismissed_at": {
|
|
25406
|
+
"anyOf": [
|
|
25407
|
+
{
|
|
25408
|
+
"type": "string"
|
|
25409
|
+
},
|
|
25410
|
+
{
|
|
25411
|
+
"type": "null"
|
|
25412
|
+
}
|
|
25413
|
+
]
|
|
25414
|
+
},
|
|
25415
|
+
"last_shown_at": {
|
|
25416
|
+
"anyOf": [
|
|
25417
|
+
{
|
|
25418
|
+
"type": "string"
|
|
25419
|
+
},
|
|
25420
|
+
{
|
|
25421
|
+
"type": "null"
|
|
25422
|
+
}
|
|
25423
|
+
]
|
|
25424
|
+
},
|
|
25425
|
+
"snooze_count": {
|
|
25426
|
+
"minimum": 0,
|
|
25427
|
+
"type": "integer"
|
|
25428
|
+
}
|
|
25429
|
+
}
|
|
25430
|
+
}
|
|
25431
|
+
}
|
|
25432
|
+
}
|
|
25433
|
+
},
|
|
25434
|
+
"401": {
|
|
25435
|
+
"description": "Unauthorized - missing or invalid bearer token",
|
|
25436
|
+
"content": {
|
|
25437
|
+
"application/json": {
|
|
25438
|
+
"schema": {
|
|
25439
|
+
"type": "object",
|
|
25440
|
+
"required": [
|
|
25441
|
+
"statusCode",
|
|
25442
|
+
"error",
|
|
25443
|
+
"message"
|
|
25444
|
+
],
|
|
25445
|
+
"properties": {
|
|
25446
|
+
"statusCode": {
|
|
25447
|
+
"type": "number"
|
|
25448
|
+
},
|
|
25449
|
+
"error": {
|
|
25450
|
+
"type": "string"
|
|
25451
|
+
},
|
|
25452
|
+
"message": {
|
|
25453
|
+
"type": "string"
|
|
25454
|
+
}
|
|
25455
|
+
}
|
|
25456
|
+
}
|
|
25457
|
+
}
|
|
25458
|
+
}
|
|
25459
|
+
},
|
|
25460
|
+
"500": {
|
|
25461
|
+
"description": "Internal server error",
|
|
25462
|
+
"content": {
|
|
25463
|
+
"application/json": {
|
|
25464
|
+
"schema": {
|
|
25465
|
+
"type": "object",
|
|
25466
|
+
"required": [
|
|
25467
|
+
"statusCode",
|
|
25468
|
+
"error",
|
|
25469
|
+
"message"
|
|
25470
|
+
],
|
|
25471
|
+
"properties": {
|
|
25472
|
+
"statusCode": {
|
|
25473
|
+
"type": "number"
|
|
25474
|
+
},
|
|
25475
|
+
"error": {
|
|
25476
|
+
"type": "string"
|
|
25477
|
+
},
|
|
25478
|
+
"message": {
|
|
25479
|
+
"type": "string"
|
|
25480
|
+
}
|
|
25481
|
+
}
|
|
25482
|
+
}
|
|
25483
|
+
}
|
|
25484
|
+
}
|
|
25485
|
+
}
|
|
25486
|
+
}
|
|
25487
|
+
},
|
|
25488
|
+
"put": {
|
|
25489
|
+
"operationId": "putApiV1AuthSecurityNudge",
|
|
25490
|
+
"summary": "Update 2FA nudge state",
|
|
25491
|
+
"tags": [
|
|
25492
|
+
"auth"
|
|
25493
|
+
],
|
|
25494
|
+
"description": "Merges the provided fields into the current user's 2FA-enable nudge banner state and persists it. Used when the user snoozes (\"Più tardi\") or when the banner records that it was shown. Opt-in only; this never enforces 2FA.",
|
|
25495
|
+
"requestBody": {
|
|
25496
|
+
"required": true,
|
|
25497
|
+
"content": {
|
|
25498
|
+
"application/json": {
|
|
25499
|
+
"schema": {
|
|
25500
|
+
"additionalProperties": false,
|
|
25501
|
+
"type": "object",
|
|
25502
|
+
"properties": {
|
|
25503
|
+
"dismissed_at": {
|
|
25504
|
+
"anyOf": [
|
|
25505
|
+
{
|
|
25506
|
+
"format": "date-time",
|
|
25507
|
+
"type": "string"
|
|
25508
|
+
},
|
|
25509
|
+
{
|
|
25510
|
+
"type": "null"
|
|
25511
|
+
}
|
|
25512
|
+
]
|
|
25513
|
+
},
|
|
25514
|
+
"last_shown_at": {
|
|
25515
|
+
"anyOf": [
|
|
25516
|
+
{
|
|
25517
|
+
"format": "date-time",
|
|
25518
|
+
"type": "string"
|
|
25519
|
+
},
|
|
25520
|
+
{
|
|
25521
|
+
"type": "null"
|
|
25522
|
+
}
|
|
25523
|
+
]
|
|
25524
|
+
},
|
|
25525
|
+
"snooze_count": {
|
|
25526
|
+
"minimum": 0,
|
|
25527
|
+
"type": "integer"
|
|
25528
|
+
}
|
|
25529
|
+
}
|
|
25530
|
+
}
|
|
25531
|
+
}
|
|
25532
|
+
}
|
|
25533
|
+
},
|
|
25534
|
+
"security": [
|
|
25535
|
+
{
|
|
25536
|
+
"bearerAuth": []
|
|
25537
|
+
}
|
|
25538
|
+
],
|
|
25539
|
+
"responses": {
|
|
25540
|
+
"200": {
|
|
25541
|
+
"description": "Successful response",
|
|
25542
|
+
"content": {
|
|
25543
|
+
"application/json": {
|
|
25544
|
+
"schema": {
|
|
25545
|
+
"type": "object",
|
|
25546
|
+
"required": [
|
|
25547
|
+
"dismissed_at",
|
|
25548
|
+
"last_shown_at",
|
|
25549
|
+
"snooze_count"
|
|
25550
|
+
],
|
|
25551
|
+
"properties": {
|
|
25552
|
+
"dismissed_at": {
|
|
25553
|
+
"anyOf": [
|
|
25554
|
+
{
|
|
25555
|
+
"type": "string"
|
|
25556
|
+
},
|
|
25557
|
+
{
|
|
25558
|
+
"type": "null"
|
|
25559
|
+
}
|
|
25560
|
+
]
|
|
25561
|
+
},
|
|
25562
|
+
"last_shown_at": {
|
|
25563
|
+
"anyOf": [
|
|
25564
|
+
{
|
|
25565
|
+
"type": "string"
|
|
25566
|
+
},
|
|
25567
|
+
{
|
|
25568
|
+
"type": "null"
|
|
25569
|
+
}
|
|
25570
|
+
]
|
|
25571
|
+
},
|
|
25572
|
+
"snooze_count": {
|
|
25573
|
+
"minimum": 0,
|
|
25574
|
+
"type": "integer"
|
|
25575
|
+
}
|
|
25576
|
+
}
|
|
25577
|
+
}
|
|
25578
|
+
}
|
|
25579
|
+
}
|
|
25580
|
+
},
|
|
25581
|
+
"400": {
|
|
25582
|
+
"description": "Invalid request - schema validation failed",
|
|
25583
|
+
"content": {
|
|
25584
|
+
"application/json": {
|
|
25585
|
+
"schema": {
|
|
25586
|
+
"type": "object",
|
|
25587
|
+
"required": [
|
|
25588
|
+
"statusCode",
|
|
25589
|
+
"error",
|
|
25590
|
+
"message"
|
|
25591
|
+
],
|
|
25592
|
+
"properties": {
|
|
25593
|
+
"statusCode": {
|
|
25594
|
+
"type": "number"
|
|
25595
|
+
},
|
|
25596
|
+
"error": {
|
|
25597
|
+
"type": "string"
|
|
25598
|
+
},
|
|
25599
|
+
"message": {
|
|
25600
|
+
"type": "string"
|
|
25601
|
+
}
|
|
25602
|
+
}
|
|
25603
|
+
}
|
|
25604
|
+
}
|
|
25605
|
+
}
|
|
25606
|
+
},
|
|
25607
|
+
"401": {
|
|
25608
|
+
"description": "Unauthorized - missing or invalid bearer token",
|
|
25609
|
+
"content": {
|
|
25610
|
+
"application/json": {
|
|
25611
|
+
"schema": {
|
|
25612
|
+
"type": "object",
|
|
25613
|
+
"required": [
|
|
25614
|
+
"statusCode",
|
|
25615
|
+
"error",
|
|
25616
|
+
"message"
|
|
25617
|
+
],
|
|
25618
|
+
"properties": {
|
|
25619
|
+
"statusCode": {
|
|
25620
|
+
"type": "number"
|
|
25621
|
+
},
|
|
25622
|
+
"error": {
|
|
25623
|
+
"type": "string"
|
|
25624
|
+
},
|
|
25625
|
+
"message": {
|
|
25626
|
+
"type": "string"
|
|
25627
|
+
}
|
|
25628
|
+
}
|
|
25629
|
+
}
|
|
25630
|
+
}
|
|
25631
|
+
}
|
|
25632
|
+
},
|
|
25633
|
+
"500": {
|
|
25634
|
+
"description": "Internal server error",
|
|
25635
|
+
"content": {
|
|
25636
|
+
"application/json": {
|
|
25637
|
+
"schema": {
|
|
25638
|
+
"type": "object",
|
|
25639
|
+
"required": [
|
|
25640
|
+
"statusCode",
|
|
25641
|
+
"error",
|
|
25642
|
+
"message"
|
|
25643
|
+
],
|
|
25644
|
+
"properties": {
|
|
25645
|
+
"statusCode": {
|
|
25646
|
+
"type": "number"
|
|
25647
|
+
},
|
|
25648
|
+
"error": {
|
|
25649
|
+
"type": "string"
|
|
25650
|
+
},
|
|
25651
|
+
"message": {
|
|
25652
|
+
"type": "string"
|
|
25653
|
+
}
|
|
25654
|
+
}
|
|
25655
|
+
}
|
|
25656
|
+
}
|
|
25657
|
+
}
|
|
25658
|
+
}
|
|
25659
|
+
}
|
|
25660
|
+
}
|
|
25661
|
+
},
|
|
25324
25662
|
"/api/v1/auth/me": {
|
|
25325
25663
|
"get": {
|
|
25326
25664
|
"operationId": "getApiV1AuthMe",
|
|
@@ -25498,6 +25836,12 @@
|
|
|
25498
25836
|
"two_factor_required": {
|
|
25499
25837
|
"type": "boolean"
|
|
25500
25838
|
},
|
|
25839
|
+
"two_factor_setup_required": {
|
|
25840
|
+
"type": "boolean"
|
|
25841
|
+
},
|
|
25842
|
+
"two_factor_mandatory": {
|
|
25843
|
+
"type": "boolean"
|
|
25844
|
+
},
|
|
25501
25845
|
"has_password": {
|
|
25502
25846
|
"type": "boolean"
|
|
25503
25847
|
},
|
|
@@ -26178,6 +26522,12 @@
|
|
|
26178
26522
|
"two_factor_required": {
|
|
26179
26523
|
"type": "boolean"
|
|
26180
26524
|
},
|
|
26525
|
+
"two_factor_setup_required": {
|
|
26526
|
+
"type": "boolean"
|
|
26527
|
+
},
|
|
26528
|
+
"two_factor_mandatory": {
|
|
26529
|
+
"type": "boolean"
|
|
26530
|
+
},
|
|
26181
26531
|
"has_password": {
|
|
26182
26532
|
"type": "boolean"
|
|
26183
26533
|
},
|
|
@@ -26614,6 +26964,12 @@
|
|
|
26614
26964
|
"two_factor_required": {
|
|
26615
26965
|
"type": "boolean"
|
|
26616
26966
|
},
|
|
26967
|
+
"two_factor_setup_required": {
|
|
26968
|
+
"type": "boolean"
|
|
26969
|
+
},
|
|
26970
|
+
"two_factor_mandatory": {
|
|
26971
|
+
"type": "boolean"
|
|
26972
|
+
},
|
|
26617
26973
|
"has_password": {
|
|
26618
26974
|
"type": "boolean"
|
|
26619
26975
|
},
|
|
@@ -141223,7 +141579,7 @@
|
|
|
141223
141579
|
"properties": {
|
|
141224
141580
|
"preferences": {
|
|
141225
141581
|
"minItems": 1,
|
|
141226
|
-
"maxItems":
|
|
141582
|
+
"maxItems": 29,
|
|
141227
141583
|
"type": "array",
|
|
141228
141584
|
"items": {
|
|
141229
141585
|
"additionalProperties": false,
|
|
@@ -216703,7 +217059,8 @@
|
|
|
216703
217059
|
"type": "string"
|
|
216704
217060
|
},
|
|
216705
217061
|
"daily_budget": {
|
|
216706
|
-
"
|
|
217062
|
+
"minimum": 1,
|
|
217063
|
+
"description": "Daily budget in cents (must be > 0 for CBO and ABO)",
|
|
216707
217064
|
"type": "number"
|
|
216708
217065
|
},
|
|
216709
217066
|
"adset_names": {
|
|
@@ -216782,10 +217139,14 @@
|
|
|
216782
217139
|
"type": "string"
|
|
216783
217140
|
},
|
|
216784
217141
|
"min_age": {
|
|
217142
|
+
"minimum": 13,
|
|
217143
|
+
"maximum": 65,
|
|
216785
217144
|
"description": "Minimum age targeting",
|
|
216786
217145
|
"type": "number"
|
|
216787
217146
|
},
|
|
216788
217147
|
"max_age": {
|
|
217148
|
+
"minimum": 13,
|
|
217149
|
+
"maximum": 65,
|
|
216789
217150
|
"description": "Maximum age targeting",
|
|
216790
217151
|
"type": "number"
|
|
216791
217152
|
},
|
|
@@ -225323,6 +225684,62 @@
|
|
|
225323
225684
|
}
|
|
225324
225685
|
}
|
|
225325
225686
|
},
|
|
225687
|
+
"/meta/extension.zip": {
|
|
225688
|
+
"get": {
|
|
225689
|
+
"operationId": "getMetaExtensionZip",
|
|
225690
|
+
"summary": "Download the auto-connect Chrome extension",
|
|
225691
|
+
"tags": [
|
|
225692
|
+
"meta"
|
|
225693
|
+
],
|
|
225694
|
+
"description": "Returns a .zip of the \"Wevion Connect\" Chrome extension, pre-configured with this workspace OAuth link. Install it in Chrome or on any Chromium antidetect browser (AdsPower, Multilogin, GoLogin, Dolphin, ...) and open the profiles: the Facebook accounts connect to this workspace automatically.",
|
|
225695
|
+
"security": [
|
|
225696
|
+
{
|
|
225697
|
+
"bearerAuth": []
|
|
225698
|
+
}
|
|
225699
|
+
],
|
|
225700
|
+
"responses": {
|
|
225701
|
+
"200": {
|
|
225702
|
+
"description": "ZIP archive of the pre-configured \"Wevion Connect\" Chrome extension (application/zip).",
|
|
225703
|
+
"content": {
|
|
225704
|
+
"application/json": {
|
|
225705
|
+
"schema": {
|
|
225706
|
+
"format": "binary",
|
|
225707
|
+
"description": "ZIP archive of the pre-configured \"Wevion Connect\" Chrome extension (application/zip).",
|
|
225708
|
+
"type": "string"
|
|
225709
|
+
}
|
|
225710
|
+
}
|
|
225711
|
+
}
|
|
225712
|
+
},
|
|
225713
|
+
"401": {
|
|
225714
|
+
"description": "Unauthorized — a valid session is required.",
|
|
225715
|
+
"content": {
|
|
225716
|
+
"application/json": {
|
|
225717
|
+
"schema": {
|
|
225718
|
+
"description": "Unauthorized — a valid session is required.",
|
|
225719
|
+
"type": "object",
|
|
225720
|
+
"required": [
|
|
225721
|
+
"statusCode",
|
|
225722
|
+
"error",
|
|
225723
|
+
"message"
|
|
225724
|
+
],
|
|
225725
|
+
"properties": {
|
|
225726
|
+
"statusCode": {
|
|
225727
|
+
"type": "number"
|
|
225728
|
+
},
|
|
225729
|
+
"error": {
|
|
225730
|
+
"type": "string"
|
|
225731
|
+
},
|
|
225732
|
+
"message": {
|
|
225733
|
+
"type": "string"
|
|
225734
|
+
}
|
|
225735
|
+
}
|
|
225736
|
+
}
|
|
225737
|
+
}
|
|
225738
|
+
}
|
|
225739
|
+
}
|
|
225740
|
+
}
|
|
225741
|
+
}
|
|
225742
|
+
},
|
|
225326
225743
|
"/meta/login-callback": {
|
|
225327
225744
|
"get": {
|
|
225328
225745
|
"operationId": "getMetaLoginCallback",
|