@tinybirdco/sdk 0.0.79 → 0.0.81

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.
@@ -1,10 +1,15 @@
1
- import { describe, it, expect, beforeAll, beforeEach, afterEach, afterAll } from "vitest";
1
+ import { describe, it, expect, beforeAll, beforeEach, afterEach, afterAll, vi } from "vitest";
2
2
  import { setupServer } from "msw/node";
3
3
  import { http, HttpResponse } from "msw";
4
- import { deployToMain } from "./deploy.js";
5
- import { BASE_URL, createDeploySuccessResponse, createDeploymentStatusResponse, createSetLiveSuccessResponse, createBuildFailureResponse, createBuildMultipleErrorsResponse, createDeploymentsListResponse, } from "../test/handlers.js";
4
+ import { deployToMain, MAX_CONSECUTIVE_FAILED_POLLS } from "./deploy.js";
5
+ import { BASE_URL, createDeploySuccessResponse, createDeploymentStatusResponse, createBuildFailureResponse, createBuildMultipleErrorsResponse, createDeploymentsListResponse, } from "../test/handlers.js";
6
6
  const server = setupServer();
7
- beforeAll(() => server.listen({ onUnhandledRequest: "error" }));
7
+ beforeAll(() => {
8
+ server.listen({ onUnhandledRequest: "error" });
9
+ vi.stubGlobal("setTimeout", (fn) => {
10
+ Promise.resolve().then(fn);
11
+ });
12
+ });
8
13
  beforeEach(() => {
9
14
  // Set up default handler for deployments list (used by stale deployment cleanup)
10
15
  server.use(http.get(`${BASE_URL}/v1/deployments`, () => {
@@ -12,7 +17,10 @@ beforeEach(() => {
12
17
  }));
13
18
  });
14
19
  afterEach(() => server.resetHandlers());
15
- afterAll(() => server.close());
20
+ afterAll(() => {
21
+ server.close();
22
+ vi.unstubAllGlobals();
23
+ });
16
24
  describe("Deploy API", () => {
17
25
  const config = {
18
26
  baseUrl: BASE_URL,
@@ -27,41 +35,60 @@ describe("Deploy API", () => {
27
35
  ],
28
36
  connections: [],
29
37
  };
30
- // Helper to set up successful deploy flow
38
+ // Helper to set up successful deploy flow. By default the deployment shows
39
+ // up as live on the very first status poll, which matches the server-side
40
+ // auto_promote=true behavior the SDK now relies on.
31
41
  function setupSuccessfulDeployFlow(deploymentId = "deploy-abc") {
32
42
  server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
33
43
  return HttpResponse.json(createDeploySuccessResponse({ deploymentId, status: "pending" }));
34
44
  }), http.get(`${BASE_URL}/v1/deployments/${deploymentId}`, () => {
35
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId, status: "data_ready" }));
36
- }), http.post(`${BASE_URL}/v1/deployments/${deploymentId}/set-live`, () => {
37
- return HttpResponse.json(createSetLiveSuccessResponse());
45
+ return HttpResponse.json(createDeploymentStatusResponse({
46
+ deploymentId,
47
+ status: "data_ready",
48
+ live: true,
49
+ }));
38
50
  }));
39
51
  }
