@tinybirdco/sdk 0.0.77 → 0.0.79

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.
Files changed (122) hide show
  1. package/README.md +27 -2
  2. package/dist/api/branches.d.ts +4 -3
  3. package/dist/api/branches.d.ts.map +1 -1
  4. package/dist/api/branches.js +4 -4
  5. package/dist/api/branches.js.map +1 -1
  6. package/dist/api/branches.test.js +34 -1
  7. package/dist/api/branches.test.js.map +1 -1
  8. package/dist/cli/commands/build.d.ts.map +1 -1
  9. package/dist/cli/commands/build.js +7 -1
  10. package/dist/cli/commands/build.js.map +1 -1
  11. package/dist/cli/commands/build.test.js +159 -0
  12. package/dist/cli/commands/build.test.js.map +1 -1
  13. package/dist/cli/commands/clear.d.ts.map +1 -1
  14. package/dist/cli/commands/clear.js +4 -1
  15. package/dist/cli/commands/clear.js.map +1 -1
  16. package/dist/cli/commands/deploy.test.js +1 -0
  17. package/dist/cli/commands/deploy.test.js.map +1 -1
  18. package/dist/cli/commands/dev.d.ts.map +1 -1
  19. package/dist/cli/commands/dev.js +7 -1
  20. package/dist/cli/commands/dev.js.map +1 -1
  21. package/dist/cli/commands/generate.test.js +3 -0
  22. package/dist/cli/commands/generate.test.js.map +1 -1
  23. package/dist/cli/commands/migrate.d.ts.map +1 -1
  24. package/dist/cli/commands/migrate.js +14 -1
  25. package/dist/cli/commands/migrate.js.map +1 -1
  26. package/dist/cli/commands/migrate.test.js +60 -0
  27. package/dist/cli/commands/migrate.test.js.map +1 -1
  28. package/dist/cli/commands/preview.d.ts.map +1 -1
  29. package/dist/cli/commands/preview.js +4 -1
  30. package/dist/cli/commands/preview.js.map +1 -1
  31. package/dist/cli/commands/preview.test.js +116 -2
  32. package/dist/cli/commands/preview.test.js.map +1 -1
  33. package/dist/cli/config-types.d.ts +4 -0
  34. package/dist/cli/config-types.d.ts.map +1 -1
  35. package/dist/cli/config-types.js +1 -1
  36. package/dist/cli/config-types.js.map +1 -1
  37. package/dist/cli/config.d.ts +4 -2
  38. package/dist/cli/config.d.ts.map +1 -1
  39. package/dist/cli/config.js +27 -0
  40. package/dist/cli/config.js.map +1 -1
  41. package/dist/cli/config.test.js +79 -0
  42. package/dist/cli/config.test.js.map +1 -1
  43. package/dist/cli/index.js +2 -2
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/client/base.d.ts.map +1 -1
  46. package/dist/client/base.js +4 -1
  47. package/dist/client/base.js.map +1 -1
  48. package/dist/client/base.test.js +2 -1
  49. package/dist/client/base.test.js.map +1 -1
  50. package/dist/generator/connection.d.ts.map +1 -1
  51. package/dist/generator/connection.js +15 -1
  52. package/dist/generator/connection.js.map +1 -1
  53. package/dist/generator/connection.test.js +10 -1
  54. package/dist/generator/connection.test.js.map +1 -1
  55. package/dist/generator/datasource.d.ts.map +1 -1
  56. package/dist/generator/datasource.js +17 -1
  57. package/dist/generator/datasource.js.map +1 -1
  58. package/dist/generator/datasource.test.js +44 -1
  59. package/dist/generator/datasource.test.js.map +1 -1
  60. package/dist/index.d.ts +4 -4
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +1 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/migrate/emit-ts.d.ts.map +1 -1
  65. package/dist/migrate/emit-ts.js +28 -0
  66. package/dist/migrate/emit-ts.js.map +1 -1
  67. package/dist/migrate/parse-connection.d.ts +2 -2
  68. package/dist/migrate/parse-connection.d.ts.map +1 -1
  69. package/dist/migrate/parse-connection.js +60 -6
  70. package/dist/migrate/parse-connection.js.map +1 -1
  71. package/dist/migrate/parse-connection.test.js +18 -0
  72. package/dist/migrate/parse-connection.test.js.map +1 -1
  73. package/dist/migrate/parse-datasource.d.ts.map +1 -1
  74. package/dist/migrate/parse-datasource.js +27 -2
  75. package/dist/migrate/parse-datasource.js.map +1 -1
  76. package/dist/migrate/types.d.ts +15 -1
  77. package/dist/migrate/types.d.ts.map +1 -1
  78. package/dist/schema/connection.d.ts +46 -1
  79. package/dist/schema/connection.d.ts.map +1 -1
  80. package/dist/schema/connection.js +39 -0
  81. package/dist/schema/connection.js.map +1 -1
  82. package/dist/schema/connection.test.js +46 -1
  83. package/dist/schema/connection.test.js.map +1 -1
  84. package/dist/schema/datasource.d.ts +14 -1
  85. package/dist/schema/datasource.d.ts.map +1 -1
  86. package/dist/schema/datasource.js +2 -2
  87. package/dist/schema/datasource.js.map +1 -1
  88. package/dist/schema/datasource.test.js +2 -2
  89. package/dist/schema/datasource.test.js.map +1 -1
  90. package/package.json +1 -1
  91. package/src/api/branches.test.ts +38 -1
  92. package/src/api/branches.ts +8 -6
  93. package/src/cli/commands/build.test.ts +176 -0
  94. package/src/cli/commands/build.ts +9 -2
  95. package/src/cli/commands/clear.ts +8 -1
  96. package/src/cli/commands/deploy.test.ts +1 -0
  97. package/src/cli/commands/dev.ts +9 -1
  98. package/src/cli/commands/generate.test.ts +3 -0
  99. package/src/cli/commands/migrate.test.ts +95 -0
  100. package/src/cli/commands/migrate.ts +17 -1
  101. package/src/cli/commands/preview.test.ts +133 -2
  102. package/src/cli/commands/preview.ts +6 -2
  103. package/src/cli/config-types.ts +4 -0
  104. package/src/cli/config.test.ts +123 -0
  105. package/src/cli/config.ts +41 -3
  106. package/src/cli/index.ts +8 -2
  107. package/src/client/base.test.ts +3 -1
  108. package/src/client/base.ts +7 -1
  109. package/src/generator/connection.test.ts +17 -0
  110. package/src/generator/connection.ts +18 -0
  111. package/src/generator/datasource.test.ts +54 -1
  112. package/src/generator/datasource.ts +24 -1
  113. package/src/index.ts +6 -1
  114. package/src/migrate/emit-ts.ts +44 -3
  115. package/src/migrate/parse-connection.test.ts +41 -0
  116. package/src/migrate/parse-connection.ts +86 -7
  117. package/src/migrate/parse-datasource.ts +35 -2
  118. package/src/migrate/types.ts +18 -1
  119. package/src/schema/connection.test.ts +65 -0
  120. package/src/schema/connection.ts +76 -1
  121. package/src/schema/datasource.test.ts +2 -2
  122. package/src/schema/datasource.ts +21 -2
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.test.js","sourceRoot":"","sources":["../../src/schema/datasource.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasource.test.js","sourceRoot":"","sources":["../../src/schema/datasource.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinybirdco/sdk",
3
- "version": "0.0.77",
3
+ "version": "0.0.79",
4
4
  "description": "TypeScript SDK for Tinybird Forward - define datasources and pipes as TypeScript",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -189,6 +189,40 @@ describe("Branch API client", () => {
189
189
  );
190
190
  });
