@productcraft/platform-auth 0.0.8 → 0.0.9
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/index.d.cts +465 -21
- package/dist/index.d.ts +465 -21
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -74,6 +74,40 @@ interface paths {
|
|
|
74
74
|
patch?: never;
|
|
75
75
|
trace?: never;
|
|
76
76
|
};
|
|
77
|
+
"/v1/auth/oauth/{provider}/callback": {
|
|
78
|
+
parameters: {
|
|
79
|
+
query?: never;
|
|
80
|
+
header?: never;
|
|
81
|
+
path?: never;
|
|
82
|
+
cookie?: never;
|
|
83
|
+
};
|
|
84
|
+
get?: never;
|
|
85
|
+
put?: never;
|
|
86
|
+
/** Complete a federated sign-in. auth-ui proxies the provider redirect (query params for Google/GitHub, form_post body for Apple) into this endpoint and uses the returned `tokens` to set the auth_token cookie. */
|
|
87
|
+
post: operations["OAuthController_callback"];
|
|
88
|
+
delete?: never;
|
|
89
|
+
options?: never;
|
|
90
|
+
head?: never;
|
|
91
|
+
patch?: never;
|
|
92
|
+
trace?: never;
|
|
93
|
+
};
|
|
94
|
+
"/v1/auth/oauth/{provider}/start": {
|
|
95
|
+
parameters: {
|
|
96
|
+
query?: never;
|
|
97
|
+
header?: never;
|
|
98
|
+
path?: never;
|
|
99
|
+
cookie?: never;
|
|
100
|
+
};
|
|
101
|
+
/** Begin a federated sign-in flow; 302s to the provider authorize URL. */
|
|
102
|
+
get: operations["OAuthController_start"];
|
|
103
|
+
put?: never;
|
|
104
|
+
post?: never;
|
|
105
|
+
delete?: never;
|
|
106
|
+
options?: never;
|
|
107
|
+
head?: never;
|
|
108
|
+
patch?: never;
|
|
109
|
+
trace?: never;
|
|
110
|
+
};
|
|
77
111
|
"/v1/auth/password/request-reset": {
|
|
78
112
|
parameters: {
|
|
79
113
|
query?: never;
|
|
@@ -210,6 +244,58 @@ interface paths {
|
|
|
210
244
|
patch?: never;
|
|
211
245
|
trace?: never;
|
|
212
246
|
};
|
|
247
|
+
"/v1/me": {
|
|
248
|
+
parameters: {
|
|
249
|
+
query?: never;
|
|
250
|
+
header?: never;
|
|
251
|
+
path?: never;
|
|
252
|
+
cookie?: never;
|
|
253
|
+
};
|
|
254
|
+
/** Read the caller's account profile. */
|
|
255
|
+
get: operations["MeController_getMe"];
|
|
256
|
+
put?: never;
|
|
257
|
+
post?: never;
|
|
258
|
+
delete?: never;
|
|
259
|
+
options?: never;
|
|
260
|
+
head?: never;
|
|
261
|
+
patch?: never;
|
|
262
|
+
trace?: never;
|
|
263
|
+
};
|
|
264
|
+
"/v1/me/avatar": {
|
|
265
|
+
parameters: {
|
|
266
|
+
query?: never;
|
|
267
|
+
header?: never;
|
|
268
|
+
path?: never;
|
|
269
|
+
cookie?: never;
|
|
270
|
+
};
|
|
271
|
+
get?: never;
|
|
272
|
+
put?: never;
|
|
273
|
+
/** Upload (or replace) the caller's avatar. PNG/JPEG/WEBP only — SVG is rejected because user-uploaded SVG from a productcraft.co origin is a stored-XSS vector. ≤2 MB. Magic bytes are sniffed; a mislabeled file is rejected. */
|
|
274
|
+
post: operations["MeController_setAvatar"];
|
|
275
|
+
/** Clear the caller's avatar and delete the stored object. */
|
|
276
|
+
delete: operations["MeController_removeAvatar"];
|
|
277
|
+
options?: never;
|
|
278
|
+
head?: never;
|
|
279
|
+
patch?: never;
|
|
280
|
+
trace?: never;
|
|
281
|
+
};
|
|
282
|
+
"/v1/me/profile": {
|
|
283
|
+
parameters: {
|
|
284
|
+
query?: never;
|
|
285
|
+
header?: never;
|
|
286
|
+
path?: never;
|
|
287
|
+
cookie?: never;
|
|
288
|
+
};
|
|
289
|
+
get?: never;
|
|
290
|
+
put?: never;
|
|
291
|
+
post?: never;
|
|
292
|
+
delete?: never;
|
|
293
|
+
options?: never;
|
|
294
|
+
head?: never;
|
|
295
|
+
/** Update the caller's profile. Currently only `displayName` is editable. An empty body is a no-op that returns the current profile. Cookie/JWT only — this is a human-self-service surface, not a PAK-mutation surface. */
|
|
296
|
+
patch: operations["MeController_updateProfile"];
|
|
297
|
+
trace?: never;
|
|
298
|
+
};
|
|
213
299
|
"/v1/session": {
|
|
214
300
|
parameters: {
|
|
215
301
|
query?: never;
|
|
@@ -271,7 +357,7 @@ interface paths {
|
|
|
271
357
|
/** List workspaces the current user belongs to */
|
|
272
358
|
get: operations["WorkspaceController_listWorkspaces"];
|
|
273
359
|
put?: never;
|
|
274
|
-
/** Create a new workspace */
|
|
360
|
+
/** Create a new workspace. Cookie/JWT only — PAKs are workspace-scoped credentials and cannot create new workspaces. */
|
|
275
361
|
post: operations["WorkspaceController_createWorkspace"];
|
|
276
362
|
delete?: never;
|
|
277
363
|
options?: never;
|
|
@@ -288,7 +374,7 @@ interface paths {
|
|
|
288
374
|
};
|
|
289
375
|
get?: never;
|
|
290
376
|
put?: never;
|
|
291
|
-
/** Accept a workspace invite by code */
|
|
377
|
+
/** Accept a workspace invite by code. Cookie/JWT only — invite acceptance binds a human identity to a workspace. */
|
|
292
378
|
post: operations["WorkspaceController_acceptInvite"];
|
|
293
379
|
delete?: never;
|
|
294
380
|
options?: never;
|
|
@@ -307,11 +393,11 @@ interface paths {
|
|
|
307
393
|
get: operations["WorkspaceController_getWorkspace"];
|
|
308
394
|
put?: never;
|
|
309
395
|
post?: never;
|
|
310
|
-
/** Delete a workspace (requires workspace.delete) */
|
|
396
|
+
/** Delete a workspace (requires workspace.delete). Cookie/JWT only — irreversible workspace destruction needs a human-attributed audit row. */
|
|
311
397
|
delete: operations["WorkspaceController_deleteWorkspace"];
|
|
312
398
|
options?: never;
|
|
313
399
|
head?: never;
|
|
314
|
-
/** Update workspace display name, slug, or settings. Slug renames broadcast a `workspace.renamed` event so denormalised consumers (
|
|
400
|
+
/** Update workspace display name, slug, or settings. Slug renames broadcast a `workspace.renamed` event so denormalised consumers (waitlist-api) sync. */
|
|
315
401
|
patch: operations["WorkspaceController_updateWorkspace"];
|
|
316
402
|
trace?: never;
|
|
317
403
|
};
|
|
@@ -325,7 +411,7 @@ interface paths {
|
|
|
325
411
|
/** List PAKs in this workspace. Plaintext tokens are NOT returned — only prefixes + metadata. */
|
|
326
412
|
get: operations["PlatformApiKeyController_list"];
|
|
327
413
|
put?: never;
|
|
328
|
-
/** Mint a new PAK. The plaintext `token` is returned ONCE — store it now. The minter can grant at most their own effective permissions. */
|
|
414
|
+
/** Mint a new PAK. The plaintext `token` is returned ONCE — store it now. The minter can grant at most their own effective permissions. Cookie/JWT only — PAKs cannot mint other PAKs. */
|
|
329
415
|
post: operations["PlatformApiKeyController_create"];
|
|
330
416
|
delete?: never;
|
|
331
417
|
options?: never;
|
|
@@ -406,6 +492,24 @@ interface paths {
|
|
|
406
492
|
patch?: never;
|
|
407
493
|
trace?: never;
|
|
408
494
|
};
|
|
495
|
+
"/v1/workspaces/{workspace_slug}/avatar": {
|
|
496
|
+
parameters: {
|
|
497
|
+
query?: never;
|
|
498
|
+
header?: never;
|
|
499
|
+
path?: never;
|
|
500
|
+
cookie?: never;
|
|
501
|
+
};
|
|
502
|
+
get?: never;
|
|
503
|
+
put?: never;
|
|
504
|
+
/** Upload (or replace) the workspace identity avatar. Gated by `workspace.settings.update` (owner + admin). PNG/JPEG/WEBP only, ≤2 MB, magic-byte sniffed. SVG is rejected (stored-XSS). */
|
|
505
|
+
post: operations["WorkspaceController_setAvatar"];
|
|
506
|
+
/** Clear the workspace avatar and delete the stored object. Gated by `workspace.settings.update`. */
|
|
507
|
+
delete: operations["WorkspaceController_removeAvatar"];
|
|
508
|
+
options?: never;
|
|
509
|
+
head?: never;
|
|
510
|
+
patch?: never;
|
|
511
|
+
trace?: never;
|
|
512
|
+
};
|
|
409
513
|
"/v1/workspaces/{workspace_slug}/invites": {
|
|
410
514
|
parameters: {
|
|
411
515
|
query?: never;
|
|
@@ -416,7 +520,7 @@ interface paths {
|
|
|
416
520
|
/** List workspace invites */
|
|
417
521
|
get: operations["WorkspaceController_listInvites"];
|
|
418
522
|
put?: never;
|
|
419
|
-
/** Create a workspace invite link */
|
|
523
|
+
/** Create a workspace invite link. Cookie/JWT only — invites bring new humans into the workspace. */
|
|
420
524
|
post: operations["WorkspaceController_createInvite"];
|
|
421
525
|
delete?: never;
|
|
422
526
|
options?: never;
|
|
@@ -434,7 +538,7 @@ interface paths {
|
|
|
434
538
|
get?: never;
|
|
435
539
|
put?: never;
|
|
436
540
|
post?: never;
|
|
437
|
-
/** Revoke a workspace invite */
|
|
541
|
+
/** Revoke a workspace invite. Cookie/JWT only. */
|
|
438
542
|
delete: operations["WorkspaceController_revokeInvite"];
|
|
439
543
|
options?: never;
|
|
440
544
|
head?: never;
|
|
@@ -502,7 +606,7 @@ interface paths {
|
|
|
502
606
|
/** List every managed policy in a workspace */
|
|
503
607
|
get: operations["WorkspacePolicyController_list"];
|
|
504
608
|
put?: never;
|
|
505
|
-
/** Create a managed policy */
|
|
609
|
+
/** Create a managed policy. Cookie/JWT only — policy authoring is a human-admin surface. */
|
|
506
610
|
post: operations["WorkspacePolicyController_create"];
|
|
507
611
|
delete?: never;
|
|
508
612
|
options?: never;
|
|
@@ -538,11 +642,11 @@ interface paths {
|
|
|
538
642
|
get: operations["WorkspacePolicyController_get"];
|
|
539
643
|
put?: never;
|
|
540
644
|
post?: never;
|
|
541
|
-
/** Delete a managed policy. Cascades: API keys lose the binding (deny-all if no other bindings remain); roles fall back to their inline policy column. */
|
|
645
|
+
/** Delete a managed policy. Cascades: API keys lose the binding (deny-all if no other bindings remain); roles fall back to their inline policy column. Cookie/JWT only. */
|
|
542
646
|
delete: operations["WorkspacePolicyController_delete"];
|
|
543
647
|
options?: never;
|
|
544
648
|
head?: never;
|
|
545
|
-
/** Update a managed policy */
|
|
649
|
+
/** Update a managed policy. Cookie/JWT only — policy authoring is a human-admin surface. */
|
|
546
650
|
patch: operations["WorkspacePolicyController_update"];
|
|
547
651
|
trace?: never;
|
|
548
652
|
};
|
|
@@ -556,7 +660,7 @@ interface paths {
|
|
|
556
660
|
/** List all roles in a workspace */
|
|
557
661
|
get: operations["WorkspaceRoleController_list"];
|
|
558
662
|
put?: never;
|
|
559
|
-
/** Create a new custom role */
|
|
663
|
+
/** Create a new custom role. Cookie/JWT only — role authoring is a human-admin surface. */
|
|
560
664
|
post: operations["WorkspaceRoleController_create"];
|
|
561
665
|
delete?: never;
|
|
562
666
|
options?: never;
|
|
@@ -575,11 +679,11 @@ interface paths {
|
|
|
575
679
|
get: operations["WorkspaceRoleController_get"];
|
|
576
680
|
put?: never;
|
|
577
681
|
post?: never;
|
|
578
|
-
/** Delete a custom role (fails if it has members) */
|
|
682
|
+
/** Delete a custom role (fails if it has members). Cookie/JWT only — role authoring is a human-admin surface. */
|
|
579
683
|
delete: operations["WorkspaceRoleController_delete"];
|
|
580
684
|
options?: never;
|
|
581
685
|
head?: never;
|
|
582
|
-
/** Update a role or replace its permission set */
|
|
686
|
+
/** Update a role or replace its permission set. Cookie/JWT only — role authoring is a human-admin surface. */
|
|
583
687
|
patch: operations["WorkspaceRoleController_update"];
|
|
584
688
|
trace?: never;
|
|
585
689
|
};
|
|
@@ -651,6 +755,9 @@ interface components {
|
|
|
651
755
|
/** @description Per-source diagnostics so the UI / customer can see which sources contributed to this page and which are stubbed pending the cross-service fanout. */
|
|
652
756
|
sources: components["schemas"]["SourceDiagnosticDto"][];
|
|
653
757
|
};
|
|
758
|
+
AvatarUrlResponseDto: {
|
|
759
|
+
avatar_url: string;
|
|
760
|
+
};
|
|
654
761
|
BoundPolicySummaryDto: {
|
|
655
762
|
description: string | null;
|
|
656
763
|
/** Format: uuid */
|
|
@@ -658,6 +765,16 @@ interface components {
|
|
|
658
765
|
/** @example envoi-readonly */
|
|
659
766
|
name: string;
|
|
660
767
|
};
|
|
768
|
+
CallbackBodyDto: {
|
|
769
|
+
/** @description OAuth authorization code returned by the IdP. Optional — either `idToken` or `code` must be supplied. */
|
|
770
|
+
code?: string;
|
|
771
|
+
/** @description JWT id_token from the IdP (OIDC providers; Apple form_post). Optional — either `idToken` or `code` must be supplied. */
|
|
772
|
+
id_token?: string;
|
|
773
|
+
/** @description Opaque state token returned by the IdP, minted at `/start`. Single-use; binds the callback to a specific browser session. */
|
|
774
|
+
state: string;
|
|
775
|
+
/** @description Apple-only first-signin payload: JSON-encoded `{ name, email }`. Apple returns this only the first time a user signs in. Not signed — treated as untrusted input by the controller's payload parser. */
|
|
776
|
+
user?: string;
|
|
777
|
+
};
|
|
661
778
|
CreatePakDto: {
|
|
662
779
|
/** @description Optional description (e.g. which service uses the key). */
|
|
663
780
|
description?: string;
|
|
@@ -726,8 +843,8 @@ interface components {
|
|
|
726
843
|
* @example [
|
|
727
844
|
* {
|
|
728
845
|
* "actions": [
|
|
729
|
-
* "
|
|
730
|
-
* "
|
|
846
|
+
* "mail.read",
|
|
847
|
+
* "mail.list"
|
|
731
848
|
* ],
|
|
732
849
|
* "effect": "allow",
|
|
733
850
|
* "resources": [
|
|
@@ -751,7 +868,7 @@ interface components {
|
|
|
751
868
|
* @example [
|
|
752
869
|
* {
|
|
753
870
|
* "actions": [
|
|
754
|
-
* "
|
|
871
|
+
* "mail.*.read"
|
|
755
872
|
* ],
|
|
756
873
|
* "effect": "allow",
|
|
757
874
|
* "resources": [
|
|
@@ -809,6 +926,8 @@ interface components {
|
|
|
809
926
|
message: string;
|
|
810
927
|
};
|
|
811
928
|
IntrospectAccountDto: {
|
|
929
|
+
/** @description Public HTTPS URL of the uploaded avatar, or null when no avatar is set. */
|
|
930
|
+
avatar_url: string | null;
|
|
812
931
|
display_name: string | null;
|
|
813
932
|
email: string | null;
|
|
814
933
|
/**
|
|
@@ -853,6 +972,8 @@ interface components {
|
|
|
853
972
|
name: string;
|
|
854
973
|
};
|
|
855
974
|
IntrospectWorkspaceListItemDto: {
|
|
975
|
+
/** @description Workspace identity avatar (public HTTPS URL), or null when none is set. Console workspace switcher reads this. */
|
|
976
|
+
avatar_url: string | null;
|
|
856
977
|
display_name: string;
|
|
857
978
|
/** Format: uuid */
|
|
858
979
|
id: string;
|
|
@@ -990,6 +1111,22 @@ interface components {
|
|
|
990
1111
|
/** Format: uuid */
|
|
991
1112
|
workspace_id: string;
|
|
992
1113
|
};
|
|
1114
|
+
MeProfileDto: {
|
|
1115
|
+
/** @description Short-lived (15 min) presigned GET URL for the avatar object in private object storage. NULL when no avatar has been set; the frontend then renders initials. The API mints a fresh URL on every response, so a stable bookmark of this value is not meaningful. */
|
|
1116
|
+
avatar_url: string | null;
|
|
1117
|
+
display_name: string | null;
|
|
1118
|
+
email: string | null;
|
|
1119
|
+
/**
|
|
1120
|
+
* Format: date-time
|
|
1121
|
+
* @description Timestamp when this account verified its primary email, or null if unverified.
|
|
1122
|
+
*/
|
|
1123
|
+
email_verified_at: string | null;
|
|
1124
|
+
/** Format: uuid */
|
|
1125
|
+
id: string;
|
|
1126
|
+
/** @description Account status (e.g. `active`, `suspended`). */
|
|
1127
|
+
status: string;
|
|
1128
|
+
username: string;
|
|
1129
|
+
};
|
|
993
1130
|
MintPakResponseDto: {
|
|
994
1131
|
record: components["schemas"]["PublicApiKeyDto"];
|
|
995
1132
|
/**
|
|
@@ -998,6 +1135,12 @@ interface components {
|
|
|
998
1135
|
*/
|
|
999
1136
|
token: string;
|
|
1000
1137
|
};
|
|
1138
|
+
OAuthCallbackResultDto: {
|
|
1139
|
+
/** @description Original `return_to` the user was sent off with. auth-ui redirects here after writing the cookie. */
|
|
1140
|
+
return_to: string;
|
|
1141
|
+
/** @description Issued PlatformUser session tokens. auth-ui sets the auth_token cookie from `accessToken` and 302s the browser to `return_to`. */
|
|
1142
|
+
tokens: components["schemas"]["TokenResponseDto"];
|
|
1143
|
+
};
|
|
1001
1144
|
PaginationDto: {
|
|
1002
1145
|
/** @example false */
|
|
1003
1146
|
has_more: boolean;
|
|
@@ -1014,8 +1157,8 @@ interface components {
|
|
|
1014
1157
|
/**
|
|
1015
1158
|
* @description Action strings the statement applies to. Wildcards (e.g. `agora.*`, `*.read`, `*`) supported per `actionMatches` semantics.
|
|
1016
1159
|
* @example [
|
|
1017
|
-
* "
|
|
1018
|
-
* "
|
|
1160
|
+
* "social.read",
|
|
1161
|
+
* "social.list"
|
|
1019
1162
|
* ]
|
|
1020
1163
|
*/
|
|
1021
1164
|
actions: string[];
|
|
@@ -1231,12 +1374,16 @@ interface components {
|
|
|
1231
1374
|
description?: string | null;
|
|
1232
1375
|
name?: string;
|
|
1233
1376
|
};
|
|
1377
|
+
UpdateProfileDto: {
|
|
1378
|
+
/** @description New display name. 1-128 chars. Optional — empty PATCH is a no-op. */
|
|
1379
|
+
display_name?: string;
|
|
1380
|
+
};
|
|
1234
1381
|
UpdateWorkspaceDto: {
|
|
1235
1382
|
display_name?: string;
|
|
1236
1383
|
/** @description Free-form workspace settings blob. */
|
|
1237
1384
|
settings?: Record<string, never>;
|
|
1238
1385
|
/**
|
|
1239
|
-
* @description New URL-friendly slug. Same constraints as the create form. Renames are broadcast on the workspace events queue so denormalised consumers (
|
|
1386
|
+
* @description New URL-friendly slug. Same constraints as the create form. Renames are broadcast on the workspace events queue so denormalised consumers (waitlist-api, future product surfaces) can sync. Old URLs continue to resolve for one rename cycle.
|
|
1240
1387
|
* @example acme
|
|
1241
1388
|
*/
|
|
1242
1389
|
slug?: string;
|
|
@@ -1257,8 +1404,8 @@ interface components {
|
|
|
1257
1404
|
* @example [
|
|
1258
1405
|
* {
|
|
1259
1406
|
* "actions": [
|
|
1260
|
-
* "
|
|
1261
|
-
* "
|
|
1407
|
+
* "mail.read",
|
|
1408
|
+
* "mail.list"
|
|
1262
1409
|
* ],
|
|
1263
1410
|
* "effect": "allow",
|
|
1264
1411
|
* "resources": [
|
|
@@ -1320,6 +1467,9 @@ interface components {
|
|
|
1320
1467
|
/** Format: uuid */
|
|
1321
1468
|
workspace_id: string;
|
|
1322
1469
|
};
|
|
1470
|
+
WorkspaceAvatarUrlResponseDto: {
|
|
1471
|
+
avatar_url: string;
|
|
1472
|
+
};
|
|
1323
1473
|
WorkspaceInviteListItemDto: {
|
|
1324
1474
|
/** @description Single-use invite code embedded in the invite URL. */
|
|
1325
1475
|
code: string;
|
|
@@ -1581,6 +1731,76 @@ interface operations {
|
|
|
1581
1731
|
};
|
|
1582
1732
|
};
|
|
1583
1733
|
};
|
|
1734
|
+
OAuthController_callback: {
|
|
1735
|
+
parameters: {
|
|
1736
|
+
query?: never;
|
|
1737
|
+
header?: never;
|
|
1738
|
+
path: {
|
|
1739
|
+
provider: "apple" | "google" | "github";
|
|
1740
|
+
};
|
|
1741
|
+
cookie?: never;
|
|
1742
|
+
};
|
|
1743
|
+
requestBody: {
|
|
1744
|
+
content: {
|
|
1745
|
+
"application/json": components["schemas"]["CallbackBodyDto"];
|
|
1746
|
+
};
|
|
1747
|
+
};
|
|
1748
|
+
responses: {
|
|
1749
|
+
200: {
|
|
1750
|
+
headers: {
|
|
1751
|
+
[name: string]: unknown;
|
|
1752
|
+
};
|
|
1753
|
+
content: {
|
|
1754
|
+
"application/json": components["schemas"]["OAuthCallbackResultDto"];
|
|
1755
|
+
};
|
|
1756
|
+
};
|
|
1757
|
+
/** @description Unknown / expired state, provider state mismatch, or unknown provider id. */
|
|
1758
|
+
400: {
|
|
1759
|
+
headers: {
|
|
1760
|
+
[name: string]: unknown;
|
|
1761
|
+
};
|
|
1762
|
+
content?: never;
|
|
1763
|
+
};
|
|
1764
|
+
/** @description Provider token verification failed, nonce replayed, or downstream identity could not be resolved. */
|
|
1765
|
+
401: {
|
|
1766
|
+
headers: {
|
|
1767
|
+
[name: string]: unknown;
|
|
1768
|
+
};
|
|
1769
|
+
content?: never;
|
|
1770
|
+
};
|
|
1771
|
+
};
|
|
1772
|
+
};
|
|
1773
|
+
OAuthController_start: {
|
|
1774
|
+
parameters: {
|
|
1775
|
+
query: {
|
|
1776
|
+
/** @description Absolute URL the user lands on after a successful signin. Must match the `OAUTH_RETURN_TO_ORIGINS` allowlist (CSV, wildcards supported as `https://*.productcraft.co`). */
|
|
1777
|
+
return_to: string;
|
|
1778
|
+
};
|
|
1779
|
+
header?: never;
|
|
1780
|
+
path: {
|
|
1781
|
+
/** @description OAuth provider id. Providers are gated on env-var configuration; unconfigured providers 400 with UNKNOWN_OAUTH_PROVIDER. */
|
|
1782
|
+
provider: "apple" | "google" | "github";
|
|
1783
|
+
};
|
|
1784
|
+
cookie?: never;
|
|
1785
|
+
};
|
|
1786
|
+
requestBody?: never;
|
|
1787
|
+
responses: {
|
|
1788
|
+
/** @description Redirect to provider authorize URL. */
|
|
1789
|
+
302: {
|
|
1790
|
+
headers: {
|
|
1791
|
+
[name: string]: unknown;
|
|
1792
|
+
};
|
|
1793
|
+
content?: never;
|
|
1794
|
+
};
|
|
1795
|
+
/** @description Invalid `return_to` or unknown provider. */
|
|
1796
|
+
400: {
|
|
1797
|
+
headers: {
|
|
1798
|
+
[name: string]: unknown;
|
|
1799
|
+
};
|
|
1800
|
+
content?: never;
|
|
1801
|
+
};
|
|
1802
|
+
};
|
|
1803
|
+
};
|
|
1584
1804
|
PasswordController_requestPasswordReset: {
|
|
1585
1805
|
parameters: {
|
|
1586
1806
|
query?: never;
|
|
@@ -1779,6 +1999,151 @@ interface operations {
|
|
|
1779
1999
|
};
|
|
1780
2000
|
};
|
|
1781
2001
|
};
|
|
2002
|
+
MeController_getMe: {
|
|
2003
|
+
parameters: {
|
|
2004
|
+
query?: never;
|
|
2005
|
+
header?: never;
|
|
2006
|
+
path?: never;
|
|
2007
|
+
cookie?: never;
|
|
2008
|
+
};
|
|
2009
|
+
requestBody?: never;
|
|
2010
|
+
responses: {
|
|
2011
|
+
200: {
|
|
2012
|
+
headers: {
|
|
2013
|
+
[name: string]: unknown;
|
|
2014
|
+
};
|
|
2015
|
+
content: {
|
|
2016
|
+
"application/json": components["schemas"]["MeProfileDto"];
|
|
2017
|
+
};
|
|
2018
|
+
};
|
|
2019
|
+
/** @description No session. */
|
|
2020
|
+
401: {
|
|
2021
|
+
headers: {
|
|
2022
|
+
[name: string]: unknown;
|
|
2023
|
+
};
|
|
2024
|
+
content?: never;
|
|
2025
|
+
};
|
|
2026
|
+
/** @description No account row for the session principal. Should never fire for a valid session — surfaced for SDKs. */
|
|
2027
|
+
404: {
|
|
2028
|
+
headers: {
|
|
2029
|
+
[name: string]: unknown;
|
|
2030
|
+
};
|
|
2031
|
+
content?: never;
|
|
2032
|
+
};
|
|
2033
|
+
};
|
|
2034
|
+
};
|
|
2035
|
+
MeController_setAvatar: {
|
|
2036
|
+
parameters: {
|
|
2037
|
+
query?: never;
|
|
2038
|
+
header?: never;
|
|
2039
|
+
path?: never;
|
|
2040
|
+
cookie?: never;
|
|
2041
|
+
};
|
|
2042
|
+
requestBody: {
|
|
2043
|
+
content: {
|
|
2044
|
+
"multipart/form-data": {
|
|
2045
|
+
/**
|
|
2046
|
+
* Format: binary
|
|
2047
|
+
* @description PNG, JPEG, or WEBP image, ≤2 MB.
|
|
2048
|
+
*/
|
|
2049
|
+
file: string;
|
|
2050
|
+
};
|
|
2051
|
+
};
|
|
2052
|
+
};
|
|
2053
|
+
responses: {
|
|
2054
|
+
200: {
|
|
2055
|
+
headers: {
|
|
2056
|
+
[name: string]: unknown;
|
|
2057
|
+
};
|
|
2058
|
+
content: {
|
|
2059
|
+
"application/json": components["schemas"]["AvatarUrlResponseDto"];
|
|
2060
|
+
};
|
|
2061
|
+
};
|
|
2062
|
+
/** @description Invalid file: wrong mimetype, oversized, or content does not match the declared type. */
|
|
2063
|
+
400: {
|
|
2064
|
+
headers: {
|
|
2065
|
+
[name: string]: unknown;
|
|
2066
|
+
};
|
|
2067
|
+
content?: never;
|
|
2068
|
+
};
|
|
2069
|
+
/** @description No session. */
|
|
2070
|
+
401: {
|
|
2071
|
+
headers: {
|
|
2072
|
+
[name: string]: unknown;
|
|
2073
|
+
};
|
|
2074
|
+
content?: never;
|
|
2075
|
+
};
|
|
2076
|
+
};
|
|
2077
|
+
};
|
|
2078
|
+
MeController_removeAvatar: {
|
|
2079
|
+
parameters: {
|
|
2080
|
+
query?: never;
|
|
2081
|
+
header?: never;
|
|
2082
|
+
path?: never;
|
|
2083
|
+
cookie?: never;
|
|
2084
|
+
};
|
|
2085
|
+
requestBody?: never;
|
|
2086
|
+
responses: {
|
|
2087
|
+
/** @description Avatar removed (or already absent). */
|
|
2088
|
+
204: {
|
|
2089
|
+
headers: {
|
|
2090
|
+
[name: string]: unknown;
|
|
2091
|
+
};
|
|
2092
|
+
content?: never;
|
|
2093
|
+
};
|
|
2094
|
+
/** @description No session. */
|
|
2095
|
+
401: {
|
|
2096
|
+
headers: {
|
|
2097
|
+
[name: string]: unknown;
|
|
2098
|
+
};
|
|
2099
|
+
content?: never;
|
|
2100
|
+
};
|
|
2101
|
+
};
|
|
2102
|
+
};
|
|
2103
|
+
MeController_updateProfile: {
|
|
2104
|
+
parameters: {
|
|
2105
|
+
query?: never;
|
|
2106
|
+
header?: never;
|
|
2107
|
+
path?: never;
|
|
2108
|
+
cookie?: never;
|
|
2109
|
+
};
|
|
2110
|
+
requestBody: {
|
|
2111
|
+
content: {
|
|
2112
|
+
"application/json": components["schemas"]["UpdateProfileDto"];
|
|
2113
|
+
};
|
|
2114
|
+
};
|
|
2115
|
+
responses: {
|
|
2116
|
+
200: {
|
|
2117
|
+
headers: {
|
|
2118
|
+
[name: string]: unknown;
|
|
2119
|
+
};
|
|
2120
|
+
content: {
|
|
2121
|
+
"application/json": components["schemas"]["MeProfileDto"];
|
|
2122
|
+
};
|
|
2123
|
+
};
|
|
2124
|
+
/** @description Validation failed (e.g. displayName outside 1-128 chars). */
|
|
2125
|
+
400: {
|
|
2126
|
+
headers: {
|
|
2127
|
+
[name: string]: unknown;
|
|
2128
|
+
};
|
|
2129
|
+
content?: never;
|
|
2130
|
+
};
|
|
2131
|
+
/** @description No session. */
|
|
2132
|
+
401: {
|
|
2133
|
+
headers: {
|
|
2134
|
+
[name: string]: unknown;
|
|
2135
|
+
};
|
|
2136
|
+
content?: never;
|
|
2137
|
+
};
|
|
2138
|
+
/** @description The caller authenticated with a non-human principal (e.g. PAK). Profile is per-human; only the human owner can mutate their own row. */
|
|
2139
|
+
403: {
|
|
2140
|
+
headers: {
|
|
2141
|
+
[name: string]: unknown;
|
|
2142
|
+
};
|
|
2143
|
+
content?: never;
|
|
2144
|
+
};
|
|
2145
|
+
};
|
|
2146
|
+
};
|
|
1782
2147
|
SessionController_getSessions: {
|
|
1783
2148
|
parameters: {
|
|
1784
2149
|
query?: never;
|
|
@@ -1907,6 +2272,13 @@ interface operations {
|
|
|
1907
2272
|
"application/json": components["schemas"]["WorkspaceResponseDto"];
|
|
1908
2273
|
};
|
|
1909
2274
|
};
|
|
2275
|
+
/** @description Caller is a PAK (`pcft_live_*`). Workspace creation requires a human-issued session. */
|
|
2276
|
+
403: {
|
|
2277
|
+
headers: {
|
|
2278
|
+
[name: string]: unknown;
|
|
2279
|
+
};
|
|
2280
|
+
content?: never;
|
|
2281
|
+
};
|
|
1910
2282
|
};
|
|
1911
2283
|
};
|
|
1912
2284
|
WorkspaceController_acceptInvite: {
|
|
@@ -1972,6 +2344,13 @@ interface operations {
|
|
|
1972
2344
|
};
|
|
1973
2345
|
content?: never;
|
|
1974
2346
|
};
|
|
2347
|
+
/** @description Caller is a PAK (`pcft_live_*`). Workspace deletion requires a human-issued session. */
|
|
2348
|
+
403: {
|
|
2349
|
+
headers: {
|
|
2350
|
+
[name: string]: unknown;
|
|
2351
|
+
};
|
|
2352
|
+
content?: never;
|
|
2353
|
+
};
|
|
1975
2354
|
};
|
|
1976
2355
|
};
|
|
1977
2356
|
WorkspaceController_updateWorkspace: {
|
|
@@ -2065,6 +2444,13 @@ interface operations {
|
|
|
2065
2444
|
"application/json": components["schemas"]["MintPakResponseDto"];
|
|
2066
2445
|
};
|
|
2067
2446
|
};
|
|
2447
|
+
/** @description Caller is a PAK (`pcft_live_*`). Mint requires a human-issued session. */
|
|
2448
|
+
403: {
|
|
2449
|
+
headers: {
|
|
2450
|
+
[name: string]: unknown;
|
|
2451
|
+
};
|
|
2452
|
+
content?: never;
|
|
2453
|
+
};
|
|
2068
2454
|
};
|
|
2069
2455
|
};
|
|
2070
2456
|
PlatformApiKeyController_get: {
|
|
@@ -2269,6 +2655,64 @@ interface operations {
|
|
|
2269
2655
|
};
|
|
2270
2656
|
};
|
|
2271
2657
|
};
|
|
2658
|
+
WorkspaceController_setAvatar: {
|
|
2659
|
+
parameters: {
|
|
2660
|
+
query?: never;
|
|
2661
|
+
header?: never;
|
|
2662
|
+
path: {
|
|
2663
|
+
workspace_slug: string;
|
|
2664
|
+
};
|
|
2665
|
+
cookie?: never;
|
|
2666
|
+
};
|
|
2667
|
+
requestBody: {
|
|
2668
|
+
content: {
|
|
2669
|
+
"multipart/form-data": {
|
|
2670
|
+
/**
|
|
2671
|
+
* Format: binary
|
|
2672
|
+
* @description PNG, JPEG, or WEBP image, ≤2 MB. Square images look best.
|
|
2673
|
+
*/
|
|
2674
|
+
file: string;
|
|
2675
|
+
};
|
|
2676
|
+
};
|
|
2677
|
+
};
|
|
2678
|
+
responses: {
|
|
2679
|
+
200: {
|
|
2680
|
+
headers: {
|
|
2681
|
+
[name: string]: unknown;
|
|
2682
|
+
};
|
|
2683
|
+
content: {
|
|
2684
|
+
"application/json": components["schemas"]["WorkspaceAvatarUrlResponseDto"];
|
|
2685
|
+
};
|
|
2686
|
+
};
|
|
2687
|
+
/** @description Caller is not a member of this workspace, or lacks workspace.settings.update. */
|
|
2688
|
+
403: {
|
|
2689
|
+
headers: {
|
|
2690
|
+
[name: string]: unknown;
|
|
2691
|
+
};
|
|
2692
|
+
content?: never;
|
|
2693
|
+
};
|
|
2694
|
+
};
|
|
2695
|
+
};
|
|
2696
|
+
WorkspaceController_removeAvatar: {
|
|
2697
|
+
parameters: {
|
|
2698
|
+
query?: never;
|
|
2699
|
+
header?: never;
|
|
2700
|
+
path: {
|
|
2701
|
+
workspace_slug: string;
|
|
2702
|
+
};
|
|
2703
|
+
cookie?: never;
|
|
2704
|
+
};
|
|
2705
|
+
requestBody?: never;
|
|
2706
|
+
responses: {
|
|
2707
|
+
/** @description Avatar cleared. */
|
|
2708
|
+
204: {
|
|
2709
|
+
headers: {
|
|
2710
|
+
[name: string]: unknown;
|
|
2711
|
+
};
|
|
2712
|
+
content?: never;
|
|
2713
|
+
};
|
|
2714
|
+
};
|
|
2715
|
+
};
|
|
2272
2716
|
WorkspaceController_listInvites: {
|
|
2273
2717
|
parameters: {
|
|
2274
2718
|
query: {
|