40
52
  describe("deployToMain", () => {
41
53
  it("successfully deploys resources with full flow", async () => {
42
54
  setupSuccessfulDeployFlow("deploy-abc");
43
- const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
55
+ const result = await deployToMain(config, resources);
44
56
  expect(result.success).toBe(true);
45
57
  expect(result.result).toBe("success");
46
58
  expect(result.buildId).toBe("deploy-abc");
47
59
  expect(result.datasourceCount).toBe(1);
48
60
  expect(result.pipeCount).toBe(1);
49
61
  });
50
- it("polls until deployment is ready", async () => {
62
+ it("polls until deployment is ready and live", async () => {
51
63
  let pollCount = 0;
52
64
  server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
53
65
  return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-poll", status: "pending" }));
54
66
  }), http.get(`${BASE_URL}/v1/deployments/deploy-poll`, () => {
55
67
  pollCount++;
56
- // Return pending for first 2 polls, then data_ready
57
- const status = pollCount < 3 ? "pending" : "data_ready";
58
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-poll", status }));
59
- }), http.post(`${BASE_URL}/v1/deployments/deploy-poll/set-live`, () => {
60
- return HttpResponse.json(createSetLiveSuccessResponse());
68
+ // pending data_ready (not live yet) data_ready + live.
69
+ if (pollCount < 3) {
70
+ return HttpResponse.json(createDeploymentStatusResponse({
71
+ deploymentId: "deploy-poll",
72
+ status: "pending",
73
+ live: false,
74
+ }));
75
+ }
76
+ if (pollCount === 3) {
77
+ return HttpResponse.json(createDeploymentStatusResponse({
78
+ deploymentId: "deploy-poll",
79
+ status: "data_ready",
80
+ live: false,
81
+ }));
82
+ }
83
+ return HttpResponse.json(createDeploymentStatusResponse({
84
+ deploymentId: "deploy-poll",
85
+ status: "data_ready",
86
+ live: true,
87
+ }));
61
88
  }));
62
- const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
89
+ const result = await deployToMain(config, resources);
63
90
  expect(result.success).toBe(true);
64
- expect(pollCount).toBe(3);
91
+ expect(pollCount).toBe(4);
65
92
  });
66
93
  it("handles deploy failure with single error", async () => {
67
94
  server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
@@ -117,20 +144,61 @@ describe("Deploy API", () => {
117
144
  }));
118
145
  await expect(deployToMain(config, resources)).rejects.toThrow("Failed to parse response");
119
146
  });
120
- it("uses /v1/deploy endpoint (not /v1/build)", async () => {
147
+ it("uses /v1/deploy endpoint with auto_promote by default", async () => {
121
148
  let capturedUrl = null;
122
149
  server.use(http.post(`${BASE_URL}/v1/deploy`, ({ request }) => {
123
150
  capturedUrl = request.url;
124
151
  return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-url-test" }));
125
152
  }), http.get(`${BASE_URL}/v1/deployments/deploy-url-test`, () => {
126
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-url-test", status: "data_ready" }));
127
- }), http.post(`${BASE_URL}/v1/deployments/deploy-url-test/set-live`, () => {
128
- return HttpResponse.json(createSetLiveSuccessResponse());
153
+ return HttpResponse.json(createDeploymentStatusResponse({
154
+ deploymentId: "deploy-url-test",
155
+ status: "data_ready",
156
+ live: true,
157
+ }));
129
158
  }));
130
- await deployToMain(config, resources, { pollIntervalMs: 1 });
159
+ await deployToMain(config, resources);
131
160
  const parsed = new URL(capturedUrl ?? "");
132
161
  expect(parsed.pathname).toBe("/v1/deploy");
133
162
  expect(parsed.searchParams.get("from")).toBe("ts-sdk");
163
+ expect(parsed.searchParams.get("auto_promote")).toBe("true");
164
+ });
165
+ it("omits auto_promote when auto is false", async () => {
166
+ let capturedUrl = null;
167
+ server.use(http.post(`${BASE_URL}/v1/deploy`, ({ request }) => {
168
+ capturedUrl = request.url;
169
+ return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-no-auto" }));
170
+ }), http.get(`${BASE_URL}/v1/deployments/deploy-no-auto`, () => {
171
+ return HttpResponse.json(createDeploymentStatusResponse({
172
+ deploymentId: "deploy-no-auto",
173
+ status: "data_ready",
174
+ live: false,
175
+ }));
176
+ }));
177
+ const result = await deployToMain(config, resources, { auto: false });
178
+ const parsed = new URL(capturedUrl ?? "");
179
+ expect(parsed.searchParams.get("auto_promote")).toBeNull();
180
+ // When !auto, we return success as soon as the deployment is data_ready,
181
+ // even though `live` is still false (user must promote it separately).
182
+ expect(result.success).toBe(true);
183
+ expect(result.buildId).toBe("deploy-no-auto");
184
+ });
185
+ it("returns immediately when wait is false", async () => {
186
+ let statusPolls = 0;
187
+ server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
188
+ return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-no-wait" }));
189
+ }), http.get(`${BASE_URL}/v1/deployments/deploy-no-wait`, () => {
190
+ statusPolls++;
191
+ return HttpResponse.json(createDeploymentStatusResponse({
192
+ deploymentId: "deploy-no-wait",
193
+ status: "pending",
194
+ live: false,
195
+ }));
196
+ }));
197
+ const result = await deployToMain(config, resources, { wait: false });
198
+ expect(result.success).toBe(true);
199
+ expect(result.buildId).toBe("deploy-no-wait");
200
+ // No polling should have happened.
201
+ expect(statusPolls).toBe(0);
134
202
  });
