oblien 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/billing.d.ts +14 -10
- package/dist/billing.d.ts.map +1 -1
- package/dist/billing.js +17 -9
- package/dist/billing.js.map +1 -1
- package/dist/cli/commands/desktop.d.ts +3 -0
- package/dist/cli/commands/desktop.d.ts.map +1 -0
- package/dist/cli/commands/desktop.js +45 -0
- package/dist/cli/commands/desktop.js.map +1 -0
- package/dist/cli/commands/lifecycle.d.ts.map +1 -1
- package/dist/cli/commands/lifecycle.js +22 -0
- package/dist/cli/commands/lifecycle.js.map +1 -1
- package/dist/cli/commands/workspaces.d.ts.map +1 -1
- package/dist/cli/commands/workspaces.js +12 -1
- package/dist/cli/commands/workspaces.js.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/http-error.d.ts.map +1 -1
- package/dist/http-error.js +4 -1
- package/dist/http-error.js.map +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +4 -7
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +2 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/namespace.d.ts +6 -6
- package/dist/namespace.js +6 -6
- package/dist/resources/desktop.d.ts +35 -0
- package/dist/resources/desktop.d.ts.map +1 -0
- package/dist/resources/desktop.js +20 -0
- package/dist/resources/desktop.js.map +1 -0
- package/dist/resources/images.d.ts +44 -1
- package/dist/resources/images.d.ts.map +1 -1
- package/dist/resources/images.js.map +1 -1
- package/dist/resources/lifecycle.d.ts +11 -2
- package/dist/resources/lifecycle.d.ts.map +1 -1
- package/dist/resources/lifecycle.js +7 -2
- package/dist/resources/lifecycle.js.map +1 -1
- package/dist/runtime/desktop-tunnel.d.ts +7 -0
- package/dist/runtime/desktop-tunnel.d.ts.map +1 -0
- package/dist/runtime/desktop-tunnel.js +56 -0
- package/dist/runtime/desktop-tunnel.js.map +1 -0
- package/dist/runtime/desktop.d.ts +37 -0
- package/dist/runtime/desktop.d.ts.map +1 -0
- package/dist/runtime/desktop.js +41 -0
- package/dist/runtime/desktop.js.map +1 -0
- package/dist/runtime.d.ts +4 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +4 -0
- package/dist/runtime.js.map +1 -1
- package/dist/types/billing.d.ts +48 -9
- package/dist/types/billing.d.ts.map +1 -1
- package/dist/types/billing.js +2 -2
- package/dist/types/common.d.ts +1 -0
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +2 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/workspace-resources.d.ts +23 -0
- package/dist/types/workspace-resources.d.ts.map +1 -1
- package/dist/types/workspace.d.ts +41 -3
- package/dist/types/workspace.d.ts.map +1 -1
- package/dist/workspace-handle.d.ts +5 -1
- package/dist/workspace-handle.d.ts.map +1 -1
- package/dist/workspace-handle.js +8 -0
- package/dist/workspace-handle.js.map +1 -1
- package/dist/workspace.d.ts +10 -3
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +84 -5
- package/dist/workspace.js.map +1 -1
- package/docs/billing.md +130 -2
- package/docs/desktop.md +83 -0
- package/docs/errors.md +7 -1
- package/docs/on-demand.md +43 -0
- package/docs/workspace-limit-report.md +40 -0
- package/docs/workspaces.md +30 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/types/workspace.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/types/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { Runtime } from './runtime.js';
|
|
|
3
3
|
import type { LifecycleResource } from './resources/lifecycle.js';
|
|
4
4
|
import type { NetworkResource } from './resources/network.js';
|
|
5
5
|
import type { SshResource } from './resources/ssh.js';
|
|
6
|
+
import type { DesktopResource } from './resources/desktop.js';
|
|
6
7
|
import type { PublicAccessResource } from './resources/public-access.js';
|
|
7
8
|
import type { ResourcesResource } from './resources/resources.js';
|
|
8
9
|
import type { SnapshotsResource } from './resources/snapshots.js';
|
|
@@ -13,7 +14,7 @@ import type { MetadataResource } from './resources/metadata.js';
|
|
|
13
14
|
import type { ApiAccessResource } from './resources/api-access.js';
|
|
14
15
|
import type { LogsResource } from './resources/logs.js';
|
|
15
16
|
import type { DomainsResource } from './resources/domains.js';
|
|
16
|
-
import type { ApiResponse, WorkspaceUpdateParams, WorkspaceData } from './types/index.js';
|
|
17
|
+
import type { ApiResponse, WorkspaceUpdateParams, WorkspaceData, WorkspaceWaitOptions } from './types/index.js';
|
|
17
18
|
/** Strip the first arg (workspaceId) from a function's parameters. */
|
|
18
19
|
type DropFirst<F> = F extends (first: string, ...rest: infer R) => infer Ret ? (...args: R) => Ret : F;
|
|
19
20
|
/** Every method on T, but with the first string param pre-filled. */
|
|
@@ -51,6 +52,7 @@ export declare class WorkspaceHandle {
|
|
|
51
52
|
readonly network: Scoped<NetworkResource>;
|
|
52
53
|
/** SSH access - enable, disable, set password/key. */
|
|
53
54
|
readonly ssh: Scoped<SshResource>;
|
|
55
|
+
readonly desktop: Scoped<DesktopResource>;
|
|
54
56
|
/** Public port access - expose and revoke ports. */
|
|
55
57
|
readonly publicAccess: Scoped<PublicAccessResource>;
|
|
56
58
|
/** Resources - CPU, memory, disk allocation. */
|
|
@@ -74,6 +76,8 @@ export declare class WorkspaceHandle {
|
|
|
74
76
|
constructor(workspace: Workspace, workspaceId: string);
|
|
75
77
|
/** Fetch the workspace data. */
|
|
76
78
|
get(): Promise<WorkspaceData>;
|
|
79
|
+
waitUntilReady(options?: WorkspaceWaitOptions): Promise<WorkspaceData>;
|
|
80
|
+
retryCreation(): Promise<WorkspaceData>;
|
|
77
81
|
/** Update workspace settings. */
|
|
78
82
|
update(params: WorkspaceUpdateParams): Promise<WorkspaceData>;
|
|
79
83
|
/** Permanently delete the workspace. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-handle.d.ts","sourceRoot":"","sources":["../src/workspace-handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,aAAa,
|
|
1
|
+
{"version":3,"file":"workspace-handle.d.ts","sourceRoot":"","sources":["../src/workspace-handle.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace-handle.js
CHANGED
|
@@ -44,6 +44,7 @@ export class WorkspaceHandle {
|
|
|
44
44
|
network;
|
|
45
45
|
/** SSH access - enable, disable, set password/key. */
|
|
46
46
|
ssh;
|
|
47
|
+
desktop;
|
|
47
48
|
/** Public port access - expose and revoke ports. */
|
|
48
49
|
publicAccess;
|
|
49
50
|
/** Resources - CPU, memory, disk allocation. */
|
|
@@ -70,6 +71,7 @@ export class WorkspaceHandle {
|
|
|
70
71
|
this.lifecycle = scopeResource(workspace.lifecycle, workspaceId);
|
|
71
72
|
this.network = scopeResource(workspace.network, workspaceId);
|
|
72
73
|
this.ssh = scopeResource(workspace.ssh, workspaceId);
|
|
74
|
+
this.desktop = scopeResource(workspace.desktop, workspaceId);
|
|
73
75
|
this.publicAccess = scopeResource(workspace.publicAccess, workspaceId);
|
|
74
76
|
this.resources = scopeResource(workspace.resources, workspaceId);
|
|
75
77
|
this.snapshots = scopeResource(workspace.snapshots, workspaceId);
|
|
@@ -86,6 +88,12 @@ export class WorkspaceHandle {
|
|
|
86
88
|
async get() {
|
|
87
89
|
return this._ws.get(this.id);
|
|
88
90
|
}
|
|
91
|
+
waitUntilReady(options) {
|
|
92
|
+
return this._ws.waitUntilReady(this.id, options);
|
|
93
|
+
}
|
|
94
|
+
retryCreation() {
|
|
95
|
+
return this._ws.retryCreation(this.id);
|
|
96
|
+
}
|
|
89
97
|
/** Update workspace settings. */
|
|
90
98
|
async update(params) {
|
|
91
99
|
return this._ws.update(this.id, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-handle.js","sourceRoot":"","sources":["../src/workspace-handle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace-handle.js","sourceRoot":"","sources":["../src/workspace-handle.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Runtime } from './runtime.js';
|
|
|
3
3
|
import { LifecycleResource } from './resources/lifecycle.js';
|
|
4
4
|
import { NetworkResource } from './resources/network.js';
|
|
5
5
|
import { SshResource } from './resources/ssh.js';
|
|
6
|
+
import { DesktopResource } from './resources/desktop.js';
|
|
6
7
|
import { PublicAccessResource } from './resources/public-access.js';
|
|
7
8
|
import { ResourcesResource } from './resources/resources.js';
|
|
8
9
|
import { SnapshotsResource } from './resources/snapshots.js';
|
|
@@ -14,7 +15,7 @@ import { ApiAccessResource } from './resources/api-access.js';
|
|
|
14
15
|
import { LogsResource } from './resources/logs.js';
|
|
15
16
|
import { ImagesResource } from './resources/images.js';
|
|
16
17
|
import { DomainsResource } from './resources/domains.js';
|
|
17
|
-
import type { ApiResponse, WorkspaceCreateParams, WorkspaceUpdateParams, WorkspaceListParams, WorkspaceListResponse, WorkspaceData } from './types/index.js';
|
|
18
|
+
import type { ApiResponse, WorkspaceCreateParams, WorkspaceUpdateParams, WorkspaceListParams, WorkspaceListResponse, WorkspaceData, WorkspaceWaitOptions } from './types/index.js';
|
|
18
19
|
/**
|
|
19
20
|
* Workspace operations namespace.
|
|
20
21
|
*
|
|
@@ -46,6 +47,7 @@ export declare class Workspace {
|
|
|
46
47
|
readonly network: NetworkResource;
|
|
47
48
|
/** SSH access - enable, disable, set password/key. */
|
|
48
49
|
readonly ssh: SshResource;
|
|
50
|
+
readonly desktop: DesktopResource;
|
|
49
51
|
/** Public port access - expose and revoke ports. */
|
|
50
52
|
readonly publicAccess: PublicAccessResource;
|
|
51
53
|
/** Resources - CPU, memory, disk allocation. */
|
|
@@ -74,8 +76,13 @@ export declare class Workspace {
|
|
|
74
76
|
constructor(client: {
|
|
75
77
|
_http: HttpClient;
|
|
76
78
|
});
|
|
77
|
-
/** Create a
|
|
78
|
-
create(params?: WorkspaceCreateParams): Promise<WorkspaceData>;
|
|
79
|
+
/** Create a workspace; wait for its runtime unless wait_ready is false. */
|
|
80
|
+
create(params?: WorkspaceCreateParams, options?: WorkspaceWaitOptions): Promise<WorkspaceData>;
|
|
81
|
+
/** Wait for an accepted creation using short status requests. */
|
|
82
|
+
waitUntilReady(workspaceId: string, options?: WorkspaceWaitOptions): Promise<WorkspaceData>;
|
|
83
|
+
private _waitUntilReady;
|
|
84
|
+
/** Retry a failed creation with its existing ID and configuration. */
|
|
85
|
+
retryCreation(workspaceId: string): Promise<WorkspaceData>;
|
|
79
86
|
/** List workspaces with optional pagination / filters. */
|
|
80
87
|
list(params?: WorkspaceListParams): Promise<WorkspaceListResponse>;
|
|
81
88
|
/** Get a single workspace by ID or slug. */
|
package/dist/workspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { OblienError } from './error.js';
|
|
1
2
|
import { Runtime } from './runtime.js';
|
|
2
3
|
import { LifecycleResource } from './resources/lifecycle.js';
|
|
3
4
|
import { NetworkResource } from './resources/network.js';
|
|
4
5
|
import { SshResource } from './resources/ssh.js';
|
|
6
|
+
import { DesktopResource } from './resources/desktop.js';
|
|
5
7
|
import { PublicAccessResource } from './resources/public-access.js';
|
|
6
8
|
import { ResourcesResource } from './resources/resources.js';
|
|
7
9
|
import { SnapshotsResource } from './resources/snapshots.js';
|
|
@@ -50,6 +52,7 @@ export class Workspace {
|
|
|
50
52
|
network;
|
|
51
53
|
/** SSH access - enable, disable, set password/key. */
|
|
52
54
|
ssh;
|
|
55
|
+
desktop;
|
|
53
56
|
/** Public port access - expose and revoke ports. */
|
|
54
57
|
publicAccess;
|
|
55
58
|
/** Resources - CPU, memory, disk allocation. */
|
|
@@ -80,6 +83,7 @@ export class Workspace {
|
|
|
80
83
|
this.lifecycle = new LifecycleResource(this._http);
|
|
81
84
|
this.network = new NetworkResource(this._http);
|
|
82
85
|
this.ssh = new SshResource(this._http);
|
|
86
|
+
this.desktop = new DesktopResource(this._http);
|
|
83
87
|
this.publicAccess = new PublicAccessResource(this._http);
|
|
84
88
|
this.resources = new ResourcesResource(this._http);
|
|
85
89
|
this.snapshots = new SnapshotsResource(this._http);
|
|
@@ -93,11 +97,14 @@ export class Workspace {
|
|
|
93
97
|
this.domains = new DomainsResource(this._http);
|
|
94
98
|
}
|
|
95
99
|
// ── CRUD ──────────────────────────────────────────────────────────
|
|
96
|
-
/** Create a
|
|
97
|
-
async create(params = {}) {
|
|
100
|
+
/** Create a workspace; wait for its runtime unless wait_ready is false. */
|
|
101
|
+
async create(params = {}, options = {}) {
|
|
98
102
|
// Flatten convenience resource fields into config so the backend sees them.
|
|
99
103
|
// Backend extracts cpus/memory_mb/disk_size_mb from config.
|
|
100
|
-
const { cpus, memory_mb, disk_size_mb, ...rest } = params;
|
|
104
|
+
const { cpus, memory_mb, disk_size_mb, wait_ready = true, ready_timeout_seconds = 600, ...rest } = params;
|
|
105
|
+
const timeoutMs = options.timeoutMs ?? ready_timeout_seconds * 1000;
|
|
106
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0)
|
|
107
|
+
throw new RangeError('Readiness timeout must be positive');
|
|
101
108
|
const config = { ...rest.config };
|
|
102
109
|
if (cpus !== undefined)
|
|
103
110
|
config.cpus = cpus;
|
|
@@ -105,8 +112,80 @@ export class Workspace {
|
|
|
105
112
|
config.memory_mb = memory_mb;
|
|
106
113
|
if (disk_size_mb !== undefined)
|
|
107
114
|
config.disk_size_mb = disk_size_mb;
|
|
108
|
-
const body = { ...rest, config };
|
|
109
|
-
const res = await this._http.request({ method: 'POST', path: this._base, body });
|
|
115
|
+
const body = { ...rest, config, wait_ready: false };
|
|
116
|
+
const res = await this._http.request({ method: 'POST', path: this._base, body, signal: options.signal });
|
|
117
|
+
if (!wait_ready)
|
|
118
|
+
return res.workspace;
|
|
119
|
+
return this._waitUntilReady(res.workspace.id, { ...options, timeoutMs }, res.workspace);
|
|
120
|
+
}
|
|
121
|
+
/** Wait for an accepted creation using short status requests. */
|
|
122
|
+
waitUntilReady(workspaceId, options = {}) {
|
|
123
|
+
return this._waitUntilReady(workspaceId, options);
|
|
124
|
+
}
|
|
125
|
+
async _waitUntilReady(workspaceId, options, initial) {
|
|
126
|
+
const timeoutMs = options.timeoutMs ?? 600_000;
|
|
127
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0)
|
|
128
|
+
throw new RangeError('Readiness timeout must be positive');
|
|
129
|
+
const controller = new AbortController();
|
|
130
|
+
const abort = () => controller.abort(options.signal?.reason);
|
|
131
|
+
options.signal?.addEventListener('abort', abort, { once: true });
|
|
132
|
+
if (options.signal?.aborted)
|
|
133
|
+
abort();
|
|
134
|
+
let timedOut = false;
|
|
135
|
+
const timeout = setTimeout(() => { timedOut = true; controller.abort(); }, timeoutMs);
|
|
136
|
+
let workspace = initial;
|
|
137
|
+
try {
|
|
138
|
+
for (;;) {
|
|
139
|
+
controller.signal.throwIfAborted();
|
|
140
|
+
if (!workspace) {
|
|
141
|
+
try {
|
|
142
|
+
const res = await this._http.request({
|
|
143
|
+
method: 'GET', path: `${this._base}/${encodeURIComponent(workspaceId)}`, signal: controller.signal,
|
|
144
|
+
});
|
|
145
|
+
workspace = res.workspace;
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
// A short API outage must not turn an accepted creation into failure.
|
|
149
|
+
if (!(error instanceof TypeError) && !(error.status >= 500) && error.status !== 429)
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const state = workspace?.provisioning;
|
|
154
|
+
if (state?.phase === 'deleting')
|
|
155
|
+
throw new OblienError('Workspace creation was cancelled', 409, 'WORKSPACE_CREATION_CANCELLED', { workspace_id: workspaceId });
|
|
156
|
+
if (state?.state === 'failed')
|
|
157
|
+
throw new OblienError(state.error?.message || 'Workspace creation failed', 422, state.error?.code || 'CREATE_FAILED', { workspace_id: workspaceId, workspace });
|
|
158
|
+
if (workspace?.ready === true || (!state && (workspace?.info?.is_running || workspace?.info?.status === 'running')))
|
|
159
|
+
return workspace;
|
|
160
|
+
if (workspace && state?.state === 'ready' && !workspace.ready)
|
|
161
|
+
throw new OblienError('Workspace creation completed, but the workspace has stopped', 409, 'WORKSPACE_STOPPED', { workspace_id: workspaceId, workspace });
|
|
162
|
+
await new Promise((resolve, reject) => {
|
|
163
|
+
const interrupted = () => { clearTimeout(timer); reject(controller.signal.reason); };
|
|
164
|
+
const timer = setTimeout(() => { controller.signal.removeEventListener('abort', interrupted); resolve(); }, 2000);
|
|
165
|
+
controller.signal.addEventListener('abort', interrupted, { once: true });
|
|
166
|
+
if (controller.signal.aborted)
|
|
167
|
+
interrupted();
|
|
168
|
+
});
|
|
169
|
+
workspace = undefined;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
if (timedOut)
|
|
174
|
+
throw new OblienError('Timed out waiting for workspace readiness; creation continues', undefined, 'WORKSPACE_READY_TIMEOUT', { workspace_id: workspaceId });
|
|
175
|
+
if (options.signal?.aborted)
|
|
176
|
+
throw new OblienError('Stopped waiting for workspace readiness; creation continues', undefined, 'WORKSPACE_WAIT_ABORTED', { workspace_id: workspaceId });
|
|
177
|
+
throw error;
|
|
178
|
+
}
|
|
179
|
+
finally {
|
|
180
|
+
clearTimeout(timeout);
|
|
181
|
+
options.signal?.removeEventListener('abort', abort);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/** Retry a failed creation with its existing ID and configuration. */
|
|
185
|
+
async retryCreation(workspaceId) {
|
|
186
|
+
const res = await this._http.request({
|
|
187
|
+
method: 'POST', path: `${this._base}/${encodeURIComponent(workspaceId)}/provisioning/retry`,
|
|
188
|
+
});
|
|
110
189
|
return res.workspace;
|
|
111
190
|
}
|
|
112
191
|
/** List workspaces with optional pagination / filters. */
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/docs/billing.md
CHANGED
|
@@ -8,6 +8,13 @@ Namespace/workspace tokens cannot access billing.
|
|
|
8
8
|
Do not reassign a customer's namespace slug to someone else: its billing history
|
|
9
9
|
stays attached to that owner/namespace identity.
|
|
10
10
|
|
|
11
|
+
Omit `namespace` when creating a personal workspace. Its response has
|
|
12
|
+
`namespace: null`, and billing uses the owner's account wallet and account plan.
|
|
13
|
+
Namespace defaults do not apply to personal workspaces. A namespace literally named
|
|
14
|
+
`default` or `null` is a separate customer budget. An enabled namespace policy,
|
|
15
|
+
including an unlimited one, governs that namespace independently of the owner's
|
|
16
|
+
wallet balance; the wallet still records the charges.
|
|
17
|
+
|
|
11
18
|
```typescript
|
|
12
19
|
import Oblien from 'oblien';
|
|
13
20
|
|
|
@@ -46,12 +53,12 @@ const topup = await client.billing.checkout({
|
|
|
46
53
|
```
|
|
47
54
|
|
|
48
55
|
Use catalog IDs and prices. Return URLs must be host-allowlisted by the operator;
|
|
49
|
-
|
|
56
|
+
an unapproved host returns `billing_redirect_not_allowed`. Supplied URLs require HTTPS. Optional `customer` details apply
|
|
50
57
|
to the first namespace checkout, without copying the API-key owner's details.
|
|
51
58
|
Reuse an idempotency key only when retrying the identical request.
|
|
52
59
|
|
|
53
60
|
Paid subscriptions provision the namespace and set its quota. Renewals reset usage
|
|
54
|
-
once per cycle; purchased top-ups increase the ceiling and
|
|
61
|
+
once per cycle; purchased top-ups increase the ceiling and carry only their unused remainder into renewal.
|
|
55
62
|
Top-ups, renewals, and funded policy changes clear suspensions caused by billing;
|
|
56
63
|
manual suspensions stay in place. Workspaces can then be started explicitly.
|
|
57
64
|
|
|
@@ -117,6 +124,13 @@ is uncapped. `overdraft` must not exceed `suspendThreshold` when both are set.
|
|
|
117
124
|
## Access and reconciliation
|
|
118
125
|
|
|
119
126
|
`entitlement()` returns `active`, `past_due`, `credit_exhausted`, or `canceled`.
|
|
127
|
+
|
|
128
|
+
The paid tier and period belong to that namespace's subscription. An account or
|
|
129
|
+
sibling namespace subscription cannot supply them. A namespace that has never
|
|
130
|
+
subscribed returns `tierId: 'free'` with null period dates; its policy determines
|
|
131
|
+
available credit. Zero-credit defaults are initialized by both namespace creation
|
|
132
|
+
and ensure, so a new namespace immediately returns `credit_exhausted`. Usage and
|
|
133
|
+
balances preserve fractional credits.
|
|
120
134
|
`balance()` checks suspension and spending capacity; a subscription-only product
|
|
121
135
|
must also check entitlement and whether a subscription exists.
|
|
122
136
|
|
|
@@ -128,3 +142,117 @@ Webhook delivery is best effort: reconcile with `entitlement()` and
|
|
|
128
142
|
`subscription()` when the customer returns to billing or an event is missed.
|
|
129
143
|
|
|
130
144
|
[Full API contract](https://oblien.com/docs/api/billing)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
## Reseller offers: price, allowance and product text
|
|
148
|
+
|
|
149
|
+
`POST /billing/checkout` also accepts a server-defined `offer` instead of a catalog `planTierId` or `packId`. Keep this request behind your authenticated backend and resolve the customer's namespace from your own database.
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"namespace": "tenant-a",
|
|
154
|
+
"kind": "subscription",
|
|
155
|
+
"billingInterval": "monthly",
|
|
156
|
+
"offer": {
|
|
157
|
+
"reference": "compute-starter-v1",
|
|
158
|
+
"name": "Compute Starter",
|
|
159
|
+
"description": "Your hosted application compute plan",
|
|
160
|
+
"unitAmount": 1000,
|
|
161
|
+
"currency": "usd",
|
|
162
|
+
"credits": 100
|
|
163
|
+
},
|
|
164
|
+
"metadata": { "appOrderId": "order-123", "planVersion": "1" },
|
|
165
|
+
"idempotencyKey": "order-123",
|
|
166
|
+
"customer": { "email": "customer@example.com" },
|
|
167
|
+
"successUrl": "https://app.example.com/billing/return",
|
|
168
|
+
"cancelUrl": "https://app.example.com/billing"
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
This charges **$10**, funds the **owner's Oblien wallet** at the standard rate (currently **1,000 platform credits**), and grants **100 namespace credits**. It does not pay out to the reseller. Checkout and invoices use the chosen product name/description. Those display fields do not grant CPU minutes or increase account resource capacity. `kind: 'topup'` adds the allowance as purchased credits; `subscription` sets the included allowance for each paid monthly/yearly cycle. Unused purchased credits carry across renewals; spent top-ups do not replenish.
|
|
173
|
+
|
|
174
|
+
| Field | Contract |
|
|
175
|
+
| --- | --- |
|
|
176
|
+
| `offer.reference` | Optional application catalog reference, at most 100 characters |
|
|
177
|
+
| `offer.name` | Required customer-facing name, at most 120 characters |
|
|
178
|
+
| `offer.description` | Optional customer-facing text, at most 500 characters |
|
|
179
|
+
| `offer.unitAmount` | Required integer USD cents, 100–1,000,000 ($1–$10,000) |
|
|
180
|
+
| `offer.currency` | `usd` only; defaults to `usd` |
|
|
181
|
+
| `offer.credits` | Required integer namespace allowance, 1–1,000,000,000; independent of wallet funding |
|
|
182
|
+
| `metadata` | Optional, only with `offer`: at most 35 string entries; key `[A-Za-z0-9_]`, length 1–40; value at most 500 characters without control characters |
|
|
183
|
+
| `idempotencyKey` | Required with `offer`, nonempty string up to 200 characters; reuse only for an identical request |
|
|
184
|
+
|
|
185
|
+
Metadata may not override `service`, `user_id`, `client_id`, `namespace`, `billing_order_id`, `kind`, `credits`, `amount`, `credits_per_cycle`, `plan_family`, `billing_interval`, prototype keys, or any `oblien_` prefix. Unknown offer fields are rejected. Customer accepts only `email` and/or `name`; provider customer IDs are never accepted. Custom offers currently exclude coupons, trials, proration and portal price changes.
|
|
186
|
+
|
|
187
|
+
The contract is saved before contacting the provider. It binds owner, namespace, amount, allowance, metadata, provider customer and checkout mode. Reusing a key with a changed request returns `409 billing_idempotency_conflict`. An interrupted checkout older than the provider's safe idempotency window returns `409 billing_checkout_reconciliation_required`; do not create another payment blindly.
|
|
188
|
+
|
|
189
|
+
### Inspect a reseller checkout
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
GET /billing/checkout/:checkoutId?namespace=tenant-a
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Requires an `admin` or `billing` credential. Looks up both owner and namespace before contacting Stripe. Returns `404 no_checkout` for an unknown or differently scoped session. This lookup supports saved reseller offers; catalog payments use entitlement/subscription and payment events.
|
|
196
|
+
|
|
197
|
+
```json
|
|
198
|
+
{
|
|
199
|
+
"success": true,
|
|
200
|
+
"namespace": "tenant-a",
|
|
201
|
+
"checkout": {
|
|
202
|
+
"id": "cs_...",
|
|
203
|
+
"kind": "subscription",
|
|
204
|
+
"status": "complete",
|
|
205
|
+
"paymentStatus": "paid",
|
|
206
|
+
"fulfilled": true,
|
|
207
|
+
"fulfillmentStatus": "completed",
|
|
208
|
+
"walletCreditsGranted": 1000,
|
|
209
|
+
"namespaceCreditsGranted": 100,
|
|
210
|
+
"billingInterval": "monthly",
|
|
211
|
+
"subscriptionId": "sub_...",
|
|
212
|
+
"offer": {
|
|
213
|
+
"reference": "compute-starter-v1",
|
|
214
|
+
"name": "Compute Starter",
|
|
215
|
+
"unitAmount": 1000,
|
|
216
|
+
"currency": "usd",
|
|
217
|
+
"credits": 100
|
|
218
|
+
},
|
|
219
|
+
"metadata": { "appOrderId": "order-123", "planVersion": "1" }
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
`fulfilled` means initial processing finished; always inspect the net credit fields and `fulfillmentStatus` for `partially_refunded`, `refunded` or `disputed`. Use `GET /billing/entitlement` and `/billing/balance` for current access. The lookup describes the checkout's initial payment, not its later renewal invoices. Reseller subscriptions also expose `offer` and `metadata` through `GET /billing/subscription`; their `tierId` is `reseller` and does not upgrade owner capacity.
|
|
225
|
+
|
|
226
|
+
Custom `payment.succeeded`, `subscription.renewed` and `entitlement.changed` events include `orgRef`, `namespace`, `kind`, `checkoutId`, `paymentId`, saved `offer`, application `metadata`, `amount: { unitAmount, currency }`, net `walletCredits` and `namespaceCredits`. Fulfillment uses stable receipt-based event IDs. Verify the raw-body HMAC, deduplicate by event ID, then re-read entitlement to handle reordering. Outgoing application webhooks are best effort and require reconciliation polling after missed delivery.
|
|
227
|
+
|
|
228
|
+
### Useful checkout and portal errors
|
|
229
|
+
|
|
230
|
+
Billing responses include a safe diagnostic code and message. Internal failures include a `details.reference` correlated with backend logs; SQL and raw provider requests are not returned.
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"success": false,
|
|
235
|
+
"error": "billing_database_collation_error",
|
|
236
|
+
"code": "billing_database_collation_error",
|
|
237
|
+
"message": "Oblien billing storage is misconfigured. Contact Oblien support with the reference below.",
|
|
238
|
+
"details": {
|
|
239
|
+
"cause": "ER_CANT_AGGREGATE_NCOLLATIONS",
|
|
240
|
+
"retryable": false,
|
|
241
|
+
"reference": "support-reference"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
| HTTP | Code | Action |
|
|
247
|
+
| --- | --- | --- |
|
|
248
|
+
| 400 | `invalid_offer`, `invalid_billing_metadata`, `ambiguous_checkout_offer` | Correct the backend request |
|
|
249
|
+
| 400 | `billing_redirect_not_allowed` | Ask the operator to allowlist the browser return host in `REDIRECT_ALLOWED_HOSTS` |
|
|
250
|
+
| 401 / 403 | authentication or scope error | Use deployed routes and server-side `admin`/`billing` credentials |
|
|
251
|
+
| 404 | `no_customer`, `no_subscription`, `no_checkout` | No matching record in this owner/namespace; never fall back to another customer |
|
|
252
|
+
| 409 | `billing_customer_conflict`, `billing_identity_conflict` | Reconcile an isolated customer binding; do not bypass the check |
|
|
253
|
+
| 409 | `billing_idempotency_conflict`, `billing_checkout_reconciliation_required` | Reconcile the existing application order |
|
|
254
|
+
| 502 / 503 | `billing_provider_configuration_error`, `billing_provider_unavailable`, `billing_provider_rejected`, `billing_storage_unavailable`, `billing_database_collation_error` | Display the safe message/reference and fix the provider or backend configuration |
|
|
255
|
+
|
|
256
|
+
Supplied checkout and portal return URLs must be HTTPS and allowlisted. An invalid host returns an error; it is not silently replaced. Omitted URLs use the platform default. Retrying payment creation must reuse the original idempotency key.
|
|
257
|
+
|
|
258
|
+
SDK 2.4.0 adds typed `offer`/`metadata` and `client.billing.checkoutStatus(namespace, checkoutId)`. For a complete customer onboarding, resource-limit, VM creation and signed webhook walkthrough, see [Build a SaaS or VM reseller](https://oblien.com/docs/saas-reselling).
|
package/docs/desktop.md
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Remote desktop
|
|
2
|
+
|
|
3
|
+
Desktop is an image capability. The same API works for Mac and Linux desktop
|
|
4
|
+
providers. Access defaults off and changes without reboot. Disabling it closes
|
|
5
|
+
desktop sessions and preserves terminal/SSH/workloads. The saved choice survives
|
|
6
|
+
workspace restart.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
const runtime = await client.workspaces.runtime(workspaceId);
|
|
10
|
+
if ((await runtime.desktop.status()).supported) {
|
|
11
|
+
await runtime.desktop.enable();
|
|
12
|
+
const viewerUrl = runtime.desktop.url(); // Credential-bearing URL: keep private.
|
|
13
|
+
const tunnel = await runtime.desktop.tunnel({ port: 5901 }); // Node.js only
|
|
14
|
+
// Connect a VNC client to tunnel.url (vnc://127.0.0.1:5901).
|
|
15
|
+
await tunnel.close();
|
|
16
|
+
await runtime.desktop.disable();
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Status includes `supported`, `enabled`, `available`, `credentials` and
|
|
21
|
+
`transports`. If `credentials` is true, `runtime.desktop.credentials()` returns
|
|
22
|
+
the image's OS account. For Mac this is `oblien` with its per-workspace password,
|
|
23
|
+
also used by SSH. The method requires enabled desktop access.
|
|
24
|
+
|
|
25
|
+
Creation accepts `config.desktop: { enabled: true }`. Live changes use these
|
|
26
|
+
methods without changing CPU, RAM or boot settings. `forTarget()` changes command
|
|
27
|
+
and file targets, while desktop continues to address the workspace image.
|
|
28
|
+
|
|
29
|
+
## CLI
|
|
30
|
+
|
|
31
|
+
The desktop-enabled 2.3.2 build is an official downloadable package:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
npm install -g https://oblien.com/downloads/oblien-2.3.2.tgz
|
|
35
|
+
oblien login
|
|
36
|
+
oblien desktop status WORKSPACE_ID
|
|
37
|
+
oblien desktop enable WORKSPACE_ID
|
|
38
|
+
oblien desktop vnc WORKSPACE_ID --port 5901
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Keep the command running and open `vnc://127.0.0.1:5901` in a VNC client.
|
|
42
|
+
`oblien desktop credentials WORKSPACE_ID` retrieves the optional OS login account.
|
|
43
|
+
Ctrl+C closes the local tunnel. `oblien desktop disable WORKSPACE_ID` disconnects
|
|
44
|
+
all desktop clients for that workspace.
|
|
45
|
+
|
|
46
|
+
Browser and native VNC traffic use the same authenticated WSS gateway route.
|
|
47
|
+
The Node tunnel sends its credential in an Authorization header, binds only to
|
|
48
|
+
local loopback and applies stream backpressure. No public raw VNC port is needed.
|
|
49
|
+
Token rotation or Runtime API disable revokes these connections too; obtain a
|
|
50
|
+
fresh runtime credential to reconnect. The package is downloadable independently
|
|
51
|
+
of npm registry publication.
|
|
52
|
+
|
|
53
|
+
## Native SSH/VNC apps
|
|
54
|
+
|
|
55
|
+
Enable desktop access, then issue an eight-hour desktop-only connection:
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const connection = await client.workspaces.desktop.sshConnection(workspaceId);
|
|
59
|
+
// Or: await client.workspace(workspaceId).desktop.sshConnection();
|
|
60
|
+
// Treat connection.ssh.password as a secret; do not log it.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
oblien desktop ssh WORKSPACE_ID
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
The response contains `ssh: { host, port, username, password, host_key_fingerprint }`,
|
|
68
|
+
`vnc: { host, port, authentication }` and `expires_at`. In a VNC app with built-in
|
|
69
|
+
SSH tunneling, use the supplied SSH settings and the VNC destination
|
|
70
|
+
`127.0.0.1:5900`. SSH password authentication grants access only to this desktop,
|
|
71
|
+
with no shell or arbitrary forwarding. Verify the host fingerprint on first use.
|
|
72
|
+
No local CLI relay or enabled guest SSH service is required for this path.
|
|
73
|
+
|
|
74
|
+
Expiry closes active connections. Desktop disable rejects access while disabled;
|
|
75
|
+
re-enable permits unexpired credentials again. Runtime token rotation permanently
|
|
76
|
+
revokes previous desktop credentials. Issuing another connection does not revoke
|
|
77
|
+
older ones. The OS login, if required, uses separate account credentials.
|
|
78
|
+
|
|
79
|
+
Browser/CLI WSS stays on `workspace.oblien.com` port 443, and managed SSH uses
|
|
80
|
+
`ssh.oblien.com` port 22. Both reach the same private runtime desktop endpoint.
|
|
81
|
+
There is no public raw VNC port. See the
|
|
82
|
+
[native connection guide](https://oblien.com/docs/workspace/desktop#mobile-and-remote-devices)
|
|
83
|
+
for client settings, expiry, security and clipboard limitations.
|
package/docs/errors.md
CHANGED
|
@@ -27,8 +27,14 @@ try {
|
|
|
27
27
|
| `AuthenticationError` | 401 | Invalid or missing credentials |
|
|
28
28
|
| `PaymentRequiredError` | 402 | Credit quota exceeded |
|
|
29
29
|
| `NotFoundError` | 404 | Resource does not exist |
|
|
30
|
-
| `ConflictError` | 409 | Resource in wrong state |
|
|
30
|
+
| `ConflictError` | 409 | Resource in wrong state or workspace/namespace/pool limit reached |
|
|
31
31
|
| `ValidationError` | 422 | Invalid parameters |
|
|
32
32
|
| `RateLimitError` | 429 | Too many requests |
|
|
33
33
|
|
|
34
34
|
All subclasses extend `OblienError`, so a single `instanceof OblienError` catch handles everything while still exposing `.code`/`.message`/`.details`/`.requestId`.
|
|
35
|
+
|
|
36
|
+
Legacy API versions may return HTTP 200 with `success: false` for workspace limits.
|
|
37
|
+
The SDK rejects these responses too. The three limit codes
|
|
38
|
+
`SANDBOX_LIMIT_REACHED`, `NAMESPACE_LIMIT_REACHED`, and `POOL_LIMIT_REACHED` become
|
|
39
|
+
`ConflictError`, with the original HTTP status retained in `.status`. HTTP failures
|
|
40
|
+
are also rejected when their JSON body omits `success: false`.
|