oblien 2.2.36 → 2.2.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -274
- package/dist/cdn.d.ts +105 -0
- package/dist/cdn.d.ts.map +1 -0
- package/dist/cdn.js +201 -0
- package/dist/cdn.js.map +1 -0
- package/dist/cli/commands/cdn.d.ts +3 -0
- package/dist/cli/commands/cdn.d.ts.map +1 -0
- package/dist/cli/commands/cdn.js +216 -0
- package/dist/cli/commands/cdn.js.map +1 -0
- package/dist/cli/commands/namespaces.js +19 -6
- package/dist/cli/commands/namespaces.js.map +1 -1
- package/dist/cli/commands/serve.d.ts +17 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +113 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/tunnel.d.ts +1 -0
- package/dist/cli/commands/tunnel.d.ts.map +1 -1
- package/dist/cli/commands/tunnel.js +100 -3
- package/dist/cli/commands/tunnel.js.map +1 -1
- package/dist/cli/index.js +14 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/client.d.ts +12 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +16 -1
- package/dist/client.js.map +1 -1
- package/dist/domain.d.ts +20 -1
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +37 -0
- package/dist/domain.js.map +1 -1
- package/dist/edge-proxy.d.ts +50 -11
- package/dist/edge-proxy.d.ts.map +1 -1
- package/dist/edge-proxy.js +55 -10
- package/dist/edge-proxy.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +145 -7
- package/dist/mcp/tools.js.map +1 -1
- package/dist/namespace.d.ts +27 -5
- package/dist/namespace.d.ts.map +1 -1
- package/dist/namespace.js +30 -4
- package/dist/namespace.js.map +1 -1
- package/dist/notifications.d.ts +72 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +93 -0
- package/dist/notifications.js.map +1 -0
- package/dist/runtime/proxy.d.ts +55 -0
- package/dist/runtime/proxy.d.ts.map +1 -0
- package/dist/runtime/proxy.js +79 -0
- package/dist/runtime/proxy.js.map +1 -0
- package/dist/runtime.d.ts +16 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +18 -0
- package/dist/runtime.js.map +1 -1
- package/dist/server/static.d.ts +81 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +465 -0
- package/dist/server/static.js.map +1 -0
- package/dist/types/cdn.d.ts +301 -0
- package/dist/types/cdn.d.ts.map +1 -0
- package/dist/types/cdn.js +10 -0
- package/dist/types/cdn.js.map +1 -0
- package/dist/types/client.d.ts +10 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/edge-proxy.d.ts +50 -1
- package/dist/types/edge-proxy.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/namespace.d.ts +55 -9
- package/dist/types/namespace.d.ts.map +1 -1
- package/dist/types/notifications.d.ts +77 -0
- package/dist/types/notifications.d.ts.map +1 -0
- package/dist/types/notifications.js +3 -0
- package/dist/types/notifications.js.map +1 -0
- package/dist/types/webhooks.d.ts +52 -0
- package/dist/types/webhooks.d.ts.map +1 -0
- package/dist/types/webhooks.js +3 -0
- package/dist/types/webhooks.js.map +1 -0
- package/dist/types/workspace-resources.d.ts +48 -0
- package/dist/types/workspace-resources.d.ts.map +1 -1
- package/dist/webhooks.d.ts +53 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +60 -0
- package/dist/webhooks.js.map +1 -0
- package/docs/analytics.md +36 -0
- package/docs/cdn.md +119 -0
- package/docs/domains.md +47 -0
- package/docs/edge-proxy.md +44 -0
- package/docs/edge-tunnel.md +42 -0
- package/docs/errors.md +34 -0
- package/docs/namespaces.md +69 -0
- package/docs/notifications.md +40 -0
- package/docs/pages.md +26 -0
- package/docs/runtime.md +83 -0
- package/docs/serve.md +84 -0
- package/docs/tokens.md +24 -0
- package/docs/webhooks.md +42 -0
- package/docs/workspaces.md +82 -0
- package/package.json +5 -2
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export type PushPlatform = 'ios' | 'android' | 'web';
|
|
2
|
+
export type PushDeviceStatus = 'active' | 'revoked';
|
|
3
|
+
export type PushTokenStatus = 'active' | 'revoked';
|
|
4
|
+
/** A registered mobile device (the real FCM token is never returned). */
|
|
5
|
+
export interface PushDevice {
|
|
6
|
+
id: number;
|
|
7
|
+
/** Stable, app-provided device identifier (the push token rotates under it). */
|
|
8
|
+
device_id: string;
|
|
9
|
+
platform: PushPlatform;
|
|
10
|
+
device_info?: Record<string, unknown> | null;
|
|
11
|
+
status: PushDeviceStatus;
|
|
12
|
+
last_seen_at?: string | null;
|
|
13
|
+
created_at?: string;
|
|
14
|
+
/** Present when FCM couldn't fully validate the token (transient/unconfigured). */
|
|
15
|
+
token_validation?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface RegisterDeviceParams {
|
|
18
|
+
/** Stable, app-provided device identifier (survives FCM token refresh). */
|
|
19
|
+
device_id: string;
|
|
20
|
+
/**
|
|
21
|
+
* The device's real FCM/APNs registration token. Verified with FCM before
|
|
22
|
+
* it is stored — a token FCM rejects is refused with `invalid_device_token`.
|
|
23
|
+
*/
|
|
24
|
+
fcm_token: string;
|
|
25
|
+
platform?: PushPlatform;
|
|
26
|
+
/** Arbitrary device metadata (model, os_version, app_version, name…). */
|
|
27
|
+
device_info?: Record<string, unknown>;
|
|
28
|
+
}
|
|
29
|
+
export interface PushDeviceListResponse {
|
|
30
|
+
success: boolean;
|
|
31
|
+
devices: PushDevice[];
|
|
32
|
+
}
|
|
33
|
+
/** An Oblien-controlled virtual send token, scoped to a workspace. */
|
|
34
|
+
export interface WorkspacePushToken {
|
|
35
|
+
id: number;
|
|
36
|
+
workspace_id: string;
|
|
37
|
+
name?: string | null;
|
|
38
|
+
metadata?: Record<string, unknown> | null;
|
|
39
|
+
/** Non-secret display handle, e.g. `onp_ab12cd34`. */
|
|
40
|
+
token_prefix: string;
|
|
41
|
+
status: PushTokenStatus;
|
|
42
|
+
last_used_at?: string | null;
|
|
43
|
+
created_at?: string;
|
|
44
|
+
revoked_at?: string | null;
|
|
45
|
+
}
|
|
46
|
+
/** Returned by `createToken` — includes the plaintext token ONCE. */
|
|
47
|
+
export interface CreatedWorkspacePushToken extends WorkspacePushToken {
|
|
48
|
+
/** Plaintext send token. Returned only at creation — store it now. */
|
|
49
|
+
token: string;
|
|
50
|
+
}
|
|
51
|
+
export interface CreatePushTokenParams {
|
|
52
|
+
/** Workspace this token sends for (per-workspace relation). */
|
|
53
|
+
workspace_id: string;
|
|
54
|
+
name?: string;
|
|
55
|
+
/** Arbitrary metadata — e.g. `{ channel }` or `{ device_id }` to pin delivery. */
|
|
56
|
+
metadata?: Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
export interface PushTokenListResponse {
|
|
59
|
+
success: boolean;
|
|
60
|
+
tokens: WorkspacePushToken[];
|
|
61
|
+
}
|
|
62
|
+
export interface SendNotificationParams {
|
|
63
|
+
title?: string;
|
|
64
|
+
body?: string;
|
|
65
|
+
data?: Record<string, unknown>;
|
|
66
|
+
}
|
|
67
|
+
export interface SendNotificationResponse {
|
|
68
|
+
success: boolean;
|
|
69
|
+
delivered: number;
|
|
70
|
+
failed: number;
|
|
71
|
+
devices: number;
|
|
72
|
+
/** Present when FCM is not configured server-side. */
|
|
73
|
+
skipped?: boolean;
|
|
74
|
+
reason?: string;
|
|
75
|
+
detail?: string;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/types/notifications.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AACrD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qEAAqE;AACrE,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/types/notifications.ts"],"names":[],"mappings":"AAAA,yEAAyE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Event types a webhook can subscribe to. */
|
|
2
|
+
export type WebhookEvent = 'vm.stopped' | 'vm.archived' | 'workload.started' | 'workload.exited' | 'workload.failed' | 'workload.stopped' | 'workload.restart_loop' | 'credits.low' | 'credits.depleted' | 'credits.usage' | 'namespace.quota.threshold';
|
|
3
|
+
export interface Webhook {
|
|
4
|
+
id: number;
|
|
5
|
+
url: string;
|
|
6
|
+
events: WebhookEvent[];
|
|
7
|
+
active: boolean;
|
|
8
|
+
description?: string | null;
|
|
9
|
+
/** Namespace this webhook is bound to (null = account-wide / all namespaces). */
|
|
10
|
+
namespace?: string | null;
|
|
11
|
+
/** Masked in list responses (shown as a placeholder if set). */
|
|
12
|
+
secret?: string | null;
|
|
13
|
+
last_triggered_at?: string | null;
|
|
14
|
+
last_status_code?: number | null;
|
|
15
|
+
created_at?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface WebhookCreateParams {
|
|
18
|
+
/** HTTPS endpoint to POST events to. */
|
|
19
|
+
url: string;
|
|
20
|
+
events: WebhookEvent[];
|
|
21
|
+
/** HMAC-SHA256 signing secret (sent in X-Webhook-Signature). */
|
|
22
|
+
secret?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Bind the webhook to a single namespace — only events attributable to that
|
|
26
|
+
* namespace are delivered (e.g. its credits.usage / namespace.quota.threshold
|
|
27
|
+
* / vm + workload events). Omit for account-wide (all namespaces).
|
|
28
|
+
*/
|
|
29
|
+
namespace?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface WebhookUpdateParams {
|
|
32
|
+
url?: string;
|
|
33
|
+
events?: WebhookEvent[];
|
|
34
|
+
secret?: string | null;
|
|
35
|
+
description?: string | null;
|
|
36
|
+
/** Set to a namespace to scope, or null to make it account-wide. */
|
|
37
|
+
namespace?: string | null;
|
|
38
|
+
active?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface WebhookListParams {
|
|
41
|
+
/** Filter to a namespace (namespace-scoped keys are auto-pinned to theirs). */
|
|
42
|
+
namespace?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface WebhookListResponse {
|
|
45
|
+
success: boolean;
|
|
46
|
+
webhooks: Webhook[];
|
|
47
|
+
}
|
|
48
|
+
export interface WebhookEventsResponse {
|
|
49
|
+
success: boolean;
|
|
50
|
+
events: WebhookEvent[];
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/types/webhooks.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,aAAa,GACb,kBAAkB,GAClB,eAAe,GACf,2BAA2B,CAAC;AAEhC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/types/webhooks.ts"],"names":[],"mappings":"AAAA,yEAAyE"}
|
|
@@ -320,6 +320,54 @@ export interface VerifyDomainResponse {
|
|
|
320
320
|
};
|
|
321
321
|
edge_ips: string[];
|
|
322
322
|
}
|
|
323
|
+
/** Optional namespace filter. Namespace-scoped keys are always pinned to their own. */
|
|
324
|
+
export interface DomainListParams {
|
|
325
|
+
/** Filter to a namespace (admin/dashboard only; scoped keys are auto-pinned). */
|
|
326
|
+
namespace?: string;
|
|
327
|
+
}
|
|
328
|
+
/** A registered route (port / page / edge proxy / edge tunnel / workspace / custom domain). */
|
|
329
|
+
export interface DomainRoute {
|
|
330
|
+
id: number;
|
|
331
|
+
hostname: string;
|
|
332
|
+
slug: string;
|
|
333
|
+
domain: string;
|
|
334
|
+
route_type: string;
|
|
335
|
+
target: string;
|
|
336
|
+
owner_type: string;
|
|
337
|
+
owner_id: string;
|
|
338
|
+
namespace?: string | null;
|
|
339
|
+
is_custom: boolean;
|
|
340
|
+
status: string;
|
|
341
|
+
metadata?: Record<string, unknown>;
|
|
342
|
+
created_at?: string;
|
|
343
|
+
updated_at?: string;
|
|
344
|
+
}
|
|
345
|
+
export interface DomainRoutesResponse {
|
|
346
|
+
success: boolean;
|
|
347
|
+
data: DomainRoute[];
|
|
348
|
+
}
|
|
349
|
+
/** An SSL certificate with renewal status. */
|
|
350
|
+
export interface SslCertificate {
|
|
351
|
+
domain: string;
|
|
352
|
+
namespace?: string | null;
|
|
353
|
+
active: boolean;
|
|
354
|
+
auto_renew: boolean;
|
|
355
|
+
expires_at: number | string | null;
|
|
356
|
+
source: string;
|
|
357
|
+
last_attempt_at?: string | null;
|
|
358
|
+
/** Last renewal error, if the most recent attempt failed. */
|
|
359
|
+
last_error?: string | null;
|
|
360
|
+
renew_attempts?: number;
|
|
361
|
+
}
|
|
362
|
+
export interface SslListResponse {
|
|
363
|
+
success: boolean;
|
|
364
|
+
data: SslCertificate[];
|
|
365
|
+
}
|
|
366
|
+
export interface SslAutoRenewResponse {
|
|
367
|
+
success: boolean;
|
|
368
|
+
domain: string;
|
|
369
|
+
auto_renew: boolean;
|
|
370
|
+
}
|
|
323
371
|
export interface StatsEvent {
|
|
324
372
|
cpu_usage?: number;
|
|
325
373
|
memory_usage?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-resources.d.ts","sourceRoot":"","sources":["../../src/types/workspace-resources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-resources.d.ts","sourceRoot":"","sources":["../../src/types/workspace-resources.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAID,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI,CAAC;IACT,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAID,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAID,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACrC,gDAAgD;IAChD,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,gFAAgF;IAChF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,yDAAyD;IACzD,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACrC,oDAAoD;IACpD,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,CAAC,EAAE;QACjB,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACxC,GAAG,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACtD,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACnD;AAID,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACpB;AAID,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,EAAE;QAChB,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACxC,GAAG,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACtD,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+FAA+F;AAC/F,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAKD,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { HttpClient } from './http.js';
|
|
2
|
+
import type { ApiResponse } from './types/common.js';
|
|
3
|
+
import type { Webhook, WebhookCreateParams, WebhookUpdateParams, WebhookListParams, WebhookListResponse, WebhookEventsResponse } from './types/webhooks.js';
|
|
4
|
+
/**
|
|
5
|
+
* Webhooks — subscribe an HTTPS endpoint to platform events (vm/workload
|
|
6
|
+
* lifecycle, credit usage, namespace quota thresholds). Deliveries are signed
|
|
7
|
+
* with HMAC-SHA256 (`X-Webhook-Signature`) when a secret is set.
|
|
8
|
+
*
|
|
9
|
+
* A webhook can be **scoped to a namespace** so it only receives that
|
|
10
|
+
* namespace's events — e.g. all usage events for one team:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* import Oblien from 'oblien';
|
|
14
|
+
* const client = new Oblien({ clientId, clientSecret });
|
|
15
|
+
*
|
|
16
|
+
* await client.webhooks.create({
|
|
17
|
+
* url: 'https://example.com/hooks/oblien',
|
|
18
|
+
* events: ['credits.usage', 'namespace.quota.threshold'],
|
|
19
|
+
* namespace: 'team-a', // ← only team-a's events; omit for account-wide
|
|
20
|
+
* secret: process.env.WH_SECRET,
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* const { events } = await client.webhooks.events(); // available event types
|
|
24
|
+
* const { webhooks } = await client.webhooks.list({ namespace: 'team-a' });
|
|
25
|
+
* await client.webhooks.delete(webhooks[0].id);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class Webhooks {
|
|
29
|
+
/** @internal */
|
|
30
|
+
readonly _http: HttpClient;
|
|
31
|
+
private readonly _base;
|
|
32
|
+
constructor(client: {
|
|
33
|
+
_http: HttpClient;
|
|
34
|
+
});
|
|
35
|
+
/** List webhooks. Optionally filter by namespace (scoped keys auto-pinned). */
|
|
36
|
+
list(params?: WebhookListParams): Promise<WebhookListResponse>;
|
|
37
|
+
/** The set of event types you can subscribe to. */
|
|
38
|
+
events(): Promise<WebhookEventsResponse>;
|
|
39
|
+
/**
|
|
40
|
+
* Create a webhook. Set `namespace` to scope it to one namespace's events,
|
|
41
|
+
* or omit for account-wide.
|
|
42
|
+
*/
|
|
43
|
+
create(params: WebhookCreateParams): Promise<ApiResponse & {
|
|
44
|
+
webhook: Webhook;
|
|
45
|
+
}>;
|
|
46
|
+
/** Update a webhook (url, events, secret, description, namespace, active). */
|
|
47
|
+
update(id: number, params: WebhookUpdateParams): Promise<ApiResponse & {
|
|
48
|
+
webhook: Webhook;
|
|
49
|
+
}>;
|
|
50
|
+
/** Delete a webhook. */
|
|
51
|
+
delete(id: number): Promise<ApiResponse>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EACV,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,QAAQ;IACnB,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE;IAIzC,+EAA+E;IACzE,IAAI,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQxE,mDAAmD;IAC7C,MAAM,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI9C;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAItF,8EAA8E;IACxE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlG,wBAAwB;IAClB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAG/C"}
|
package/dist/webhooks.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhooks — subscribe an HTTPS endpoint to platform events (vm/workload
|
|
3
|
+
* lifecycle, credit usage, namespace quota thresholds). Deliveries are signed
|
|
4
|
+
* with HMAC-SHA256 (`X-Webhook-Signature`) when a secret is set.
|
|
5
|
+
*
|
|
6
|
+
* A webhook can be **scoped to a namespace** so it only receives that
|
|
7
|
+
* namespace's events — e.g. all usage events for one team:
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import Oblien from 'oblien';
|
|
11
|
+
* const client = new Oblien({ clientId, clientSecret });
|
|
12
|
+
*
|
|
13
|
+
* await client.webhooks.create({
|
|
14
|
+
* url: 'https://example.com/hooks/oblien',
|
|
15
|
+
* events: ['credits.usage', 'namespace.quota.threshold'],
|
|
16
|
+
* namespace: 'team-a', // ← only team-a's events; omit for account-wide
|
|
17
|
+
* secret: process.env.WH_SECRET,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* const { events } = await client.webhooks.events(); // available event types
|
|
21
|
+
* const { webhooks } = await client.webhooks.list({ namespace: 'team-a' });
|
|
22
|
+
* await client.webhooks.delete(webhooks[0].id);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export class Webhooks {
|
|
26
|
+
/** @internal */
|
|
27
|
+
_http;
|
|
28
|
+
_base = '/webhooks';
|
|
29
|
+
constructor(client) {
|
|
30
|
+
this._http = client._http;
|
|
31
|
+
}
|
|
32
|
+
/** List webhooks. Optionally filter by namespace (scoped keys auto-pinned). */
|
|
33
|
+
async list(params = {}) {
|
|
34
|
+
return this._http.request({
|
|
35
|
+
method: 'GET',
|
|
36
|
+
path: this._base,
|
|
37
|
+
query: params.namespace ? { namespace: params.namespace } : undefined,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/** The set of event types you can subscribe to. */
|
|
41
|
+
async events() {
|
|
42
|
+
return this._http.request({ method: 'GET', path: `${this._base}/events` });
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a webhook. Set `namespace` to scope it to one namespace's events,
|
|
46
|
+
* or omit for account-wide.
|
|
47
|
+
*/
|
|
48
|
+
async create(params) {
|
|
49
|
+
return this._http.request({ method: 'POST', path: this._base, body: params });
|
|
50
|
+
}
|
|
51
|
+
/** Update a webhook (url, events, secret, description, namespace, active). */
|
|
52
|
+
async update(id, params) {
|
|
53
|
+
return this._http.request({ method: 'PUT', path: `${this._base}/${id}`, body: params });
|
|
54
|
+
}
|
|
55
|
+
/** Delete a webhook. */
|
|
56
|
+
async delete(id) {
|
|
57
|
+
return this._http.request({ method: 'DELETE', path: `${this._base}/${id}` });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,QAAQ;IACnB,gBAAgB;IACP,KAAK,CAAa;IAEV,KAAK,GAAG,WAAW,CAAC;IAErC,YAAY,MAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,IAAI,CAAC,SAA4B,EAAE;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC,CAAC;IACL,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,MAA2B;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA2B;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Analytics
|
|
2
|
+
|
|
3
|
+
Edge traffic analytics — requests, bandwidth, geo, and live streaming — for your domains, aggregated across the account or per namespace.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
const a = client.analytics;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Account / namespace summary
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// All your domains
|
|
13
|
+
const all = await a.home();
|
|
14
|
+
|
|
15
|
+
// One namespace's domains (the dashboard's per-namespace view)
|
|
16
|
+
const ns = await a.home({ namespace: 'production' });
|
|
17
|
+
// → { domains: [{ domain, requests, bandwidth_in, bandwidth_out }], totals: {...} }
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Per-domain
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
const overview = await a.get('app.example.com', { from, to }); // overview+timeseries+geo+requests
|
|
24
|
+
const series = await a.timeseries('app.example.com', { from, to, interval: 'hour' });
|
|
25
|
+
const geo = await a.geo('app.example.com');
|
|
26
|
+
const requests = await a.requests('app.example.com', { limit: 100 });
|
|
27
|
+
|
|
28
|
+
// Short-lived JWT for the live SSE stream (edge.oblien.com/stream)
|
|
29
|
+
const { token, stream_url } = await a.streamToken('app.example.com');
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`from`/`to` are epoch milliseconds; `interval` auto-detects (minute/hour/day) by range. Recent data comes from Redis, older from durable rollups — stitched transparently.
|
|
33
|
+
|
|
34
|
+
> For **compute** usage per namespace (vCPU-hours, GB-hours, etc.), use [`namespaces.usageUnits`](./namespaces.md) — analytics covers the **edge** plane.
|
|
35
|
+
|
|
36
|
+
**Full reference:** [Analytics API](https://oblien.com/docs/api/analytics)
|
package/docs/cdn.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# CDN
|
|
2
|
+
|
|
3
|
+
Upload files to the Oblien CDN and manage what you've stored. The CDN spans two planes: the **API plane** (`api.oblien.com/cdn/*`) mints short-lived tokens and lists/manages logged files, and the **edge plane** (`cdn.oblien.com`) receives the actual uploads. `client.cdn.upload()` handles both — it mints a token and posts the file for you.
|
|
4
|
+
|
|
5
|
+
Everything is **namespace-aware**: pass `namespace` to scope a token, upload, or listing. Namespace-scoped API keys are automatically pinned to their own namespace by the server; admin keys may target any namespace or omit it (seeing all of their files).
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { readFileSync } from 'node:fs';
|
|
9
|
+
|
|
10
|
+
// One-shot upload (mints a namespace-bound token, then uploads to the edge)
|
|
11
|
+
const { url } = await client.cdn.upload(
|
|
12
|
+
{ data: readFileSync('./logo.png'), filename: 'logo.png', contentType: 'image/png' },
|
|
13
|
+
{ namespace: 'tenant-a' },
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
// Choose exactly which variants to generate for THIS upload (no presets).
|
|
17
|
+
// `variants` are API-issued into the token; `metadata` is opaque customer data.
|
|
18
|
+
const res = await client.cdn.upload(
|
|
19
|
+
{ data: readFileSync('./avatar.png'), filename: 'avatar.png', contentType: 'image/png' },
|
|
20
|
+
{
|
|
21
|
+
namespace: 'tenant-a',
|
|
22
|
+
variants: {
|
|
23
|
+
variantNames: ['large', 'small'],
|
|
24
|
+
customVariants: {
|
|
25
|
+
large: { width: 400, height: 400, fit: 'cover', quality: 90, format: 'jpeg' },
|
|
26
|
+
small: { width: 50, height: 50, fit: 'cover' },
|
|
27
|
+
},
|
|
28
|
+
keepOriginal: false,
|
|
29
|
+
primary: 'large',
|
|
30
|
+
ttl: 3600, // auto-delete after 1h (optional)
|
|
31
|
+
},
|
|
32
|
+
metadata: { userId: 'u_123', purpose: 'avatar' }, // opaque, echoed back
|
|
33
|
+
},
|
|
34
|
+
);
|
|
35
|
+
// res.variants → [{ variant: 'large', url }, { variant: 'small', url }]
|
|
36
|
+
|
|
37
|
+
// Mint a token yourself (e.g. to hand to a browser uploader) — the variants are
|
|
38
|
+
// baked into the permit at mint time, since the edge reads them from there
|
|
39
|
+
const { token } = await client.cdn.token({
|
|
40
|
+
namespace: 'tenant-a',
|
|
41
|
+
variants: { variantNames: ['thumb'], customVariants: { thumb: { width: 150, height: 150 } } },
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// List / stats, scoped to a namespace
|
|
45
|
+
const { data } = await client.cdn.list({ namespace: 'tenant-a', limit: 20 });
|
|
46
|
+
await client.cdn.stats({ namespace: 'tenant-a' });
|
|
47
|
+
|
|
48
|
+
// Manage a single file
|
|
49
|
+
await client.cdn.get(fileId);
|
|
50
|
+
await client.cdn.delete(fileId); // soft delete
|
|
51
|
+
await client.cdn.restore(fileId);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Methods
|
|
55
|
+
|
|
56
|
+
| Method | Plane | Description |
|
|
57
|
+
| --- | --- | --- |
|
|
58
|
+
| `cdn.token({ namespace?, variants?, metadata? })` | API | Mint a USER-scope token (upload + process), valid 1 minute |
|
|
59
|
+
| `cdn.adminToken({ namespace?, variants?, metadata? })` | API | Mint an ADMIN-scope token (full edge access; admin keys only) |
|
|
60
|
+
| `cdn.upload(file, { namespace?, token?, variants?, metadata? })` | edge | Upload one file (auto-mints a token unless one is passed) |
|
|
61
|
+
| `cdn.uploadMany(files, { namespace?, token?, variants?, metadata? })` | edge | Upload several files in one request |
|
|
62
|
+
| `cdn.processUrls({ urls, namespace?, variants?, metadata?, … })` | edge | Ingest and process files from remote URLs |
|
|
63
|
+
| `cdn.getLimits()` / `cdn.getVariantOptions()` | edge | Edge upload limits / default variants + custom-variant schema |
|
|
64
|
+
| `cdn.list({ namespace?, … })` | API | List logged files with pagination |
|
|
65
|
+
| `cdn.stats({ namespace? })` | API | All-time storage statistics |
|
|
66
|
+
| `cdn.usage({ namespace?, period? })` | API | Month usage (ingest + active) + caps |
|
|
67
|
+
| `cdn.usageSeries({ namespace?, interval?, days?, months? })` | API | Windowed ingest series for charts |
|
|
68
|
+
| `cdn.get(fileId)` | API | Fetch a single logged file |
|
|
69
|
+
| `cdn.delete(fileId)` / `cdn.restore(fileId)` | API | Soft-delete / restore a file |
|
|
70
|
+
|
|
71
|
+
A `file` is `{ data, filename, contentType? }` where `data` is a `Blob`, `Buffer`, `Uint8Array`, or `ArrayBuffer`.
|
|
72
|
+
|
|
73
|
+
## Variants (API-issued, per request)
|
|
74
|
+
|
|
75
|
+
There are **no server-side presets**. Each upload decides exactly which variants
|
|
76
|
+
to generate via the dedicated **`variants`** field on the token/upload call
|
|
77
|
+
(distinct from opaque `metadata`). Options (all optional):
|
|
78
|
+
|
|
79
|
+
| Field | Meaning |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| `variantNames: string[]` | Which variants to produce. Omit → the node's default set; `[]` → original only. |
|
|
82
|
+
| `customVariants: { [name]: spec }` | Per-variant `spec`: `{ width?, height?, fit?, quality?, blur?, format?, withoutEnlargement? }` (provide width and/or height). |
|
|
83
|
+
| `keepOriginal: boolean` | Keep the uploaded original (default `true`). |
|
|
84
|
+
| `primary: string` | Which produced variant is the top-level `url` (default `'full'`). |
|
|
85
|
+
| `optimizeOriginal: { maxBytes?, quality?, format? }` | Re-encode a large original in place. |
|
|
86
|
+
| `ttl: number` / `expireAt: number` | Auto-delete after N seconds / at an epoch time (the node deletes it and reports back). |
|
|
87
|
+
| `maxBytes: number` | Lower the per-file size cap for this upload. |
|
|
88
|
+
|
|
89
|
+
`variants` is baked into the short-lived token at mint time (the edge reads it
|
|
90
|
+
from the permit), so it applies whether you call `upload()` directly or mint a
|
|
91
|
+
token yourself and hand it to a browser. When you pass your own `token`, set the
|
|
92
|
+
options at the time you minted it — `upload({ token })` ignores `variants`.
|
|
93
|
+
|
|
94
|
+
`metadata` is separate: opaque customer key/values the API stores with each file
|
|
95
|
+
and echoes back, never interpreted for processing.
|
|
96
|
+
|
|
97
|
+
`cdn.getVariantOptions()` returns the current `defaultVariants` set and the
|
|
98
|
+
`customVariantSchema` (field bounds) for discovery.
|
|
99
|
+
|
|
100
|
+
## Configuration
|
|
101
|
+
|
|
102
|
+
Uploads target `https://cdn.oblien.com/api` by default. Override it (e.g. for local development against the CDN service directly) with `cdnBaseUrl`:
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
const client = new Oblien({ clientId, clientSecret, cdnBaseUrl: 'http://localhost:3240' });
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## CLI
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
oblien cdn upload ./logo.png --namespace tenant-a
|
|
112
|
+
oblien cdn upload ./logo.png --namespace tenant-a --names thumb,medium
|
|
113
|
+
oblien cdn upload ./a.png --variants '{"variantNames":["sq"],"customVariants":{"sq":{"width":200,"height":200}}}'
|
|
114
|
+
oblien cdn upload ./tmp.png --ttl 3600 --meta '{"orderId":"abc123"}' # ttl + opaque metadata
|
|
115
|
+
oblien cdn list --namespace tenant-a --json
|
|
116
|
+
oblien cdn stats --namespace tenant-a
|
|
117
|
+
oblien cdn token --namespace tenant-a --names thumb
|
|
118
|
+
oblien cdn delete 42
|
|
119
|
+
```
|
package/docs/domains.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Domains
|
|
2
|
+
|
|
3
|
+
Standalone domain utilities — slug availability, custom-domain DNS verification, and listing your routes + SSL certificates. (For per-workspace custom domains, see `client.workspaces.domains`; for static pages, `client.pages.connectDomain`.)
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
const dm = client.domain;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Pre-flight checks
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// Is a slug free on a wildcard domain?
|
|
13
|
+
const { available, url } = await dm.checkSlug({ slug: 'my-app' });
|
|
14
|
+
|
|
15
|
+
// Verify DNS for a custom domain (CNAME → edge + TXT ownership)
|
|
16
|
+
const { verified, cname, ownership, errors, required_records } = await dm.verify({
|
|
17
|
+
domain: 'app.example.com',
|
|
18
|
+
resource_id: 'ws_abc',
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Standard plans require both edge DNS and TXT ownership; enterprise custom-domain grants verify with edge DNS only.
|
|
23
|
+
|
|
24
|
+
## Routes
|
|
25
|
+
|
|
26
|
+
Every route you own — ports, pages, edge proxies/tunnels, custom domains — each with the resource it's bound to (`owner_type`/`owner_id`):
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
const { data: routes } = await dm.routes(); // all
|
|
30
|
+
const { data: scoped } = await dm.routes({ namespace: 'team-a' }); // filtered
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Namespace-scoped keys see only their namespace; admins may filter via `namespace`.
|
|
34
|
+
|
|
35
|
+
## SSL certificates + auto-renew
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// Certs + renewal status (expiry, auto_renew, last_error)
|
|
39
|
+
const { data: ssls } = await dm.ssls({ namespace: 'team-a' });
|
|
40
|
+
|
|
41
|
+
// Opt a cert out of (or back into) automatic renewal
|
|
42
|
+
await dm.setSslAutoRenew('app.example.com', false);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Certs auto-renew ~14 days before expiry; `last_error`/`renew_attempts` surface a failing cert before it expires.
|
|
46
|
+
|
|
47
|
+
**Full reference:** [Domains API](https://oblien.com/docs/api/domains)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Edge Proxy
|
|
2
|
+
|
|
3
|
+
Reverse-proxy a subdomain through the Oblien edge to an external upstream. A target must be **proven** before it can be routed — `create`/`update` reject an unverified target with `403 target_unverified`.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
const ep = client.edgeProxy;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Verify, then create
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
const target = 'https://internal-staging.example.com:8080';
|
|
13
|
+
|
|
14
|
+
// 1. Request a challenge.
|
|
15
|
+
const { verification } = await ep.requestVerification(target);
|
|
16
|
+
console.log(verification.instructions); // serve verification.token at verification.path
|
|
17
|
+
|
|
18
|
+
// 2. Prove it — Oblien fetches the token over an SSRF-safe, IP-pinned connection.
|
|
19
|
+
const { verification: result } = await ep.checkVerification(verification.id);
|
|
20
|
+
if (result.status !== 'verified') throw new Error(result.error);
|
|
21
|
+
|
|
22
|
+
// 3. Create (domain optional — defaults to the platform domain; pinned to the verified IP).
|
|
23
|
+
const { proxy } = await ep.create({ name: 'staging-api', slug: 'staging-api', target });
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Verification lasts 90 days and auto-renews; if a target can no longer be proven its proxies are disabled.
|
|
27
|
+
|
|
28
|
+
## Manage
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
const { proxies } = await ep.list();
|
|
32
|
+
await ep.update(proxy.id, { target: 'https://new-upstream.example.com' });
|
|
33
|
+
await ep.disable(proxy.id);
|
|
34
|
+
await ep.enable(proxy.id);
|
|
35
|
+
await ep.delete(proxy.id);
|
|
36
|
+
|
|
37
|
+
// Verifications
|
|
38
|
+
await ep.listVerifications();
|
|
39
|
+
await ep.deleteVerification(verification.id);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The check endpoint is rate-limited (it makes an outbound request) and a single challenge caps failed attempts — re-request to reset.
|
|
43
|
+
|
|
44
|
+
**Full reference:** [Edge Proxy concept](https://oblien.com/docs/concepts/edge-proxy) · [API](https://oblien.com/docs/api/edge-proxy)
|