135
203
  it("passes allow_destructive_operations when explicitly enabled", async () => {
136
204
  let capturedUrl = null;
@@ -141,12 +209,10 @@ describe("Deploy API", () => {
141
209
  return HttpResponse.json(createDeploymentStatusResponse({
142
210
  deploymentId: "deploy-destructive",
143
211
  status: "data_ready",
212
+ live: true,
144
213
  }));
145
- }), http.post(`${BASE_URL}/v1/deployments/deploy-destructive/set-live`, () => {
146
- return HttpResponse.json(createSetLiveSuccessResponse());
147
214
  }));
148
215
  await deployToMain(config, resources, {
149
- pollIntervalMs: 1,
150
216
  allowDestructiveOperations: true,
151
217
  });
152
218
  const parsed = new URL(capturedUrl ?? "");
@@ -170,10 +236,7 @@ describe("Deploy API", () => {
170
236
  capturedUrl = request.url;
171
237
  return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-check" }));
172
238
  }));
173
- await deployToMain(config, resources, {
174
- pollIntervalMs: 1,
175
- check: true,
176
- });
239
+ await deployToMain(config, resources, { check: true });
177
240
  expect(listed).toBe(false);
178
241
  expect(deletedIds).toEqual([]);
179
242
  const parsed = new URL(capturedUrl ?? "");
@@ -194,10 +257,15 @@ describe("Deploy API", () => {
194
257
  return HttpResponse.json({ result: "success" });
195
258
  }));
196
259
  setupSuccessfulDeployFlow("deploy-cleanup");
197
- await deployToMain(config, resources, { pollIntervalMs: 1 });
198
- expect(deletedIds).toEqual(["stale-1", "stale-2", "live-1"]);
260
+ await deployToMain(config, resources);
261
+ // The previous live deployment is left alone — the server removes it
262
+ // as part of the auto-promotion once the new deployment is live.
263
+ expect(deletedIds).toEqual(["stale-1", "stale-2"]);
199
264
  });
