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
package/dist/namespace.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HttpClient } from './http.js';
|
|
2
2
|
import type { ApiResponse } from './types/common.js';
|
|
3
|
-
import type { NamespaceData, NamespaceCreateParams, NamespaceEnsureParams, NamespaceEnsureResponse, NamespaceUpdateParams, NamespaceListParams, NamespaceListResponse, NamespaceActivityParams, NamespaceUsageParams, NamespaceDeleteParams, SetNamespaceQuotaParams, ResetNamespaceQuotaParams, NamespaceListWithQuotasParams, NamespaceDetailsParams, SetDefaultQuotaParams } from './types/namespace.js';
|
|
3
|
+
import type { NamespaceData, NamespaceCreateParams, NamespaceEnsureParams, NamespaceEnsureResponse, NamespaceUpdateParams, NamespaceListParams, NamespaceListResponse, NamespaceActivityParams, NamespaceUsageParams, NamespaceUsageUnitsParams, NamespaceUsageUnits, NamespaceDeleteParams, SetNamespaceQuotaParams, ResetNamespaceQuotaParams, NamespaceListWithQuotasParams, NamespaceDetailsParams, SetDefaultQuotaParams } from './types/namespace.js';
|
|
4
4
|
/**
|
|
5
5
|
* Namespace operations - CRUD, lifecycle actions, activity, and usage.
|
|
6
6
|
*
|
|
@@ -133,6 +133,24 @@ export declare class Namespace {
|
|
|
133
133
|
* ```
|
|
134
134
|
*/
|
|
135
135
|
usage(id: string, params?: NamespaceUsageParams): Promise<ApiResponse>;
|
|
136
|
+
/**
|
|
137
|
+
* Per-namespace **raw metered usage units** over a time range — for external
|
|
138
|
+
* billing that applies its own conversion rates. Returns time-bucketed
|
|
139
|
+
* `buckets` + summed `totals` of the metered units (`cpu_time_minutes`,
|
|
140
|
+
* `memory_gb_minutes`, `disk_io_gb`, `network_gb`) plus derived `vcpu_hours` /
|
|
141
|
+
* `gb_hours` and the credits Oblien charged. Deterministic for a given range,
|
|
142
|
+
* so it's safe to poll and idempotency-key on `(namespace, bucket.timestamp)`.
|
|
143
|
+
*
|
|
144
|
+
* ```ts
|
|
145
|
+
* const { data } = await client.namespaces.usageUnits('production', {
|
|
146
|
+
* from: '2026-06-01T00:00:00Z', to: '2026-06-21T00:00:00Z', groupBy: 'day',
|
|
147
|
+
* });
|
|
148
|
+
* data.totals.vcpu_hours; // → bill with your own rates
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
usageUnits(id: string, params?: NamespaceUsageUnitsParams): Promise<ApiResponse & {
|
|
152
|
+
data: NamespaceUsageUnits;
|
|
153
|
+
}>;
|
|
136
154
|
/**
|
|
137
155
|
* Set or update a namespace quota for a service.
|
|
138
156
|
*
|
|
@@ -141,14 +159,21 @@ export declare class Namespace {
|
|
|
141
159
|
* `onOverdraftAction` fires - either blocking new requests or stopping all
|
|
142
160
|
* running workspaces in the namespace.
|
|
143
161
|
*
|
|
162
|
+
* Quotas do not auto-reset — you own the renewal cycle for your tenants.
|
|
163
|
+
* Call `resetQuota` to refresh the usage counter.
|
|
164
|
+
*
|
|
165
|
+
* `notificationThresholds` controls when the `namespace.quota.threshold`
|
|
166
|
+
* webhook fires. Omit for system defaults ([80, 95]), `[]` to disable, or
|
|
167
|
+
* pass custom percentages.
|
|
168
|
+
*
|
|
144
169
|
* ```ts
|
|
145
170
|
* await client.namespaces.setQuota({
|
|
146
171
|
* namespace: 'production',
|
|
147
172
|
* service: 'sandbox',
|
|
148
173
|
* quotaLimit: 500,
|
|
149
|
-
* period: 'monthly',
|
|
150
174
|
* overdraft: 50,
|
|
151
175
|
* onOverdraftAction: 'stop_workspaces',
|
|
176
|
+
* notificationThresholds: [50, 80, 95],
|
|
152
177
|
* });
|
|
153
178
|
* ```
|
|
154
179
|
*/
|
|
@@ -192,9 +217,6 @@ export declare class Namespace {
|
|
|
192
217
|
* await client.namespaces.setDefaultQuota({
|
|
193
218
|
* service: 'sandbox',
|
|
194
219
|
* quotaLimit: 100,
|
|
195
|
-
* period: 'monthly',
|
|
196
|
-
* overdraft: 10,
|
|
197
|
-
* onOverdraftAction: 'block',
|
|
198
220
|
* autoApply: true,
|
|
199
221
|
* });
|
|
200
222
|
* ```
|
package/dist/namespace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../src/namespace.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,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAS;IACpB,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;gBAE3B,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE;IAMzC;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAQ3F;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQ7E;;;;;;;;;;OAUG;IACG,IAAI,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQ5E;;;;;;;OAOG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAO3E;;;;;;;;;OASG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAQvG;;;;;;OAMG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,qBAA0B,GAAG,OAAO,CAAC,WAAW,CAAC;IAUlF;;;;;;OAMG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/C;;;;;;OAMG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOhD;;;;;;OAMG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAStD;;;;;;OAMG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,WAAW,CAAC;IAQtF;;;;;;OAMG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"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"}
|
package/dist/namespace.js
CHANGED
|
@@ -189,6 +189,28 @@ export class Namespace {
|
|
|
189
189
|
query: params,
|
|
190
190
|
});
|
|
191
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Per-namespace **raw metered usage units** over a time range — for external
|
|
194
|
+
* billing that applies its own conversion rates. Returns time-bucketed
|
|
195
|
+
* `buckets` + summed `totals` of the metered units (`cpu_time_minutes`,
|
|
196
|
+
* `memory_gb_minutes`, `disk_io_gb`, `network_gb`) plus derived `vcpu_hours` /
|
|
197
|
+
* `gb_hours` and the credits Oblien charged. Deterministic for a given range,
|
|
198
|
+
* so it's safe to poll and idempotency-key on `(namespace, bucket.timestamp)`.
|
|
199
|
+
*
|
|
200
|
+
* ```ts
|
|
201
|
+
* const { data } = await client.namespaces.usageUnits('production', {
|
|
202
|
+
* from: '2026-06-01T00:00:00Z', to: '2026-06-21T00:00:00Z', groupBy: 'day',
|
|
203
|
+
* });
|
|
204
|
+
* data.totals.vcpu_hours; // → bill with your own rates
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
async usageUnits(id, params = {}) {
|
|
208
|
+
return this._http.request({
|
|
209
|
+
method: 'GET',
|
|
210
|
+
path: `${this._base}/${id}/usage-units`,
|
|
211
|
+
query: params,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
192
214
|
// ── Quotas & Overdraft ────────────────────────────────────────────
|
|
193
215
|
/**
|
|
194
216
|
* Set or update a namespace quota for a service.
|
|
@@ -198,14 +220,21 @@ export class Namespace {
|
|
|
198
220
|
* `onOverdraftAction` fires - either blocking new requests or stopping all
|
|
199
221
|
* running workspaces in the namespace.
|
|
200
222
|
*
|
|
223
|
+
* Quotas do not auto-reset — you own the renewal cycle for your tenants.
|
|
224
|
+
* Call `resetQuota` to refresh the usage counter.
|
|
225
|
+
*
|
|
226
|
+
* `notificationThresholds` controls when the `namespace.quota.threshold`
|
|
227
|
+
* webhook fires. Omit for system defaults ([80, 95]), `[]` to disable, or
|
|
228
|
+
* pass custom percentages.
|
|
229
|
+
*
|
|
201
230
|
* ```ts
|
|
202
231
|
* await client.namespaces.setQuota({
|
|
203
232
|
* namespace: 'production',
|
|
204
233
|
* service: 'sandbox',
|
|
205
234
|
* quotaLimit: 500,
|
|
206
|
-
* period: 'monthly',
|
|
207
235
|
* overdraft: 50,
|
|
208
236
|
* onOverdraftAction: 'stop_workspaces',
|
|
237
|
+
* notificationThresholds: [50, 80, 95],
|
|
209
238
|
* });
|
|
210
239
|
* ```
|
|
211
240
|
*/
|
|
@@ -274,9 +303,6 @@ export class Namespace {
|
|
|
274
303
|
* await client.namespaces.setDefaultQuota({
|
|
275
304
|
* service: 'sandbox',
|
|
276
305
|
* quotaLimit: 100,
|
|
277
|
-
* period: 'monthly',
|
|
278
|
-
* overdraft: 10,
|
|
279
|
-
* onOverdraftAction: 'block',
|
|
280
306
|
* autoApply: true,
|
|
281
307
|
* });
|
|
282
308
|
* ```
|
package/dist/namespace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { HttpClient } from './http.js';
|
|
2
|
+
import type { ApiResponse } from './types/common.js';
|
|
3
|
+
import type { PushDevice, RegisterDeviceParams, PushDeviceListResponse, CreatedWorkspacePushToken, CreatePushTokenParams, PushTokenListResponse, SendNotificationParams, SendNotificationResponse } from './types/notifications.js';
|
|
4
|
+
/**
|
|
5
|
+
* Mobile push notifications.
|
|
6
|
+
*
|
|
7
|
+
* The Oblien app registers a device; you mint **virtual** send tokens scoped to
|
|
8
|
+
* a workspace; code running inside that workspace uses a token to push to the
|
|
9
|
+
* device — inside workspace ▶ Oblien ▶ FCM ▶ device. The real device token
|
|
10
|
+
* never leaves Oblien, and a virtual token can be revoked independently.
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* import Oblien from 'oblien';
|
|
14
|
+
* const client = new Oblien({ clientId, clientSecret });
|
|
15
|
+
*
|
|
16
|
+
* // App registers its device (token is FCM-validated before storage).
|
|
17
|
+
* await client.notifications.registerDevice({ device_id: 'dev_abc', fcm_token: '<fcm>', platform: 'ios' });
|
|
18
|
+
*
|
|
19
|
+
* // Mint a per-workspace send token (plaintext returned once).
|
|
20
|
+
* const { token } = await client.notifications.createToken({ workspace_id: 'ws_123', name: 'agent' });
|
|
21
|
+
*
|
|
22
|
+
* // Inside the workspace, send with that token (no client credentials needed).
|
|
23
|
+
* await client.notifications.send(token.token, { title: 'Build done', body: 'Agent finished' });
|
|
24
|
+
*
|
|
25
|
+
* // Manage tokens.
|
|
26
|
+
* await client.notifications.listTokens('ws_123');
|
|
27
|
+
* await client.notifications.revokeToken(token.id);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare class Notifications {
|
|
31
|
+
/** @internal */
|
|
32
|
+
readonly _http: HttpClient;
|
|
33
|
+
private readonly _base;
|
|
34
|
+
constructor(client: {
|
|
35
|
+
_http: HttpClient;
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Register (or refresh) a mobile device. Keyed by `device_id`, so a rotated
|
|
39
|
+
* FCM token updates the same device. The token is verified with FCM before
|
|
40
|
+
* it's stored; an FCM-rejected token throws `invalid_device_token`.
|
|
41
|
+
*/
|
|
42
|
+
registerDevice(params: RegisterDeviceParams): Promise<ApiResponse & {
|
|
43
|
+
device: PushDevice;
|
|
44
|
+
}>;
|
|
45
|
+
/** List the authenticated user's registered devices. */
|
|
46
|
+
listDevices(): Promise<PushDeviceListResponse>;
|
|
47
|
+
/** Remove a registered device. */
|
|
48
|
+
removeDevice(deviceId: number): Promise<ApiResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Create a virtual send token for a workspace. The plaintext `token` is
|
|
51
|
+
* returned ONCE on the result — store it; it cannot be retrieved later.
|
|
52
|
+
*/
|
|
53
|
+
createToken(params: CreatePushTokenParams): Promise<ApiResponse & {
|
|
54
|
+
token: CreatedWorkspacePushToken;
|
|
55
|
+
}>;
|
|
56
|
+
/** List send tokens, optionally filtered to a single workspace. */
|
|
57
|
+
listTokens(workspaceId?: string): Promise<PushTokenListResponse>;
|
|
58
|
+
/** Revoke a send token (soft — keeps the record, stops it routing). */
|
|
59
|
+
revokeToken(tokenId: number): Promise<ApiResponse>;
|
|
60
|
+
/** Permanently delete a send token. */
|
|
61
|
+
deleteToken(tokenId: number): Promise<ApiResponse>;
|
|
62
|
+
/**
|
|
63
|
+
* Send a notification using a virtual send token (not client credentials).
|
|
64
|
+
* Intended for code running inside a workspace. Fans out to the token owner's
|
|
65
|
+
* active devices.
|
|
66
|
+
*
|
|
67
|
+
* @param token - The plaintext virtual send token.
|
|
68
|
+
* @param params - `{ title?, body?, data? }` — at least one of title/body.
|
|
69
|
+
*/
|
|
70
|
+
send(token: string, params: SendNotificationParams): Promise<SendNotificationResponse>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.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,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EAEtB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAa;IACxB,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;gBAE9B,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE;IAMzC;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IAIjG,wDAAwD;IAClD,WAAW,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAIpD,kCAAkC;IAC5B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM1D;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,KAAK,EAAE,yBAAyB,CAAA;KAAE,CAAC;IAI7G,mEAAmE;IAC7D,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQtE,uEAAuE;IACjE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxD,uCAAuC;IACjC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAMxD;;;;;;;OAOG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAQ7F"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mobile push notifications.
|
|
3
|
+
*
|
|
4
|
+
* The Oblien app registers a device; you mint **virtual** send tokens scoped to
|
|
5
|
+
* a workspace; code running inside that workspace uses a token to push to the
|
|
6
|
+
* device — inside workspace ▶ Oblien ▶ FCM ▶ device. The real device token
|
|
7
|
+
* never leaves Oblien, and a virtual token can be revoked independently.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import Oblien from 'oblien';
|
|
11
|
+
* const client = new Oblien({ clientId, clientSecret });
|
|
12
|
+
*
|
|
13
|
+
* // App registers its device (token is FCM-validated before storage).
|
|
14
|
+
* await client.notifications.registerDevice({ device_id: 'dev_abc', fcm_token: '<fcm>', platform: 'ios' });
|
|
15
|
+
*
|
|
16
|
+
* // Mint a per-workspace send token (plaintext returned once).
|
|
17
|
+
* const { token } = await client.notifications.createToken({ workspace_id: 'ws_123', name: 'agent' });
|
|
18
|
+
*
|
|
19
|
+
* // Inside the workspace, send with that token (no client credentials needed).
|
|
20
|
+
* await client.notifications.send(token.token, { title: 'Build done', body: 'Agent finished' });
|
|
21
|
+
*
|
|
22
|
+
* // Manage tokens.
|
|
23
|
+
* await client.notifications.listTokens('ws_123');
|
|
24
|
+
* await client.notifications.revokeToken(token.id);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class Notifications {
|
|
28
|
+
/** @internal */
|
|
29
|
+
_http;
|
|
30
|
+
_base = '/notifications';
|
|
31
|
+
constructor(client) {
|
|
32
|
+
this._http = client._http;
|
|
33
|
+
}
|
|
34
|
+
// ── Devices ────────────────────────────────────────────────────────
|
|
35
|
+
/**
|
|
36
|
+
* Register (or refresh) a mobile device. Keyed by `device_id`, so a rotated
|
|
37
|
+
* FCM token updates the same device. The token is verified with FCM before
|
|
38
|
+
* it's stored; an FCM-rejected token throws `invalid_device_token`.
|
|
39
|
+
*/
|
|
40
|
+
async registerDevice(params) {
|
|
41
|
+
return this._http.request({ method: 'POST', path: `${this._base}/devices`, body: params });
|
|
42
|
+
}
|
|
43
|
+
/** List the authenticated user's registered devices. */
|
|
44
|
+
async listDevices() {
|
|
45
|
+
return this._http.request({ method: 'GET', path: `${this._base}/devices` });
|
|
46
|
+
}
|
|
47
|
+
/** Remove a registered device. */
|
|
48
|
+
async removeDevice(deviceId) {
|
|
49
|
+
return this._http.request({ method: 'DELETE', path: `${this._base}/devices/${deviceId}` });
|
|
50
|
+
}
|
|
51
|
+
// ── Virtual send tokens ──────────────────────────────────────────────
|
|
52
|
+
/**
|
|
53
|
+
* Create a virtual send token for a workspace. The plaintext `token` is
|
|
54
|
+
* returned ONCE on the result — store it; it cannot be retrieved later.
|
|
55
|
+
*/
|
|
56
|
+
async createToken(params) {
|
|
57
|
+
return this._http.request({ method: 'POST', path: `${this._base}/tokens`, body: params });
|
|
58
|
+
}
|
|
59
|
+
/** List send tokens, optionally filtered to a single workspace. */
|
|
60
|
+
async listTokens(workspaceId) {
|
|
61
|
+
return this._http.request({
|
|
62
|
+
method: 'GET',
|
|
63
|
+
path: `${this._base}/tokens`,
|
|
64
|
+
query: workspaceId ? { workspace_id: workspaceId } : undefined,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/** Revoke a send token (soft — keeps the record, stops it routing). */
|
|
68
|
+
async revokeToken(tokenId) {
|
|
69
|
+
return this._http.request({ method: 'POST', path: `${this._base}/tokens/${tokenId}/revoke` });
|
|
70
|
+
}
|
|
71
|
+
/** Permanently delete a send token. */
|
|
72
|
+
async deleteToken(tokenId) {
|
|
73
|
+
return this._http.request({ method: 'DELETE', path: `${this._base}/tokens/${tokenId}` });
|
|
74
|
+
}
|
|
75
|
+
// ── Send ───────────────────────────────────────────────────────────
|
|
76
|
+
/**
|
|
77
|
+
* Send a notification using a virtual send token (not client credentials).
|
|
78
|
+
* Intended for code running inside a workspace. Fans out to the token owner's
|
|
79
|
+
* active devices.
|
|
80
|
+
*
|
|
81
|
+
* @param token - The plaintext virtual send token.
|
|
82
|
+
* @param params - `{ title?, body?, data? }` — at least one of title/body.
|
|
83
|
+
*/
|
|
84
|
+
async send(token, params) {
|
|
85
|
+
return this._http.request({
|
|
86
|
+
method: 'POST',
|
|
87
|
+
path: `${this._base}/send`,
|
|
88
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
89
|
+
body: params,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,aAAa;IACxB,gBAAgB;IACP,KAAK,CAAa;IAEV,KAAK,GAAG,gBAAgB,CAAC;IAE1C,YAAY,MAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,sEAAsE;IAEtE;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,YAAY,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,wEAAwE;IAExE;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,MAA6B;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,UAAU,CAAC,WAAoB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,SAAS;YAC5B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,WAAW,OAAO,SAAS,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,WAAW,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,sEAAsE;IAEtE;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,MAA8B;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,OAAO;YAC1B,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YAC7C,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -6,6 +6,8 @@ export interface EdgeProxyData {
|
|
|
6
6
|
url: string;
|
|
7
7
|
target: string;
|
|
8
8
|
status: 'active' | 'disabled';
|
|
9
|
+
/** Namespace slug this proxy is grouped under (null for unscoped). */
|
|
10
|
+
namespace?: string | null;
|
|
9
11
|
config?: Record<string, unknown>;
|
|
10
12
|
created_at: string;
|
|
11
13
|
updated_at: string;
|
|
@@ -13,8 +15,13 @@ export interface EdgeProxyData {
|
|
|
13
15
|
export interface EdgeProxyCreateParams {
|
|
14
16
|
name: string;
|
|
15
17
|
slug: string;
|
|
16
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Base domain for the proxy. Optional — defaults to the platform default
|
|
20
|
+
* domain (`preview.oblien.com`). Custom/wildcard domains require an entitlement.
|
|
21
|
+
*/
|
|
22
|
+
domain?: string;
|
|
17
23
|
target: string;
|
|
24
|
+
config?: Record<string, unknown>;
|
|
18
25
|
/** Optional namespace slug for grouping. */
|
|
19
26
|
namespace?: string;
|
|
20
27
|
}
|
|
@@ -22,9 +29,51 @@ export interface EdgeProxyUpdateParams {
|
|
|
22
29
|
name?: string;
|
|
23
30
|
slug?: string;
|
|
24
31
|
target?: string;
|
|
32
|
+
config?: Record<string, unknown>;
|
|
25
33
|
}
|
|
26
34
|
export interface EdgeProxyListResponse {
|
|
27
35
|
success: boolean;
|
|
28
36
|
proxies: EdgeProxyData[];
|
|
29
37
|
}
|
|
38
|
+
export type EdgeProxyVerificationStatus = 'pending' | 'verified' | 'failed' | 'expired';
|
|
39
|
+
/** A verification record as returned by `listVerifications`. */
|
|
40
|
+
export interface EdgeProxyVerification {
|
|
41
|
+
id: number;
|
|
42
|
+
target: string;
|
|
43
|
+
status: EdgeProxyVerificationStatus;
|
|
44
|
+
/** Public IP the target resolved to when last proven (the route is pinned to it). */
|
|
45
|
+
validated_ip?: string | null;
|
|
46
|
+
attempts?: number;
|
|
47
|
+
created_at?: string;
|
|
48
|
+
verified_at?: string | null;
|
|
49
|
+
expires_at?: string | null;
|
|
50
|
+
last_checked_at?: string | null;
|
|
51
|
+
}
|
|
52
|
+
/** Response of `requestVerification` — the challenge to serve on the target. */
|
|
53
|
+
export interface EdgeProxyVerificationChallenge {
|
|
54
|
+
id: number;
|
|
55
|
+
target: string;
|
|
56
|
+
status: 'pending';
|
|
57
|
+
method: 'http';
|
|
58
|
+
/** Path to serve the token at, e.g. `/.well-known/oblien-proxy-challenge/<token>`. */
|
|
59
|
+
path: string;
|
|
60
|
+
/** The exact token text to serve (HTTP 200) at `path`. */
|
|
61
|
+
token: string;
|
|
62
|
+
/** Human-readable instructions for serving the token. */
|
|
63
|
+
instructions: string;
|
|
64
|
+
}
|
|
65
|
+
/** Response of `checkVerification` — the outcome of probing the target. */
|
|
66
|
+
export interface EdgeProxyVerificationCheckResult {
|
|
67
|
+
id: number;
|
|
68
|
+
target: string;
|
|
69
|
+
status: EdgeProxyVerificationStatus;
|
|
70
|
+
validated_ip?: string | null;
|
|
71
|
+
expires_at?: string | null;
|
|
72
|
+
/** Reason the check failed (only present when `status` is `failed`). */
|
|
73
|
+
error?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface EdgeProxyVerificationListResponse {
|
|
76
|
+
success: boolean;
|
|
77
|
+
verifications: EdgeProxyVerification[];
|
|
78
|
+
}
|
|
30
79
|
//# sourceMappingURL=edge-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-proxy.d.ts","sourceRoot":"","sources":["../../src/types/edge-proxy.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"edge-proxy.d.ts","sourceRoot":"","sources":["../../src/types/edge-proxy.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AASD,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExF,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,2BAA2B,CAAC;IACpC,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,gFAAgF;AAChF,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gCAAgC;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,2BAA2B,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,qBAAqB,EAAE,CAAC;CACxC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,11 +4,13 @@ export type { WorkspaceCreateParams, WorkspaceUpdateParams, WorkspaceListParams,
|
|
|
4
4
|
export type { NetworkSpec, FirewallRule, PrivateLink } from './network.js';
|
|
5
5
|
export type { ResourceSpec, LifecycleSpec } from './resources.js';
|
|
6
6
|
export type { RuntimeOptions, FileListParams, FileEntry, FileListResponse, FileReadParams, FileReadResponse, FileWriteParams, FileWriteResponse, FileMkdirParams, FileStatParams, FileStatResponse, FileDeleteParams, ContentSearchParams, SearchMatch, ContentSearchResponse, FileSearchParams, FileSearchResponse, SearchStatusResponse, SearchInitResponse, ExecRunParams, ExecTask, ExecListResponse, ExecStreamEvent, TerminalCreateParams, TerminalSession, TerminalListResponse, TerminalScrollbackResponse, WatcherCreateParams, WatcherInfo, WatcherListResponse, WSOptions, WSMessage, WSTerminalResize, WSTerminalExit, WSTerminalEvent, WSWatcherChange, WSWatcherReady, WSWatcherOverflow, WSWatcherEvent, TransferProgress, TransferDownloadParams, TransferUploadParams, TransferUploadResponse, } from './runtime.js';
|
|
7
|
-
export type { TtlAction, LifecycleStatus, MakeTemporaryParams, UpdateTtlParams, SshStatus, SshPasswordParams, SshKeyParams, PublicAccessPort, ExposePortParams, UpdateSlugParams, SnapshotParams, ArchiveCreateParams, ArchiveInfo, WorkloadCreateParams, WorkloadUpdateParams, WorkloadInfo, WorkloadListParams, UsageParams, UpdateResourcesParams, UpdateMetadataParams, ApiAccessStatus, RawTokenResponse, NetworkUpdateParams, NetworkConfig, LogsParams, LogFile, LogStreamEvent, StatsEvent, WorkloadStatsEvent, WorkloadLogEntry, ImagesListParams, DomainInfo, ConnectDomainParams, ConnectDomainResponse, CheckDNSParams, CheckDNSResponse, RenewSSLResponse, CheckSlugParams, CheckSlugResponse, VerifyDomainParams, VerifyDomainResponse, } from './workspace-resources.js';
|
|
8
|
-
export type { NamespaceStatus, NamespaceType, NamespaceResourceLimits, NamespaceData, NamespaceCreateParams, NamespaceEnsureParams, NamespaceEnsureResponse, NamespaceUpdateParams, NamespaceListParams, NamespaceListResponse, NamespaceActivity, NamespaceActivityParams, NamespaceUsageParams,
|
|
7
|
+
export type { TtlAction, LifecycleStatus, MakeTemporaryParams, UpdateTtlParams, SshStatus, SshPasswordParams, SshKeyParams, PublicAccessPort, ExposePortParams, UpdateSlugParams, SnapshotParams, ArchiveCreateParams, ArchiveInfo, WorkloadCreateParams, WorkloadUpdateParams, WorkloadInfo, WorkloadListParams, UsageParams, UpdateResourcesParams, UpdateMetadataParams, ApiAccessStatus, RawTokenResponse, NetworkUpdateParams, NetworkConfig, LogsParams, LogFile, LogStreamEvent, StatsEvent, WorkloadStatsEvent, WorkloadLogEntry, ImagesListParams, DomainInfo, ConnectDomainParams, ConnectDomainResponse, CheckDNSParams, CheckDNSResponse, RenewSSLResponse, CheckSlugParams, CheckSlugResponse, VerifyDomainParams, VerifyDomainResponse, DomainListParams, DomainRoute, DomainRoutesResponse, SslCertificate, SslListResponse, SslAutoRenewResponse, } from './workspace-resources.js';
|
|
8
|
+
export type { NamespaceStatus, NamespaceType, NamespaceResourceLimits, NamespaceData, NamespaceCreateParams, NamespaceEnsureParams, NamespaceEnsureResponse, NamespaceUpdateParams, NamespaceListParams, NamespaceListResponse, NamespaceActivity, NamespaceActivityParams, NamespaceUsageParams, NamespaceUsageUnitsParams, NamespaceUsageUnitBucket, NamespaceUsageUnits, NamespaceDeleteParams, OverdraftAction, NamespaceQuota, SetNamespaceQuotaParams, ResetNamespaceQuotaParams, NamespaceListWithQuotasParams, NamespaceDetailsParams, DefaultQuotaConfig, SetDefaultQuotaParams, ToggleDefaultQuotaAutoApplyParams, DeleteDefaultQuotaParams, } from './namespace.js';
|
|
9
9
|
export type { PageData, PageCreateParams, PageDeployParams, PageUpdateParams, PageListResponse, PageDomainResponse, PageDNSCheckResponse, PageSSLRenewResponse, SiteData, SiteCreateParams, SiteDeployParams, SiteUpdateParams, SiteListResponse, } from './pages.js';
|
|
10
|
-
export type { EdgeProxyData, EdgeProxyCreateParams, EdgeProxyUpdateParams, EdgeProxyListResponse, } from './edge-proxy.js';
|
|
10
|
+
export type { EdgeProxyData, EdgeProxyCreateParams, EdgeProxyUpdateParams, EdgeProxyListResponse, EdgeProxyVerificationStatus, EdgeProxyVerification, EdgeProxyVerificationChallenge, EdgeProxyVerificationCheckResult, EdgeProxyVerificationListResponse, } from './edge-proxy.js';
|
|
11
11
|
export type { EdgeTunnelSSLState, EdgeTunnelData, EdgeTunnelCreateParams, EdgeTunnelCheckDomainParams, EdgeTunnelCheckDomainResponse, EdgeTunnelUpdateParams, EdgeTunnelListResponse, EdgeTunnelIssueTokenParams, EdgeTunnelTokenResponse, EdgeTunnelSSLRenewResponse, } from './edge-tunnel.js';
|
|
12
12
|
export type { TokenScope, TokenCreateParams, TokenCreateResponse, } from './tokens.js';
|
|
13
|
+
export type { PushPlatform, PushDeviceStatus, PushTokenStatus, PushDevice, RegisterDeviceParams, PushDeviceListResponse, WorkspacePushToken, CreatedWorkspacePushToken, CreatePushTokenParams, PushTokenListResponse, SendNotificationParams, SendNotificationResponse, } from './notifications.js';
|
|
14
|
+
export type { WebhookEvent, Webhook, WebhookCreateParams, WebhookUpdateParams, WebhookListParams, WebhookListResponse, WebhookEventsResponse, } from './webhooks.js';
|
|
13
15
|
export type { AnalyticsOverview, AnalyticsDomainSummary, AnalyticsHomeSummary, AnalyticsBucket, AnalyticsTimeseriesParams, AnalyticsTimeseriesResponse, AnalyticsGeoEntry, AnalyticsGeoParams, AnalyticsGeoResponse, AnalyticsRequestEntry, AnalyticsRequestsParams, AnalyticsRequestsResponse, AnalyticsStreamTokenResponse, } from './analytics.js';
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,YAAY,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EAEnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EAEd,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,11 +104,46 @@ export interface NamespaceUsageParams {
|
|
|
104
104
|
service?: string;
|
|
105
105
|
days?: number;
|
|
106
106
|
}
|
|
107
|
+
/** Parameters for the raw metered usage-units rollup. */
|
|
108
|
+
export interface NamespaceUsageUnitsParams {
|
|
109
|
+
/** ISO8601 range start (default: 30 days ago). */
|
|
110
|
+
from?: string;
|
|
111
|
+
/** ISO8601 range end (default: now). */
|
|
112
|
+
to?: string;
|
|
113
|
+
/** Bucket granularity (default `day`). */
|
|
114
|
+
groupBy?: 'hour' | 'day';
|
|
115
|
+
}
|
|
116
|
+
/** One time bucket of raw metered usage units. */
|
|
117
|
+
export interface NamespaceUsageUnitBucket {
|
|
118
|
+
timestamp: string;
|
|
119
|
+
cpu_time_minutes: number;
|
|
120
|
+
memory_gb_minutes: number;
|
|
121
|
+
disk_io_gb: number;
|
|
122
|
+
network_gb: number;
|
|
123
|
+
/** Derived: cpu_time_minutes / 60. */
|
|
124
|
+
vcpu_hours: number;
|
|
125
|
+
/** Derived: memory_gb_minutes / 60. */
|
|
126
|
+
gb_hours: number;
|
|
127
|
+
/** Credits Oblien charged for this bucket (informational). */
|
|
128
|
+
credits: number;
|
|
129
|
+
records: number;
|
|
130
|
+
}
|
|
131
|
+
/** Per-namespace raw metered usage units over a time range. */
|
|
132
|
+
export interface NamespaceUsageUnits {
|
|
133
|
+
namespace: string;
|
|
134
|
+
range: {
|
|
135
|
+
from: string;
|
|
136
|
+
to: string;
|
|
137
|
+
};
|
|
138
|
+
group_by: 'hour' | 'day';
|
|
139
|
+
buckets: NamespaceUsageUnitBucket[];
|
|
140
|
+
/** Sum of every bucket (same keys minus `timestamp`). */
|
|
141
|
+
totals: Omit<NamespaceUsageUnitBucket, 'timestamp'>;
|
|
142
|
+
}
|
|
107
143
|
/** Parameters for deleting a namespace. */
|
|
108
144
|
export interface NamespaceDeleteParams {
|
|
109
145
|
deleteWorkspaces?: boolean;
|
|
110
146
|
}
|
|
111
|
-
export type QuotaPeriod = 'daily' | 'monthly' | 'unlimited';
|
|
112
147
|
export type OverdraftAction = 'block' | 'stop_workspaces';
|
|
113
148
|
/** A namespace quota for a specific service. */
|
|
114
149
|
export interface NamespaceQuota {
|
|
@@ -120,9 +155,15 @@ export interface NamespaceQuota {
|
|
|
120
155
|
quota_used: number;
|
|
121
156
|
overdraft: number;
|
|
122
157
|
on_overdraft_action: OverdraftAction;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Percentages at which the `namespace.quota.threshold` webhook fires.
|
|
160
|
+
* - `null` = use system defaults ([80, 95])
|
|
161
|
+
* - `[]` = disabled
|
|
162
|
+
* - array = custom thresholds (each value in (0, 100])
|
|
163
|
+
*/
|
|
164
|
+
notification_thresholds: number[] | null;
|
|
165
|
+
/** Highest threshold percentage already fired this cycle. Resets when quota is reset/changed. */
|
|
166
|
+
last_threshold_fired: number | null;
|
|
126
167
|
enabled: boolean;
|
|
127
168
|
created_at: string;
|
|
128
169
|
updated_at: string;
|
|
@@ -132,9 +173,18 @@ export interface SetNamespaceQuotaParams {
|
|
|
132
173
|
namespace: string;
|
|
133
174
|
service: string;
|
|
134
175
|
quotaLimit: number;
|
|
135
|
-
period?: QuotaPeriod;
|
|
136
176
|
overdraft?: number;
|
|
137
177
|
onOverdraftAction?: OverdraftAction;
|
|
178
|
+
/**
|
|
179
|
+
* Percentages at which the `namespace.quota.threshold` webhook fires.
|
|
180
|
+
* - omit / `null` = use system defaults ([80, 95])
|
|
181
|
+
* - `[]` = disabled
|
|
182
|
+
* - array = custom thresholds (each value in (0, 100])
|
|
183
|
+
*
|
|
184
|
+
* Note: quotas do not auto-reset — the customer owns the renewal cycle for their tenants.
|
|
185
|
+
* Call `resetNamespaceQuota` to refresh the usage counter.
|
|
186
|
+
*/
|
|
187
|
+
notificationThresholds?: number[] | null;
|
|
138
188
|
}
|
|
139
189
|
/** Parameters for resetting quota usage. */
|
|
140
190
|
export interface ResetNamespaceQuotaParams {
|
|
@@ -161,7 +211,6 @@ export interface DefaultQuotaConfig {
|
|
|
161
211
|
quota_limit: number;
|
|
162
212
|
overdraft: number;
|
|
163
213
|
on_overdraft_action: OverdraftAction;
|
|
164
|
-
period: QuotaPeriod;
|
|
165
214
|
auto_apply: boolean;
|
|
166
215
|
enabled: boolean;
|
|
167
216
|
}
|
|
@@ -169,9 +218,6 @@ export interface DefaultQuotaConfig {
|
|
|
169
218
|
export interface SetDefaultQuotaParams {
|
|
170
219
|
service: string;
|
|
171
220
|
quotaLimit: number;
|
|
172
|
-
period?: QuotaPeriod;
|
|
173
|
-
overdraft?: number;
|
|
174
|
-
onOverdraftAction?: OverdraftAction;
|
|
175
221
|
autoApply?: boolean;
|
|
176
222
|
}
|
|
177
223
|
/** Parameters for toggling auto-apply on a default quota. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/types/namespace.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7F,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,kDAAkD;AAClD,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;IAC9C,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/types/namespace.ts"],"names":[],"mappings":"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"}
|