@buildspacestudio/cli 0.2.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/dist/commands/app.d.ts +2 -0
- package/dist/commands/app.d.ts.map +1 -0
- package/dist/commands/app.js +350 -0
- package/dist/commands/app.js.map +1 -0
- package/dist/commands/auth.d.ts +2 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +389 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +102 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/deploy.d.ts +2 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +343 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/env.d.ts +2 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +204 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +118 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +106 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +75 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/app.d.ts +28 -0
- package/dist/lib/app.d.ts.map +1 -0
- package/dist/lib/app.js +132 -0
- package/dist/lib/app.js.map +1 -0
- package/dist/lib/args.d.ts +3 -0
- package/dist/lib/args.d.ts.map +1 -0
- package/dist/lib/args.js +16 -0
- package/dist/lib/args.js.map +1 -0
- package/dist/lib/auth.d.ts +9 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +21 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/config.d.ts +23 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +72 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/git.d.ts +8 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +63 -0
- package/dist/lib/git.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
import { resolveAppContext } from "../lib/app.js";
|
|
2
|
+
import { hasFlag, readFlag } from "../lib/args.js";
|
|
3
|
+
import { getGitAuthorizationHeader, resolveStoredAuth } from "../lib/auth.js";
|
|
4
|
+
import { runGit } from "../lib/git.js";
|
|
5
|
+
const IN_FLIGHT_STATUSES = new Set(["queued", "building", "deploying"]);
|
|
6
|
+
function printUsage() {
|
|
7
|
+
console.log("Usage: buildspace deploy [status|logs]");
|
|
8
|
+
console.log("");
|
|
9
|
+
console.log("Commands:");
|
|
10
|
+
console.log(" (default) Push current HEAD to origin/main to trigger dev deploy");
|
|
11
|
+
console.log(" status Show latest deployment status");
|
|
12
|
+
console.log(" logs Show deployment logs");
|
|
13
|
+
console.log("");
|
|
14
|
+
console.log("Examples:");
|
|
15
|
+
console.log(" buildspace deploy");
|
|
16
|
+
console.log(" buildspace deploy status");
|
|
17
|
+
console.log(" buildspace deploy logs --env dev --latest");
|
|
18
|
+
}
|
|
19
|
+
async function assertGitRepo() {
|
|
20
|
+
try {
|
|
21
|
+
await runGit(["rev-parse", "--is-inside-work-tree"], { quiet: true });
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function printStatusUsage() {
|
|
29
|
+
console.log("Usage: buildspace deploy status [--app <slug>] [--env dev|prod] [--limit <n> | --all]");
|
|
30
|
+
console.log("");
|
|
31
|
+
console.log("Defaults to app resolved from git remote origin or active app.");
|
|
32
|
+
}
|
|
33
|
+
function printLogsUsage() {
|
|
34
|
+
console.log("Usage: buildspace deploy logs [--app <slug>] [--env dev|prod] (--latest | --deployment <id>) [--limit <n>]");
|
|
35
|
+
console.log("");
|
|
36
|
+
console.log("Defaults:");
|
|
37
|
+
console.log(" --env dev");
|
|
38
|
+
console.log(" --limit 200");
|
|
39
|
+
console.log(" app from git remote origin or active app");
|
|
40
|
+
}
|
|
41
|
+
function parseDeployEnvironment(raw, fallback) {
|
|
42
|
+
if (!raw) {
|
|
43
|
+
return fallback;
|
|
44
|
+
}
|
|
45
|
+
const value = raw.trim().toLowerCase();
|
|
46
|
+
if (value === "dev" || value === "prod") {
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
function buildApiUrl(apiBaseUrl, path, query) {
|
|
52
|
+
const url = new URL(path, `${apiBaseUrl}/`);
|
|
53
|
+
for (const [key, value] of Object.entries(query ?? {})) {
|
|
54
|
+
if (value === undefined) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
url.searchParams.set(key, String(value));
|
|
58
|
+
}
|
|
59
|
+
return url.toString();
|
|
60
|
+
}
|
|
61
|
+
async function requestApiJson(input) {
|
|
62
|
+
const response = await fetch(buildApiUrl(input.apiBaseUrl, input.path, input.query), {
|
|
63
|
+
headers: {
|
|
64
|
+
Authorization: `Bearer ${input.pat}`,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
let payload = null;
|
|
68
|
+
try {
|
|
69
|
+
payload = await response.json();
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
payload = null;
|
|
73
|
+
}
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
const message = typeof payload === "object" &&
|
|
76
|
+
payload !== null &&
|
|
77
|
+
"error" in payload &&
|
|
78
|
+
typeof payload.error === "string"
|
|
79
|
+
? payload.error
|
|
80
|
+
: `Request failed (${response.status})`;
|
|
81
|
+
throw new Error(message);
|
|
82
|
+
}
|
|
83
|
+
return payload;
|
|
84
|
+
}
|
|
85
|
+
async function resolveAuthAndApp(args) {
|
|
86
|
+
const auth = await resolveStoredAuth();
|
|
87
|
+
const { app } = await resolveAppContext(args, auth);
|
|
88
|
+
return { app, auth };
|
|
89
|
+
}
|
|
90
|
+
async function fetchDeployments(input) {
|
|
91
|
+
const result = await requestApiJson({
|
|
92
|
+
apiBaseUrl: input.apiBaseUrl,
|
|
93
|
+
path: `/api/v1/apps/${input.appId}/deployments`,
|
|
94
|
+
pat: input.pat,
|
|
95
|
+
query: {
|
|
96
|
+
env: input.env,
|
|
97
|
+
limit: input.limit,
|
|
98
|
+
refresh: 1,
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
return result.deployments ?? [];
|
|
102
|
+
}
|
|
103
|
+
async function runDeployPushCommand() {
|
|
104
|
+
const isGitRepo = await assertGitRepo();
|
|
105
|
+
if (!isGitRepo) {
|
|
106
|
+
console.error("Current directory is not a git repository.");
|
|
107
|
+
console.error("Run `buildspace init --app <slug>` first, then try again.");
|
|
108
|
+
return 1;
|
|
109
|
+
}
|
|
110
|
+
const auth = await resolveStoredAuth();
|
|
111
|
+
const authHeader = getGitAuthorizationHeader(auth.pat);
|
|
112
|
+
console.log("Pushing current commit to main...");
|
|
113
|
+
try {
|
|
114
|
+
await runGit([
|
|
115
|
+
"-c",
|
|
116
|
+
`http.extraHeader=${authHeader}`,
|
|
117
|
+
"-c",
|
|
118
|
+
"credential.helper=",
|
|
119
|
+
"-c",
|
|
120
|
+
"credential.interactive=never",
|
|
121
|
+
"push",
|
|
122
|
+
"origin",
|
|
123
|
+
"HEAD:main",
|
|
124
|
+
]);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
console.error("Push failed.");
|
|
128
|
+
console.error("Make sure you have committed changes and that origin points to your BuildSpace repo.");
|
|
129
|
+
return 1;
|
|
130
|
+
}
|
|
131
|
+
console.log("Push complete. Dev deployment should start shortly.");
|
|
132
|
+
console.log("Monitor deployment from CLI:");
|
|
133
|
+
console.log(" buildspace deploy status");
|
|
134
|
+
console.log(" buildspace deploy logs --env dev --latest");
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
function resolveDeployStatusOptions(args) {
|
|
138
|
+
const useAll = hasFlag(args, "--all");
|
|
139
|
+
const limitFlag = readFlag(args, "--limit");
|
|
140
|
+
if (useAll && limitFlag) {
|
|
141
|
+
return { error: "Use either --limit <n> or --all, not both." };
|
|
142
|
+
}
|
|
143
|
+
if (useAll) {
|
|
144
|
+
return { limit: 100 };
|
|
145
|
+
}
|
|
146
|
+
if (!limitFlag) {
|
|
147
|
+
return { limit: 10 };
|
|
148
|
+
}
|
|
149
|
+
const parsedLimit = Number.parseInt(limitFlag, 10);
|
|
150
|
+
if (!Number.isFinite(parsedLimit) || parsedLimit <= 0) {
|
|
151
|
+
return { error: "Invalid --limit value. Use a positive integer." };
|
|
152
|
+
}
|
|
153
|
+
return { limit: Math.min(parsedLimit, 100) };
|
|
154
|
+
}
|
|
155
|
+
function printEnvironmentDeployments(env, deployments) {
|
|
156
|
+
if (deployments.length === 0) {
|
|
157
|
+
console.log(`${env.toUpperCase()}: no deployments yet`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const [latest] = deployments;
|
|
161
|
+
console.log(`${env.toUpperCase()}: ${latest.status} (${deployments.length} shown)`);
|
|
162
|
+
for (const deployment of deployments) {
|
|
163
|
+
console.log(` - ${deployment.status} ${deployment.id} ${deployment.trigger} ${new Date(deployment.createdAt).toLocaleString()}`);
|
|
164
|
+
if (deployment.deploymentUrl) {
|
|
165
|
+
console.log(` url: ${deployment.deploymentUrl}`);
|
|
166
|
+
}
|
|
167
|
+
if (deployment.errorMessage) {
|
|
168
|
+
console.log(` error: ${deployment.errorMessage}`);
|
|
169
|
+
}
|
|
170
|
+
if (IN_FLIGHT_STATUSES.has(deployment.status)) {
|
|
171
|
+
console.log(` logs: buildspace deploy logs --env ${env} --deployment ${deployment.id}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async function runDeployStatusCommand(args) {
|
|
176
|
+
if (hasFlag(args, "--help", "-h", "help")) {
|
|
177
|
+
printStatusUsage();
|
|
178
|
+
return 0;
|
|
179
|
+
}
|
|
180
|
+
const envFlag = readFlag(args, "--env");
|
|
181
|
+
const env = envFlag ? parseDeployEnvironment(envFlag, "dev") : null;
|
|
182
|
+
if (!env && envFlag) {
|
|
183
|
+
console.error("Invalid --env value. Use dev or prod.");
|
|
184
|
+
return 1;
|
|
185
|
+
}
|
|
186
|
+
const statusOptions = resolveDeployStatusOptions(args);
|
|
187
|
+
if ("error" in statusOptions) {
|
|
188
|
+
console.error(statusOptions.error);
|
|
189
|
+
return 1;
|
|
190
|
+
}
|
|
191
|
+
const json = hasFlag(args, "--json");
|
|
192
|
+
try {
|
|
193
|
+
const { app, auth } = await resolveAuthAndApp(args);
|
|
194
|
+
const environments = env ? [env] : ["dev", "prod"];
|
|
195
|
+
if (json) {
|
|
196
|
+
const allDeployments = {};
|
|
197
|
+
for (const targetEnv of environments) {
|
|
198
|
+
allDeployments[targetEnv] = await fetchDeployments({
|
|
199
|
+
apiBaseUrl: auth.apiBaseUrl,
|
|
200
|
+
appId: app.id,
|
|
201
|
+
env: targetEnv,
|
|
202
|
+
limit: statusOptions.limit,
|
|
203
|
+
pat: auth.pat,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
console.log(JSON.stringify({
|
|
207
|
+
deployments: Object.entries(allDeployments).flatMap(([envName, deps]) => deps.map((d) => ({ ...d, environment: envName }))),
|
|
208
|
+
}, null, 2));
|
|
209
|
+
return 0;
|
|
210
|
+
}
|
|
211
|
+
console.log(`App: ${app.name} (${app.slug})`);
|
|
212
|
+
for (const targetEnv of environments) {
|
|
213
|
+
const deployments = await fetchDeployments({
|
|
214
|
+
apiBaseUrl: auth.apiBaseUrl,
|
|
215
|
+
appId: app.id,
|
|
216
|
+
env: targetEnv,
|
|
217
|
+
limit: statusOptions.limit,
|
|
218
|
+
pat: auth.pat,
|
|
219
|
+
});
|
|
220
|
+
printEnvironmentDeployments(targetEnv, deployments);
|
|
221
|
+
}
|
|
222
|
+
return 0;
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
const message = error instanceof Error ? error.message : "Failed to load deployment status";
|
|
226
|
+
console.error(message);
|
|
227
|
+
return 1;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
function resolveDeployLogsOptions(args) {
|
|
231
|
+
const env = parseDeployEnvironment(readFlag(args, "--env"), "dev");
|
|
232
|
+
if (!env) {
|
|
233
|
+
return { error: "Invalid --env value. Use dev or prod." };
|
|
234
|
+
}
|
|
235
|
+
const useLatest = hasFlag(args, "--latest");
|
|
236
|
+
const deploymentId = readFlag(args, "--deployment")?.trim() ?? null;
|
|
237
|
+
if (useLatest && deploymentId) {
|
|
238
|
+
return { error: "Use either --latest or --deployment <id>, not both." };
|
|
239
|
+
}
|
|
240
|
+
if (!(useLatest || deploymentId)) {
|
|
241
|
+
return { error: "Missing target deployment. Use --latest or --deployment <id>." };
|
|
242
|
+
}
|
|
243
|
+
let limit = 200;
|
|
244
|
+
const limitRaw = readFlag(args, "--limit");
|
|
245
|
+
if (limitRaw) {
|
|
246
|
+
const parsed = Number.parseInt(limitRaw, 10);
|
|
247
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
248
|
+
return { error: "Invalid --limit value. Use a positive integer." };
|
|
249
|
+
}
|
|
250
|
+
limit = parsed;
|
|
251
|
+
}
|
|
252
|
+
return {
|
|
253
|
+
deploymentId,
|
|
254
|
+
env,
|
|
255
|
+
limit,
|
|
256
|
+
useLatest,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
async function resolveLatestDeploymentId(input) {
|
|
260
|
+
const deployments = await fetchDeployments({
|
|
261
|
+
apiBaseUrl: input.apiBaseUrl,
|
|
262
|
+
appId: input.appId,
|
|
263
|
+
env: input.env,
|
|
264
|
+
limit: 1,
|
|
265
|
+
pat: input.pat,
|
|
266
|
+
});
|
|
267
|
+
return deployments[0]?.id ?? null;
|
|
268
|
+
}
|
|
269
|
+
async function runDeployLogsCommand(args) {
|
|
270
|
+
if (hasFlag(args, "--help", "-h", "help")) {
|
|
271
|
+
printLogsUsage();
|
|
272
|
+
return 0;
|
|
273
|
+
}
|
|
274
|
+
const options = resolveDeployLogsOptions(args);
|
|
275
|
+
if ("error" in options) {
|
|
276
|
+
console.error(options.error);
|
|
277
|
+
if (options.error.startsWith("Missing target deployment")) {
|
|
278
|
+
printLogsUsage();
|
|
279
|
+
}
|
|
280
|
+
return 1;
|
|
281
|
+
}
|
|
282
|
+
try {
|
|
283
|
+
const { app, auth } = await resolveAuthAndApp(args);
|
|
284
|
+
let deploymentId = options.deploymentId;
|
|
285
|
+
if (options.useLatest) {
|
|
286
|
+
deploymentId = await resolveLatestDeploymentId({
|
|
287
|
+
apiBaseUrl: auth.apiBaseUrl,
|
|
288
|
+
appId: app.id,
|
|
289
|
+
env: options.env,
|
|
290
|
+
pat: auth.pat,
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
if (!deploymentId) {
|
|
294
|
+
console.error(`No deployments found for ${options.env}.`);
|
|
295
|
+
return 1;
|
|
296
|
+
}
|
|
297
|
+
const result = await requestApiJson({
|
|
298
|
+
apiBaseUrl: auth.apiBaseUrl,
|
|
299
|
+
path: `/api/v1/apps/${app.id}/deployments/${deploymentId}/logs`,
|
|
300
|
+
pat: auth.pat,
|
|
301
|
+
query: {
|
|
302
|
+
env: options.env,
|
|
303
|
+
limit: options.limit,
|
|
304
|
+
},
|
|
305
|
+
});
|
|
306
|
+
const logs = result.logs ?? [];
|
|
307
|
+
if (logs.length === 0) {
|
|
308
|
+
console.log(`No logs found for deployment ${deploymentId}.`);
|
|
309
|
+
return 0;
|
|
310
|
+
}
|
|
311
|
+
console.log(`Deployment logs (${options.env}) - ${deploymentId}`);
|
|
312
|
+
for (const line of logs) {
|
|
313
|
+
const severity = line.severity ? ` [${line.severity}]` : "";
|
|
314
|
+
console.log(`${line.timestamp}${severity} ${line.message}`);
|
|
315
|
+
}
|
|
316
|
+
return 0;
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
const message = error instanceof Error ? error.message : "Failed to load deployment logs";
|
|
320
|
+
console.error(message);
|
|
321
|
+
return 1;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
export function runDeployCommand(args) {
|
|
325
|
+
if (hasFlag(args, "--help", "-h", "help")) {
|
|
326
|
+
printUsage();
|
|
327
|
+
return Promise.resolve(0);
|
|
328
|
+
}
|
|
329
|
+
const subcommand = args[0];
|
|
330
|
+
switch (subcommand) {
|
|
331
|
+
case undefined:
|
|
332
|
+
return runDeployPushCommand();
|
|
333
|
+
case "status":
|
|
334
|
+
return runDeployStatusCommand(args.slice(1));
|
|
335
|
+
case "logs":
|
|
336
|
+
return runDeployLogsCommand(args.slice(1));
|
|
337
|
+
default:
|
|
338
|
+
console.error(`Unknown deploy subcommand: ${subcommand}`);
|
|
339
|
+
printUsage();
|
|
340
|
+
return Promise.resolve(1);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AA+BA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDnE"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { writeFile } from "node:fs/promises";
|
|
2
|
+
import { listEnvVars, setEnvVar, unsetEnvVar } from "../lib/api.js";
|
|
3
|
+
import { resolveAppContext } from "../lib/app.js";
|
|
4
|
+
import { hasFlag, readFlag } from "../lib/args.js";
|
|
5
|
+
import { resolveStoredAuth } from "../lib/auth.js";
|
|
6
|
+
function printUsage() {
|
|
7
|
+
console.log("Usage: buildspace env <subcommand> [options]");
|
|
8
|
+
console.log("");
|
|
9
|
+
console.log("Subcommands:");
|
|
10
|
+
console.log(" list List env vars for this app (values masked)");
|
|
11
|
+
console.log(" set KEY=VALUE Set an environment variable");
|
|
12
|
+
console.log(" unset KEY Remove an environment variable");
|
|
13
|
+
console.log(" pull Write env vars to a local .env file");
|
|
14
|
+
console.log("");
|
|
15
|
+
console.log("Options:");
|
|
16
|
+
console.log(" --env <dev|prod> Target environment (default: dev)");
|
|
17
|
+
console.log(" --output <file> Output file for pull (default: .env.local)");
|
|
18
|
+
console.log(" --secret Force variable to be secret (use with set)");
|
|
19
|
+
console.log(" --no-secret Force variable to be non-secret (use with set)");
|
|
20
|
+
console.log(" --app <slug> App slug (default: git remote or active app)");
|
|
21
|
+
console.log("");
|
|
22
|
+
console.log("Examples:");
|
|
23
|
+
console.log(" buildspace env list");
|
|
24
|
+
console.log(" buildspace env list --env prod");
|
|
25
|
+
console.log(" buildspace env set STRIPE_SECRET_KEY=sk_test_...");
|
|
26
|
+
console.log(" buildspace env set NEXT_PUBLIC_STRIPE_KEY=pk_test_...");
|
|
27
|
+
console.log(" buildspace env unset STRIPE_SECRET_KEY");
|
|
28
|
+
console.log(" buildspace env pull --env prod --output .env.local");
|
|
29
|
+
}
|
|
30
|
+
export async function runEnvCommand(args) {
|
|
31
|
+
const subcommand = args[0];
|
|
32
|
+
if (!subcommand || hasFlag(args, "--help", "-h", "help")) {
|
|
33
|
+
printUsage();
|
|
34
|
+
return subcommand ? 0 : 1;
|
|
35
|
+
}
|
|
36
|
+
const envType = readFlag(args, "--env") ?? "dev";
|
|
37
|
+
if (envType !== "dev" && envType !== "prod") {
|
|
38
|
+
console.error("--env must be 'dev' or 'prod'");
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
const auth = await resolveStoredAuth();
|
|
42
|
+
let appId;
|
|
43
|
+
let envId;
|
|
44
|
+
try {
|
|
45
|
+
const context = await resolveAppContext(args, auth);
|
|
46
|
+
appId = context.app.id;
|
|
47
|
+
const env = context.environments.find((e) => e.type === envType);
|
|
48
|
+
if (!env) {
|
|
49
|
+
console.error(`No ${envType} environment found for app '${context.app.slug}'.`);
|
|
50
|
+
return 1;
|
|
51
|
+
}
|
|
52
|
+
envId = env.id;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
const message = error instanceof Error ? error.message : "Failed to resolve app";
|
|
56
|
+
console.error(`Error: ${message}`);
|
|
57
|
+
return 1;
|
|
58
|
+
}
|
|
59
|
+
switch (subcommand) {
|
|
60
|
+
case "list":
|
|
61
|
+
return runList(args, appId, envId, envType, auth);
|
|
62
|
+
case "set":
|
|
63
|
+
return runSet(args.slice(1), appId, envId, auth);
|
|
64
|
+
case "unset":
|
|
65
|
+
return runUnset(args.slice(1), appId, envId, auth);
|
|
66
|
+
case "pull":
|
|
67
|
+
return runPull(args, appId, envId, envType, auth);
|
|
68
|
+
default:
|
|
69
|
+
console.error(`Unknown subcommand: ${subcommand}`);
|
|
70
|
+
printUsage();
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async function runList(args, appId, envId, envType, auth) {
|
|
75
|
+
const json = hasFlag(args, "--json");
|
|
76
|
+
try {
|
|
77
|
+
const vars = await listEnvVars(appId, envId, auth);
|
|
78
|
+
if (json) {
|
|
79
|
+
console.log(JSON.stringify({
|
|
80
|
+
variables: vars.map((v) => ({
|
|
81
|
+
key: v.key,
|
|
82
|
+
value: v.valuePreview,
|
|
83
|
+
isSecret: v.isSecret,
|
|
84
|
+
source: v.source,
|
|
85
|
+
})),
|
|
86
|
+
}, null, 2));
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
if (vars.length === 0) {
|
|
90
|
+
console.log(`No environment variables set for ${envType}.`);
|
|
91
|
+
return 0;
|
|
92
|
+
}
|
|
93
|
+
const systemVars = vars.filter((v) => v.source === "system");
|
|
94
|
+
const creatorVars = vars.filter((v) => v.source === "creator");
|
|
95
|
+
if (systemVars.length > 0) {
|
|
96
|
+
console.log(`\nBuildspace Keys (${envType}):`);
|
|
97
|
+
for (const v of systemVars) {
|
|
98
|
+
const secretMark = v.isSecret ? "[secret]" : "[public]";
|
|
99
|
+
console.log(` ${v.key.padEnd(42)} ${secretMark} ${v.valuePreview}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (creatorVars.length > 0) {
|
|
103
|
+
console.log(`\nCustom Variables (${envType}):`);
|
|
104
|
+
for (const v of creatorVars) {
|
|
105
|
+
const secretMark = v.isSecret ? "[secret]" : "[public]";
|
|
106
|
+
console.log(` ${v.key.padEnd(42)} ${secretMark} ${v.valuePreview}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
console.log("");
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
const message = error instanceof Error ? error.message : "Failed to list env vars";
|
|
114
|
+
console.error(`Error: ${message}`);
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
async function runSet(args, appId, envId, auth) {
|
|
119
|
+
// Accept KEY=VALUE or KEY VALUE
|
|
120
|
+
const assignment = args.find((a) => !a.startsWith("-"));
|
|
121
|
+
if (!assignment) {
|
|
122
|
+
console.error("Usage: buildspace env set KEY=VALUE");
|
|
123
|
+
return 1;
|
|
124
|
+
}
|
|
125
|
+
let key;
|
|
126
|
+
let value;
|
|
127
|
+
if (assignment.includes("=")) {
|
|
128
|
+
const eqIndex = assignment.indexOf("=");
|
|
129
|
+
key = assignment.slice(0, eqIndex);
|
|
130
|
+
value = assignment.slice(eqIndex + 1);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// KEY VALUE form
|
|
134
|
+
const valueArg = args[args.indexOf(assignment) + 1];
|
|
135
|
+
if (!valueArg || valueArg.startsWith("-")) {
|
|
136
|
+
console.error("Usage: buildspace env set KEY=VALUE");
|
|
137
|
+
return 1;
|
|
138
|
+
}
|
|
139
|
+
key = assignment;
|
|
140
|
+
value = valueArg;
|
|
141
|
+
}
|
|
142
|
+
key = key.toUpperCase();
|
|
143
|
+
let isSecret;
|
|
144
|
+
if (hasFlag(args, "--secret")) {
|
|
145
|
+
isSecret = true;
|
|
146
|
+
}
|
|
147
|
+
else if (hasFlag(args, "--no-secret")) {
|
|
148
|
+
isSecret = false;
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
const envVar = await setEnvVar(appId, envId, key, value, isSecret, auth);
|
|
152
|
+
const secretMark = envVar.isSecret ? "[secret]" : "[public]";
|
|
153
|
+
console.log(`Set ${key} ${secretMark}`);
|
|
154
|
+
return 0;
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
const message = error instanceof Error ? error.message : "Failed to set env var";
|
|
158
|
+
console.error(`Error: ${message}`);
|
|
159
|
+
return 1;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async function runUnset(args, appId, envId, auth) {
|
|
163
|
+
const key = args.find((a) => !a.startsWith("-"))?.toUpperCase();
|
|
164
|
+
if (!key) {
|
|
165
|
+
console.error("Usage: buildspace env unset KEY");
|
|
166
|
+
return 1;
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
await unsetEnvVar(appId, envId, key, auth);
|
|
170
|
+
console.log(`Unset ${key}`);
|
|
171
|
+
return 0;
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
const message = error instanceof Error ? error.message : "Failed to unset env var";
|
|
175
|
+
console.error(`Error: ${message}`);
|
|
176
|
+
return 1;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async function runPull(args, appId, envId, envType, auth) {
|
|
180
|
+
const outputFile = readFlag(args, "--output") ?? ".env.local";
|
|
181
|
+
try {
|
|
182
|
+
const vars = await listEnvVars(appId, envId, auth, { reveal: true });
|
|
183
|
+
const pullableVars = vars.filter((v) => v.source === "system" || !v.isSecret);
|
|
184
|
+
if (pullableVars.length === 0) {
|
|
185
|
+
console.log(`No pullable variables for ${envType}.`);
|
|
186
|
+
return 0;
|
|
187
|
+
}
|
|
188
|
+
const lines = [
|
|
189
|
+
`# BuildSpace env vars — ${envType} — pulled ${new Date().toISOString()}`,
|
|
190
|
+
"",
|
|
191
|
+
...pullableVars.map((v) => `${v.key}=${v.value ?? v.valuePreview}`),
|
|
192
|
+
"",
|
|
193
|
+
];
|
|
194
|
+
await writeFile(outputFile, lines.join("\n"), "utf8");
|
|
195
|
+
console.log(`Wrote ${pullableVars.length} variable(s) to ${outputFile}`);
|
|
196
|
+
return 0;
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
const message = error instanceof Error ? error.message : "Failed to pull env vars";
|
|
200
|
+
console.error(`Error: ${message}`);
|
|
201
|
+
return 1;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAoEA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0EpE"}
|