200
- it("deletes the previous live deployment after promoting the new deployment", async () => {
265
+ it("does not touch the previous live deployment client-side", async () => {
266
+ // With auto_promote=true the server flips the new deployment live AND
267
+ // deletes the previous live deployment on our behalf. The SDK should
268
+ // therefore never issue a set-live or a delete for a live deployment.
201
269
  const events = [];
202
270
  server.use(http.get(`${BASE_URL}/v1/deployments`, () => {
203
271
  return HttpResponse.json(createDeploymentsListResponse({
@@ -209,17 +277,18 @@ describe("Deploy API", () => {
209
277
  events.push("create");
210
278
  return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "new-deploy", status: "pending" }));
211
279
  }), http.get(`${BASE_URL}/v1/deployments/new-deploy`, () => {
212
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "new-deploy", status: "data_ready" }));
213
- }), http.post(`${BASE_URL}/v1/deployments/new-deploy/set-live`, () => {
214
- events.push("set-live");
215
- return HttpResponse.json(createSetLiveSuccessResponse());
280
+ return HttpResponse.json(createDeploymentStatusResponse({
281
+ deploymentId: "new-deploy",
282
+ status: "data_ready",
283
+ live: true,
284
+ }));
216
285
  }), http.delete(`${BASE_URL}/v1/deployments/:id`, ({ params }) => {
217
286
  events.push(`delete:${params.id}`);
218
287
  return HttpResponse.json({ result: "success" });
219
288
  }));
220
- const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
289
+ const result = await deployToMain(config, resources);
221
290
  expect(result.success).toBe(true);
222
- expect(events).toEqual(["create", "set-live", "delete:previous-live"]);
291
+ expect(events).toEqual(["create"]);
223
292
  });
224
293
  it("adds actionable guidance to Forward/Classic workspace errors", async () => {
225
294
  server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
@@ -233,27 +302,58 @@ describe("Deploy API", () => {
233
302
  expect(result.error).toContain("Tinybird Forward workspace");
234
303
  expect(result.error).toContain("Use the Tinybird Classic CLI (`tb`) from a Tinybird Classic workspace for this operation.");
235
304
  });
236
- it("handles failed deployment status", async () => {
305
+ it("tolerates transient failed status while server auto-deletes", async () => {
306
+ // When the deployment hits `failed`, the SDK should not bail immediately
307
+ // — the server usually transitions it to `deleting`/`deleted` shortly
308
+ // after. We report the failure only when that transition happens.
309
+ let pollCount = 0;
237
310
  server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
238
- return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-fail", status: "pending" }));
239
- }), http.get(`${BASE_URL}/v1/deployments/deploy-fail`, () => {
240
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-fail", status: "failed" }));
311
+ return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-transient-fail" }));
312
+ }), http.get(`${BASE_URL}/v1/deployments/deploy-transient-fail`, () => {
313
+ pollCount++;
314
+ if (pollCount <= 2) {
315
+ return HttpResponse.json(createDeploymentStatusResponse({
316
+ deploymentId: "deploy-transient-fail",
317
+ status: "failed",
318
+ live: false,
319
+ }));
320
+ }
321
+ return HttpResponse.json({
322
+ result: "success",
323
+ deployment: {
324
+ id: "deploy-transient-fail",
325
+ status: "deleted",
326
+ live: false,
327
+ feedback: [
328
+ { resource: null, level: "ERROR", message: "schema conflict" },
329
+ ],
330
+ },
331
+ });
241
332
  }));
242
- const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
333
+ const result = await deployToMain(config, resources);
243
334
  expect(result.success).toBe(false);
244
- expect(result.error).toContain("Deployment failed with status: failed");
335
+ expect(result.error).toContain("deleted automatically");
336
+ expect(result.error).toContain("schema conflict");
337
+ // 2 failed + 1 deleted.
338
+ expect(pollCount).toBe(3);
245
339
  });
246
- it("handles set-live failure", async () => {
340
+ it("bails when the deployment is stuck in failed state", async () => {
341
+ let pollCount = 0;
247
342
  server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
248
- return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-setlive-fail" }));
249
- }), http.get(`${BASE_URL}/v1/deployments/deploy-setlive-fail`, () => {
250
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-setlive-fail", status: "data_ready" }));
251
- }), http.post(`${BASE_URL}/v1/deployments/deploy-setlive-fail/set-live`, () => {
252
- return HttpResponse.json({ error: "Set live failed" }, { status: 500 });
343
+ return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-stuck" }));
344
+ }), http.get(`${BASE_URL}/v1/deployments/deploy-stuck`, () => {
345
+ pollCount++;
346
+ return HttpResponse.json(createDeploymentStatusResponse({
347
+ deploymentId: "deploy-stuck",
348
+ status: "failed",
349
+ live: false,
350
+ }));
253
351
  }));
254
- const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
352
+ const result = await deployToMain(config, resources);
255
353
  expect(result.success).toBe(false);
256
- expect(result.error).toContain("Failed to set deployment as live");
354
+ expect(result.error).toContain("didn't start deleting automatically");
355
+ // One extra poll past the threshold trips the safety valve.
356
+ expect(pollCount).toBe(MAX_CONSECUTIVE_FAILED_POLLS + 1);
257
357
  });
258
358
  it("normalizes baseUrl with trailing slash", async () => {
259
359
  let capturedUrl = null;
@@ -261,28 +361,17 @@ describe("Deploy API", () => {
261
361
  capturedUrl = request.url;
262
362
  return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-slash" }));
263
363
  }), http.get(`${BASE_URL}/v1/deployments/deploy-slash`, () => {
264
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-slash", status: "data_ready" }));
265
- }), http.post(`${BASE_URL}/v1/deployments/deploy-slash/set-live`, () => {
266
- return HttpResponse.json(createSetLiveSuccessResponse());
364
+ return HttpResponse.json(createDeploymentStatusResponse({
365
+ deploymentId: "deploy-slash",
366
+ status: "data_ready",
367
+ live: true,
368
+ }));
267
369
  }));
268
- await deployToMain({ ...config, baseUrl: `${BASE_URL}/` }, resources, { pollIntervalMs: 1 });
370
+ await deployToMain({ ...config, baseUrl: `${BASE_URL}/` }, resources);
269
371
  const parsed = new URL(capturedUrl ?? "");
270
372
  expect(parsed.pathname).toBe("/v1/deploy");
271
373
  expect(parsed.searchParams.get("from")).toBe("ts-sdk");
272
374
  });
