oblien 2.2.36 → 2.2.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -274
- package/dist/cdn.d.ts +105 -0
- package/dist/cdn.d.ts.map +1 -0
- package/dist/cdn.js +201 -0
- package/dist/cdn.js.map +1 -0
- package/dist/cli/commands/cdn.d.ts +3 -0
- package/dist/cli/commands/cdn.d.ts.map +1 -0
- package/dist/cli/commands/cdn.js +216 -0
- package/dist/cli/commands/cdn.js.map +1 -0
- package/dist/cli/commands/namespaces.js +19 -6
- package/dist/cli/commands/namespaces.js.map +1 -1
- package/dist/cli/commands/serve.d.ts +17 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +113 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/tunnel.d.ts +1 -0
- package/dist/cli/commands/tunnel.d.ts.map +1 -1
- package/dist/cli/commands/tunnel.js +100 -3
- package/dist/cli/commands/tunnel.js.map +1 -1
- package/dist/cli/index.js +14 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/client.d.ts +12 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +16 -1
- package/dist/client.js.map +1 -1
- package/dist/domain.d.ts +20 -1
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +37 -0
- package/dist/domain.js.map +1 -1
- package/dist/edge-proxy.d.ts +50 -11
- package/dist/edge-proxy.d.ts.map +1 -1
- package/dist/edge-proxy.js +55 -10
- package/dist/edge-proxy.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +145 -7
- package/dist/mcp/tools.js.map +1 -1
- package/dist/namespace.d.ts +27 -5
- package/dist/namespace.d.ts.map +1 -1
- package/dist/namespace.js +30 -4
- package/dist/namespace.js.map +1 -1
- package/dist/notifications.d.ts +72 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +93 -0
- package/dist/notifications.js.map +1 -0
- package/dist/runtime/proxy.d.ts +55 -0
- package/dist/runtime/proxy.d.ts.map +1 -0
- package/dist/runtime/proxy.js +79 -0
- package/dist/runtime/proxy.js.map +1 -0
- package/dist/runtime.d.ts +16 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +18 -0
- package/dist/runtime.js.map +1 -1
- package/dist/server/static.d.ts +81 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +465 -0
- package/dist/server/static.js.map +1 -0
- package/dist/types/cdn.d.ts +301 -0
- package/dist/types/cdn.d.ts.map +1 -0
- package/dist/types/cdn.js +10 -0
- package/dist/types/cdn.js.map +1 -0
- package/dist/types/client.d.ts +10 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/edge-proxy.d.ts +50 -1
- package/dist/types/edge-proxy.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/namespace.d.ts +55 -9
- package/dist/types/namespace.d.ts.map +1 -1
- package/dist/types/notifications.d.ts +77 -0
- package/dist/types/notifications.d.ts.map +1 -0
- package/dist/types/notifications.js +3 -0
- package/dist/types/notifications.js.map +1 -0
- package/dist/types/webhooks.d.ts +52 -0
- package/dist/types/webhooks.d.ts.map +1 -0
- package/dist/types/webhooks.js +3 -0
- package/dist/types/webhooks.js.map +1 -0
- package/dist/types/workspace-resources.d.ts +48 -0
- package/dist/types/workspace-resources.d.ts.map +1 -1
- package/dist/webhooks.d.ts +53 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +60 -0
- package/dist/webhooks.js.map +1 -0
- package/docs/analytics.md +36 -0
- package/docs/cdn.md +119 -0
- package/docs/domains.md +47 -0
- package/docs/edge-proxy.md +44 -0
- package/docs/edge-tunnel.md +42 -0
- package/docs/errors.md +34 -0
- package/docs/namespaces.md +69 -0
- package/docs/notifications.md +40 -0
- package/docs/pages.md +26 -0
- package/docs/runtime.md +83 -0
- package/docs/serve.md +84 -0
- package/docs/tokens.md +24 -0
- package/docs/webhooks.md +42 -0
- package/docs/workspaces.md +82 -0
- package/package.json +5 -2
package/dist/cdn.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { buildOblienError } from './http-error.js';
|
|
2
|
+
/** Coerce arbitrary file bytes into a Blob suitable for multipart upload. */
|
|
3
|
+
function toBlob(input) {
|
|
4
|
+
if (input.data instanceof Blob)
|
|
5
|
+
return input.data;
|
|
6
|
+
const type = input.contentType || 'application/octet-stream';
|
|
7
|
+
return new Blob([input.data], { type });
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* CDN — issue upload tokens, upload files, and manage stored files.
|
|
11
|
+
*
|
|
12
|
+
* The CDN spans two planes. Token issuance and file management go through the
|
|
13
|
+
* API host (`client._http`); uploads go directly to the CDN edge host with a
|
|
14
|
+
* short-lived token. Every operation is namespace-aware: pass `namespace` to
|
|
15
|
+
* scope a token/upload/listing, or omit it (admin/dashboard callers see all of
|
|
16
|
+
* their files). Namespace-scoped API keys are automatically pinned to their
|
|
17
|
+
* own namespace by the server.
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* import Oblien from 'oblien';
|
|
21
|
+
* import { readFileSync } from 'node:fs';
|
|
22
|
+
* const client = new Oblien({ clientId, clientSecret });
|
|
23
|
+
*
|
|
24
|
+
* // One-shot: mints a token and uploads, scoped to a namespace
|
|
25
|
+
* const { url } = await client.cdn.upload(
|
|
26
|
+
* { data: readFileSync('./logo.png'), filename: 'logo.png', contentType: 'image/png' },
|
|
27
|
+
* { namespace: 'tenant-a' },
|
|
28
|
+
* );
|
|
29
|
+
*
|
|
30
|
+
* // List / stats for that namespace
|
|
31
|
+
* const { data } = await client.cdn.list({ namespace: 'tenant-a' });
|
|
32
|
+
* await client.cdn.stats({ namespace: 'tenant-a' });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export class Cdn {
|
|
36
|
+
/** @internal */
|
|
37
|
+
_http;
|
|
38
|
+
/** @internal — CDN edge base, incl. the `/api` mount (e.g. https://cdn.oblien.com/api). */
|
|
39
|
+
_cdnBaseUrl;
|
|
40
|
+
_base = '/cdn';
|
|
41
|
+
constructor(client) {
|
|
42
|
+
this._http = client._http;
|
|
43
|
+
this._cdnBaseUrl = client._cdnBaseUrl;
|
|
44
|
+
}
|
|
45
|
+
// ── Token issuance (API plane) ─────────────────────────────────────
|
|
46
|
+
/**
|
|
47
|
+
* Mint a short-lived (1 min) USER-scope CDN token (upload + process).
|
|
48
|
+
* Requires an admin- or namespace-scoped API key.
|
|
49
|
+
*/
|
|
50
|
+
async token(params = {}) {
|
|
51
|
+
return this._http.request({
|
|
52
|
+
method: 'POST',
|
|
53
|
+
path: `${this._base}/token`,
|
|
54
|
+
body: params,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Mint a short-lived ADMIN-scope CDN token (full edge access incl. delete).
|
|
59
|
+
* Requires an admin API key.
|
|
60
|
+
*/
|
|
61
|
+
async adminToken(params = {}) {
|
|
62
|
+
return this._http.request({
|
|
63
|
+
method: 'POST',
|
|
64
|
+
path: `${this._base}/token/admin`,
|
|
65
|
+
body: params,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// ── Upload (edge plane) ────────────────────────────────────────────
|
|
69
|
+
/**
|
|
70
|
+
* Upload a single file to the CDN edge. Mints a user token automatically
|
|
71
|
+
* (bound to `params.namespace`, carrying `params.metadata` — variant/TTL
|
|
72
|
+
* options), or reuses `params.token` if given.
|
|
73
|
+
*/
|
|
74
|
+
async upload(file, params = {}) {
|
|
75
|
+
const token = params.token ?? (await this.token({ namespace: params.namespace, variants: params.variants, metadata: params.metadata })).token;
|
|
76
|
+
const form = new FormData();
|
|
77
|
+
form.append('file', toBlob(file), file.filename);
|
|
78
|
+
return this._edgeRequest('POST', '/', token, form);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Upload multiple files in one request (field `files`). Mints a single token
|
|
82
|
+
* for the batch, bound to `params.namespace` and carrying `params.metadata`.
|
|
83
|
+
*/
|
|
84
|
+
async uploadMany(files, params = {}) {
|
|
85
|
+
const token = params.token ?? (await this.token({ namespace: params.namespace, variants: params.variants, metadata: params.metadata })).token;
|
|
86
|
+
const form = new FormData();
|
|
87
|
+
for (const file of files) {
|
|
88
|
+
form.append('files', toBlob(file), file.filename);
|
|
89
|
+
}
|
|
90
|
+
return this._edgeRequest('POST', '/multiple', token, form);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Ingest files from remote URLs (edge downloads + processes them). Variant
|
|
94
|
+
* options travel in the token metadata (the edge reads them from the permit),
|
|
95
|
+
* so `metadata` is baked into the auto-minted token; the request body only
|
|
96
|
+
* carries `urls` + batch controls.
|
|
97
|
+
*/
|
|
98
|
+
async processUrls(params) {
|
|
99
|
+
const { token: reuse, namespace, variants, metadata, urls, maxBatch, concurrency } = params;
|
|
100
|
+
const token = reuse ?? (await this.token({ namespace, variants, metadata })).token;
|
|
101
|
+
return this._edgeRequest('POST', '/process-urls', token, { urls, maxBatch, concurrency });
|
|
102
|
+
}
|
|
103
|
+
/** Get the edge upload size/count limits. Mints a user token if none given. */
|
|
104
|
+
async getLimits(params = {}) {
|
|
105
|
+
const token = params.token ?? (await this.token({ namespace: params.namespace })).token;
|
|
106
|
+
return this._edgeRequest('GET', '/limits', token);
|
|
107
|
+
}
|
|
108
|
+
/** Get the available image variant configurations. Mints a user token if none given. */
|
|
109
|
+
async getVariantOptions(params = {}) {
|
|
110
|
+
const token = params.token ?? (await this.token({ namespace: params.namespace })).token;
|
|
111
|
+
return this._edgeRequest('GET', '/variants', token);
|
|
112
|
+
}
|
|
113
|
+
// ── File management (API plane) ────────────────────────────────────
|
|
114
|
+
/** List logged files for the caller, optionally filtered by namespace. */
|
|
115
|
+
async list(params = {}) {
|
|
116
|
+
return this._http.request({
|
|
117
|
+
method: 'GET',
|
|
118
|
+
path: `${this._base}/files`,
|
|
119
|
+
query: params,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/** Storage statistics for the caller, optionally scoped to a namespace. */
|
|
123
|
+
async stats(params = {}) {
|
|
124
|
+
return this._http.request({
|
|
125
|
+
method: 'GET',
|
|
126
|
+
path: `${this._base}/stats`,
|
|
127
|
+
query: params,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Per-namespace usage for a month: ingest (uploaded in the month, incl.
|
|
132
|
+
* variants) + current active footprint, and the configured caps.
|
|
133
|
+
*/
|
|
134
|
+
async usage(params = {}) {
|
|
135
|
+
return this._http.request({
|
|
136
|
+
method: 'GET',
|
|
137
|
+
path: `${this._base}/usage`,
|
|
138
|
+
query: params,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Windowed ingest series (bytes/files uploaded per day or month), zero-filled
|
|
143
|
+
* over the window — for usage charts.
|
|
144
|
+
*/
|
|
145
|
+
async usageSeries(params = {}) {
|
|
146
|
+
return this._http.request({
|
|
147
|
+
method: 'GET',
|
|
148
|
+
path: `${this._base}/usage/series`,
|
|
149
|
+
query: params,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/** Get a single logged file by its id. */
|
|
153
|
+
async get(fileId) {
|
|
154
|
+
return this._http.request({
|
|
155
|
+
method: 'GET',
|
|
156
|
+
path: `${this._base}/files/${fileId}`,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/** Soft-delete a logged file. */
|
|
160
|
+
async delete(fileId) {
|
|
161
|
+
return this._http.request({
|
|
162
|
+
method: 'DELETE',
|
|
163
|
+
path: `${this._base}/files/${fileId}`,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/** Restore a soft-deleted file. */
|
|
167
|
+
async restore(fileId) {
|
|
168
|
+
return this._http.request({
|
|
169
|
+
method: 'POST',
|
|
170
|
+
path: `${this._base}/files/${fileId}/restore`,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
// ── Internals ──────────────────────────────────────────────────────
|
|
174
|
+
/**
|
|
175
|
+
* Call the CDN edge host with a Bearer token. Uploads pass a `FormData`
|
|
176
|
+
* body; JSON endpoints pass a plain object. Mirrors HttpClient's
|
|
177
|
+
* body-first error handling and reuses the shared error builder.
|
|
178
|
+
*/
|
|
179
|
+
async _edgeRequest(method, path, token, body) {
|
|
180
|
+
const url = `${this._cdnBaseUrl}${path}`;
|
|
181
|
+
const headers = { Authorization: `Bearer ${token}` };
|
|
182
|
+
const init = { method, headers };
|
|
183
|
+
if (body instanceof FormData) {
|
|
184
|
+
init.body = body; // fetch sets the multipart boundary content-type
|
|
185
|
+
}
|
|
186
|
+
else if (body !== undefined) {
|
|
187
|
+
headers['Content-Type'] = 'application/json';
|
|
188
|
+
init.body = JSON.stringify(body);
|
|
189
|
+
}
|
|
190
|
+
const res = await fetch(url, init);
|
|
191
|
+
const parsed = await res.json().catch(() => null);
|
|
192
|
+
if (parsed && typeof parsed === 'object' && parsed.success === false) {
|
|
193
|
+
throw buildOblienError(res.status, parsed);
|
|
194
|
+
}
|
|
195
|
+
if (!res.ok && res.status >= 400) {
|
|
196
|
+
throw buildOblienError(res.status, parsed);
|
|
197
|
+
}
|
|
198
|
+
return parsed;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=cdn.js.map
|
package/dist/cdn.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdn.js","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cdn.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwD3C,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C3E"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { basename, extname } from 'node:path';
|
|
3
|
+
import { buildClient } from '../auth.js';
|
|
4
|
+
import { printResult, printSuccess } from '../output.js';
|
|
5
|
+
import { parseFlag, parseNumber, requireId, isHelp } from './helpers.js';
|
|
6
|
+
/** Minimal extension → MIME map so uploads declare a sensible content type. */
|
|
7
|
+
const MIME_BY_EXT = {
|
|
8
|
+
'.png': 'image/png',
|
|
9
|
+
'.jpg': 'image/jpeg',
|
|
10
|
+
'.jpeg': 'image/jpeg',
|
|
11
|
+
'.gif': 'image/gif',
|
|
12
|
+
'.webp': 'image/webp',
|
|
13
|
+
'.svg': 'image/svg+xml',
|
|
14
|
+
'.pdf': 'application/pdf',
|
|
15
|
+
'.json': 'application/json',
|
|
16
|
+
'.txt': 'text/plain',
|
|
17
|
+
'.csv': 'text/csv',
|
|
18
|
+
'.mp4': 'video/mp4',
|
|
19
|
+
'.webm': 'video/webm',
|
|
20
|
+
'.mp3': 'audio/mpeg',
|
|
21
|
+
};
|
|
22
|
+
function inferContentType(filename) {
|
|
23
|
+
return MIME_BY_EXT[extname(filename).toLowerCase()] || 'application/octet-stream';
|
|
24
|
+
}
|
|
25
|
+
function parseJsonObjectFlag(args, flag) {
|
|
26
|
+
const raw = parseFlag(args, flag);
|
|
27
|
+
if (!raw)
|
|
28
|
+
return undefined;
|
|
29
|
+
try {
|
|
30
|
+
const v = JSON.parse(raw);
|
|
31
|
+
if (v && typeof v === 'object' && !Array.isArray(v))
|
|
32
|
+
return v;
|
|
33
|
+
}
|
|
34
|
+
catch { /* fall through to the error below */ }
|
|
35
|
+
console.error(`${flag} must be a JSON object`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build the API-issued variant directives from flags: `--variants <json>` is the
|
|
40
|
+
* full object (incl. customVariants); `--names`, `--ttl`, `--primary` are
|
|
41
|
+
* convenience overlays on top of it.
|
|
42
|
+
*/
|
|
43
|
+
function buildVariants(args) {
|
|
44
|
+
const v = { ...(parseJsonObjectFlag(args, '--variants') ?? {}) };
|
|
45
|
+
const names = parseFlag(args, '--names');
|
|
46
|
+
if (names)
|
|
47
|
+
v.variantNames = names.split(',').map(s => s.trim()).filter(Boolean);
|
|
48
|
+
const ttl = parseNumber(args, '--ttl');
|
|
49
|
+
if (ttl !== undefined)
|
|
50
|
+
v.ttl = ttl;
|
|
51
|
+
const primary = parseFlag(args, '--primary');
|
|
52
|
+
if (primary)
|
|
53
|
+
v.primary = primary;
|
|
54
|
+
return Object.keys(v).length ? v : undefined;
|
|
55
|
+
}
|
|
56
|
+
/** Opaque customer metadata from `--meta <json>` (stored + echoed, not interpreted). */
|
|
57
|
+
function buildMeta(args) {
|
|
58
|
+
return parseJsonObjectFlag(args, '--meta');
|
|
59
|
+
}
|
|
60
|
+
export async function cdnCmd(args, flags) {
|
|
61
|
+
const sub = args[0];
|
|
62
|
+
switch (sub) {
|
|
63
|
+
case 'token': return cdnToken(args.slice(1), flags, 'user');
|
|
64
|
+
case 'admin-token': return cdnToken(args.slice(1), flags, 'admin');
|
|
65
|
+
case 'upload': return cdnUpload(args.slice(1), flags);
|
|
66
|
+
case 'list': return cdnList(args.slice(1), flags);
|
|
67
|
+
case 'stats': return cdnStats(args.slice(1), flags);
|
|
68
|
+
case 'limits': return cdnLimits(args.slice(1), flags);
|
|
69
|
+
case 'get': return cdnGet(args.slice(1), flags);
|
|
70
|
+
case 'delete': return cdnDelete(args.slice(1), flags);
|
|
71
|
+
case 'restore': return cdnRestore(args.slice(1), flags);
|
|
72
|
+
default:
|
|
73
|
+
if (!isHelp(sub))
|
|
74
|
+
console.error(`Unknown cdn subcommand: ${sub}\n`);
|
|
75
|
+
console.log(`
|
|
76
|
+
oblien cdn - CDN uploads and file management (namespace-aware)
|
|
77
|
+
|
|
78
|
+
Usage:
|
|
79
|
+
oblien cdn upload <file> [--namespace <slug>] [--content-type <type>]
|
|
80
|
+
[--names a,b] [--variants <json>] [--ttl <sec>] [--primary <name>] [--meta <json>]
|
|
81
|
+
oblien cdn token [--namespace <slug>] [--names a,b] [--variants <json>] [--ttl <sec>]
|
|
82
|
+
oblien cdn admin-token [--namespace <slug>] Mint an ADMIN-scope token
|
|
83
|
+
oblien cdn list [--namespace <slug>] [--limit <n>] [--page <n>] [--include-deleted]
|
|
84
|
+
oblien cdn stats [--namespace <slug>]
|
|
85
|
+
oblien cdn limits
|
|
86
|
+
oblien cdn get <file-id>
|
|
87
|
+
oblien cdn delete <file-id>
|
|
88
|
+
oblien cdn restore <file-id>
|
|
89
|
+
|
|
90
|
+
Variants are API-issued into the token (chosen per request; no server presets):
|
|
91
|
+
--names a,b variant names to generate (default sizes for known names)
|
|
92
|
+
--variants '<json>' full directives, incl. customVariants, e.g.
|
|
93
|
+
'{"variantNames":["hero"],"customVariants":{"hero":{"width":800,"height":400}}}'
|
|
94
|
+
--ttl <sec> auto-delete the upload after N seconds
|
|
95
|
+
--meta '<json>' OPAQUE customer metadata (stored + echoed, not interpreted)
|
|
96
|
+
|
|
97
|
+
Examples:
|
|
98
|
+
oblien cdn upload ./logo.png --namespace tenant-a --names thumb,medium
|
|
99
|
+
oblien cdn upload ./a.png --variants '{"variantNames":["sq"],"customVariants":{"sq":{"width":200,"height":200}}}'
|
|
100
|
+
oblien cdn upload ./tmp.png --ttl 3600 --meta '{"orderId":"abc123"}'
|
|
101
|
+
oblien cdn list --namespace tenant-a --json
|
|
102
|
+
oblien cdn delete 42
|
|
103
|
+
`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async function cdnToken(args, flags, scope) {
|
|
107
|
+
const namespace = parseFlag(args, '--namespace');
|
|
108
|
+
const variants = buildVariants(args);
|
|
109
|
+
const metadata = buildMeta(args);
|
|
110
|
+
const client = buildClient(flags);
|
|
111
|
+
const res = scope === 'admin'
|
|
112
|
+
? await client.cdn.adminToken({ namespace, variants, metadata })
|
|
113
|
+
: await client.cdn.token({ namespace, variants, metadata });
|
|
114
|
+
if (flags.json) {
|
|
115
|
+
printResult(res, true);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
printSuccess(`CDN ${res.scope} token minted${res.namespace ? ` (namespace: ${res.namespace})` : ''}, expires in ${res.expiresIn}`);
|
|
119
|
+
console.log(`\nToken:\n${res.token}\n`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function cdnUpload(args, flags) {
|
|
123
|
+
// Find the file positional, skipping value-taking flags and their values so
|
|
124
|
+
// `cdn upload --namespace ns ./file` works, not just `cdn upload ./file ...`.
|
|
125
|
+
const valueFlags = new Set(['--namespace', '--content-type', '--variants', '--names', '--meta', '--ttl', '--primary']);
|
|
126
|
+
let filePath;
|
|
127
|
+
for (let i = 0; i < args.length; i++) {
|
|
128
|
+
if (valueFlags.has(args[i])) {
|
|
129
|
+
i++;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (!args[i].startsWith('-')) {
|
|
133
|
+
filePath = args[i];
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (!filePath) {
|
|
138
|
+
console.error('Usage: oblien cdn upload <file> [--namespace <slug>] [--content-type <type>] [--names a,b] [--variants <json>] [--ttl <sec>] [--meta <json>]');
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
const namespace = parseFlag(args, '--namespace');
|
|
142
|
+
const filename = basename(filePath);
|
|
143
|
+
const contentType = parseFlag(args, '--content-type') || inferContentType(filename);
|
|
144
|
+
const variants = buildVariants(args);
|
|
145
|
+
const metadata = buildMeta(args);
|
|
146
|
+
const data = readFileSync(filePath);
|
|
147
|
+
const client = buildClient(flags);
|
|
148
|
+
const res = await client.cdn.upload({ data, filename, contentType }, { namespace, variants, metadata });
|
|
149
|
+
if (flags.json) {
|
|
150
|
+
printResult(res, true);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
printSuccess(`Uploaded ${filename}${namespace ? ` to namespace ${namespace}` : ''}`);
|
|
154
|
+
console.log(`\nURL: ${res.url}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function cdnList(args, flags) {
|
|
158
|
+
const client = buildClient(flags);
|
|
159
|
+
const res = await client.cdn.list({
|
|
160
|
+
namespace: parseFlag(args, '--namespace'),
|
|
161
|
+
page: parseNumber(args, '--page'),
|
|
162
|
+
limit: parseNumber(args, '--limit'),
|
|
163
|
+
include_deleted: args.includes('--include-deleted') || undefined,
|
|
164
|
+
upload_type: parseFlag(args, '--upload-type'),
|
|
165
|
+
});
|
|
166
|
+
if (flags.json) {
|
|
167
|
+
printResult(res, true);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
const files = res.data?.files ?? [];
|
|
171
|
+
printResult(files.map(f => ({
|
|
172
|
+
id: f.id,
|
|
173
|
+
namespace: f.namespace ?? '-',
|
|
174
|
+
filename: f.filename,
|
|
175
|
+
size: f.size,
|
|
176
|
+
type: f.upload_type,
|
|
177
|
+
deleted: f.is_deleted,
|
|
178
|
+
url: f.cdn_url,
|
|
179
|
+
})), false);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async function cdnStats(args, flags) {
|
|
183
|
+
const client = buildClient(flags);
|
|
184
|
+
const res = await client.cdn.stats({ namespace: parseFlag(args, '--namespace') });
|
|
185
|
+
printResult(flags.json ? res : res.data, flags.json);
|
|
186
|
+
}
|
|
187
|
+
async function cdnLimits(_args, flags) {
|
|
188
|
+
const client = buildClient(flags);
|
|
189
|
+
const res = await client.cdn.getLimits();
|
|
190
|
+
printResult(res, flags.json);
|
|
191
|
+
}
|
|
192
|
+
async function cdnGet(args, flags) {
|
|
193
|
+
const fileId = requireId(args[0], 'cdn get <file-id>');
|
|
194
|
+
const client = buildClient(flags);
|
|
195
|
+
const res = await client.cdn.get(fileId);
|
|
196
|
+
printResult(flags.json ? res : res.data, flags.json);
|
|
197
|
+
}
|
|
198
|
+
async function cdnDelete(args, flags) {
|
|
199
|
+
const fileId = requireId(args[0], 'cdn delete <file-id>');
|
|
200
|
+
const client = buildClient(flags);
|
|
201
|
+
const res = await client.cdn.delete(fileId);
|
|
202
|
+
if (flags.json)
|
|
203
|
+
printResult(res, true);
|
|
204
|
+
else
|
|
205
|
+
printSuccess(`File ${fileId} deleted`);
|
|
206
|
+
}
|
|
207
|
+
async function cdnRestore(args, flags) {
|
|
208
|
+
const fileId = requireId(args[0], 'cdn restore <file-id>');
|
|
209
|
+
const client = buildClient(flags);
|
|
210
|
+
const res = await client.cdn.restore(fileId);
|
|
211
|
+
if (flags.json)
|
|
212
|
+
printResult(res, true);
|
|
213
|
+
else
|
|
214
|
+
printSuccess(`File ${fileId} restored`);
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=cdn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdn.js","sourceRoot":"","sources":["../../../src/cli/commands/cdn.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,9 +58,9 @@ export async function namespacesCmd(args, flags) {
|
|
|
58
58
|
--namespace <ns> Target namespace
|
|
59
59
|
--service <svc> Service name (e.g., sandbox)
|
|
60
60
|
--limit <n> Quota limit (credits)
|
|
61
|
-
--period <p> monthly, daily, or unlimited
|
|
62
61
|
--overdraft <n> Grace credits beyond limit
|
|
63
62
|
--action <a> block or stop_workspaces
|
|
63
|
+
--notify-at <list> Webhook thresholds: "50,80,95" | "off" | "default"
|
|
64
64
|
|
|
65
65
|
Examples:
|
|
66
66
|
oblien ns create --name production --type production
|
|
@@ -155,13 +155,29 @@ async function nsUsage(id, args, flags) {
|
|
|
155
155
|
// ── Quotas ──────────────────────────────────────────────────────────
|
|
156
156
|
async function nsSetQuota(args, flags) {
|
|
157
157
|
const client = buildClient(flags);
|
|
158
|
-
const
|
|
158
|
+
const thresholdsRaw = parseFlag(args, '--notify-at');
|
|
159
|
+
let notificationThresholds;
|
|
160
|
+
if (thresholdsRaw !== undefined) {
|
|
161
|
+
if (thresholdsRaw === 'off' || thresholdsRaw === 'none') {
|
|
162
|
+
notificationThresholds = [];
|
|
163
|
+
}
|
|
164
|
+
else if (thresholdsRaw === 'default') {
|
|
165
|
+
notificationThresholds = null;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
notificationThresholds = thresholdsRaw
|
|
169
|
+
.split(',')
|
|
170
|
+
.map(s => Number(s.trim()))
|
|
171
|
+
.filter(n => Number.isFinite(n));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
await client.namespaces.setQuota({
|
|
159
175
|
namespace: parseFlag(args, '--namespace'),
|
|
160
176
|
service: parseFlag(args, '--service'),
|
|
161
177
|
quotaLimit: Number(parseFlag(args, '--limit')),
|
|
162
|
-
period: parseFlag(args, '--period'),
|
|
163
178
|
overdraft: parseFlag(args, '--overdraft') ? Number(parseFlag(args, '--overdraft')) : undefined,
|
|
164
179
|
onOverdraftAction: parseFlag(args, '--action'),
|
|
180
|
+
notificationThresholds,
|
|
165
181
|
});
|
|
166
182
|
printSuccess('Quota set.');
|
|
167
183
|
}
|
|
@@ -195,9 +211,6 @@ async function nsSetDefaultQuota(args, flags) {
|
|
|
195
211
|
await client.namespaces.setDefaultQuota({
|
|
196
212
|
service: parseFlag(args, '--service'),
|
|
197
213
|
quotaLimit: Number(parseFlag(args, '--limit')),
|
|
198
|
-
period: parseFlag(args, '--period'),
|
|
199
|
-
overdraft: parseFlag(args, '--overdraft') ? Number(parseFlag(args, '--overdraft')) : undefined,
|
|
200
|
-
onOverdraftAction: parseFlag(args, '--action'),
|
|
201
214
|
autoApply: args.includes('--auto-apply'),
|
|
202
215
|
});
|
|
203
216
|
printSuccess('Default quota set.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/cli/commands/namespaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/cli/commands/namespaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* oblien serve — serve a folder and expose it through the Oblien edge in one step.
|
|
3
|
+
*
|
|
4
|
+
* Starts a zero-dependency static HTTP server (built on Node's `http`) for a
|
|
5
|
+
* local directory, then forwards it through the edge tunnel using the exact same
|
|
6
|
+
* create/connect/SSL flow as `oblien tunnel`. Every tunnel flag works here too.
|
|
7
|
+
*
|
|
8
|
+
* oblien serve Serve ./public
|
|
9
|
+
* oblien serve ./site Serve ./site
|
|
10
|
+
* oblien serve ./site --slug my-app With a custom slug
|
|
11
|
+
* oblien serve ./site --domain x.com On a custom domain
|
|
12
|
+
* oblien serve ./site --spa Single-page-app fallback
|
|
13
|
+
* oblien serve ./site --port 8080 Pin the local port (default: auto)
|
|
14
|
+
*/
|
|
15
|
+
import type { CliFlags } from './types.js';
|
|
16
|
+
export declare function serveCmd(args: string[], flags: CliFlags): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D7E"}
|