@atlasauth/backend 0.7.3 → 0.8.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/CHANGELOG.md +15 -0
- package/README.md +30 -1
- package/dist/client/activity.d.ts +5 -0
- package/dist/client/activity.js.map +1 -1
- package/dist/client/branding.d.ts +58 -0
- package/dist/client/branding.js.map +1 -1
- package/dist/client/domains.d.ts +13 -0
- package/dist/client/domains.js.map +1 -1
- package/dist/client/index.d.ts +44 -1
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/instance.d.ts +192 -0
- package/dist/client/instance.js +38 -0
- package/dist/client/instance.js.map +1 -1
- package/dist/client/logout-notify-endpoints.d.ts +71 -0
- package/dist/client/logout-notify-endpoints.js +34 -0
- package/dist/client/logout-notify-endpoints.js.map +1 -0
- package/dist/client/messaging.d.ts +91 -0
- package/dist/client/messaging.js +27 -0
- package/dist/client/messaging.js.map +1 -1
- package/dist/client/oauth-clients.d.ts +61 -0
- package/dist/client/oauth-clients.js +12 -0
- package/dist/client/oauth-clients.js.map +1 -1
- package/dist/client/platform.d.ts +118 -0
- package/dist/client/platform.js +80 -0
- package/dist/client/platform.js.map +1 -1
- package/dist/client/users.d.ts +14 -1
- package/dist/client/users.js +10 -2
- package/dist/client/users.js.map +1 -1
- package/dist/client/webhooks.d.ts +21 -0
- package/dist/client/webhooks.js.map +1 -1
- package/dist/logout-token.d.ts +8 -0
- package/dist/logout-token.js +20 -15
- package/dist/logout-token.js.map +1 -1
- package/dist/webhooks.d.ts +16 -5
- package/dist/webhooks.js +11 -7
- package/dist/webhooks.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
/**
|
|
3
|
+
* Logout fan-out ("also notify") endpoints: downstream services that receive the
|
|
4
|
+
* same signed `logout_token` as your OIDC apps whenever an Atlas session ends,
|
|
5
|
+
* plus a subject-wide one (sub, no sid) on ban, deletion or deprovisioning.
|
|
6
|
+
*/
|
|
7
|
+
export interface LogoutNotifyEndpoint {
|
|
8
|
+
object: 'logout_notify_endpoint';
|
|
9
|
+
id: string;
|
|
10
|
+
url: string;
|
|
11
|
+
/** The client_id this endpoint follows; null = instance-wide. */
|
|
12
|
+
oauth_client_id: string | null;
|
|
13
|
+
/** The `aud` its logout_tokens carry. */
|
|
14
|
+
audience: string;
|
|
15
|
+
description?: string | null;
|
|
16
|
+
created_at: number;
|
|
17
|
+
updated_at: number;
|
|
18
|
+
}
|
|
19
|
+
export interface CreateLogoutNotifyEndpointBody {
|
|
20
|
+
/** Public https endpoint. */
|
|
21
|
+
url: string;
|
|
22
|
+
/** A client_id of this instance to follow; omit for instance-wide. */
|
|
23
|
+
oauth_client_id?: string | null;
|
|
24
|
+
/** The logout_token `aud`. Default: the client_id when following a client, else the instance id. */
|
|
25
|
+
audience?: string | null;
|
|
26
|
+
/** Up to 200 characters. */
|
|
27
|
+
description?: string | null;
|
|
28
|
+
}
|
|
29
|
+
export interface UpdateLogoutNotifyEndpointBody {
|
|
30
|
+
url?: string;
|
|
31
|
+
audience?: string | null;
|
|
32
|
+
description?: string | null;
|
|
33
|
+
}
|
|
34
|
+
/** One logout_token sent to a fan-out endpoint. */
|
|
35
|
+
export interface LogoutNotifyDelivery {
|
|
36
|
+
object: 'logout_notify_delivery';
|
|
37
|
+
id: string;
|
|
38
|
+
sub: string;
|
|
39
|
+
/** null = a subject-wide logout (ban / deletion). */
|
|
40
|
+
sid?: string | null;
|
|
41
|
+
status: 'pending' | 'success' | 'failed';
|
|
42
|
+
attempt_number: number;
|
|
43
|
+
http_status?: number | null;
|
|
44
|
+
response_snippet?: string | null;
|
|
45
|
+
next_retry_at?: number | null;
|
|
46
|
+
delivered_at?: number | null;
|
|
47
|
+
created_at: number;
|
|
48
|
+
}
|
|
49
|
+
export interface LogoutNotifyList<T> {
|
|
50
|
+
object: 'list';
|
|
51
|
+
data: T[];
|
|
52
|
+
has_more?: boolean;
|
|
53
|
+
next_cursor?: string | null;
|
|
54
|
+
}
|
|
55
|
+
export declare function logoutNotifyEndpointsResource(request: RequestFn): {
|
|
56
|
+
list(): Promise<LogoutNotifyList<LogoutNotifyEndpoint>>;
|
|
57
|
+
/** Register an endpoint. The URL must be public https. */
|
|
58
|
+
create(body: CreateLogoutNotifyEndpointBody, idempotencyKey?: string): Promise<LogoutNotifyEndpoint>;
|
|
59
|
+
get(id: string): Promise<LogoutNotifyEndpoint>;
|
|
60
|
+
update(id: string, body: UpdateLogoutNotifyEndpointBody, idempotencyKey?: string): Promise<LogoutNotifyEndpoint>;
|
|
61
|
+
/** Its queued deliveries go with it. */
|
|
62
|
+
delete(id: string, idempotencyKey?: string): Promise<{
|
|
63
|
+
object: "logout_notify_endpoint";
|
|
64
|
+
id: string;
|
|
65
|
+
deleted: true;
|
|
66
|
+
}>;
|
|
67
|
+
/** The endpoint's delivery log, newest first. */
|
|
68
|
+
listDeliveries(id: string, params?: {
|
|
69
|
+
limit?: number;
|
|
70
|
+
}): Promise<LogoutNotifyList<LogoutNotifyDelivery>>;
|
|
71
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logoutNotifyEndpointsResource = logoutNotifyEndpointsResource;
|
|
4
|
+
const request_1 = require("./request");
|
|
5
|
+
function logoutNotifyEndpointsResource(request) {
|
|
6
|
+
return {
|
|
7
|
+
list() {
|
|
8
|
+
return request({ method: 'GET', path: '/v1/logout_notify_endpoints' });
|
|
9
|
+
},
|
|
10
|
+
/** Register an endpoint. The URL must be public https. */
|
|
11
|
+
create(body, idempotencyKey) {
|
|
12
|
+
return request({ method: 'POST', path: '/v1/logout_notify_endpoints', body, idempotencyKey });
|
|
13
|
+
},
|
|
14
|
+
get(id) {
|
|
15
|
+
return request({ method: 'GET', path: `/v1/logout_notify_endpoints/${(0, request_1.enc)(id)}` });
|
|
16
|
+
},
|
|
17
|
+
update(id, body, idempotencyKey) {
|
|
18
|
+
return request({ method: 'PATCH', path: `/v1/logout_notify_endpoints/${(0, request_1.enc)(id)}`, body, idempotencyKey });
|
|
19
|
+
},
|
|
20
|
+
/** Its queued deliveries go with it. */
|
|
21
|
+
delete(id, idempotencyKey) {
|
|
22
|
+
return request({ method: 'DELETE', path: `/v1/logout_notify_endpoints/${(0, request_1.enc)(id)}`, idempotencyKey });
|
|
23
|
+
},
|
|
24
|
+
/** The endpoint's delivery log, newest first. */
|
|
25
|
+
listDeliveries(id, params = {}) {
|
|
26
|
+
return request({
|
|
27
|
+
method: 'GET',
|
|
28
|
+
path: `/v1/logout_notify_endpoints/${(0, request_1.enc)(id)}/deliveries`,
|
|
29
|
+
query: { ...params },
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=logout-notify-endpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout-notify-endpoints.js","sourceRoot":"","sources":["../../src/client/logout-notify-endpoints.ts"],"names":[],"mappings":";;AA4DA,sEA+BC;AA3FD,uCAAgD;AA4DhD,SAAgB,6BAA6B,CAAC,OAAkB;IAC9D,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,0DAA0D;QAC1D,MAAM,CAAC,IAAoC,EAAE,cAAuB;YAClE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAAoC,EAAE,cAAuB;YAC9E,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,+BAA+B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,wCAAwC;QACxC,MAAM,CACJ,EAAU,EACV,cAAuB;YAEvB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,iDAAiD;QACjD,cAAc,CAAC,EAAU,EAAE,SAA6B,EAAE;YACxD,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,+BAA+B,IAAA,aAAG,EAAC,EAAE,CAAC,aAAa;gBACzD,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -272,6 +272,80 @@ export interface MessagingProviders {
|
|
|
272
272
|
object: 'messaging_providers';
|
|
273
273
|
email: EmailProvider | null;
|
|
274
274
|
sms: SmsProvider | null;
|
|
275
|
+
/** The Atlas-managed sending domain, when one is set up (summary). */
|
|
276
|
+
managed_email?: {
|
|
277
|
+
object: 'managed_email';
|
|
278
|
+
from_address: string;
|
|
279
|
+
domain: string;
|
|
280
|
+
status: string;
|
|
281
|
+
verified: boolean;
|
|
282
|
+
} | null;
|
|
283
|
+
}
|
|
284
|
+
/** A DNS record to publish for the managed sending domain. */
|
|
285
|
+
export interface ManagedEmailRecord {
|
|
286
|
+
purpose: 'dkim' | 'spf' | 'return_path' | 'other';
|
|
287
|
+
type: 'TXT' | 'MX' | 'CNAME';
|
|
288
|
+
/** Fully-qualified record name. */
|
|
289
|
+
name: string;
|
|
290
|
+
value: string;
|
|
291
|
+
priority?: number;
|
|
292
|
+
status?: string;
|
|
293
|
+
}
|
|
294
|
+
/** Atlas-managed email: your own sending domain on Atlas's email account. */
|
|
295
|
+
export interface ManagedEmail {
|
|
296
|
+
object: 'managed_email';
|
|
297
|
+
id: string;
|
|
298
|
+
from_address: string;
|
|
299
|
+
domain: string;
|
|
300
|
+
provider: string;
|
|
301
|
+
region: string | null;
|
|
302
|
+
/** `not_started` | `pending` | `verified` | `failed` | `temporary_failure`. Email sends only when verified. */
|
|
303
|
+
status: string;
|
|
304
|
+
verified: boolean;
|
|
305
|
+
records: ManagedEmailRecord[];
|
|
306
|
+
limits: {
|
|
307
|
+
hourly: number;
|
|
308
|
+
daily: number;
|
|
309
|
+
};
|
|
310
|
+
usage: {
|
|
311
|
+
sent: number;
|
|
312
|
+
bounces: number;
|
|
313
|
+
complaints: number;
|
|
314
|
+
last_bounce_at: number | null;
|
|
315
|
+
last_complaint_at: number | null;
|
|
316
|
+
};
|
|
317
|
+
reputation: 'shared_platform_account';
|
|
318
|
+
/** DNS automation, when set. The token is never returned. */
|
|
319
|
+
dns: {
|
|
320
|
+
provider: string;
|
|
321
|
+
token_set: boolean;
|
|
322
|
+
} | null;
|
|
323
|
+
failure_reason: string | null;
|
|
324
|
+
last_checked_at: number | null;
|
|
325
|
+
verified_at: number | null;
|
|
326
|
+
created_at: number;
|
|
327
|
+
updated_at: number;
|
|
328
|
+
/** Create only, with `dns`: the zone and the records Atlas wrote. */
|
|
329
|
+
dns_result?: Record<string, unknown>;
|
|
330
|
+
next_step?: string;
|
|
331
|
+
}
|
|
332
|
+
export interface CreateManagedEmailBody {
|
|
333
|
+
/** The From address, bare or `"Name <address>"`. Its domain becomes the sending domain. */
|
|
334
|
+
from_address: string;
|
|
335
|
+
region?: 'us-east-1' | 'eu-west-1' | 'sa-east-1' | 'ap-northeast-1';
|
|
336
|
+
/** Let Atlas write the DNS records. The token is write-only. */
|
|
337
|
+
dns?: {
|
|
338
|
+
provider: 'cloudflare';
|
|
339
|
+
/** A DNS API token with Zone Read and DNS Edit on the zone. Write-only. */
|
|
340
|
+
api_token: string;
|
|
341
|
+
/** Replace a conflicting existing record. */
|
|
342
|
+
overwrite?: boolean;
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
export interface DeletedManagedEmail {
|
|
346
|
+
object: 'managed_email';
|
|
347
|
+
domain: string;
|
|
348
|
+
deleted: true;
|
|
275
349
|
}
|
|
276
350
|
export interface MessagingTestResult {
|
|
277
351
|
object: 'messaging_test';
|
|
@@ -323,6 +397,23 @@ export declare function messagingResource(request: RequestFn): {
|
|
|
323
397
|
deleteChannel(channel: "email" | "sms", options?: {
|
|
324
398
|
force?: boolean;
|
|
325
399
|
}): Promise<DeletedMessagingProvider>;
|
|
400
|
+
/** Atlas-managed email: send from your own domain without your own email provider. */
|
|
401
|
+
managedEmail: {
|
|
402
|
+
/** 404 when none is configured. */
|
|
403
|
+
get(): Promise<ManagedEmail>;
|
|
404
|
+
/** Register the sending domain; returns the DNS `records` to publish. */
|
|
405
|
+
create(body: CreateManagedEmailBody): Promise<ManagedEmail>;
|
|
406
|
+
/** Re-check the DNS records now; `verified` is true once email can be sent. */
|
|
407
|
+
verify(): Promise<ManagedEmail>;
|
|
408
|
+
/**
|
|
409
|
+
* Stop using managed email (DNS records are left in place). Refused with
|
|
410
|
+
* `409 EMAIL_PROVIDER_IN_USE` while it is the only way to send email; pass
|
|
411
|
+
* `{ force: true }` to remove it anyway.
|
|
412
|
+
*/
|
|
413
|
+
delete(options?: {
|
|
414
|
+
force?: boolean;
|
|
415
|
+
}): Promise<DeletedManagedEmail>;
|
|
416
|
+
};
|
|
326
417
|
/** Send a fixed, clearly-marked test message through the channel's provider. */
|
|
327
418
|
test(channel: "email" | "sms", body: {
|
|
328
419
|
to: string;
|
package/dist/client/messaging.js
CHANGED
|
@@ -40,6 +40,33 @@ function messagingResource(request) {
|
|
|
40
40
|
...(options.force ? { query: { force: 'true' } } : {}),
|
|
41
41
|
});
|
|
42
42
|
},
|
|
43
|
+
/** Atlas-managed email: send from your own domain without your own email provider. */
|
|
44
|
+
managedEmail: {
|
|
45
|
+
/** 404 when none is configured. */
|
|
46
|
+
get() {
|
|
47
|
+
return request({ method: 'GET', path: '/v1/messaging_providers/email/managed' });
|
|
48
|
+
},
|
|
49
|
+
/** Register the sending domain; returns the DNS `records` to publish. */
|
|
50
|
+
create(body) {
|
|
51
|
+
return request({ method: 'POST', path: '/v1/messaging_providers/email/managed', body });
|
|
52
|
+
},
|
|
53
|
+
/** Re-check the DNS records now; `verified` is true once email can be sent. */
|
|
54
|
+
verify() {
|
|
55
|
+
return request({ method: 'POST', path: '/v1/messaging_providers/email/managed/verify' });
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* Stop using managed email (DNS records are left in place). Refused with
|
|
59
|
+
* `409 EMAIL_PROVIDER_IN_USE` while it is the only way to send email; pass
|
|
60
|
+
* `{ force: true }` to remove it anyway.
|
|
61
|
+
*/
|
|
62
|
+
delete(options = {}) {
|
|
63
|
+
return request({
|
|
64
|
+
method: 'DELETE',
|
|
65
|
+
path: '/v1/messaging_providers/email/managed',
|
|
66
|
+
...(options.force ? { query: { force: 'true' } } : {}),
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
},
|
|
43
70
|
/** Send a fixed, clearly-marked test message through the channel's provider. */
|
|
44
71
|
test(channel, body) {
|
|
45
72
|
return request({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/client/messaging.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/client/messaging.ts"],"names":[],"mappings":";;AAgaA,8CAqFC;AArfD,uCAAgD;AAgahD,SAAgB,iBAAiB,CAAC,OAAkB;IAIlD,SAAS,QAAQ,CAAC,IAAa;QAC7B,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAKD,SAAS,MAAM,CAAC,IAAa;QAC3B,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO;QACL,0EAA0E;QAC1E,GAAG;YACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACrE,CAAC;QACD;;;;WAIG;QACH,QAAQ;QACR;;;;WAIG;QACH,MAAM;QACN;;;;;;WAMG;QACH,aAAa,CACX,OAAwB,EACxB,UAA+B,EAAE;YAEjC,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,2BAA2B,IAAA,aAAG,EAAC,OAAO,CAAC,EAAE;gBAC/C,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvD,CAAC,CAAC;QACL,CAAC;QACD,sFAAsF;QACtF,YAAY,EAAE;YACZ,mCAAmC;YACnC,GAAG;gBACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,yEAAyE;YACzE,MAAM,CAAC,IAA4B;gBACjC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,+EAA+E;YAC/E,MAAM;gBACJ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8CAA8C,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD;;;;eAIG;YACH,MAAM,CAAC,UAA+B,EAAE;gBACtC,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,uCAAuC;oBAC7C,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD,CAAC,CAAC;YACL,CAAC;SACF;QACD,gFAAgF;QAChF,IAAI,CAAC,OAAwB,EAAE,IAAoB;YACjD,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,2BAA2B,IAAA,aAAG,EAAC,OAAO,CAAC,OAAO;gBACpD,IAAI;aACL,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -96,6 +96,63 @@ export interface ImportOAuthClientEntry {
|
|
|
96
96
|
export interface ImportedOAuthClient extends OAuthClient {
|
|
97
97
|
client_secret?: string;
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* One back-channel logout attempt to a client's `backchannel_logout_uri`.
|
|
101
|
+
* Atlas never follows redirects: a 3xx fails with
|
|
102
|
+
* `error: 'backchannel_redirect_not_followed'` and the `location` it pointed at.
|
|
103
|
+
*/
|
|
104
|
+
export interface BackchannelLogoutDelivery {
|
|
105
|
+
object: 'backchannel_logout_delivery';
|
|
106
|
+
id: string;
|
|
107
|
+
oauth_client_id: string | null;
|
|
108
|
+
/** The ended session (`sid_test_…` for a test); null for "sign out everywhere". */
|
|
109
|
+
sid: string | null;
|
|
110
|
+
/** Sent by `testBackchannelLogout`; never retried. */
|
|
111
|
+
test: boolean;
|
|
112
|
+
status: 'pending' | 'success' | 'failed';
|
|
113
|
+
attempt_number: number;
|
|
114
|
+
max_attempts: number;
|
|
115
|
+
http_status: number | null;
|
|
116
|
+
latency_ms: number | null;
|
|
117
|
+
/**
|
|
118
|
+
* `backchannel_redirect_not_followed`, `backchannel_http_error`,
|
|
119
|
+
* `backchannel_timeout`, `backchannel_network_error` or `backchannel_url_blocked`.
|
|
120
|
+
*/
|
|
121
|
+
error: string | null;
|
|
122
|
+
location: string | null;
|
|
123
|
+
response_snippet: string | null;
|
|
124
|
+
next_retry_at: number | null;
|
|
125
|
+
attempted_at: number | null;
|
|
126
|
+
delivered_at: number | null;
|
|
127
|
+
created_at: number;
|
|
128
|
+
}
|
|
129
|
+
/** A page of {@link BackchannelLogoutDelivery}, newest first. */
|
|
130
|
+
export interface BackchannelLogoutDeliveryPage extends ListPage<BackchannelLogoutDelivery> {
|
|
131
|
+
has_more: boolean;
|
|
132
|
+
/** Pass as `starting_after` for the next page. */
|
|
133
|
+
next_cursor: string | null;
|
|
134
|
+
}
|
|
135
|
+
/** Paging for a delivery log. */
|
|
136
|
+
export interface BackchannelDeliveriesQuery {
|
|
137
|
+
limit?: number;
|
|
138
|
+
starting_after?: string;
|
|
139
|
+
}
|
|
140
|
+
/** The result of a test back-channel logout (a signed token for `sid_test_…` with `atlas_test: true`). */
|
|
141
|
+
export interface BackchannelLogoutTest {
|
|
142
|
+
object: 'backchannel_logout_test';
|
|
143
|
+
delivery_id: string;
|
|
144
|
+
/** True when the receiver answered 2xx. */
|
|
145
|
+
ok: boolean;
|
|
146
|
+
sid: string;
|
|
147
|
+
status: number | null;
|
|
148
|
+
latency_ms: number | null;
|
|
149
|
+
error: string | null;
|
|
150
|
+
location: string | null;
|
|
151
|
+
/** Set when nothing was sent because the URI points at a private, loopback or non-https address. */
|
|
152
|
+
blocked_reason: string | null;
|
|
153
|
+
/** First 512 characters of the response body. */
|
|
154
|
+
body_excerpt: string | null;
|
|
155
|
+
}
|
|
99
156
|
export declare function oauthClientsResource(request: RequestFn): {
|
|
100
157
|
/** Bulk-import OAuth clients for a migration, optionally with pre-hashed secrets. */
|
|
101
158
|
import(body: {
|
|
@@ -112,6 +169,10 @@ export declare function oauthClientsResource(request: RequestFn): {
|
|
|
112
169
|
deleted: true;
|
|
113
170
|
note: string;
|
|
114
171
|
}>;
|
|
172
|
+
/** The client's back-channel logout delivery log, newest first. */
|
|
173
|
+
listBackchannelDeliveries(id: string, query?: BackchannelDeliveriesQuery): Promise<BackchannelLogoutDeliveryPage>;
|
|
174
|
+
/** Send a test back-channel logout now and return what the receiver answered. */
|
|
175
|
+
testBackchannelLogout(id: string): Promise<BackchannelLogoutTest>;
|
|
115
176
|
grants: {
|
|
116
177
|
list(clientId: string): Promise<ListPage<ClientGrant>>;
|
|
117
178
|
create(clientId: string, body: {
|
|
@@ -26,6 +26,18 @@ function oauthClientsResource(request) {
|
|
|
26
26
|
delete(id) {
|
|
27
27
|
return request({ method: 'DELETE', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}` });
|
|
28
28
|
},
|
|
29
|
+
/** The client's back-channel logout delivery log, newest first. */
|
|
30
|
+
listBackchannelDeliveries(id, query = {}) {
|
|
31
|
+
return request({
|
|
32
|
+
method: 'GET',
|
|
33
|
+
path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/backchannel_deliveries`,
|
|
34
|
+
query: { ...query },
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
/** Send a test back-channel logout now and return what the receiver answered. */
|
|
38
|
+
testBackchannelLogout(id) {
|
|
39
|
+
return request({ method: 'POST', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/backchannel_logout/test` });
|
|
40
|
+
},
|
|
29
41
|
grants: {
|
|
30
42
|
list(clientId) {
|
|
31
43
|
return request({ method: 'GET', path: `/v1/oauth_clients/${(0, request_1.enc)(clientId)}/grants` });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":";;AAwKA,oDAoEC;AA5OD,uCAAgD;AAwKhD,SAAgB,oBAAoB,CAAC,OAAkB;IACrD,OAAO;QACL,qFAAqF;QACrF,MAAM,CACJ,IAA2C,EAC3C,cAAuB;YAEvB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,CAAC,IAA2B,EAAE,cAAuB;YACzD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAA2B;YAC5C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,YAAY,CAAC,EAAU;YACrB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,mEAAmE;QACnE,yBAAyB,CACvB,EAAU,EACV,QAAoC,EAAE;YAEtC,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,yBAAyB;gBAC3D,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;QACD,iFAAiF;QACjF,qBAAqB,CAAC,EAAU;YAC9B,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,EAAE;YACN,IAAI,CAAC,QAAgB;gBACnB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,MAAM,CACJ,QAAgB,EAChB,IAAuD;gBAEvD,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,QAAQ,CAAC,SAAS;oBACjD,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,QAAgB,EAChB,OAAe;gBAEf,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,QAAQ,CAAC,WAAW,IAAA,aAAG,EAAC,OAAO,CAAC,EAAE;iBAClE,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { type AtlasRequestSettings, type RequestFn, type UnknownFieldsEvent } from './request';
|
|
2
2
|
import type { ListPage } from './types';
|
|
3
|
+
import type { BackchannelDeliveriesQuery, BackchannelLogoutDeliveryPage, BackchannelLogoutTest } from './oauth-clients';
|
|
4
|
+
import type { OriginMove, OriginMoveRequest, PreflightFinding } from './instance';
|
|
5
|
+
import type { ConfigChangelogEntry, ListConfigChangelogParams } from './activity';
|
|
3
6
|
import type { AtlasDesign, AtlasDesignPatch, DeletedDesignAsset, DesignAsset, DesignAssetData, DesignPreview, ResolvedAtlasDesign, UploadDesignAssetOptions } from './design';
|
|
7
|
+
/** `GET /v1/platform/atlas_id_apps/{id}/preflight`. */
|
|
8
|
+
export interface AtlasIdAppPreflight {
|
|
9
|
+
object: 'preflight';
|
|
10
|
+
app_id: string;
|
|
11
|
+
/** True when there are no error-severity findings. */
|
|
12
|
+
ok: boolean;
|
|
13
|
+
checked_at: number;
|
|
14
|
+
user_count: number;
|
|
15
|
+
findings: PreflightFinding[];
|
|
16
|
+
}
|
|
4
17
|
/**
|
|
5
18
|
* The platform client: the platform-key (`psk_...`) surface for provisioning and
|
|
6
19
|
* managing apps you own, and for registering Sign in with Atlas apps.
|
|
@@ -201,12 +214,66 @@ export interface AtlasIdApp {
|
|
|
201
214
|
updated_at: number;
|
|
202
215
|
/** On `get` only: people who have approved the app. */
|
|
203
216
|
user_count?: number;
|
|
217
|
+
/** The per-app webhook URL, or null. */
|
|
218
|
+
webhook_url?: string | null;
|
|
219
|
+
webhook_events?: Array<'user.updated' | 'user.deleted' | 'grant.revoked'>;
|
|
220
|
+
/** false once auto-disabled after repeated failures; null without a webhook. */
|
|
221
|
+
webhook_active?: boolean | null;
|
|
204
222
|
}
|
|
205
223
|
/** Create / rotate response: confidential apps carry the client secret exactly once. */
|
|
206
224
|
export interface AtlasIdAppWithSecret extends AtlasIdApp {
|
|
207
225
|
client_secret?: string;
|
|
226
|
+
/** The per-app webhook signing secret, returned exactly once (first set, or rotated). */
|
|
227
|
+
webhook_secret?: string;
|
|
208
228
|
note?: string;
|
|
209
229
|
}
|
|
230
|
+
/** A person who has approved a Sign in with Atlas app (privacy-request lookup). */
|
|
231
|
+
export interface AtlasIdAppUser {
|
|
232
|
+
object: 'atlas_id_user';
|
|
233
|
+
atlas_id_user: true;
|
|
234
|
+
/** The user id as this app sees it (the id_token `sub`). */
|
|
235
|
+
sub: string;
|
|
236
|
+
grant_id: string;
|
|
237
|
+
scopes: string[];
|
|
238
|
+
granted_at: number;
|
|
239
|
+
}
|
|
240
|
+
/** A revoked grant: the app's refresh tokens for the user stop working. */
|
|
241
|
+
export interface AtlasIdGrantRevocation {
|
|
242
|
+
object: 'atlas_id_grant';
|
|
243
|
+
id: string;
|
|
244
|
+
sub: string;
|
|
245
|
+
revoked: true;
|
|
246
|
+
tokens_revoked?: number;
|
|
247
|
+
backchannel_logouts?: number;
|
|
248
|
+
}
|
|
249
|
+
/** The account's Sign in with Atlas publisher (name + DNS-verified domain). */
|
|
250
|
+
export interface AtlasIdPublisher {
|
|
251
|
+
object: 'atlas_id_publisher';
|
|
252
|
+
name: string;
|
|
253
|
+
domain: string;
|
|
254
|
+
verified: boolean;
|
|
255
|
+
verified_at?: number | null;
|
|
256
|
+
/** Publisher-wide consent for verified apps (openid / email / profile only). */
|
|
257
|
+
skip_consent: boolean;
|
|
258
|
+
/** The TXT record to publish. */
|
|
259
|
+
verification: {
|
|
260
|
+
record_name: string;
|
|
261
|
+
record_type: 'TXT';
|
|
262
|
+
record_value: string;
|
|
263
|
+
};
|
|
264
|
+
last_checked_at?: number | null;
|
|
265
|
+
created_at?: number;
|
|
266
|
+
updated_at?: number;
|
|
267
|
+
/** On `verify` only: whether the TXT record matched. */
|
|
268
|
+
record_found?: boolean;
|
|
269
|
+
}
|
|
270
|
+
export interface SetAtlasIdPublisherBody {
|
|
271
|
+
/** Shown on consent screens once verified (up to 100 characters). */
|
|
272
|
+
name: string;
|
|
273
|
+
/** The host your apps' homepage_url lives on, e.g. `example.com`. */
|
|
274
|
+
domain: string;
|
|
275
|
+
skip_consent?: boolean;
|
|
276
|
+
}
|
|
210
277
|
export interface AtlasIdAppList {
|
|
211
278
|
object: 'list';
|
|
212
279
|
data: AtlasIdApp[];
|
|
@@ -241,6 +308,11 @@ export interface CreateAtlasIdAppBody extends AtlasIdAppFields {
|
|
|
241
308
|
export interface UpdateAtlasIdAppBody extends AtlasIdAppFields {
|
|
242
309
|
name?: string;
|
|
243
310
|
redirect_uris?: string[];
|
|
311
|
+
/**
|
|
312
|
+
* Per-app webhook (public https): user.updated, user.deleted and grant.revoked for
|
|
313
|
+
* this app's users. Setting it the first time returns `webhook_secret` once; null removes it.
|
|
314
|
+
*/
|
|
315
|
+
webhook_url?: string | null;
|
|
244
316
|
}
|
|
245
317
|
declare function platformNamespaces(request: RequestFn): {
|
|
246
318
|
apps: {
|
|
@@ -307,9 +379,55 @@ declare function platformNamespaces(request: RequestFn): {
|
|
|
307
379
|
}>;
|
|
308
380
|
/** New client secret, returned exactly once. Public apps have none (409). */
|
|
309
381
|
rotateSecret(id: string): Promise<AtlasIdAppWithSecret>;
|
|
382
|
+
/** The app's back-channel logout delivery log, newest first. */
|
|
383
|
+
listBackchannelDeliveries(id: string, query?: BackchannelDeliveriesQuery): Promise<BackchannelLogoutDeliveryPage>;
|
|
384
|
+
/** Send a test back-channel logout to the app now and return what it answered. */
|
|
385
|
+
testBackchannelLogout(id: string): Promise<BackchannelLogoutTest>;
|
|
386
|
+
/** Check the app's setup (URIs, back-channel delivery, homepage host, legal links, secret age). */
|
|
387
|
+
preflight(id: string): Promise<AtlasIdAppPreflight>;
|
|
388
|
+
/**
|
|
389
|
+
* Privacy requests: is this person one of the app's users? Exact match on a
|
|
390
|
+
* verified email; anyone else gets the same empty list.
|
|
391
|
+
*/
|
|
392
|
+
findUsers(id: string, email: string): Promise<{
|
|
393
|
+
object: "list";
|
|
394
|
+
data: AtlasIdAppUser[];
|
|
395
|
+
}>;
|
|
396
|
+
/** Revoke one user's grant (grant_id from `findUsers`); the next sign-in asks for consent again. */
|
|
397
|
+
revokeGrant(id: string, grantId: string): Promise<AtlasIdGrantRevocation>;
|
|
398
|
+
/** Move the app's URLs from one origin to another. `dry_run: true` writes nothing. */
|
|
399
|
+
moveOrigin(id: string, body: OriginMoveRequest): Promise<OriginMove>;
|
|
400
|
+
/** New per-app webhook signing secret (`webhook_secret`), returned once. 409 without a webhook. */
|
|
401
|
+
rotateWebhookSecret(id: string): Promise<AtlasIdAppWithSecret>;
|
|
310
402
|
/** Preview a design on the Sign in with Atlas page without saving it. */
|
|
311
403
|
previewDesign(design: AtlasDesign): Promise<DesignPreview>;
|
|
312
404
|
};
|
|
405
|
+
/** The account's Sign in with Atlas publisher name and verified domain. */
|
|
406
|
+
atlasIdPublisher: {
|
|
407
|
+
/** 404 until claimed. */
|
|
408
|
+
get(): Promise<AtlasIdPublisher>;
|
|
409
|
+
/** Claim a publisher name and domain; returns the TXT record to publish. */
|
|
410
|
+
set(body: SetAtlasIdPublisherBody): Promise<AtlasIdPublisher>;
|
|
411
|
+
/** Turn publisher-wide consent on or off. */
|
|
412
|
+
update(body: {
|
|
413
|
+
skip_consent: boolean;
|
|
414
|
+
}): Promise<AtlasIdPublisher>;
|
|
415
|
+
delete(): Promise<{
|
|
416
|
+
object: "atlas_id_publisher";
|
|
417
|
+
deleted: true;
|
|
418
|
+
}>;
|
|
419
|
+
/** Look up the TXT record now (`record_found`). */
|
|
420
|
+
verify(): Promise<AtlasIdPublisher>;
|
|
421
|
+
};
|
|
422
|
+
/** Config change history for the account's Sign in with Atlas apps. */
|
|
423
|
+
configChangelog: {
|
|
424
|
+
list(params?: ListConfigChangelogParams): Promise<{
|
|
425
|
+
object: "config_changelog";
|
|
426
|
+
data: ConfigChangelogEntry[];
|
|
427
|
+
has_more?: boolean;
|
|
428
|
+
next_cursor?: string | null;
|
|
429
|
+
}>;
|
|
430
|
+
};
|
|
313
431
|
/** Design images owned by the platform's account, for Sign in with Atlas app designs. */
|
|
314
432
|
designAssets: {
|
|
315
433
|
upload(data: DesignAssetData, options?: UploadDesignAssetOptions): Promise<DesignAsset>;
|
package/dist/client/platform.js
CHANGED
|
@@ -143,6 +143,58 @@ function platformNamespaces(request) {
|
|
|
143
143
|
path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/rotate_secret`,
|
|
144
144
|
});
|
|
145
145
|
},
|
|
146
|
+
/** The app's back-channel logout delivery log, newest first. */
|
|
147
|
+
listBackchannelDeliveries(id, query = {}) {
|
|
148
|
+
return request({
|
|
149
|
+
method: 'GET',
|
|
150
|
+
path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/backchannel_deliveries`,
|
|
151
|
+
query: { ...query },
|
|
152
|
+
});
|
|
153
|
+
},
|
|
154
|
+
/** Send a test back-channel logout to the app now and return what it answered. */
|
|
155
|
+
testBackchannelLogout(id) {
|
|
156
|
+
return request({
|
|
157
|
+
method: 'POST',
|
|
158
|
+
path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/backchannel_logout/test`,
|
|
159
|
+
});
|
|
160
|
+
},
|
|
161
|
+
/** Check the app's setup (URIs, back-channel delivery, homepage host, legal links, secret age). */
|
|
162
|
+
preflight(id) {
|
|
163
|
+
return request({ method: 'GET', path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/preflight` });
|
|
164
|
+
},
|
|
165
|
+
/**
|
|
166
|
+
* Privacy requests: is this person one of the app's users? Exact match on a
|
|
167
|
+
* verified email; anyone else gets the same empty list.
|
|
168
|
+
*/
|
|
169
|
+
findUsers(id, email) {
|
|
170
|
+
return request({
|
|
171
|
+
method: 'GET',
|
|
172
|
+
path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/users`,
|
|
173
|
+
query: { email },
|
|
174
|
+
});
|
|
175
|
+
},
|
|
176
|
+
/** Revoke one user's grant (grant_id from `findUsers`); the next sign-in asks for consent again. */
|
|
177
|
+
revokeGrant(id, grantId) {
|
|
178
|
+
return request({
|
|
179
|
+
method: 'DELETE',
|
|
180
|
+
path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/grants/${(0, request_1.enc)(grantId)}`,
|
|
181
|
+
});
|
|
182
|
+
},
|
|
183
|
+
/** Move the app's URLs from one origin to another. `dry_run: true` writes nothing. */
|
|
184
|
+
moveOrigin(id, body) {
|
|
185
|
+
return request({
|
|
186
|
+
method: 'POST',
|
|
187
|
+
path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/move_origin`,
|
|
188
|
+
body,
|
|
189
|
+
});
|
|
190
|
+
},
|
|
191
|
+
/** New per-app webhook signing secret (`webhook_secret`), returned once. 409 without a webhook. */
|
|
192
|
+
rotateWebhookSecret(id) {
|
|
193
|
+
return request({
|
|
194
|
+
method: 'POST',
|
|
195
|
+
path: `/v1/platform/atlas_id_apps/${(0, request_1.enc)(id)}/webhook/rotate_secret`,
|
|
196
|
+
});
|
|
197
|
+
},
|
|
146
198
|
/** Preview a design on the Sign in with Atlas page without saving it. */
|
|
147
199
|
previewDesign(design) {
|
|
148
200
|
return request({
|
|
@@ -152,6 +204,34 @@ function platformNamespaces(request) {
|
|
|
152
204
|
});
|
|
153
205
|
},
|
|
154
206
|
},
|
|
207
|
+
/** The account's Sign in with Atlas publisher name and verified domain. */
|
|
208
|
+
atlasIdPublisher: {
|
|
209
|
+
/** 404 until claimed. */
|
|
210
|
+
get() {
|
|
211
|
+
return request({ method: 'GET', path: '/v1/platform/atlas_id_publisher' });
|
|
212
|
+
},
|
|
213
|
+
/** Claim a publisher name and domain; returns the TXT record to publish. */
|
|
214
|
+
set(body) {
|
|
215
|
+
return request({ method: 'PUT', path: '/v1/platform/atlas_id_publisher', body });
|
|
216
|
+
},
|
|
217
|
+
/** Turn publisher-wide consent on or off. */
|
|
218
|
+
update(body) {
|
|
219
|
+
return request({ method: 'PATCH', path: '/v1/platform/atlas_id_publisher', body });
|
|
220
|
+
},
|
|
221
|
+
delete() {
|
|
222
|
+
return request({ method: 'DELETE', path: '/v1/platform/atlas_id_publisher' });
|
|
223
|
+
},
|
|
224
|
+
/** Look up the TXT record now (`record_found`). */
|
|
225
|
+
verify() {
|
|
226
|
+
return request({ method: 'POST', path: '/v1/platform/atlas_id_publisher/verify' });
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
/** Config change history for the account's Sign in with Atlas apps. */
|
|
230
|
+
configChangelog: {
|
|
231
|
+
list(params = {}) {
|
|
232
|
+
return request({ method: 'GET', path: '/v1/platform/config_changelog', query: { ...params } });
|
|
233
|
+
},
|
|
234
|
+
},
|
|
155
235
|
/** Design images owned by the platform's account, for Sign in with Atlas app designs. */
|
|
156
236
|
designAssets: {
|
|
157
237
|
upload(data, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/client/platform.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/client/platform.ts"],"names":[],"mappings":"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"}
|