@tinybirdco/sdk 0.0.53 → 0.0.55
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/api/deploy.d.ts +18 -11
- package/dist/api/deploy.d.ts.map +1 -1
- package/dist/api/deploy.js +77 -69
- package/dist/api/deploy.js.map +1 -1
- package/dist/api/deploy.test.js +106 -55
- package/dist/api/deploy.test.js.map +1 -1
- package/package.json +1 -1
- package/src/api/deploy.test.ts +183 -62
- package/src/api/deploy.ts +106 -91
package/dist/api/deploy.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Deploy resources to Tinybird main workspace
|
|
3
|
-
* Uses the /v1/deploy endpoint
|
|
3
|
+
* Uses the /v1/deploy endpoint to create a deployment, then sets it live
|
|
4
4
|
*/
|
|
5
5
|
import type { GeneratedResources } from "../generator/index.js";
|
|
6
6
|
import type { BuildConfig, BuildApiResult } from "./build.js";
|
|
@@ -8,7 +8,7 @@ import type { BuildConfig, BuildApiResult } from "./build.js";
|
|
|
8
8
|
* Feedback item from deployment response
|
|
9
9
|
*/
|
|
10
10
|
export interface DeploymentFeedback {
|
|
11
|
-
resource: string;
|
|
11
|
+
resource: string | null;
|
|
12
12
|
level: "ERROR" | "WARNING" | "INFO";
|
|
13
13
|
message: string;
|
|
14
14
|
}
|
|
@@ -23,6 +23,12 @@ export interface Deployment {
|
|
|
23
23
|
updated_at?: string;
|
|
24
24
|
feedback?: DeploymentFeedback[];
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Response from /v1/deployments list endpoint
|
|
28
|
+
*/
|
|
29
|
+
export interface DeploymentsListResponse {
|
|
30
|
+
deployments: Deployment[];
|
|
31
|
+
}
|
|
26
32
|
/**
|
|
27
33
|
* Response from /v1/deploy endpoint
|
|
28
34
|
*/
|
|
@@ -35,13 +41,6 @@ export interface DeployResponse {
|
|
|
35
41
|
error: string;
|
|
36
42
|
}>;
|
|
37
43
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Response from /v1/deployments/{id} endpoint
|
|
40
|
-
*/
|
|
41
|
-
export interface DeploymentStatusResponse {
|
|
42
|
-
result: string;
|
|
43
|
-
deployment: Deployment;
|
|
44
|
-
}
|
|
45
44
|
/**
|
|
46
45
|
* Detailed deployment information with resource changes
|
|
47
46
|
*/
|
|
@@ -70,11 +69,20 @@ export interface DeploymentDetails extends Deployment {
|
|
|
70
69
|
error: string;
|
|
71
70
|
}>;
|
|
72
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Response from /v1/deployments/{id} endpoint
|
|
74
|
+
*/
|
|
75
|
+
export interface DeploymentStatusResponse {
|
|
76
|
+
result: string;
|
|
77
|
+
deployment: Deployment;
|
|
78
|
+
}
|
|
73
79
|
/**
|
|
74
80
|
* Deploy generated resources to Tinybird main workspace
|
|
75
81
|
*
|
|
76
82
|
* Uses the /v1/deploy endpoint which accepts all resources in a single
|
|
77
|
-
* multipart form request.
|
|
83
|
+
* multipart form request. After creating the deployment, this function:
|
|
84
|
+
* 1. Polls until the deployment is ready (status === 'data_ready')
|
|
85
|
+
* 2. Sets the deployment as live via /v1/deployments/{id}/set-live
|
|
78
86
|
*
|
|
79
87
|
* @param config - Build configuration with API URL and token
|
|
80
88
|
* @param resources - Generated resources to deploy
|
|
@@ -142,7 +150,6 @@ export declare function deployToMain(config: BuildConfig, resources: GeneratedRe
|
|
|
142
150
|
pollIntervalMs?: number;
|
|
143
151
|
maxPollAttempts?: number;
|
|
144
152
|
check?: boolean;
|
|
145
|
-
autoPromote?: boolean;
|
|
146
153
|
allowDestructiveOperations?: boolean;
|
|
147
154
|
callbacks?: DeployCallbacks;
|
|
148
155
|
}): Promise<BuildApiResult>;
|
package/dist/api/deploy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/api/deploy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/api/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/api/deploy.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Deploy resources to Tinybird main workspace
|
|
3
|
-
* Uses the /v1/deploy endpoint
|
|
3
|
+
* Uses the /v1/deploy endpoint to create a deployment, then sets it live
|
|
4
4
|
*/
|
|
5
5
|
import { tinybirdFetch } from "./fetcher.js";
|
|
6
6
|
const FORWARD_CLASSIC_GUIDANCE = "Use the Tinybird Classic CLI (`tb`) from a Tinybird Classic workspace for this operation.";
|
|
7
7
|
export async function deployToMain(config, resources, options) {
|
|
8
8
|
const debug = options?.debug ?? !!process.env.TINYBIRD_DEBUG;
|
|
9
9
|
const pollIntervalMs = options?.pollIntervalMs ?? 1000;
|
|
10
|
-
const maxPollAttempts = options?.maxPollAttempts ?? 120;
|
|
10
|
+
const maxPollAttempts = options?.maxPollAttempts ?? 120; // 2 minutes max
|
|
11
11
|
const baseUrl = config.baseUrl.replace(/\/$/, "");
|
|
12
12
|
const formData = new FormData();
|
|
13
13
|
// Add datasources
|
|
@@ -30,17 +30,42 @@ export async function deployToMain(config, resources, options) {
|
|
|
30
30
|
}
|
|
31
31
|
formData.append(fieldName, new Blob([pipe.content], { type: "text/plain" }), fileName);
|
|
32
32
|
}
|
|
33
|
-
//
|
|
34
|
-
|
|
33
|
+
// Step 0: Clean up any stale non-live deployments that might block the new deployment
|
|
34
|
+
try {
|
|
35
|
+
const deploymentsUrl = `${baseUrl}/v1/deployments`;
|
|
36
|
+
const deploymentsResponse = await tinybirdFetch(deploymentsUrl, {
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: `Bearer ${config.token}`,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
if (deploymentsResponse.ok) {
|
|
42
|
+
const deploymentsBody = (await deploymentsResponse.json());
|
|
43
|
+
const staleDeployments = deploymentsBody.deployments.filter((d) => !d.live && d.status !== "live");
|
|
44
|
+
for (const stale of staleDeployments) {
|
|
45
|
+
if (debug) {
|
|
46
|
+
console.log(`[debug] Cleaning up stale deployment: ${stale.id} (status: ${stale.status})`);
|
|
47
|
+
}
|
|
48
|
+
await tinybirdFetch(`${baseUrl}/v1/deployments/${stale.id}`, {
|
|
49
|
+
method: "DELETE",
|
|
50
|
+
headers: {
|
|
51
|
+
Authorization: `Bearer ${config.token}`,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
// Ignore errors during cleanup - we'll try to deploy anyway
|
|
59
|
+
if (debug) {
|
|
60
|
+
console.log(`[debug] Failed to clean up stale deployments: ${e}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Step 1: Create deployment via /v1/deploy
|
|
35
64
|
const deployUrlBase = `${baseUrl}/v1/deploy`;
|
|
36
65
|
const urlParams = new URLSearchParams();
|
|
37
66
|
if (options?.check) {
|
|
38
67
|
urlParams.set("check", "true");
|
|
39
68
|
}
|
|
40
|
-
const autoPromote = options?.autoPromote ?? !options?.check;
|
|
41
|
-
if (autoPromote) {
|
|
42
|
-
urlParams.set("auto_promote", "true");
|
|
43
|
-
}
|
|
44
69
|
if (options?.allowDestructiveOperations) {
|
|
45
70
|
urlParams.set("allow_destructive_operations", "true");
|
|
46
71
|
}
|
|
@@ -74,7 +99,7 @@ export async function deployToMain(config, resources, options) {
|
|
|
74
99
|
return feedback
|
|
75
100
|
.map((f) => {
|
|
76
101
|
// Extract just the filename from "Datasource events.datasource" format
|
|
77
|
-
const resourceName = f.resource
|
|
102
|
+
const resourceName = f.resource?.split(" ").pop() ?? f.resource ?? "unknown";
|
|
78
103
|
return `${resourceName}: ${normalizeDeployErrorMessage(f.message)}`;
|
|
79
104
|
})
|
|
80
105
|
.join("\n");
|
|
@@ -189,17 +214,15 @@ export async function deployToMain(config, resources, options) {
|
|
|
189
214
|
},
|
|
190
215
|
});
|
|
191
216
|
}
|
|
192
|
-
|
|
193
|
-
let
|
|
217
|
+
// Step 2: Poll until deployment is ready
|
|
218
|
+
let deployment = body.deployment;
|
|
219
|
+
let attempts = 0;
|
|
194
220
|
options?.callbacks?.onWaitingForReady?.();
|
|
195
|
-
while (deployment.status !== "data_ready" &&
|
|
196
|
-
deployment.status !== "failed" &&
|
|
197
|
-
deployment.status !== "error" &&
|
|
198
|
-
statusAttempts < maxPollAttempts) {
|
|
221
|
+
while (deployment.status !== "data_ready" && attempts < maxPollAttempts) {
|
|
199
222
|
await sleep(pollIntervalMs);
|
|
200
|
-
|
|
223
|
+
attempts++;
|
|
201
224
|
if (debug) {
|
|
202
|
-
console.log(`[debug] Polling deployment status (attempt ${
|
|
225
|
+
console.log(`[debug] Polling deployment status (attempt ${attempts})...`);
|
|
203
226
|
}
|
|
204
227
|
const statusUrl = `${baseUrl}/v1/deployments/${deploymentId}`;
|
|
205
228
|
const statusResponse = await tinybirdFetch(statusUrl, {
|
|
@@ -220,79 +243,61 @@ export async function deployToMain(config, resources, options) {
|
|
|
220
243
|
}
|
|
221
244
|
const statusBody = (await statusResponse.json());
|
|
222
245
|
deployment = statusBody.deployment;
|
|
246
|
+
if (debug) {
|
|
247
|
+
console.log(`[debug] Deployment status: ${deployment.status}`);
|
|
248
|
+
}
|
|
249
|
+
// Check for failed status
|
|
250
|
+
if (deployment.status === "failed" || deployment.status === "error") {
|
|
251
|
+
return {
|
|
252
|
+
success: false,
|
|
253
|
+
result: "failed",
|
|
254
|
+
error: `Deployment failed with status: ${deployment.status}`,
|
|
255
|
+
datasourceCount: resources.datasources.length,
|
|
256
|
+
pipeCount: resources.pipes.length,
|
|
257
|
+
connectionCount: resources.connections?.length ?? 0,
|
|
258
|
+
buildId: deploymentId,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
223
261
|
}
|
|
224
|
-
if (deployment.status
|
|
262
|
+
if (deployment.status !== "data_ready") {
|
|
225
263
|
return {
|
|
226
264
|
success: false,
|
|
227
265
|
result: "failed",
|
|
228
|
-
error: `Deployment
|
|
266
|
+
error: `Deployment timed out after ${maxPollAttempts} attempts. Last status: ${deployment.status}`,
|
|
229
267
|
datasourceCount: resources.datasources.length,
|
|
230
268
|
pipeCount: resources.pipes.length,
|
|
231
269
|
connectionCount: resources.connections?.length ?? 0,
|
|
232
270
|
buildId: deploymentId,
|
|
233
271
|
};
|
|
234
272
|
}
|
|
235
|
-
|
|
273
|
+
options?.callbacks?.onDeploymentReady?.();
|
|
274
|
+
// Step 3: Set the deployment as live
|
|
275
|
+
const setLiveUrl = `${baseUrl}/v1/deployments/${deploymentId}/set-live`;
|
|
276
|
+
if (debug) {
|
|
277
|
+
console.log(`[debug] POST ${setLiveUrl}`);
|
|
278
|
+
}
|
|
279
|
+
const setLiveResponse = await tinybirdFetch(setLiveUrl, {
|
|
280
|
+
method: "POST",
|
|
281
|
+
headers: {
|
|
282
|
+
Authorization: `Bearer ${config.token}`,
|
|
283
|
+
},
|
|
284
|
+
});
|
|
285
|
+
if (!setLiveResponse.ok) {
|
|
286
|
+
const setLiveBody = await setLiveResponse.text();
|
|
236
287
|
return {
|
|
237
288
|
success: false,
|
|
238
289
|
result: "failed",
|
|
239
|
-
error: `
|
|
290
|
+
error: `Failed to set deployment as live: ${setLiveResponse.status} ${setLiveResponse.statusText}\n${setLiveBody}`,
|
|
240
291
|
datasourceCount: resources.datasources.length,
|
|
241
292
|
pipeCount: resources.pipes.length,
|
|
242
293
|
connectionCount: resources.connections?.length ?? 0,
|
|
243
294
|
buildId: deploymentId,
|
|
244
295
|
};
|
|
245
296
|
}
|
|
246
|
-
options?.callbacks?.onDeploymentReady?.();
|
|
247
|
-
if (autoPromote && !deployment.live) {
|
|
248
|
-
let promotionAttempts = 0;
|
|
249
|
-
options?.callbacks?.onWaitingForPromote?.();
|
|
250
|
-
while (!deployment.live && promotionAttempts < maxPollAttempts) {
|
|
251
|
-
await sleep(pollIntervalMs);
|
|
252
|
-
promotionAttempts++;
|
|
253
|
-
if (debug) {
|
|
254
|
-
console.log(`[debug] Polling auto-promote status (attempt ${promotionAttempts})...`);
|
|
255
|
-
}
|
|
256
|
-
const statusUrl = `${baseUrl}/v1/deployments/${deploymentId}`;
|
|
257
|
-
const statusResponse = await tinybirdFetch(statusUrl, {
|
|
258
|
-
headers: {
|
|
259
|
-
Authorization: `Bearer ${config.token}`,
|
|
260
|
-
},
|
|
261
|
-
});
|
|
262
|
-
if (!statusResponse.ok) {
|
|
263
|
-
return {
|
|
264
|
-
success: false,
|
|
265
|
-
result: "failed",
|
|
266
|
-
error: `Failed to check deployment status: ${statusResponse.status} ${statusResponse.statusText}`,
|
|
267
|
-
datasourceCount: resources.datasources.length,
|
|
268
|
-
pipeCount: resources.pipes.length,
|
|
269
|
-
connectionCount: resources.connections?.length ?? 0,
|
|
270
|
-
buildId: deploymentId,
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
const statusBody = (await statusResponse.json());
|
|
274
|
-
deployment = statusBody.deployment;
|
|
275
|
-
}
|
|
276
|
-
if (!deployment.live) {
|
|
277
|
-
return {
|
|
278
|
-
success: false,
|
|
279
|
-
result: "failed",
|
|
280
|
-
error: `Deployment reached data_ready but auto-promote did not complete after ${maxPollAttempts} attempts`,
|
|
281
|
-
datasourceCount: resources.datasources.length,
|
|
282
|
-
pipeCount: resources.pipes.length,
|
|
283
|
-
connectionCount: resources.connections?.length ?? 0,
|
|
284
|
-
buildId: deploymentId,
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
options?.callbacks?.onDeploymentPromoted?.();
|
|
288
|
-
}
|
|
289
297
|
if (debug) {
|
|
290
|
-
|
|
291
|
-
console.log(`[debug] Deployment ${deploymentId} is now ${stateLabel}`);
|
|
292
|
-
}
|
|
293
|
-
if (deployment.live) {
|
|
294
|
-
options?.callbacks?.onDeploymentLive?.(deploymentId);
|
|
298
|
+
console.log(`[debug] Deployment ${deploymentId} is now live`);
|
|
295
299
|
}
|
|
300
|
+
options?.callbacks?.onDeploymentLive?.(deploymentId);
|
|
296
301
|
return {
|
|
297
302
|
success: true,
|
|
298
303
|
result: "success",
|
|
@@ -312,6 +317,9 @@ export async function deployToMain(config, resources, options) {
|
|
|
312
317
|
},
|
|
313
318
|
};
|
|
314
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Helper function to sleep for a given number of milliseconds
|
|
322
|
+
*/
|
|
315
323
|
function sleep(ms) {
|
|
316
324
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
317
325
|
}
|
package/dist/api/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/api/deploy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/api/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/api/deploy.test.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { describe, it, expect, beforeAll, afterEach, afterAll
|
|
1
|
+
import { describe, it, expect, beforeAll, beforeEach, afterEach, afterAll } from "vitest";
|
|
2
2
|
import { setupServer } from "msw/node";
|
|
3
3
|
import { http, HttpResponse } from "msw";
|
|
4
4
|
import { deployToMain } from "./deploy.js";
|
|
5
|
-
import { BASE_URL, createDeploySuccessResponse, createBuildFailureResponse, createBuildMultipleErrorsResponse, } from "../test/handlers.js";
|
|
5
|
+
import { BASE_URL, createDeploySuccessResponse, createDeploymentStatusResponse, createSetLiveSuccessResponse, createBuildFailureResponse, createBuildMultipleErrorsResponse, createDeploymentsListResponse, } from "../test/handlers.js";
|
|
6
6
|
const server = setupServer();
|
|
7
7
|
beforeAll(() => server.listen({ onUnhandledRequest: "error" }));
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
// Set up default handler for deployments list (used by stale deployment cleanup)
|
|
10
|
+
server.use(http.get(`${BASE_URL}/v1/deployments`, () => {
|
|
11
|
+
return HttpResponse.json(createDeploymentsListResponse());
|
|
12
|
+
}));
|
|
13
|
+
});
|
|
8
14
|
afterEach(() => server.resetHandlers());
|
|
9
15
|
afterAll(() => server.close());
|
|
10
16
|
describe("Deploy API", () => {
|
|
@@ -13,44 +19,53 @@ describe("Deploy API", () => {
|
|
|
13
19
|
token: "p.test-token",
|
|
14
20
|
};
|
|
15
21
|
const resources = {
|
|
16
|
-
datasources: [
|
|
17
|
-
|
|
22
|
+
datasources: [
|
|
23
|
+
{ name: "events", content: "SCHEMA > timestamp DateTime" },
|
|
24
|
+
],
|
|
25
|
+
pipes: [
|
|
26
|
+
{ name: "top_events", content: "NODE main\nSQL > SELECT * FROM events" },
|
|
27
|
+
],
|
|
18
28
|
connections: [],
|
|
19
29
|
};
|
|
20
|
-
|
|
30
|
+
// Helper to set up successful deploy flow
|
|
31
|
+
function setupSuccessfulDeployFlow(deploymentId = "deploy-abc") {
|
|
21
32
|
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
22
33
|
return HttpResponse.json(createDeploySuccessResponse({ deploymentId, status: "pending" }));
|
|
23
34
|
}), http.get(`${BASE_URL}/v1/deployments/${deploymentId}`, () => {
|
|
24
|
-
return HttpResponse.json({
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
id: deploymentId,
|
|
28
|
-
status: "data_ready",
|
|
29
|
-
live: true,
|
|
30
|
-
},
|
|
31
|
-
});
|
|
35
|
+
return HttpResponse.json(createDeploymentStatusResponse({ deploymentId, status: "data_ready" }));
|
|
36
|
+
}), http.post(`${BASE_URL}/v1/deployments/${deploymentId}/set-live`, () => {
|
|
37
|
+
return HttpResponse.json(createSetLiveSuccessResponse());
|
|
32
38
|
}));
|
|
33
39
|
}
|
|
34
40
|
describe("deployToMain", () => {
|
|
35
|
-
it("successfully deploys resources with
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
const result = await deployToMain(config, resources, {
|
|
39
|
-
pollIntervalMs: 1,
|
|
40
|
-
callbacks: { onDeploymentLive },
|
|
41
|
-
});
|
|
41
|
+
it("successfully deploys resources with full flow", async () => {
|
|
42
|
+
setupSuccessfulDeployFlow("deploy-abc");
|
|
43
|
+
const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
|
|
42
44
|
expect(result.success).toBe(true);
|
|
43
45
|
expect(result.result).toBe("success");
|
|
44
46
|
expect(result.buildId).toBe("deploy-abc");
|
|
45
47
|
expect(result.datasourceCount).toBe(1);
|
|
46
48
|
expect(result.pipeCount).toBe(1);
|
|
47
|
-
|
|
49
|
+
});
|
|
50
|
+
it("polls until deployment is ready", async () => {
|
|
51
|
+
let pollCount = 0;
|
|
52
|
+
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
53
|
+
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-poll", status: "pending" }));
|
|
54
|
+
}), http.get(`${BASE_URL}/v1/deployments/deploy-poll`, () => {
|
|
55
|
+
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());
|
|
61
|
+
}));
|
|
62
|
+
const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
|
|
63
|
+
expect(result.success).toBe(true);
|
|
64
|
+
expect(pollCount).toBe(3);
|
|
48
65
|
});
|
|
49
66
|
it("handles deploy failure with single error", async () => {
|
|
50
67
|
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
51
|
-
return HttpResponse.json(createBuildFailureResponse("Permission denied"), {
|
|
52
|
-
status: 200,
|
|
53
|
-
});
|
|
68
|
+
return HttpResponse.json(createBuildFailureResponse("Permission denied"), { status: 200 });
|
|
54
69
|
}));
|
|
55
70
|
const result = await deployToMain(config, resources);
|
|
56
71
|
expect(result.success).toBe(false);
|
|
@@ -69,6 +84,22 @@ describe("Deploy API", () => {
|
|
|
69
84
|
expect(result.error).toContain("[events.datasource] Schema mismatch");
|
|
70
85
|
expect(result.error).toContain("General error without filename");
|
|
71
86
|
});
|
|
87
|
+
it("handles deployment feedback entries with null resource", async () => {
|
|
88
|
+
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
89
|
+
return HttpResponse.json({
|
|
90
|
+
result: "failed",
|
|
91
|
+
deployment: {
|
|
92
|
+
id: "deploy-null-resource",
|
|
93
|
+
status: "failed",
|
|
94
|
+
feedback: [{ resource: null, level: "ERROR", message: "Invalid token" }],
|
|
95
|
+
},
|
|
96
|
+
}, { status: 200 });
|
|
97
|
+
}));
|
|
98
|
+
const result = await deployToMain(config, resources);
|
|
99
|
+
expect(result.success).toBe(false);
|
|
100
|
+
expect(result.result).toBe("failed");
|
|
101
|
+
expect(result.error).toContain("unknown: Invalid token");
|
|
102
|
+
});
|
|
72
103
|
it("handles HTTP error responses", async () => {
|
|
73
104
|
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
74
105
|
return HttpResponse.json({ result: "failed", error: "Forbidden" }, { status: 403 });
|
|
@@ -86,33 +117,33 @@ describe("Deploy API", () => {
|
|
|
86
117
|
}));
|
|
87
118
|
await expect(deployToMain(config, resources)).rejects.toThrow("Failed to parse response");
|
|
88
119
|
});
|
|
89
|
-
it("uses /v1/deploy endpoint
|
|
120
|
+
it("uses /v1/deploy endpoint (not /v1/build)", async () => {
|
|
90
121
|
let capturedUrl = null;
|
|
91
122
|
server.use(http.post(`${BASE_URL}/v1/deploy`, ({ request }) => {
|
|
92
123
|
capturedUrl = request.url;
|
|
93
|
-
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-url-test"
|
|
124
|
+
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-url-test" }));
|
|
94
125
|
}), http.get(`${BASE_URL}/v1/deployments/deploy-url-test`, () => {
|
|
95
|
-
return HttpResponse.json({
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
});
|
|
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());
|
|
99
129
|
}));
|
|
100
130
|
await deployToMain(config, resources, { pollIntervalMs: 1 });
|
|
101
131
|
const parsed = new URL(capturedUrl ?? "");
|
|
102
132
|
expect(parsed.pathname).toBe("/v1/deploy");
|
|
103
133
|
expect(parsed.searchParams.get("from")).toBe("ts-sdk");
|
|
104
|
-
expect(parsed.searchParams.get("auto_promote")).toBe("true");
|
|
105
134
|
});
|
|
106
135
|
it("passes allow_destructive_operations when explicitly enabled", async () => {
|
|
107
136
|
let capturedUrl = null;
|
|
108
137
|
server.use(http.post(`${BASE_URL}/v1/deploy`, ({ request }) => {
|
|
109
138
|
capturedUrl = request.url;
|
|
110
|
-
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-destructive"
|
|
139
|
+
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-destructive" }));
|
|
111
140
|
}), http.get(`${BASE_URL}/v1/deployments/deploy-destructive`, () => {
|
|
112
|
-
return HttpResponse.json({
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
});
|
|
141
|
+
return HttpResponse.json(createDeploymentStatusResponse({
|
|
142
|
+
deploymentId: "deploy-destructive",
|
|
143
|
+
status: "data_ready",
|
|
144
|
+
}));
|
|
145
|
+
}), http.post(`${BASE_URL}/v1/deployments/deploy-destructive/set-live`, () => {
|
|
146
|
+
return HttpResponse.json(createSetLiveSuccessResponse());
|
|
116
147
|
}));
|
|
117
148
|
await deployToMain(config, resources, {
|
|
118
149
|
pollIntervalMs: 1,
|
|
@@ -120,19 +151,6 @@ describe("Deploy API", () => {
|
|
|
120
151
|
});
|
|
121
152
|
const parsed = new URL(capturedUrl ?? "");
|
|
122
153
|
expect(parsed.searchParams.get("allow_destructive_operations")).toBe("true");
|
|
123
|
-
expect(parsed.searchParams.get("auto_promote")).toBe("true");
|
|
124
|
-
});
|
|
125
|
-
it("does not send auto_promote in check mode", async () => {
|
|
126
|
-
let capturedUrl = null;
|
|
127
|
-
server.use(http.post(`${BASE_URL}/v1/deploy`, ({ request }) => {
|
|
128
|
-
capturedUrl = request.url;
|
|
129
|
-
return HttpResponse.json({ result: "success" });
|
|
130
|
-
}));
|
|
131
|
-
const result = await deployToMain(config, resources, { check: true });
|
|
132
|
-
expect(result.success).toBe(true);
|
|
133
|
-
const parsed = new URL(capturedUrl ?? "");
|
|
134
|
-
expect(parsed.searchParams.get("check")).toBe("true");
|
|
135
|
-
expect(parsed.searchParams.get("auto_promote")).toBeNull();
|
|
136
154
|
});
|
|
137
155
|
it("adds actionable guidance to Forward/Classic workspace errors", async () => {
|
|
138
156
|
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
@@ -146,22 +164,55 @@ describe("Deploy API", () => {
|
|
|
146
164
|
expect(result.error).toContain("Tinybird Forward workspace");
|
|
147
165
|
expect(result.error).toContain("Use the Tinybird Classic CLI (`tb`) from a Tinybird Classic workspace for this operation.");
|
|
148
166
|
});
|
|
167
|
+
it("handles failed deployment status", async () => {
|
|
168
|
+
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
169
|
+
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-fail", status: "pending" }));
|
|
170
|
+
}), http.get(`${BASE_URL}/v1/deployments/deploy-fail`, () => {
|
|
171
|
+
return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-fail", status: "failed" }));
|
|
172
|
+
}));
|
|
173
|
+
const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
|
|
174
|
+
expect(result.success).toBe(false);
|
|
175
|
+
expect(result.error).toContain("Deployment failed with status: failed");
|
|
176
|
+
});
|
|
177
|
+
it("handles set-live failure", async () => {
|
|
178
|
+
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
179
|
+
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-setlive-fail" }));
|
|
180
|
+
}), http.get(`${BASE_URL}/v1/deployments/deploy-setlive-fail`, () => {
|
|
181
|
+
return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-setlive-fail", status: "data_ready" }));
|
|
182
|
+
}), http.post(`${BASE_URL}/v1/deployments/deploy-setlive-fail/set-live`, () => {
|
|
183
|
+
return HttpResponse.json({ error: "Set live failed" }, { status: 500 });
|
|
184
|
+
}));
|
|
185
|
+
const result = await deployToMain(config, resources, { pollIntervalMs: 1 });
|
|
186
|
+
expect(result.success).toBe(false);
|
|
187
|
+
expect(result.error).toContain("Failed to set deployment as live");
|
|
188
|
+
});
|
|
149
189
|
it("normalizes baseUrl with trailing slash", async () => {
|
|
150
190
|
let capturedUrl = null;
|
|
151
191
|
server.use(http.post(`${BASE_URL}/v1/deploy`, ({ request }) => {
|
|
152
192
|
capturedUrl = request.url;
|
|
153
|
-
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-slash"
|
|
193
|
+
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-slash" }));
|
|
154
194
|
}), http.get(`${BASE_URL}/v1/deployments/deploy-slash`, () => {
|
|
155
|
-
return HttpResponse.json({
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
});
|
|
195
|
+
return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-slash", status: "data_ready" }));
|
|
196
|
+
}), http.post(`${BASE_URL}/v1/deployments/deploy-slash/set-live`, () => {
|
|
197
|
+
return HttpResponse.json(createSetLiveSuccessResponse());
|
|
159
198
|
}));
|
|
160
199
|
await deployToMain({ ...config, baseUrl: `${BASE_URL}/` }, resources, { pollIntervalMs: 1 });
|
|
161
200
|
const parsed = new URL(capturedUrl ?? "");
|
|
162
201
|
expect(parsed.pathname).toBe("/v1/deploy");
|
|
163
202
|
expect(parsed.searchParams.get("from")).toBe("ts-sdk");
|
|
164
|
-
|
|
203
|
+
});
|
|
204
|
+
it("times out when deployment never becomes ready", async () => {
|
|
205
|
+
server.use(http.post(`${BASE_URL}/v1/deploy`, () => {
|
|
206
|
+
return HttpResponse.json(createDeploySuccessResponse({ deploymentId: "deploy-timeout", status: "pending" }));
|
|
207
|
+
}), http.get(`${BASE_URL}/v1/deployments/deploy-timeout`, () => {
|
|
208
|
+
return HttpResponse.json(createDeploymentStatusResponse({ deploymentId: "deploy-timeout", status: "pending" }));
|
|
209
|
+
}));
|
|
210
|
+
const result = await deployToMain(config, resources, {
|
|
211
|
+
pollIntervalMs: 1,
|
|
212
|
+
maxPollAttempts: 3,
|
|
213
|
+
});
|
|
214
|
+
expect(result.success).toBe(false);
|
|
215
|
+
expect(result.error).toContain("Deployment timed out");
|
|
165
216
|
});
|
|
166
217
|
});
|
|
167
218
|
});
|