@runlot/api 0.1.0-rc.154 → 0.1.0-rc.156
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.ts +41 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -9
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +839 -15
- package/dist/schema.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/schema.d.ts
CHANGED
|
@@ -226,6 +226,15 @@ export interface paths {
|
|
|
226
226
|
* for one project, provider and attached host and lives ten minutes. Sends a 302
|
|
227
227
|
* to the provider with identity-only scopes (GitHub `read:user user:email`,
|
|
228
228
|
* Google `openid email profile` with PKCE).
|
|
229
|
+
*
|
|
230
|
+
* For the `runlot` provider (docs/custom-sign-in.md §12.2) four optional
|
|
231
|
+
* parameters are validated and kept on the start; an invalid one is dropped.
|
|
232
|
+
* `idp=google|github` goes straight to that upstream when the project offers it,
|
|
233
|
+
* `idp=password|passkey` opens the chooser in that mode, `prompt=none` issues a
|
|
234
|
+
* grant with no page when the browser has a Runlot ID session and the person has
|
|
235
|
+
* signed in to this project before, else returns `auth_error=login_required`.
|
|
236
|
+
* Every failure returns to `error_next` (or `next`) on the app host with
|
|
237
|
+
* `auth_error=<code>&auth_request=<id>`.
|
|
229
238
|
*/
|
|
230
239
|
get: operations["appAuthStart"];
|
|
231
240
|
put?: never;
|
|
@@ -260,6 +269,116 @@ export interface paths {
|
|
|
260
269
|
patch?: never;
|
|
261
270
|
trace?: never;
|
|
262
271
|
};
|
|
272
|
+
"/v1/app-auth/choose/{id}/cancel": {
|
|
273
|
+
parameters: {
|
|
274
|
+
query?: never;
|
|
275
|
+
header?: never;
|
|
276
|
+
path?: never;
|
|
277
|
+
cookie?: never;
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Runlot sign-in: back to the app
|
|
281
|
+
* @description The chooser's "back to <app>" link. Consumes the start and returns to the app with
|
|
282
|
+
* `auth_error=cancelled&auth_request=<id>`.
|
|
283
|
+
*/
|
|
284
|
+
get: operations["appAuthChooseCancel"];
|
|
285
|
+
put?: never;
|
|
286
|
+
post?: never;
|
|
287
|
+
delete?: never;
|
|
288
|
+
options?: never;
|
|
289
|
+
head?: never;
|
|
290
|
+
patch?: never;
|
|
291
|
+
trace?: never;
|
|
292
|
+
};
|
|
293
|
+
"/v1/app-auth/choose/{id}/continue": {
|
|
294
|
+
parameters: {
|
|
295
|
+
query?: never;
|
|
296
|
+
header?: never;
|
|
297
|
+
path?: never;
|
|
298
|
+
cookie?: never;
|
|
299
|
+
};
|
|
300
|
+
get?: never;
|
|
301
|
+
put?: never;
|
|
302
|
+
/**
|
|
303
|
+
* Runlot sign-in: continue as the remembered Runlot user
|
|
304
|
+
* @description One click for a browser holding the broker's Runlot ID cookie
|
|
305
|
+
* (docs/custom-sign-in.md §12.7). Without a valid cookie the chooser is re-rendered.
|
|
306
|
+
*/
|
|
307
|
+
post: operations["appAuthChooseContinue"];
|
|
308
|
+
delete?: never;
|
|
309
|
+
options?: never;
|
|
310
|
+
head?: never;
|
|
311
|
+
patch?: never;
|
|
312
|
+
trace?: never;
|
|
313
|
+
};
|
|
314
|
+
"/v1/app-auth/choose/{id}/passkey/options": {
|
|
315
|
+
parameters: {
|
|
316
|
+
query?: never;
|
|
317
|
+
header?: never;
|
|
318
|
+
path?: never;
|
|
319
|
+
cookie?: never;
|
|
320
|
+
};
|
|
321
|
+
get?: never;
|
|
322
|
+
put?: never;
|
|
323
|
+
/** Runlot sign-in: passkey assertion options */
|
|
324
|
+
post: operations["appAuthPasskeyOptions"];
|
|
325
|
+
delete?: never;
|
|
326
|
+
options?: never;
|
|
327
|
+
head?: never;
|
|
328
|
+
patch?: never;
|
|
329
|
+
trace?: never;
|
|
330
|
+
};
|
|
331
|
+
"/v1/app-auth/choose/{id}/passkey": {
|
|
332
|
+
parameters: {
|
|
333
|
+
query?: never;
|
|
334
|
+
header?: never;
|
|
335
|
+
path?: never;
|
|
336
|
+
cookie?: never;
|
|
337
|
+
};
|
|
338
|
+
get?: never;
|
|
339
|
+
put?: never;
|
|
340
|
+
/** Runlot sign-in: verify a passkey assertion */
|
|
341
|
+
post: operations["appAuthPasskeyVerify"];
|
|
342
|
+
delete?: never;
|
|
343
|
+
options?: never;
|
|
344
|
+
head?: never;
|
|
345
|
+
patch?: never;
|
|
346
|
+
trace?: never;
|
|
347
|
+
};
|
|
348
|
+
"/v1/app-auth/passkey/register/options": {
|
|
349
|
+
parameters: {
|
|
350
|
+
query?: never;
|
|
351
|
+
header?: never;
|
|
352
|
+
path?: never;
|
|
353
|
+
cookie?: never;
|
|
354
|
+
};
|
|
355
|
+
get?: never;
|
|
356
|
+
put?: never;
|
|
357
|
+
/** Passkey offer: creation options */
|
|
358
|
+
post: operations["appAuthPasskeyRegisterOptions"];
|
|
359
|
+
delete?: never;
|
|
360
|
+
options?: never;
|
|
361
|
+
head?: never;
|
|
362
|
+
patch?: never;
|
|
363
|
+
trace?: never;
|
|
364
|
+
};
|
|
365
|
+
"/v1/app-auth/passkey/register": {
|
|
366
|
+
parameters: {
|
|
367
|
+
query?: never;
|
|
368
|
+
header?: never;
|
|
369
|
+
path?: never;
|
|
370
|
+
cookie?: never;
|
|
371
|
+
};
|
|
372
|
+
get?: never;
|
|
373
|
+
put?: never;
|
|
374
|
+
/** Passkey offer: store the new passkey */
|
|
375
|
+
post: operations["appAuthPasskeyRegister"];
|
|
376
|
+
delete?: never;
|
|
377
|
+
options?: never;
|
|
378
|
+
head?: never;
|
|
379
|
+
patch?: never;
|
|
380
|
+
trace?: never;
|
|
381
|
+
};
|
|
263
382
|
"/v1/app-auth/choose/{id}/password": {
|
|
264
383
|
parameters: {
|
|
265
384
|
query?: never;
|
|
@@ -1059,6 +1178,109 @@ export interface paths {
|
|
|
1059
1178
|
patch?: never;
|
|
1060
1179
|
trace?: never;
|
|
1061
1180
|
};
|
|
1181
|
+
"/v1/orgs/{orgSlug}/projects/{projectName}/deployments/uploads": {
|
|
1182
|
+
parameters: {
|
|
1183
|
+
query?: never;
|
|
1184
|
+
header?: never;
|
|
1185
|
+
path: {
|
|
1186
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
1187
|
+
projectName: components["parameters"]["ProjectName"];
|
|
1188
|
+
};
|
|
1189
|
+
cookie?: never;
|
|
1190
|
+
};
|
|
1191
|
+
get?: never;
|
|
1192
|
+
put?: never;
|
|
1193
|
+
/**
|
|
1194
|
+
* Open an incremental deploy upload: list the bundle's files, learn which are missing
|
|
1195
|
+
* @description The incremental form of `createDeployment` (docs/incremental-deploy-upload.md §1).
|
|
1196
|
+
* The body lists every entry the bundle tar would hold, **in tar order** — the server
|
|
1197
|
+
* does not re-sort it, so what it assembles at commit is what the client would have
|
|
1198
|
+
* tarred. A directory is `{ "path": "assets/", "type": "dir" }`.
|
|
1199
|
+
*
|
|
1200
|
+
* The list is checked against the bundle limits (entry count, path rules, per-entry
|
|
1201
|
+
* and total size, the single `runlot.json`) and the org/licence/preview checks of
|
|
1202
|
+
* `createDeployment` run here, so a deploy that is going to be refused is refused
|
|
1203
|
+
* before any byte moves.
|
|
1204
|
+
*
|
|
1205
|
+
* The answer names the sha256 hashes the server does not already hold for this
|
|
1206
|
+
* project (a preview uses its parent's). Upload those with `uploadDeploymentBlobs`,
|
|
1207
|
+
* then `commitDeploymentUpload`. A session lives for `expiresAt` (one hour).
|
|
1208
|
+
*
|
|
1209
|
+
* An older control plane answers **404** here; a client falls back to the single
|
|
1210
|
+
* `createDeployment` POST.
|
|
1211
|
+
*/
|
|
1212
|
+
post: operations["createDeploymentUpload"];
|
|
1213
|
+
delete?: never;
|
|
1214
|
+
options?: never;
|
|
1215
|
+
head?: never;
|
|
1216
|
+
patch?: never;
|
|
1217
|
+
trace?: never;
|
|
1218
|
+
};
|
|
1219
|
+
"/v1/orgs/{orgSlug}/projects/{projectName}/deployments/uploads/{uploadId}/blobs": {
|
|
1220
|
+
parameters: {
|
|
1221
|
+
query?: never;
|
|
1222
|
+
header?: never;
|
|
1223
|
+
path: {
|
|
1224
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
1225
|
+
projectName: components["parameters"]["ProjectName"];
|
|
1226
|
+
uploadId: string;
|
|
1227
|
+
};
|
|
1228
|
+
cookie?: never;
|
|
1229
|
+
};
|
|
1230
|
+
get?: never;
|
|
1231
|
+
put?: never;
|
|
1232
|
+
/**
|
|
1233
|
+
* Upload a batch of file contents for an open upload session
|
|
1234
|
+
* @description The body is a gzip tar of regular entries, each named by the lowercase sha256 hex
|
|
1235
|
+
* of its content. Clients keep each body at most 8 MiB of input; a single file larger
|
|
1236
|
+
* than that goes alone. Re-sending a blob is harmless, so a failed batch is retried
|
|
1237
|
+
* as a whole.
|
|
1238
|
+
*
|
|
1239
|
+
* `400 blob_mismatch` — an entry's content does not hash to its name.
|
|
1240
|
+
* `400 blob_not_listed` — a hash the session's file list did not mention.
|
|
1241
|
+
* `404 upload_not_found` — no such session, or it expired.
|
|
1242
|
+
*/
|
|
1243
|
+
post: operations["uploadDeploymentBlobs"];
|
|
1244
|
+
delete?: never;
|
|
1245
|
+
options?: never;
|
|
1246
|
+
head?: never;
|
|
1247
|
+
patch?: never;
|
|
1248
|
+
trace?: never;
|
|
1249
|
+
};
|
|
1250
|
+
"/v1/orgs/{orgSlug}/projects/{projectName}/deployments/uploads/{uploadId}/commit": {
|
|
1251
|
+
parameters: {
|
|
1252
|
+
query?: never;
|
|
1253
|
+
header?: never;
|
|
1254
|
+
path: {
|
|
1255
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
1256
|
+
projectName: components["parameters"]["ProjectName"];
|
|
1257
|
+
uploadId: string;
|
|
1258
|
+
};
|
|
1259
|
+
cookie?: never;
|
|
1260
|
+
};
|
|
1261
|
+
get?: never;
|
|
1262
|
+
put?: never;
|
|
1263
|
+
/**
|
|
1264
|
+
* Assemble the uploaded files into the bundle and deploy it
|
|
1265
|
+
* @description Assembles the gzip tar in the listed order and deploys it exactly as
|
|
1266
|
+
* `createDeployment` would; the 201 body is the same (`Deployment`, plus `preview` for
|
|
1267
|
+
* a preview session). Takes the same provenance headers.
|
|
1268
|
+
*
|
|
1269
|
+
* **Idempotent per session**: committing a session that already produced a deployment
|
|
1270
|
+
* returns that deployment instead of making a new version, so a client retries a
|
|
1271
|
+
* commit that timed out at the edge.
|
|
1272
|
+
*
|
|
1273
|
+
* `409 blobs_missing` — a listed blob is not held (it may have been swept between list
|
|
1274
|
+
* and commit); `details.missing` names them. Upload those and commit again.
|
|
1275
|
+
* `404 upload_not_found` — no such session, or it expired.
|
|
1276
|
+
*/
|
|
1277
|
+
post: operations["commitDeploymentUpload"];
|
|
1278
|
+
delete?: never;
|
|
1279
|
+
options?: never;
|
|
1280
|
+
head?: never;
|
|
1281
|
+
patch?: never;
|
|
1282
|
+
trace?: never;
|
|
1283
|
+
};
|
|
1062
1284
|
"/v1/orgs/{orgSlug}/projects/{projectName}/deployments/{deploymentId}": {
|
|
1063
1285
|
parameters: {
|
|
1064
1286
|
query?: never;
|
|
@@ -2806,6 +3028,87 @@ export interface paths {
|
|
|
2806
3028
|
patch?: never;
|
|
2807
3029
|
trace?: never;
|
|
2808
3030
|
};
|
|
3031
|
+
"/v1/orgs/{orgSlug}/projects/{projectName}/auth/branding": {
|
|
3032
|
+
parameters: {
|
|
3033
|
+
query?: never;
|
|
3034
|
+
header?: never;
|
|
3035
|
+
path: {
|
|
3036
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
3037
|
+
projectName: components["parameters"]["ProjectName"];
|
|
3038
|
+
};
|
|
3039
|
+
cookie?: never;
|
|
3040
|
+
};
|
|
3041
|
+
/**
|
|
3042
|
+
* The sign-in page branding, defaults filled
|
|
3043
|
+
* @description `settings.brand` (docs/custom-sign-in.md §12.3) with every default written out, and
|
|
3044
|
+
* `effectiveMethods`, what the chooser draws now. Viewer or higher.
|
|
3045
|
+
*/
|
|
3046
|
+
get: operations["getAuthBranding"];
|
|
3047
|
+
/**
|
|
3048
|
+
* Replace the sign-in page branding
|
|
3049
|
+
* @description The whole brand object (absent fields are defaults). Refused fields answer 400
|
|
3050
|
+
* `invalid_branding` with `error.details.fields: [{path, message}]`. Member or higher.
|
|
3051
|
+
*/
|
|
3052
|
+
put: operations["putAuthBranding"];
|
|
3053
|
+
post?: never;
|
|
3054
|
+
delete?: never;
|
|
3055
|
+
options?: never;
|
|
3056
|
+
head?: never;
|
|
3057
|
+
patch?: never;
|
|
3058
|
+
trace?: never;
|
|
3059
|
+
};
|
|
3060
|
+
"/v1/orgs/{orgSlug}/projects/{projectName}/auth/funnel": {
|
|
3061
|
+
parameters: {
|
|
3062
|
+
query?: never;
|
|
3063
|
+
header?: never;
|
|
3064
|
+
path: {
|
|
3065
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
3066
|
+
projectName: components["parameters"]["ProjectName"];
|
|
3067
|
+
};
|
|
3068
|
+
cookie?: never;
|
|
3069
|
+
};
|
|
3070
|
+
/**
|
|
3071
|
+
* Sign-in funnel counters
|
|
3072
|
+
* @description Daily counters kept by the broker (docs/custom-sign-in.md §9.4), oldest first, 90-day
|
|
3073
|
+
* retention. Events: `start` (key: idp, `chooser` or `silent`), `chooser_view`,
|
|
3074
|
+
* `method` (key: password|google|github|passkey|session), `success` (key: method),
|
|
3075
|
+
* `error` (key: auth_error code, or `passkey_failed`). No per-person data.
|
|
3076
|
+
*/
|
|
3077
|
+
get: operations["getAuthFunnel"];
|
|
3078
|
+
put?: never;
|
|
3079
|
+
post?: never;
|
|
3080
|
+
delete?: never;
|
|
3081
|
+
options?: never;
|
|
3082
|
+
head?: never;
|
|
3083
|
+
patch?: never;
|
|
3084
|
+
trace?: never;
|
|
3085
|
+
};
|
|
3086
|
+
"/v1/orgs/{orgSlug}/projects/{projectName}/auth/branding/preview": {
|
|
3087
|
+
parameters: {
|
|
3088
|
+
query?: never;
|
|
3089
|
+
header?: never;
|
|
3090
|
+
path: {
|
|
3091
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
3092
|
+
projectName: components["parameters"]["ProjectName"];
|
|
3093
|
+
};
|
|
3094
|
+
cookie?: never;
|
|
3095
|
+
};
|
|
3096
|
+
/**
|
|
3097
|
+
* Render the chooser with draft branding
|
|
3098
|
+
* @description The real chooser template with every link inert. Authenticated by the session bearer
|
|
3099
|
+
* or by `ticket` (from POST), so an `<iframe>` can load it; framable only by this
|
|
3100
|
+
* origin. `/v1/projects/{projectId}/auth/branding/preview` is the same by project id.
|
|
3101
|
+
*/
|
|
3102
|
+
get: operations["previewAuthBranding"];
|
|
3103
|
+
put?: never;
|
|
3104
|
+
/** A ten-minute preview ticket */
|
|
3105
|
+
post: operations["mintAuthBrandingPreviewTicket"];
|
|
3106
|
+
delete?: never;
|
|
3107
|
+
options?: never;
|
|
3108
|
+
head?: never;
|
|
3109
|
+
patch?: never;
|
|
3110
|
+
trace?: never;
|
|
3111
|
+
};
|
|
2809
3112
|
"/v1/orgs/{orgSlug}/projects/{projectName}/auth/providers/{provider}": {
|
|
2810
3113
|
parameters: {
|
|
2811
3114
|
query?: never;
|
|
@@ -4554,6 +4857,46 @@ export interface paths {
|
|
|
4554
4857
|
export type webhooks = Record<string, never>;
|
|
4555
4858
|
export interface components {
|
|
4556
4859
|
schemas: {
|
|
4860
|
+
/** @description docs/custom-sign-in.md §12.3. Every field optional; empty is the default. */
|
|
4861
|
+
SignInBrand: {
|
|
4862
|
+
name?: string;
|
|
4863
|
+
/** @description http(s) URL */
|
|
4864
|
+
logo?: string;
|
|
4865
|
+
color?: string;
|
|
4866
|
+
/** @description https URL */
|
|
4867
|
+
logoDark?: string;
|
|
4868
|
+
/** @enum {string} */
|
|
4869
|
+
theme?: "light" | "dark" | "system";
|
|
4870
|
+
/** @enum {string} */
|
|
4871
|
+
layout?: "centered" | "split" | "minimal";
|
|
4872
|
+
/** @enum {string} */
|
|
4873
|
+
buttonShape?: "rounded" | "pill" | "square";
|
|
4874
|
+
background?: {
|
|
4875
|
+
/** @enum {string} */
|
|
4876
|
+
kind?: "none" | "color" | "gradient" | "image";
|
|
4877
|
+
/** @description #rrggbb | '#rrggbb,#rrggbb[,#rrggbb]' | https URL */
|
|
4878
|
+
value?: string;
|
|
4879
|
+
};
|
|
4880
|
+
copy?: {
|
|
4881
|
+
[key: string]: {
|
|
4882
|
+
title?: string;
|
|
4883
|
+
subtitle?: string;
|
|
4884
|
+
footer?: string;
|
|
4885
|
+
};
|
|
4886
|
+
};
|
|
4887
|
+
links?: {
|
|
4888
|
+
terms?: string;
|
|
4889
|
+
privacy?: string;
|
|
4890
|
+
support?: string;
|
|
4891
|
+
};
|
|
4892
|
+
/** @enum {string} */
|
|
4893
|
+
defaultLang?: "ko" | "en" | "ja" | "";
|
|
4894
|
+
methods?: ("password" | "google" | "github" | "passkey")[];
|
|
4895
|
+
};
|
|
4896
|
+
AuthBranding: {
|
|
4897
|
+
brand: components["schemas"]["SignInBrand"];
|
|
4898
|
+
effectiveMethods: string[];
|
|
4899
|
+
};
|
|
4557
4900
|
RepoRefs: {
|
|
4558
4901
|
/**
|
|
4559
4902
|
* @description The repository's current default branch. If this ever disagrees with
|
|
@@ -5216,6 +5559,28 @@ export interface components {
|
|
|
5216
5559
|
email: boolean;
|
|
5217
5560
|
auth: boolean;
|
|
5218
5561
|
};
|
|
5562
|
+
/**
|
|
5563
|
+
* @description One entry of an incremental upload's file list. A regular file carries `sha256`
|
|
5564
|
+
* (lowercase hex) and `size`; a directory carries `type: dir` and a path ending in `/`.
|
|
5565
|
+
*/
|
|
5566
|
+
DeploymentUploadEntry: {
|
|
5567
|
+
path: string;
|
|
5568
|
+
sha256?: string;
|
|
5569
|
+
/** Format: int64 */
|
|
5570
|
+
size?: number;
|
|
5571
|
+
/**
|
|
5572
|
+
* @default file
|
|
5573
|
+
* @enum {string}
|
|
5574
|
+
*/
|
|
5575
|
+
type: "file" | "dir";
|
|
5576
|
+
};
|
|
5577
|
+
DeploymentUpload: {
|
|
5578
|
+
uploadId: string;
|
|
5579
|
+
/** @description sha256 hashes the server does not hold yet. Upload these, then commit. */
|
|
5580
|
+
missing: string[];
|
|
5581
|
+
/** Format: date-time */
|
|
5582
|
+
expiresAt: string;
|
|
5583
|
+
};
|
|
5219
5584
|
Deployment: {
|
|
5220
5585
|
/** Format: uuid */
|
|
5221
5586
|
deploymentId: string;
|
|
@@ -6880,6 +7245,11 @@ export interface components {
|
|
|
6880
7245
|
* @description the balance (can be negative)
|
|
6881
7246
|
*/
|
|
6882
7247
|
microCents: number;
|
|
7248
|
+
/**
|
|
7249
|
+
* Format: int64
|
|
7250
|
+
* @description The part of the balance your running apps have set aside for calls in progress. It is still yours — what a call does not use returns to the balance. Zero when nothing is held
|
|
7251
|
+
*/
|
|
7252
|
+
heldMicroCents?: number;
|
|
6883
7253
|
/** Format: int64 */
|
|
6884
7254
|
lowMicroCents?: number;
|
|
6885
7255
|
/** Format: int64 */
|
|
@@ -8208,7 +8578,12 @@ export interface operations {
|
|
|
8208
8578
|
};
|
|
8209
8579
|
appAuthStart: {
|
|
8210
8580
|
parameters: {
|
|
8211
|
-
query?:
|
|
8581
|
+
query?: {
|
|
8582
|
+
idp?: "google" | "github" | "password" | "passkey";
|
|
8583
|
+
login_hint?: string;
|
|
8584
|
+
error_next?: string;
|
|
8585
|
+
prompt?: "none";
|
|
8586
|
+
};
|
|
8212
8587
|
header?: never;
|
|
8213
8588
|
path: {
|
|
8214
8589
|
id: string;
|
|
@@ -8269,7 +8644,7 @@ export interface operations {
|
|
|
8269
8644
|
};
|
|
8270
8645
|
};
|
|
8271
8646
|
};
|
|
8272
|
-
|
|
8647
|
+
appAuthChooseCancel: {
|
|
8273
8648
|
parameters: {
|
|
8274
8649
|
query?: never;
|
|
8275
8650
|
header?: never;
|
|
@@ -8278,23 +8653,187 @@ export interface operations {
|
|
|
8278
8653
|
};
|
|
8279
8654
|
cookie?: never;
|
|
8280
8655
|
};
|
|
8281
|
-
requestBody
|
|
8282
|
-
content: {
|
|
8283
|
-
"application/x-www-form-urlencoded": {
|
|
8284
|
-
email: string;
|
|
8285
|
-
password: string;
|
|
8286
|
-
/** @enum {string} */
|
|
8287
|
-
mode: "sign-in" | "sign-up";
|
|
8288
|
-
};
|
|
8289
|
-
};
|
|
8290
|
-
};
|
|
8656
|
+
requestBody?: never;
|
|
8291
8657
|
responses: {
|
|
8292
|
-
/** @description
|
|
8293
|
-
|
|
8658
|
+
/** @description to the app host with auth_error=cancelled */
|
|
8659
|
+
302: {
|
|
8294
8660
|
headers: {
|
|
8295
8661
|
[name: string]: unknown;
|
|
8296
8662
|
};
|
|
8297
|
-
content
|
|
8663
|
+
content?: never;
|
|
8664
|
+
};
|
|
8665
|
+
/** @description `sign_in_expired` */
|
|
8666
|
+
400: {
|
|
8667
|
+
headers: {
|
|
8668
|
+
[name: string]: unknown;
|
|
8669
|
+
};
|
|
8670
|
+
content?: never;
|
|
8671
|
+
};
|
|
8672
|
+
};
|
|
8673
|
+
};
|
|
8674
|
+
appAuthChooseContinue: {
|
|
8675
|
+
parameters: {
|
|
8676
|
+
query?: never;
|
|
8677
|
+
header?: never;
|
|
8678
|
+
path: {
|
|
8679
|
+
id: string;
|
|
8680
|
+
};
|
|
8681
|
+
cookie?: never;
|
|
8682
|
+
};
|
|
8683
|
+
requestBody?: never;
|
|
8684
|
+
responses: {
|
|
8685
|
+
/** @description the chooser (no session) */
|
|
8686
|
+
200: {
|
|
8687
|
+
headers: {
|
|
8688
|
+
[name: string]: unknown;
|
|
8689
|
+
};
|
|
8690
|
+
content: {
|
|
8691
|
+
"text/html": string;
|
|
8692
|
+
};
|
|
8693
|
+
};
|
|
8694
|
+
/** @description to the app host with a grant */
|
|
8695
|
+
303: {
|
|
8696
|
+
headers: {
|
|
8697
|
+
[name: string]: unknown;
|
|
8698
|
+
};
|
|
8699
|
+
content?: never;
|
|
8700
|
+
};
|
|
8701
|
+
};
|
|
8702
|
+
};
|
|
8703
|
+
appAuthPasskeyOptions: {
|
|
8704
|
+
parameters: {
|
|
8705
|
+
query?: never;
|
|
8706
|
+
header?: never;
|
|
8707
|
+
path: {
|
|
8708
|
+
id: string;
|
|
8709
|
+
};
|
|
8710
|
+
cookie?: never;
|
|
8711
|
+
};
|
|
8712
|
+
requestBody?: never;
|
|
8713
|
+
responses: {
|
|
8714
|
+
/** @description `{challengeId, publicKey}` — WebAuthn PublicKeyCredentialRequestOptions (discoverable) */
|
|
8715
|
+
200: {
|
|
8716
|
+
headers: {
|
|
8717
|
+
[name: string]: unknown;
|
|
8718
|
+
};
|
|
8719
|
+
content: {
|
|
8720
|
+
"application/json": Record<string, never>;
|
|
8721
|
+
};
|
|
8722
|
+
};
|
|
8723
|
+
404: components["responses"]["NotFound"];
|
|
8724
|
+
};
|
|
8725
|
+
};
|
|
8726
|
+
appAuthPasskeyVerify: {
|
|
8727
|
+
parameters: {
|
|
8728
|
+
query: {
|
|
8729
|
+
challenge: string;
|
|
8730
|
+
};
|
|
8731
|
+
header?: never;
|
|
8732
|
+
path: {
|
|
8733
|
+
id: string;
|
|
8734
|
+
};
|
|
8735
|
+
cookie?: never;
|
|
8736
|
+
};
|
|
8737
|
+
requestBody: {
|
|
8738
|
+
content: {
|
|
8739
|
+
"application/json": Record<string, never>;
|
|
8740
|
+
};
|
|
8741
|
+
};
|
|
8742
|
+
responses: {
|
|
8743
|
+
/** @description `{redirect}` — the app URL carrying the grant */
|
|
8744
|
+
200: {
|
|
8745
|
+
headers: {
|
|
8746
|
+
[name: string]: unknown;
|
|
8747
|
+
};
|
|
8748
|
+
content: {
|
|
8749
|
+
"application/json": Record<string, never>;
|
|
8750
|
+
};
|
|
8751
|
+
};
|
|
8752
|
+
/** @description `passkey_failed` */
|
|
8753
|
+
401: {
|
|
8754
|
+
headers: {
|
|
8755
|
+
[name: string]: unknown;
|
|
8756
|
+
};
|
|
8757
|
+
content?: never;
|
|
8758
|
+
};
|
|
8759
|
+
};
|
|
8760
|
+
};
|
|
8761
|
+
appAuthPasskeyRegisterOptions: {
|
|
8762
|
+
parameters: {
|
|
8763
|
+
query: {
|
|
8764
|
+
ticket: string;
|
|
8765
|
+
};
|
|
8766
|
+
header?: never;
|
|
8767
|
+
path?: never;
|
|
8768
|
+
cookie?: never;
|
|
8769
|
+
};
|
|
8770
|
+
requestBody?: never;
|
|
8771
|
+
responses: {
|
|
8772
|
+
/** @description `{publicKey}` — PublicKeyCredentialCreationOptions */
|
|
8773
|
+
200: {
|
|
8774
|
+
headers: {
|
|
8775
|
+
[name: string]: unknown;
|
|
8776
|
+
};
|
|
8777
|
+
content: {
|
|
8778
|
+
"application/json": Record<string, never>;
|
|
8779
|
+
};
|
|
8780
|
+
};
|
|
8781
|
+
400: components["responses"]["BadRequest"];
|
|
8782
|
+
};
|
|
8783
|
+
};
|
|
8784
|
+
appAuthPasskeyRegister: {
|
|
8785
|
+
parameters: {
|
|
8786
|
+
query: {
|
|
8787
|
+
ticket: string;
|
|
8788
|
+
};
|
|
8789
|
+
header?: never;
|
|
8790
|
+
path?: never;
|
|
8791
|
+
cookie?: never;
|
|
8792
|
+
};
|
|
8793
|
+
requestBody: {
|
|
8794
|
+
content: {
|
|
8795
|
+
"application/json": Record<string, never>;
|
|
8796
|
+
};
|
|
8797
|
+
};
|
|
8798
|
+
responses: {
|
|
8799
|
+
/** @description `{redirect}` */
|
|
8800
|
+
200: {
|
|
8801
|
+
headers: {
|
|
8802
|
+
[name: string]: unknown;
|
|
8803
|
+
};
|
|
8804
|
+
content: {
|
|
8805
|
+
"application/json": Record<string, never>;
|
|
8806
|
+
};
|
|
8807
|
+
};
|
|
8808
|
+
400: components["responses"]["BadRequest"];
|
|
8809
|
+
};
|
|
8810
|
+
};
|
|
8811
|
+
appAuthChoosePassword: {
|
|
8812
|
+
parameters: {
|
|
8813
|
+
query?: never;
|
|
8814
|
+
header?: never;
|
|
8815
|
+
path: {
|
|
8816
|
+
id: string;
|
|
8817
|
+
};
|
|
8818
|
+
cookie?: never;
|
|
8819
|
+
};
|
|
8820
|
+
requestBody: {
|
|
8821
|
+
content: {
|
|
8822
|
+
"application/x-www-form-urlencoded": {
|
|
8823
|
+
email: string;
|
|
8824
|
+
password: string;
|
|
8825
|
+
/** @enum {string} */
|
|
8826
|
+
mode: "sign-in" | "sign-up";
|
|
8827
|
+
};
|
|
8828
|
+
};
|
|
8829
|
+
};
|
|
8830
|
+
responses: {
|
|
8831
|
+
/** @description The chooser re-rendered with an error */
|
|
8832
|
+
200: {
|
|
8833
|
+
headers: {
|
|
8834
|
+
[name: string]: unknown;
|
|
8835
|
+
};
|
|
8836
|
+
content: {
|
|
8298
8837
|
"text/html": string;
|
|
8299
8838
|
};
|
|
8300
8839
|
};
|
|
@@ -9609,6 +10148,147 @@ export interface operations {
|
|
|
9609
10148
|
};
|
|
9610
10149
|
};
|
|
9611
10150
|
};
|
|
10151
|
+
createDeploymentUpload: {
|
|
10152
|
+
parameters: {
|
|
10153
|
+
query?: {
|
|
10154
|
+
/** @description As on `createDeployment`. */
|
|
10155
|
+
preview?: components["schemas"]["Slug"];
|
|
10156
|
+
/** @description As on `createDeployment`. Ignored without `preview`. */
|
|
10157
|
+
db?: "branch" | "shared" | "none";
|
|
10158
|
+
/** @description As on `createDeployment`. */
|
|
10159
|
+
from?: string;
|
|
10160
|
+
};
|
|
10161
|
+
header?: never;
|
|
10162
|
+
path: {
|
|
10163
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
10164
|
+
projectName: components["parameters"]["ProjectName"];
|
|
10165
|
+
};
|
|
10166
|
+
cookie?: never;
|
|
10167
|
+
};
|
|
10168
|
+
requestBody: {
|
|
10169
|
+
content: {
|
|
10170
|
+
"application/json": {
|
|
10171
|
+
files: components["schemas"]["DeploymentUploadEntry"][];
|
|
10172
|
+
};
|
|
10173
|
+
};
|
|
10174
|
+
};
|
|
10175
|
+
responses: {
|
|
10176
|
+
/** @description The session, and the hashes still to upload */
|
|
10177
|
+
201: {
|
|
10178
|
+
headers: {
|
|
10179
|
+
[name: string]: unknown;
|
|
10180
|
+
};
|
|
10181
|
+
content: {
|
|
10182
|
+
"application/json": components["schemas"]["DeploymentUpload"];
|
|
10183
|
+
};
|
|
10184
|
+
};
|
|
10185
|
+
400: components["responses"]["BadRequest"];
|
|
10186
|
+
403: components["responses"]["Forbidden"];
|
|
10187
|
+
404: components["responses"]["NotFound"];
|
|
10188
|
+
/** @description `over_project_limit`, `project_disabled`, `preview_limit` — as on `createDeployment`. */
|
|
10189
|
+
409: {
|
|
10190
|
+
headers: {
|
|
10191
|
+
[name: string]: unknown;
|
|
10192
|
+
};
|
|
10193
|
+
content: {
|
|
10194
|
+
"application/json": components["schemas"]["Error"];
|
|
10195
|
+
};
|
|
10196
|
+
};
|
|
10197
|
+
/** @description The listed bundle exceeds a limit */
|
|
10198
|
+
413: {
|
|
10199
|
+
headers: {
|
|
10200
|
+
[name: string]: unknown;
|
|
10201
|
+
};
|
|
10202
|
+
content: {
|
|
10203
|
+
"application/json": components["schemas"]["Error"];
|
|
10204
|
+
};
|
|
10205
|
+
};
|
|
10206
|
+
};
|
|
10207
|
+
};
|
|
10208
|
+
uploadDeploymentBlobs: {
|
|
10209
|
+
parameters: {
|
|
10210
|
+
query?: never;
|
|
10211
|
+
header?: never;
|
|
10212
|
+
path: {
|
|
10213
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
10214
|
+
projectName: components["parameters"]["ProjectName"];
|
|
10215
|
+
uploadId: string;
|
|
10216
|
+
};
|
|
10217
|
+
cookie?: never;
|
|
10218
|
+
};
|
|
10219
|
+
requestBody: {
|
|
10220
|
+
content: {
|
|
10221
|
+
"application/gzip": string;
|
|
10222
|
+
};
|
|
10223
|
+
};
|
|
10224
|
+
responses: {
|
|
10225
|
+
/** @description What this batch stored, and what the session still lacks */
|
|
10226
|
+
200: {
|
|
10227
|
+
headers: {
|
|
10228
|
+
[name: string]: unknown;
|
|
10229
|
+
};
|
|
10230
|
+
content: {
|
|
10231
|
+
"application/json": {
|
|
10232
|
+
received: string[];
|
|
10233
|
+
missing: string[];
|
|
10234
|
+
};
|
|
10235
|
+
};
|
|
10236
|
+
};
|
|
10237
|
+
400: components["responses"]["BadRequest"];
|
|
10238
|
+
403: components["responses"]["Forbidden"];
|
|
10239
|
+
404: components["responses"]["NotFound"];
|
|
10240
|
+
/** @description The batch or one of its entries exceeds a limit */
|
|
10241
|
+
413: {
|
|
10242
|
+
headers: {
|
|
10243
|
+
[name: string]: unknown;
|
|
10244
|
+
};
|
|
10245
|
+
content: {
|
|
10246
|
+
"application/json": components["schemas"]["Error"];
|
|
10247
|
+
};
|
|
10248
|
+
};
|
|
10249
|
+
};
|
|
10250
|
+
};
|
|
10251
|
+
commitDeploymentUpload: {
|
|
10252
|
+
parameters: {
|
|
10253
|
+
query?: never;
|
|
10254
|
+
header?: {
|
|
10255
|
+
"X-Runlot-Git-Commit"?: string;
|
|
10256
|
+
"X-Runlot-Git-Message"?: string;
|
|
10257
|
+
"X-Runlot-Git-Branch"?: string;
|
|
10258
|
+
"X-Runlot-Git-Dirty"?: boolean;
|
|
10259
|
+
};
|
|
10260
|
+
path: {
|
|
10261
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
10262
|
+
projectName: components["parameters"]["ProjectName"];
|
|
10263
|
+
uploadId: string;
|
|
10264
|
+
};
|
|
10265
|
+
cookie?: never;
|
|
10266
|
+
};
|
|
10267
|
+
requestBody?: never;
|
|
10268
|
+
responses: {
|
|
10269
|
+
/** @description The created deployment */
|
|
10270
|
+
201: {
|
|
10271
|
+
headers: {
|
|
10272
|
+
[name: string]: unknown;
|
|
10273
|
+
};
|
|
10274
|
+
content: {
|
|
10275
|
+
"application/json": components["schemas"]["Deployment"];
|
|
10276
|
+
};
|
|
10277
|
+
};
|
|
10278
|
+
400: components["responses"]["BadRequest"];
|
|
10279
|
+
403: components["responses"]["Forbidden"];
|
|
10280
|
+
404: components["responses"]["NotFound"];
|
|
10281
|
+
/** @description `blobs_missing`, or any 409 of `createDeployment`. */
|
|
10282
|
+
409: {
|
|
10283
|
+
headers: {
|
|
10284
|
+
[name: string]: unknown;
|
|
10285
|
+
};
|
|
10286
|
+
content: {
|
|
10287
|
+
"application/json": components["schemas"]["Error"];
|
|
10288
|
+
};
|
|
10289
|
+
};
|
|
10290
|
+
};
|
|
10291
|
+
};
|
|
9612
10292
|
getDeployment: {
|
|
9613
10293
|
parameters: {
|
|
9614
10294
|
query?: never;
|
|
@@ -12321,6 +13001,150 @@ export interface operations {
|
|
|
12321
13001
|
404: components["responses"]["NotFound"];
|
|
12322
13002
|
};
|
|
12323
13003
|
};
|
|
13004
|
+
getAuthBranding: {
|
|
13005
|
+
parameters: {
|
|
13006
|
+
query?: never;
|
|
13007
|
+
header?: never;
|
|
13008
|
+
path: {
|
|
13009
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
13010
|
+
projectName: components["parameters"]["ProjectName"];
|
|
13011
|
+
};
|
|
13012
|
+
cookie?: never;
|
|
13013
|
+
};
|
|
13014
|
+
requestBody?: never;
|
|
13015
|
+
responses: {
|
|
13016
|
+
/** @description `{brand, effectiveMethods}` */
|
|
13017
|
+
200: {
|
|
13018
|
+
headers: {
|
|
13019
|
+
[name: string]: unknown;
|
|
13020
|
+
};
|
|
13021
|
+
content: {
|
|
13022
|
+
"application/json": components["schemas"]["AuthBranding"];
|
|
13023
|
+
};
|
|
13024
|
+
};
|
|
13025
|
+
404: components["responses"]["NotFound"];
|
|
13026
|
+
};
|
|
13027
|
+
};
|
|
13028
|
+
putAuthBranding: {
|
|
13029
|
+
parameters: {
|
|
13030
|
+
query?: never;
|
|
13031
|
+
header?: never;
|
|
13032
|
+
path: {
|
|
13033
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
13034
|
+
projectName: components["parameters"]["ProjectName"];
|
|
13035
|
+
};
|
|
13036
|
+
cookie?: never;
|
|
13037
|
+
};
|
|
13038
|
+
requestBody: {
|
|
13039
|
+
content: {
|
|
13040
|
+
"application/json": components["schemas"]["SignInBrand"];
|
|
13041
|
+
};
|
|
13042
|
+
};
|
|
13043
|
+
responses: {
|
|
13044
|
+
/** @description `{brand, effectiveMethods}` */
|
|
13045
|
+
200: {
|
|
13046
|
+
headers: {
|
|
13047
|
+
[name: string]: unknown;
|
|
13048
|
+
};
|
|
13049
|
+
content: {
|
|
13050
|
+
"application/json": components["schemas"]["AuthBranding"];
|
|
13051
|
+
};
|
|
13052
|
+
};
|
|
13053
|
+
400: components["responses"]["BadRequest"];
|
|
13054
|
+
/** @description `not_granted` */
|
|
13055
|
+
404: {
|
|
13056
|
+
headers: {
|
|
13057
|
+
[name: string]: unknown;
|
|
13058
|
+
};
|
|
13059
|
+
content?: never;
|
|
13060
|
+
};
|
|
13061
|
+
};
|
|
13062
|
+
};
|
|
13063
|
+
getAuthFunnel: {
|
|
13064
|
+
parameters: {
|
|
13065
|
+
query?: {
|
|
13066
|
+
days?: number;
|
|
13067
|
+
};
|
|
13068
|
+
header?: never;
|
|
13069
|
+
path: {
|
|
13070
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
13071
|
+
projectName: components["parameters"]["ProjectName"];
|
|
13072
|
+
};
|
|
13073
|
+
cookie?: never;
|
|
13074
|
+
};
|
|
13075
|
+
requestBody?: never;
|
|
13076
|
+
responses: {
|
|
13077
|
+
/** @description `{days, rows: [{day, event, key, n}]}` */
|
|
13078
|
+
200: {
|
|
13079
|
+
headers: {
|
|
13080
|
+
[name: string]: unknown;
|
|
13081
|
+
};
|
|
13082
|
+
content: {
|
|
13083
|
+
"application/json": Record<string, never>;
|
|
13084
|
+
};
|
|
13085
|
+
};
|
|
13086
|
+
};
|
|
13087
|
+
};
|
|
13088
|
+
previewAuthBranding: {
|
|
13089
|
+
parameters: {
|
|
13090
|
+
query?: {
|
|
13091
|
+
ticket?: string;
|
|
13092
|
+
lang?: "ko" | "en" | "ja";
|
|
13093
|
+
theme?: "light" | "dark" | "system";
|
|
13094
|
+
state?: string;
|
|
13095
|
+
draft?: string;
|
|
13096
|
+
};
|
|
13097
|
+
header?: never;
|
|
13098
|
+
path: {
|
|
13099
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
13100
|
+
projectName: components["parameters"]["ProjectName"];
|
|
13101
|
+
};
|
|
13102
|
+
cookie?: never;
|
|
13103
|
+
};
|
|
13104
|
+
requestBody?: never;
|
|
13105
|
+
responses: {
|
|
13106
|
+
/** @description HTML */
|
|
13107
|
+
200: {
|
|
13108
|
+
headers: {
|
|
13109
|
+
[name: string]: unknown;
|
|
13110
|
+
};
|
|
13111
|
+
content: {
|
|
13112
|
+
"text/html": string;
|
|
13113
|
+
};
|
|
13114
|
+
};
|
|
13115
|
+
400: components["responses"]["BadRequest"];
|
|
13116
|
+
/** @description no session and no valid ticket */
|
|
13117
|
+
401: {
|
|
13118
|
+
headers: {
|
|
13119
|
+
[name: string]: unknown;
|
|
13120
|
+
};
|
|
13121
|
+
content?: never;
|
|
13122
|
+
};
|
|
13123
|
+
};
|
|
13124
|
+
};
|
|
13125
|
+
mintAuthBrandingPreviewTicket: {
|
|
13126
|
+
parameters: {
|
|
13127
|
+
query?: never;
|
|
13128
|
+
header?: never;
|
|
13129
|
+
path: {
|
|
13130
|
+
orgSlug: components["parameters"]["OrgSlug"];
|
|
13131
|
+
projectName: components["parameters"]["ProjectName"];
|
|
13132
|
+
};
|
|
13133
|
+
cookie?: never;
|
|
13134
|
+
};
|
|
13135
|
+
requestBody?: never;
|
|
13136
|
+
responses: {
|
|
13137
|
+
/** @description `{url, ticket, expiresAt}` */
|
|
13138
|
+
200: {
|
|
13139
|
+
headers: {
|
|
13140
|
+
[name: string]: unknown;
|
|
13141
|
+
};
|
|
13142
|
+
content: {
|
|
13143
|
+
"application/json": Record<string, never>;
|
|
13144
|
+
};
|
|
13145
|
+
};
|
|
13146
|
+
};
|
|
13147
|
+
};
|
|
12324
13148
|
setAuthProvider: {
|
|
12325
13149
|
parameters: {
|
|
12326
13150
|
query?: never;
|