oblien 2.2.36 → 2.2.37
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 +51 -274
- package/dist/cli/commands/namespaces.js +19 -6
- package/dist/cli/commands/namespaces.js.map +1 -1
- package/dist/client.d.ts +7 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -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 +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +97 -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/types/edge-proxy.d.ts +50 -1
- package/dist/types/edge-proxy.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -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/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 +53 -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":"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;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"}
|
|
1
|
+
{"version":3,"file":"workspace-resources.d.ts","sourceRoot":"","sources":["../../src/types/workspace-resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -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/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)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Edge Tunnel
|
|
2
|
+
|
|
3
|
+
Expose a **local** port to the internet through the Oblien edge — like a built-in ngrok. The tunnel client forwards incoming edge traffic to `localhost:<port>`.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
const et = client.edgeTunnel;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## One-liner: create + connect
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
const tunnel = await et.connect({ name: 'dev-server', port: 3000 });
|
|
13
|
+
console.log(tunnel.url); // https://dev-xyz.preview.oblien.com
|
|
14
|
+
|
|
15
|
+
tunnel.on('request', (id, port) => console.log(`→ localhost:${port}`));
|
|
16
|
+
tunnel.on('close', () => console.log('disconnected'));
|
|
17
|
+
|
|
18
|
+
// Later…
|
|
19
|
+
tunnel.close();
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Low-level
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
const { tunnel } = await et.create({ name: 'api', port: 8080 });
|
|
26
|
+
const { token, connect_url } = await et.issueToken(tunnel.id);
|
|
27
|
+
// → drive a TunnelClient yourself with { connectUrl: connect_url, token }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Manage
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
const { tunnels } = await et.list();
|
|
34
|
+
await et.checkDomain({ host: 'tunnel.example.com' }); // pre-flight custom domain (TXT/CNAME)
|
|
35
|
+
await et.update(tunnel.id, { name: 'api-v2' });
|
|
36
|
+
await et.enable(tunnel.id);
|
|
37
|
+
await et.disable(tunnel.id);
|
|
38
|
+
await et.renewSSL(tunnel.id);
|
|
39
|
+
await et.delete(tunnel.id);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Full reference:** [Edge Tunnel API](https://oblien.com/docs/api/edge-tunnel)
|
package/docs/errors.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Error handling
|
|
2
|
+
|
|
3
|
+
Every API error is an instance of `OblienError` with typed subclasses. The SDK preserves the machine-readable `code`, human-readable `message`, optional `details`, and optional `requestId` from the API response.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import {
|
|
7
|
+
OblienError,
|
|
8
|
+
NotFoundError,
|
|
9
|
+
RateLimitError,
|
|
10
|
+
PaymentRequiredError,
|
|
11
|
+
} from 'oblien';
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
await client.workspaces.get('ws_nonexistent');
|
|
15
|
+
} catch (err) {
|
|
16
|
+
if (err instanceof NotFoundError) { /* 404 */ }
|
|
17
|
+
if (err instanceof RateLimitError) { /* 429 — back off */ }
|
|
18
|
+
if (err instanceof PaymentRequiredError) { /* 402 — quota exceeded */ }
|
|
19
|
+
if (err instanceof OblienError) {
|
|
20
|
+
console.error(err.code, err.message, err.details, err.requestId);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
| Error class | HTTP | When |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `AuthenticationError` | 401 | Invalid or missing credentials |
|
|
28
|
+
| `PaymentRequiredError` | 402 | Credit quota exceeded |
|
|
29
|
+
| `NotFoundError` | 404 | Resource does not exist |
|
|
30
|
+
| `ConflictError` | 409 | Resource in wrong state |
|
|
31
|
+
| `ValidationError` | 422 | Invalid parameters |
|
|
32
|
+
| `RateLimitError` | 429 | Too many requests |
|
|
33
|
+
|
|
34
|
+
All subclasses extend `OblienError`, so a single `instanceof OblienError` catch handles everything while still exposing `.code`/`.message`/`.details`/`.requestId`.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Namespaces
|
|
2
|
+
|
|
3
|
+
Group workspaces into isolated namespaces with **resource limits**, **spending quotas**, lifecycle controls, and **per-namespace usage** — the building block for multi-tenant setups (one namespace per customer/team).
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
const ns = client.namespaces;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Create + resource limits
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
const { data } = await ns.create({
|
|
13
|
+
name: 'production',
|
|
14
|
+
resource_limits: {
|
|
15
|
+
max_workspaces: 50,
|
|
16
|
+
max_vcpus: 16, // per-workspace cap
|
|
17
|
+
max_ram_mb: 32768,
|
|
18
|
+
max_disk_gb: 100,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Resource limits are enforced **atomically at workspace create and resource upgrade** — over-limit returns `409 NAMESPACE_LIMIT_REACHED`. `max_workspaces` is race-proof (the namespace row is locked + the count re-checked inside the insert transaction). Update them with `ns.update(id, { resource_limits })`.
|
|
24
|
+
|
|
25
|
+
## Lifecycle
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
await ns.suspend(id); // freeze — blocks new creates/starts in the namespace
|
|
29
|
+
await ns.activate(id);
|
|
30
|
+
await ns.stopWorkspaces(id);
|
|
31
|
+
const { namespaces } = await ns.list();
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Quotas (optional)
|
|
35
|
+
|
|
36
|
+
Spending limits per service, with overdraft + threshold webhooks. Skip these if you bill externally (use **usage units** below instead).
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
await ns.setQuota({
|
|
40
|
+
namespace: 'production', service: 'sandbox',
|
|
41
|
+
quotaLimit: 500, overdraft: 50,
|
|
42
|
+
onOverdraftAction: 'stop_workspaces',
|
|
43
|
+
notificationThresholds: [80, 95], // fires namespace.quota.threshold webhooks
|
|
44
|
+
});
|
|
45
|
+
await ns.resetQuota({ namespace: 'production', service: 'sandbox' });
|
|
46
|
+
await ns.listWithQuotas();
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Usage
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
// Credits view (Oblien's converted units, grouped by service)
|
|
53
|
+
const usage = await ns.usage(id, { days: 30 });
|
|
54
|
+
const details = await ns.getDetails('production'); // quota + usage + transactions
|
|
55
|
+
|
|
56
|
+
// RAW metered units — for external billing with your own rates
|
|
57
|
+
const { data } = await ns.usageUnits('production', {
|
|
58
|
+
from: '2026-06-01T00:00:00Z', to: '2026-06-21T00:00:00Z', groupBy: 'day',
|
|
59
|
+
});
|
|
60
|
+
data.totals.vcpu_hours; // cpu_time_minutes/60, gb_hours, network_gb, disk_io_gb …
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`usageUnits` is deterministic for a range — poll it and idempotency-key on `(namespace, bucket.timestamp)`. The same raw units are also pushed per cycle on the `credits.usage` [webhook](./webhooks.md). Edge metrics (requests/bandwidth) per namespace come from [Analytics](./analytics.md) `home({ namespace })`.
|
|
64
|
+
|
|
65
|
+
## Namespace-scoped API keys
|
|
66
|
+
|
|
67
|
+
A namespace-scoped key is pinned to its namespace: list/get/usage/webhooks all auto-filter to it, and it can't widen scope. `user_id` is always the tenant gate.
|
|
68
|
+
|
|
69
|
+
**Full reference:** [Namespaces API](https://oblien.com/docs/api/namespaces)
|