191
191
 
192
+ it("uses data=last_partition wire format when branch_data_mode is set", async () => {
193
+ const mockBranch = {
194
+ id: "branch-123",
195
+ name: "my-feature",
196
+ token: "p.branch-token",
197
+ created_at: "2024-01-01T00:00:00Z",
198
+ };
199
+
200
+ mockFetch.mockResolvedValueOnce({
201
+ ok: true,
202
+ json: () => Promise.resolve({
203
+ job: { id: "job-123", status: "waiting" },
204
+ workspace: { id: "ws-123" },
205
+ }),
206
+ });
207
+ mockFetch.mockResolvedValueOnce({
208
+ ok: true,
209
+ json: () => Promise.resolve({ id: "job-123", status: "done" }),
210
+ });
211
+ mockFetch.mockResolvedValueOnce({
212
+ ok: true,
213
+ json: () => Promise.resolve(mockBranch),
214
+ });
215
+
216
+ await createBranch(config, "my-feature", {
217
+ branch_data_mode: "last_partition",
218
+ });
219
+
220
+ const [createUrl] = mockFetch.mock.calls[0];
221
+ const createParsed = expectFromParam(createUrl);
222
+ expect(createParsed.searchParams.get("name")).toBe("my-feature");
223
+ expect(createParsed.searchParams.get("data")).toBe("last_partition");
224
+ });
225
+
192
226
  it("uses custom fetch when provided", async () => {
193
227
  const customFetch = vi
194
228
  .fn()
@@ -494,7 +528,9 @@ describe("Branch API client", () => {
494
528
  json: () => Promise.resolve(newBranch),
495
529
  });
496
530
 
497
- const result = await clearBranch(config, "my-feature");
531
+ const result = await clearBranch(config, "my-feature", {
532
+ branch_data_mode: "last_partition",
533
+ });
498
534
 
499
535
  expect(mockFetch).toHaveBeenCalledTimes(5);
500
536
 
@@ -515,6 +551,7 @@ describe("Branch API client", () => {
515
551
  const createParsed = expectFromParam(createUrl);
516
552
  expect(createParsed.pathname).toBe("/v1/environments");
517
553
  expect(createParsed.searchParams.get("name")).toBe("my-feature");
554
+ expect(createParsed.searchParams.get("data")).toBe("last_partition");
518
555
  expect(createInit.method).toBe("POST");
519
556
 
520
557
  expect(result).toEqual(newBranch);
@@ -3,6 +3,7 @@
3
3
  * Uses the /v1/environments endpoints (Forward API)
4
4
  */
5
5
 
6
+ import type { BranchDataMode } from "../cli/config-types.js";
6
7
  import { createTinybirdFetcher } from "./fetcher.js";
7
8
 
8
9
  /**
@@ -152,8 +153,8 @@ async function pollJob(
152
153
  * @returns The created branch with token
153
154
  */
154
155
  export interface CreateBranchOptions {
155
- /** Copy the last partition of production data into the branch */
156
- lastPartition?: boolean;
156
+ /** Data mode applied when creating the branch */
157
+ branch_data_mode?: BranchDataMode;
157
158
  }
158
159
 
159
160
  export async function createBranch(
@@ -164,8 +165,8 @@ export async function createBranch(
164
165
  const fetchFn = getFetch(config);
165
166
  const url = new URL("/v1/environments", config.baseUrl);
166
167
  url.searchParams.set("name", name);
167
- if (options?.lastPartition) {
168
- url.searchParams.set("last_partition", "1");
168
+ if (options?.branch_data_mode) {
169
+ url.searchParams.set("data", options.branch_data_mode);
169
170
  }
170
171
 
171
172
  const debug = !!process.env.TINYBIRD_DEBUG;
@@ -377,13 +378,14 @@ export async function getOrCreateBranch(
377
378
  */
378
379
  export async function clearBranch(
379
380
  config: BranchApiConfig,
380
- name: string
381
+ name: string,
382
+ options?: CreateBranchOptions
381
383
  ): Promise<TinybirdBranch> {
382
384
  // Delete the branch
383
385
  await deleteBranch(config, name);
384
386
 
385
387
  // Recreate the branch
386
- const branch = await createBranch(config, name);
388
+ const branch = await createBranch(config, name, options);
387
389
 
388
390
  return branch;
389
391
  }
@@ -64,6 +64,7 @@ describe("Build Command", () => {
64
64
  gitBranch: "feature-test",
65
65
  tinybirdBranch: "feature_test",
66
66
  isMainBranch: false,
67
+ branchDataMode: null,
67
68
  });
68
69
 
69
70
  vi.mocked(buildFromInclude).mockResolvedValue({
@@ -156,6 +157,7 @@ describe("Build Command", () => {
156
157
  gitBranch: "feature-test",
157
158
  tinybirdBranch: "feature_test",
158
159
  isMainBranch: false,
160
+ branchDataMode: null,
159
161
  });
160
162
 
161
163
  vi.mocked(buildFromInclude).mockResolvedValue({
@@ -242,6 +244,7 @@ describe("Build Command", () => {
242
244
  gitBranch: "feature-test",
243
245
  tinybirdBranch: "feature_test",
244
246
  isMainBranch: false,
247
+ branchDataMode: null,
245
248
  });
246
249
 
247
250
  vi.mocked(buildFromInclude).mockResolvedValue({
@@ -307,4 +310,177 @@ describe("Build Command", () => {
307
310
  expect(getLocalTokens).toHaveBeenCalled();
308
311
  });
309
312
  });
313
+
314
+ describe("branch_data_mode wiring", () => {
315
+ it("uses config-only last_partition when flag is absent", async () => {
316
+ const { loadConfigAsync } = await import("../config.js");
317
+ const { buildFromInclude } = await import("../../generator/index.js");
318
+ const { getOrCreateBranch } = await import("../../api/branches.js");
319
+ const { buildToTinybird } = await import("../../api/build.js");
320
+ const { getWorkspace } = await import("../../api/workspaces.js");
321
+ const { getBranchDashboardUrl } = await import("../../api/dashboard.js");
322
+
323
+ vi.mocked(loadConfigAsync).mockResolvedValue({
324
+ include: ["test.ts"],
325
+ token: "p.test-token",
326
+ baseUrl: "https://api.tinybird.co",
327
+ configPath: "/test/tinybird.config.json",
328
+ devMode: "branch",
329
+ cwd: "/test",
330
+ gitBranch: "feature-test",
331
+ tinybirdBranch: "feature_test",
332
+ isMainBranch: false,
333
+ branchDataMode: "last_partition",
334
+ });
335
+ vi.mocked(buildFromInclude).mockResolvedValue({
336
+ resources: { datasources: [], pipes: [], connections: [] },
337
+ entities: { datasources: {}, pipes: {}, connections: {}, rawDatasources: [], rawPipes: [], sourceFiles: [] },
338
+ stats: { datasourceCount: 0, pipeCount: 0, connectionCount: 0 },
339
+ });
340
+ vi.mocked(getOrCreateBranch).mockResolvedValue({
341
+ id: "branch-id",
342
+ name: "feature_test",
343
+ token: "branch-token",
344
+ wasCreated: false,
345
+ created_at: "2024-01-01",
346
+ });
347
+ vi.mocked(getWorkspace).mockResolvedValue({
348
+ id: "ws-id",
349
+ name: "test-workspace",
350
+ user_id: "user-id",
351
+ user_email: "user@test.com",
352
+ scope: "USER",
353
+ main: null,
354
+ });
355
+ vi.mocked(getBranchDashboardUrl).mockReturnValue("https://app.tinybird.co/dashboard");
356
+ vi.mocked(buildToTinybird).mockResolvedValue({
357
+ success: true,
358
+ result: "success",
359
+ datasourceCount: 0,
360
+ pipeCount: 0,
361
+ connectionCount: 0,
362
+ });
363
+
364
+ await runBuild();
365
+ expect(getOrCreateBranch).toHaveBeenCalledWith(
366
+ expect.any(Object),
367
+ "feature_test",
368
+ { branch_data_mode: "last_partition" }
369
+ );
370
+ });
371
+
372
+ it("keeps CLI --last-partition precedence over config", async () => {
373
+ const { loadConfigAsync } = await import("../config.js");
374
+ const { buildFromInclude } = await import("../../generator/index.js");
375
+ const { getOrCreateBranch } = await import("../../api/branches.js");
376
+ const { buildToTinybird } = await import("../../api/build.js");
377
+ const { getWorkspace } = await import("../../api/workspaces.js");
378
+ const { getBranchDashboardUrl } = await import("../../api/dashboard.js");
379
+
380
+ vi.mocked(loadConfigAsync).mockResolvedValue({
381
+ include: ["test.ts"],
382
+ token: "p.test-token",
383
+ baseUrl: "https://api.tinybird.co",
384
+ configPath: "/test/tinybird.config.json",
385
+ devMode: "branch",
386
+ cwd: "/test",
387
+ gitBranch: "feature-test",
388
+ tinybirdBranch: "feature_test",
389
+ isMainBranch: false,
390
+ branchDataMode: null,
391
+ });
392
+ vi.mocked(buildFromInclude).mockResolvedValue({
393
+ resources: { datasources: [], pipes: [], connections: [] },
394
+ entities: { datasources: {}, pipes: {}, connections: {}, rawDatasources: [], rawPipes: [], sourceFiles: [] },
395
+ stats: { datasourceCount: 0, pipeCount: 0, connectionCount: 0 },
396
+ });
397
+ vi.mocked(getOrCreateBranch).mockResolvedValue({
398
+ id: "branch-id",
399
+ name: "feature_test",
400
+ token: "branch-token",
401
+ wasCreated: false,
402
+ created_at: "2024-01-01",
403
+ });
404
+ vi.mocked(getWorkspace).mockResolvedValue({
405
+ id: "ws-id",
406
+ name: "test-workspace",
407
+ user_id: "user-id",
408
+ user_email: "user@test.com",
409
+ scope: "USER",
410
+ main: null,
411
+ });
412
+ vi.mocked(getBranchDashboardUrl).mockReturnValue("https://app.tinybird.co/dashboard");
413
+ vi.mocked(buildToTinybird).mockResolvedValue({
414
+ success: true,
415
+ result: "success",
416
+ datasourceCount: 0,
417
+ pipeCount: 0,
418
+ connectionCount: 0,
419
+ });
420
+
421
+ await runBuild({ lastPartition: true });
422
+ expect(getOrCreateBranch).toHaveBeenCalledWith(
423
+ expect.any(Object),
424
+ "feature_test",
425
+ { branch_data_mode: "last_partition" }
426
+ );
427
+ });
428
+
429
+ it("ignores config branch_data_mode in local mode", async () => {
430
+ const { loadConfigAsync } = await import("../config.js");
431
+ const { buildFromInclude } = await import("../../generator/index.js");
432
+ const { getOrCreateBranch } = await import("../../api/branches.js");
433
+ const { getLocalTokens, getOrCreateLocalWorkspace, getLocalWorkspaceName } = await import("../../api/local.js");
434
+ const { buildToTinybird } = await import("../../api/build.js");
435
+ const { getWorkspace } = await import("../../api/workspaces.js");
436
+ const { getLocalDashboardUrl } = await import("../../api/dashboard.js");
437
+
438
+ vi.mocked(loadConfigAsync).mockResolvedValue({
439
+ include: ["test.ts"],
440
+ token: "p.test-token",
441
+ baseUrl: "https://api.tinybird.co",
442
+ configPath: "/test/tinybird.config.json",
443
+ devMode: "local",
444
+ cwd: "/test",
445
+ gitBranch: "feature-test",
446
+ tinybirdBranch: "feature_test",
447
+ isMainBranch: false,
448
+ branchDataMode: "last_partition",
449
+ });
450
+ vi.mocked(buildFromInclude).mockResolvedValue({
451
+ resources: { datasources: [], pipes: [], connections: [] },
452
+ entities: { datasources: {}, pipes: {}, connections: {}, rawDatasources: [], rawPipes: [], sourceFiles: [] },
453
+ stats: { datasourceCount: 0, pipeCount: 0, connectionCount: 0 },
454
+ });
455
+ vi.mocked(getLocalTokens).mockResolvedValue({
456
+ admin_token: "admin-token",
457
+ user_token: "user-token",
458
+ workspace_admin_token: "workspace-admin-token",
459
+ });
460
+ vi.mocked(getWorkspace).mockResolvedValue({
461
+ id: "ws-id",
462
+ name: "test-workspace",
463
+ user_id: "user-id",
464
+ user_email: "user@test.com",
465
+ scope: "USER",
466
+ main: null,
467
+ });
468
+ vi.mocked(getLocalWorkspaceName).mockReturnValue("feature_test_workspace");
469
+ vi.mocked(getOrCreateLocalWorkspace).mockResolvedValue({
470
+ workspace: { id: "local-ws-id", name: "feature_test_workspace", token: "local-token" },
471
+ wasCreated: false,
472
+ });
473
+ vi.mocked(getLocalDashboardUrl).mockReturnValue("http://localhost:7181/dashboard");
474
+ vi.mocked(buildToTinybird).mockResolvedValue({
475
+ success: true,
476
+ result: "success",
477
+ datasourceCount: 0,
478
+ pipeCount: 0,
479
+ connectionCount: 0,
480
+ });
481
+
482
+ await runBuild();
483
+ expect(getOrCreateBranch).not.toHaveBeenCalled();
484
+ });
485
+ });
310
486
  });
@@ -2,7 +2,7 @@
2
2
  * Build command - generates and pushes resources to Tinybird branches
3
3
  */
4
4
 
5
- import { loadConfigAsync, LOCAL_BASE_URL, type ResolvedConfig, type DevMode } from "../config.js";
5
+ import { loadConfigAsync, LOCAL_BASE_URL, type ResolvedConfig, type DevMode, type BranchDataMode } from "../config.js";
6
6
  import { buildFromInclude, type BuildFromIncludeResult } from "../../generator/index.js";
7
7
  import { buildToTinybird, type BuildApiResult } from "../../api/build.js";
8
8
  import { getOrCreateBranch } from "../../api/branches.js";
@@ -225,13 +225,20 @@ export async function runBuild(options: BuildCommandOptions = {}): Promise<Build
225
225
  console.log(`[debug] Getting/creating Tinybird branch: ${config.tinybirdBranch}`);
226
226
  }
227
227
  try {
228
+ const branchDataMode: BranchDataMode | undefined =
229
+ options.lastPartition || config.branchDataMode === "last_partition"
230
+ ? "last_partition"
231
+ : undefined;
232
+ const branchOptions = branchDataMode
233
+ ? { branch_data_mode: branchDataMode }
234
+ : undefined;
228
235
  const tinybirdBranch = await getOrCreateBranch(
229
236
  {
230
237
  baseUrl: config.baseUrl,
231
238
  token: config.token,
232
239
  },
233
240
  config.tinybirdBranch!,
234
- { lastPartition: options.lastPartition }
241
+ branchOptions
235
242
  );
236
243
 
237
244
  if (!tinybirdBranch.token) {
@@ -13,6 +13,7 @@ import {
13
13
  import {
14
14
  clearBranch,
15
15
  BranchApiError,
16
+ type CreateBranchOptions,
16
17
  } from "../../api/branches.js";
17
18
  import {
18
19
  setBranchToken,
@@ -147,12 +148,18 @@ async function clearCloudBranch(config: ResolvedConfig): Promise<ClearResult> {
147
148
  });
148
149
 
149
150
  // Clear the branch (delete and recreate)
151
+ const branchOptions: CreateBranchOptions | undefined =
152
+ config.devMode !== "local" && config.branchDataMode === "last_partition"
153
+ ? { branch_data_mode: "last_partition" }
154
+ : undefined;
155
+
150
156
  const newBranch = await clearBranch(
151
157
  {
152
158
  baseUrl: config.baseUrl,
153
159
  token: config.token,
154
160
  },
155
- branchName
161
+ branchName,
162
+ branchOptions
156
163
  );
157
164
 
158
165
  // Update the cached token with the new branch token
@@ -37,6 +37,7 @@ describe("Deploy command", () => {
37
37
  tinybirdBranch: "feature_pro_610",
38
38
  isMainBranch: false,
39
39
  devMode: "branch",
40
+ branchDataMode: null,
40
41
  });
41
42
 
42
43
  vi.mocked(buildFromInclude).mockResolvedValue({
@@ -13,6 +13,7 @@ import {
13
13
  LOCAL_BASE_URL,
14
14
  type ResolvedConfig,
15
15
  type DevMode,
16
+ type BranchDataMode,
16
17
  } from "../config.js";
17
18
  import { runBuild, type BuildCommandResult } from "./build.js";
18
19
  import { getOrCreateBranch, type TinybirdBranch } from "../../api/branches.js";
@@ -239,6 +240,13 @@ export async function runDev(
239
240
  // Use tinybirdBranch (sanitized name) for Tinybird API, gitBranch for display
240
241
  if (config.tinybirdBranch) {
241
242
  const branchName = config.tinybirdBranch; // Sanitized name for Tinybird
243
+ const branchDataMode: BranchDataMode | undefined =
244
+ options.lastPartition || config.branchDataMode === "last_partition"
245
+ ? "last_partition"
246
+ : undefined;
247
+ const branchOptions = branchDataMode
248
+ ? { branch_data_mode: branchDataMode }
249
+ : undefined;
242
250
 
243
251
  // Always fetch fresh from API to avoid stale cache issues
244
252
  const tinybirdBranch = await getOrCreateBranch(
@@ -247,7 +255,7 @@ export async function runDev(
247
255
  token: config.token,
248
256
  },
249
257
  branchName,
250
- { lastPartition: options.lastPartition }
258
+ branchOptions
251
259
  );
252
260
 
253
261
  if (!tinybirdBranch.token) {
@@ -35,6 +35,7 @@ describe("Generate command", () => {
35
35
  tinybirdBranch: "feature_x",
36
36
  isMainBranch: false,
37
37
  devMode: "branch",
38
+ branchDataMode: null,
38
39
  });
39
40
 
40
41
  vi.mocked(buildFromInclude).mockResolvedValue({
@@ -108,6 +109,7 @@ describe("Generate command", () => {
108
109
  tinybirdBranch: "feature_x",
109
110
  isMainBranch: false,
110
111
  devMode: "branch",
112
+ branchDataMode: null,
111
113
  });
112
114
 
113
115
  vi.mocked(buildFromInclude).mockResolvedValue({
@@ -167,6 +169,7 @@ describe("Generate command", () => {
167
169
  tinybirdBranch: "feature_x",
168
170
  isMainBranch: false,
169
171
  devMode: "branch",
172
+ branchDataMode: null,
170
173
  });
171
174
  vi.mocked(buildFromInclude).mockRejectedValue(
172
175
  new Error("generator failed")
@@ -716,6 +716,101 @@ IMPORT_SCHEDULE '@on-demand'
716
716
  expect(output).toContain('schedule: "@on-demand"');
717
717
  });
718
718
 
719
+ it("migrates dynamodb connection and import datasource directives", async () => {
720
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tinybird-migrate-"));
721
+ tempDirs.push(tempDir);
722
+
723
+ writeFile(
724
+ tempDir,
725
+ "dynamo_sample.connection",
726
+ `TYPE dynamodb
727
+ DYNAMODB_ARN {{ tb_secret("DYNAMODB_ROLE_ARN") }}
728
+ DYNAMODB_REGION us-east-1
729
+ `
730
+ );
731
+
732
+ writeFile(
733
+ tempDir,
734
+ "events_dynamo.datasource",
735
+ `SCHEMA >
736
+ id String \`json:$.Id\`,
737
+ _record String \`json:$.NewImage\`
738
+
739
+ ENGINE "ReplacingMergeTree"
740
+ ENGINE_SORTING_KEY "id"
741
+ IMPORT_CONNECTION_NAME dynamo_sample
742
+ IMPORT_TABLE_ARN arn:aws:dynamodb:us-east-1:123456789012:table/events
743
+ IMPORT_EXPORT_BUCKET s3://my-export-bucket
744
+ `
745
+ );
746
+
747
+ const result = await runMigrate({
748
+ cwd: tempDir,
749
+ patterns: ["."],
750
+ strict: true,
751
+ });
752
+
753
+ expect(result.success).toBe(true);
754
+ expect(result.errors).toHaveLength(0);
755
+ expect(result.migrated.filter((resource) => resource.kind === "connection")).toHaveLength(1);
756
+ expect(result.migrated.filter((resource) => resource.kind === "datasource")).toHaveLength(1);
757
+
758
+ const output = fs.readFileSync(result.outputPath, "utf-8");
759
+ expect(output).toContain("defineDynamoDBConnection");
760
+ expect(output).toContain('export const dynamoSample = defineDynamoDBConnection("dynamo_sample", {');
761
+ expect(output).toContain('region: "us-east-1"');
762
+ expect(output).toContain('arn: secret("DYNAMODB_ROLE_ARN")');
763
+ expect(output).toContain("dynamodb: {");
764
+ expect(output).toContain("connection: dynamoSample");
765
+ expect(output).toContain(
766
+ 'tableArn: "arn:aws:dynamodb:us-east-1:123456789012:table/events"'
767
+ );
768
+ expect(output).toContain('exportBucket: "s3://my-export-bucket"');
769
+ });
770
+
771
+ it("reports an error when DynamoDB directives use a non-dynamodb connection type", async () => {
772
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tinybird-migrate-"));
773
+ tempDirs.push(tempDir);
774
+
775
+ writeFile(
776
+ tempDir,
777
+ "s3sample.connection",
778
+ `TYPE s3
779
+ S3_REGION us-east-1
780
+ S3_ARN "arn:aws:iam::123456789012:role/tinybird-s3-access"
781
+ `
782
+ );
783
+
784
+ writeFile(
785
+ tempDir,
786
+ "events_dynamo.datasource",
787
+ `SCHEMA >
788
+ id String
789
+
790
+ ENGINE "ReplacingMergeTree"
791
+ ENGINE_SORTING_KEY "id"
792
+ IMPORT_CONNECTION_NAME s3sample
793
+ IMPORT_TABLE_ARN arn:aws:dynamodb:us-east-1:123456789012:table/events
794
+ IMPORT_EXPORT_BUCKET s3://my-export-bucket
795
+ `
796
+ );
797
+
798
+ const result = await runMigrate({
799
+ cwd: tempDir,
800
+ patterns: ["."],
801
+ strict: true,
802
+ });
803
+
804
+ expect(result.success).toBe(false);
805
+ expect(
806
+ result.errors.some((error) =>
807
+ error.message.includes(
808
+ 'Datasource DynamoDB ingestion requires a dynamodb connection, found "s3".'
809
+ )
810
+ )
811
+ ).toBe(true);
812
+ });
813
+
719
814
  it("reports an error when import directives use a non-bucket connection type", async () => {
720
815
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tinybird-migrate-"));
721
816
  tempDirs.push(tempDir);
@@ -135,7 +135,8 @@ export async function runMigrate(
135
135
  const referencedConnectionName =
136
136
  datasource.kafka?.connectionName ??
137
137
  datasource.s3?.connectionName ??
138
- datasource.gcs?.connectionName;
138
+ datasource.gcs?.connectionName ??
139
+ datasource.dynamodb?.connectionName;
139
140
 
140
141
  if (
141
142
  referencedConnectionName &&
@@ -186,6 +187,21 @@ export async function runMigrate(
186
187
  }
187
188
  }
188
189
 
190
+ if (datasource.dynamodb) {
191
+ const dynamodbConnectionType = parsedConnectionTypeByName.get(
192
+ datasource.dynamodb.connectionName
193
+ );
194
+ if (dynamodbConnectionType !== "dynamodb") {
195
+ errors.push({
196
+ filePath: datasource.filePath,
197
+ resourceName: datasource.name,
198
+ resourceKind: datasource.kind,
199
+ message: `Datasource DynamoDB ingestion requires a dynamodb connection, found "${dynamodbConnectionType ?? "(none)"}".`,
200
+ });
201
+ continue;
202
+ }
203
+ }
204
+
189
205
  try {
190
206
  validateResourceForEmission(datasource);
191
207
  migrated.push(datasource);