273
- it("times out when deployment never becomes ready", async () => {
274
- server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
275
- return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-timeout", status: "pending" }));
276
- }), http.get(`${BASE_URL}/v1/deployments/deploy-timeout`, () => {
277
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-timeout", status: "pending" }));
278
- }));
279
- const result = await deployToMain(config, resources, {
280
- pollIntervalMs: 1,
281
- maxPollAttempts: 3,
282
- });
283
- expect(result.success).toBe(false);
284
- expect(result.error).toContain("Deployment timed out");
285
- });
286
375
  it("includes connections in deploy form data", async () => {
287
376
  const resourcesWithConnections = {
288
377
  ...resources,
@@ -298,13 +387,13 @@ describe("Deploy API", () => {
298
387
  capturedFormData = await request.formData();
299
388
  return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-conn", status: "pending" }));
300
389
  }), http.get(`${BASE_URL}/v1/deployments/deploy-conn`, () => {
301
- return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-conn", status: "data_ready" }));
302
- }), http.post(`${BASE_URL}/v1/deployments/deploy-conn/set-live`, () => {
303
- return HttpResponse.json(createSetLiveSuccessResponse());
390
+ return HttpResponse.json(createDeploymentStatusResponse({
391
+ deploymentId: "deploy-conn",
392
+ status: "data_ready",
393
+ live: true,
394
+ }));
304
395
  }));
305
- const result = await deployToMain(config, resourcesWithConnections, {
306
- pollIntervalMs: 1,
307
- });
396
+ const result = await deployToMain(config, resourcesWithConnections);
308
397
  expect(result.success).toBe(true);
309
398
  expect(result.connectionCount).toBe(1);
310
399
  expect(capturedFormData).not.toBeNull();
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../src/api/deploy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../src/api/deploy.test.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,14 @@ export interface DeployCommandOptions {
16
16
  check?: boolean;
17
17
  /** Allow deleting existing resources in main workspace deploys */
18
18
  allowDestructiveOperations?: boolean;
19
+ /**
20
+ * Wait for the deployment to finish. Defaults to true.
21
+ */
22
+ wait?: boolean;
23
+ /**
24
+ * Auto-promote the deployment when it's ready. Defaults to true.
25
+ */
26
+ auto?: boolean;
19
27
  /** Callbacks for deploy progress */
20
28
  callbacks?: DeployCallbacks;
21
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,oCAAoC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuFhG"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyFhG"}
@@ -64,6 +64,8 @@ export async function runDeploy(options = {}) {
64
64
  }, buildResult.resources, {
65
65
  check: options.check,
66
66
  allowDestructiveOperations: options.allowDestructiveOperations,
67
+ wait: options.wait,
68
+ auto: options.auto,
67
69
  callbacks: options.callbacks,
68
70
  });
69
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -382,16 +382,24 @@ function createCli() {
382
382
  .option("--dry-run", "Generate without pushing to API")
383
383
  .option("--check", "Validate deploy with Tinybird API without applying")
384
384
  .option("--allow-destructive-operations", "Allow deploys that delete existing datasources, pipes, or connections")
385
+ .option("--wait", "Wait for the deployment to finish (default)")
386
+ .option("--no-wait", "Return as soon as the deployment is submitted")
387
+ .option("--auto", "Auto-promote the deployment when it's ready (default)")
388
+ .option("--no-auto", "Do not auto-promote the deployment; leave it staged for a manual promote")
385
389
  .option("--debug", "Show debug output including API requests/responses")
386
390
  .action(async (options) => {
387
391
  if (options.debug) {
388
392
  process.env.TINYBIRD_DEBUG = "1";
389
393
  }
394
+ const wait = options.wait !== false;
395
+ const auto = options.auto !== false;
390
396
  output.highlight("Deploying to main workspace...");
391
397
  const result = await runDeploy({
392
398
  dryRun: options.dryRun,
393
399
  check: options.check,
394
400
  allowDestructiveOperations: options.allowDestructiveOperations,
401
+ wait,
402
+ auto,
395
403
  callbacks: {
396
404
  onChanges: (deployChanges) => {
397
405
  // Show changes table immediately after deployment is created
@@ -425,8 +433,11 @@ function createCli() {
425
433
  }
426
434
  output.showChangesTable(changes);
427
435
  },
436
+ onDeploymentSubmitted: (id) => output.showDeploymentSubmitted(id, auto),
428
437
  onWaitingForReady: () => output.showWaitingForDeployment(),
429
438
  onDeploymentReady: () => output.showDeploymentReady(),
439
+ onWaitingForPromote: () => output.showWaitingForPromote(),
440
+ onDeploymentPromoted: () => output.showDeploymentPromoted(),
430
441
  onDeploymentLive: (id) => output.showDeploymentLive(id),
431
442
  onValidating: () => output.showValidatingDeployment(),
432
443
  },