@chkit/plugin-backfill 0.1.0-beta.2 → 0.1.0-beta.20

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 (80) hide show
  1. package/README.md +40 -0
  2. package/dist/args.d.ts +109 -6
  3. package/dist/args.d.ts.map +1 -1
  4. package/dist/args.js +73 -97
  5. package/dist/args.js.map +1 -1
  6. package/dist/async-backfill.d.ts +64 -0
  7. package/dist/async-backfill.d.ts.map +1 -0
  8. package/dist/async-backfill.js +251 -0
  9. package/dist/async-backfill.js.map +1 -0
  10. package/dist/check.d.ts +9 -0
  11. package/dist/check.d.ts.map +1 -0
  12. package/dist/check.js +79 -0
  13. package/dist/check.js.map +1 -0
  14. package/dist/chunking/analyze.d.ts +38 -0
  15. package/dist/chunking/analyze.d.ts.map +1 -0
  16. package/dist/chunking/analyze.js +76 -0
  17. package/dist/chunking/analyze.js.map +1 -0
  18. package/dist/chunking/build.d.ts +11 -0
  19. package/dist/chunking/build.d.ts.map +1 -0
  20. package/dist/chunking/build.js +51 -0
  21. package/dist/chunking/build.js.map +1 -0
  22. package/dist/chunking/introspect.d.ts +34 -0
  23. package/dist/chunking/introspect.d.ts.map +1 -0
  24. package/dist/chunking/introspect.js +96 -0
  25. package/dist/chunking/introspect.js.map +1 -0
  26. package/dist/chunking/splitter.d.ts +20 -0
  27. package/dist/chunking/splitter.d.ts.map +1 -0
  28. package/dist/chunking/splitter.js +76 -0
  29. package/dist/chunking/splitter.js.map +1 -0
  30. package/dist/chunking/sql.d.ts +12 -0
  31. package/dist/chunking/sql.d.ts.map +1 -0
  32. package/dist/chunking/sql.js +221 -0
  33. package/dist/chunking/sql.js.map +1 -0
  34. package/dist/chunking/types.d.ts +29 -0
  35. package/dist/chunking/types.d.ts.map +1 -0
  36. package/dist/chunking/types.js +2 -0
  37. package/dist/chunking/types.js.map +1 -0
  38. package/dist/detect.d.ts +13 -0
  39. package/dist/detect.d.ts.map +1 -0
  40. package/dist/detect.js +113 -0
  41. package/dist/detect.js.map +1 -0
  42. package/dist/index.d.ts +8 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/options.d.ts +151 -4
  47. package/dist/options.d.ts.map +1 -1
  48. package/dist/options.js +161 -109
  49. package/dist/options.js.map +1 -1
  50. package/dist/payload.d.ts +7 -17
  51. package/dist/payload.d.ts.map +1 -1
  52. package/dist/payload.js +8 -18
  53. package/dist/payload.js.map +1 -1
  54. package/dist/planner.d.ts +9 -8
  55. package/dist/planner.d.ts.map +1 -1
  56. package/dist/planner.js +92 -92
  57. package/dist/planner.js.map +1 -1
  58. package/dist/plugin.d.ts +4 -3
  59. package/dist/plugin.d.ts.map +1 -1
  60. package/dist/plugin.js +295 -215
  61. package/dist/plugin.js.map +1 -1
  62. package/dist/queries.d.ts +21 -0
  63. package/dist/queries.d.ts.map +1 -0
  64. package/dist/queries.js +113 -0
  65. package/dist/queries.js.map +1 -0
  66. package/dist/runtime.d.ts +14 -0
  67. package/dist/runtime.d.ts.map +1 -1
  68. package/dist/runtime.js +162 -83
  69. package/dist/runtime.js.map +1 -1
  70. package/dist/state.d.ts +16 -28
  71. package/dist/state.d.ts.map +1 -1
  72. package/dist/state.js +59 -124
  73. package/dist/state.js.map +1 -1
  74. package/dist/table-config.d.ts +9 -0
  75. package/dist/table-config.d.ts.map +1 -0
  76. package/dist/table-config.js +2 -0
  77. package/dist/table-config.js.map +1 -0
  78. package/dist/types.d.ts +50 -103
  79. package/dist/types.d.ts.map +1 -1
  80. package/package.json +23 -2
package/dist/state.d.ts CHANGED
@@ -1,42 +1,30 @@
1
1
  import type { ResolvedChxConfig } from '@chkit/core';
2
- import type { BackfillExecutionOptions, BackfillPathSet, BackfillPlanState, BackfillRunState, BackfillStatusSummary, NormalizedBackfillPluginOptions, ReadPlanOutput } from './types.js';
2
+ import type { BackfillEnvironment, BackfillPathSet, BackfillPlanState, BackfillRunState, BackfillStatusSummary, ReadPlanOutput } from './types.js';
3
3
  export declare function hashId(input: string): string;
4
4
  export declare function nowIso(): string;
5
- export declare function stableSerialize(value: unknown): string;
6
- export declare function computeCompatibilityToken(input: {
5
+ export declare function randomPlanId(): string;
6
+ export declare function computeEnvironmentFingerprint(clickhouse: {
7
+ url: string;
8
+ database?: string;
9
+ } | undefined): BackfillEnvironment | undefined;
10
+ export declare function ensureEnvironmentMatch(input: {
7
11
  plan: BackfillPlanState;
8
- options: NormalizedBackfillPluginOptions;
9
- }): string;
10
- export declare function planIdentity(target: string, from: string, to: string, chunkHours: number): string;
11
- export declare function computeBackfillStateDir(config: Pick<ResolvedChxConfig, 'metaDir'>, configPath: string, options: NormalizedBackfillPluginOptions): string;
12
+ clickhouse: {
13
+ url: string;
14
+ database?: string;
15
+ } | undefined;
16
+ forceEnvironment: boolean;
17
+ }): void;
18
+ export declare function computeBackfillStateDir(config: Pick<ResolvedChxConfig, 'metaDir'>, configPath: string, stateDir?: string): string;
12
19
  export declare function backfillPaths(stateDir: string, planId: string): BackfillPathSet;
13
20
  export declare function writeJson(filePath: string, value: unknown): Promise<void>;
14
- export declare function readExistingPlan(planPath: string): Promise<BackfillPlanState | null>;
15
21
  export declare function readPlan(input: {
16
22
  planId: string;
17
23
  configPath: string;
18
24
  config: Pick<ResolvedChxConfig, 'metaDir'>;
19
- options: NormalizedBackfillPluginOptions;
25
+ stateDir?: string;
20
26
  }): Promise<ReadPlanOutput>;
21
27
  export declare function readRun(runPath: string): Promise<BackfillRunState | null>;
22
- export declare function createRunState(input: {
23
- plan: BackfillPlanState;
24
- options: NormalizedBackfillPluginOptions;
25
- execution: BackfillExecutionOptions;
26
- }): BackfillRunState;
27
- export declare function collectActiveRunTargets(runsDir: string): Promise<Map<string, string>>;
28
28
  export declare function listPlanIds(plansDir: string): Promise<string[]>;
29
- export declare function summarizeRunStatus(run: BackfillRunState, runPath: string, eventPath: string): BackfillStatusSummary;
30
- export declare function persistRunAndEvent(input: {
31
- run: BackfillRunState;
32
- runPath: string;
33
- eventPath: string;
34
- event: Record<string, unknown>;
35
- }): Promise<void>;
36
- export declare function ensureRunCompatibility(input: {
37
- run: BackfillRunState;
38
- plan: BackfillPlanState;
39
- options: NormalizedBackfillPluginOptions;
40
- forceCompatibility: boolean;
41
- }): void;
29
+ export declare function summarizeRunStatus(run: BackfillRunState, runPath: string, plan: BackfillPlanState): BackfillStatusSummary;
42
30
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,KAAK,EACV,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,+BAA+B,EAC/B,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAatD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,MAAM,CAaT;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjG;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,+BAA+B,GACvC,MAAM,CAKR;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAa/E;AAOD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/E;AAOD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAE1F;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,cAAc,CAAC,CAY1B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAE/E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,+BAA+B,CAAA;IACxC,SAAS,EAAE,wBAAwB,CAAA;CACpC,GAAG,gBAAgB,CA0BnB;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAe3F;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOrE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,qBAAqB,CA+BvB;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,GAAG,EAAE,gBAAgB,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,GAAG,EAAE,gBAAgB,CAAA;IACrB,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,+BAA+B,CAAA;IACxC,kBAAkB,EAAE,OAAO,CAAA;CAC5B,GAAG,IAAI,CAYP"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACzD,mBAAmB,GAAG,SAAS,CASjC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,IAAI,EAAE,iBAAiB,CAAA;IACvB,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAC1D,gBAAgB,EAAE,OAAO,CAAA;CAC1B,GAAG,IAAI,CAeP;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAC1C,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAKR;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAU/E;AAOD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/E;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,cAAc,CAAC,CAY1B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAE/E;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOrE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,qBAAqB,CAmCvB"}
package/dist/state.js CHANGED
@@ -1,6 +1,6 @@
1
- import { createHash } from 'node:crypto';
1
+ import { createHash, randomBytes } from 'node:crypto';
2
2
  import { existsSync } from 'node:fs';
3
- import { appendFile, mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
3
+ import { mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
4
4
  import { dirname, join, resolve } from 'node:path';
5
5
  import { BackfillConfigError } from './errors.js';
6
6
  export function hashId(input) {
@@ -9,51 +9,52 @@ export function hashId(input) {
9
9
  export function nowIso() {
10
10
  return new Date().toISOString();
11
11
  }
12
- export function stableSerialize(value) {
13
- if (value === null || typeof value !== 'object') {
14
- return JSON.stringify(value);
15
- }
16
- if (Array.isArray(value)) {
17
- return `[${value.map((item) => stableSerialize(item)).join(',')}]`;
18
- }
19
- const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
20
- return `{${entries
21
- .map(([key, item]) => `${JSON.stringify(key)}:${stableSerialize(item)}`)
22
- .join(',')}}`;
12
+ export function randomPlanId() {
13
+ return randomBytes(8).toString('hex');
23
14
  }
24
- export function computeCompatibilityToken(input) {
25
- return hashId(stableSerialize({
26
- planId: input.plan.planId,
27
- target: input.plan.target,
28
- from: input.plan.from,
29
- to: input.plan.to,
30
- planOptions: input.plan.options,
31
- runtimeDefaults: input.options.defaults,
32
- runtimePolicy: input.options.policy,
33
- runtimeLimits: input.options.limits,
34
- }));
35
- }
36
- export function planIdentity(target, from, to, chunkHours) {
37
- return `${target}|${from}|${to}|${chunkHours}`;
15
+ export function computeEnvironmentFingerprint(clickhouse) {
16
+ if (!clickhouse)
17
+ return undefined;
18
+ const database = clickhouse.database ?? 'default';
19
+ const origin = new URL(clickhouse.url).origin;
20
+ return {
21
+ fingerprint: hashId(`${origin}|${database}`).slice(0, 16),
22
+ url: origin,
23
+ database,
24
+ };
38
25
  }
39
- export function computeBackfillStateDir(config, configPath, options) {
40
- if (options.stateDir && options.stateDir.length > 0) {
41
- return resolve(dirname(configPath), options.stateDir);
26
+ export function ensureEnvironmentMatch(input) {
27
+ if (!input.plan.environment)
28
+ return;
29
+ if (!input.clickhouse)
30
+ return;
31
+ const current = computeEnvironmentFingerprint(input.clickhouse);
32
+ if (!current)
33
+ return;
34
+ if (input.plan.environment.fingerprint === current.fingerprint)
35
+ return;
36
+ if (input.forceEnvironment)
37
+ return;
38
+ throw new BackfillConfigError(`Environment mismatch for plan ${input.plan.planId}. ` +
39
+ `Plan was created for ${input.plan.environment.url} (database: ${input.plan.environment.database}), ` +
40
+ `but current config points to ${current.url} (database: ${current.database}). ` +
41
+ `Retry with --force-environment to override.`);
42
+ }
43
+ export function computeBackfillStateDir(config, configPath, stateDir) {
44
+ if (stateDir && stateDir.length > 0) {
45
+ return resolve(dirname(configPath), stateDir);
42
46
  }
43
47
  return resolve(dirname(configPath), config.metaDir, 'backfill');
44
48
  }
45
49
  export function backfillPaths(stateDir, planId) {
46
50
  const plansDir = join(stateDir, 'plans');
47
51
  const runsDir = join(stateDir, 'runs');
48
- const eventsDir = join(stateDir, 'events');
49
52
  return {
50
53
  stateDir,
51
54
  plansDir,
52
55
  runsDir,
53
- eventsDir,
54
56
  planPath: join(plansDir, `${planId}.json`),
55
57
  runPath: join(runsDir, `${planId}.json`),
56
- eventPath: join(eventsDir, `${planId}.ndjson`),
57
58
  };
58
59
  }
59
60
  async function readJsonMaybe(filePath) {
@@ -65,15 +66,8 @@ export async function writeJson(filePath, value) {
65
66
  await mkdir(dirname(filePath), { recursive: true });
66
67
  await writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, 'utf8');
67
68
  }
68
- async function appendEvent(eventPath, event) {
69
- await mkdir(dirname(eventPath), { recursive: true });
70
- await appendFile(eventPath, `${JSON.stringify({ at: nowIso(), ...event })}\n`, 'utf8');
71
- }
72
- export async function readExistingPlan(planPath) {
73
- return readJsonMaybe(planPath);
74
- }
75
69
  export async function readPlan(input) {
76
- const stateDir = computeBackfillStateDir(input.config, input.configPath, input.options);
70
+ const stateDir = computeBackfillStateDir(input.config, input.configPath, input.stateDir);
77
71
  const paths = backfillPaths(stateDir, input.planId);
78
72
  const plan = await readJsonMaybe(paths.planPath);
79
73
  if (!plan) {
@@ -88,51 +82,6 @@ export async function readPlan(input) {
88
82
  export async function readRun(runPath) {
89
83
  return readJsonMaybe(runPath);
90
84
  }
91
- export function createRunState(input) {
92
- const startedAt = nowIso();
93
- return {
94
- planId: input.plan.planId,
95
- target: input.plan.target,
96
- status: 'planned',
97
- createdAt: startedAt,
98
- startedAt,
99
- updatedAt: startedAt,
100
- replayDone: input.execution.replayDone ?? false,
101
- replayFailed: input.execution.replayFailed ?? false,
102
- compatibilityToken: computeCompatibilityToken({
103
- plan: input.plan,
104
- options: input.options,
105
- }),
106
- options: input.plan.options,
107
- chunks: input.plan.chunks.map((chunk) => ({
108
- id: chunk.id,
109
- from: chunk.from,
110
- to: chunk.to,
111
- status: 'pending',
112
- attempts: 0,
113
- idempotencyToken: chunk.idempotencyToken,
114
- sqlTemplate: chunk.sqlTemplate,
115
- })),
116
- };
117
- }
118
- export async function collectActiveRunTargets(runsDir) {
119
- const active = new Map();
120
- if (!existsSync(runsDir))
121
- return active;
122
- const entries = await readdir(runsDir, { withFileTypes: true });
123
- for (const entry of entries) {
124
- if (!entry.isFile() || !entry.name.endsWith('.json'))
125
- continue;
126
- const file = join(runsDir, entry.name);
127
- const run = await readRun(file);
128
- if (!run)
129
- continue;
130
- if (run.status !== 'running')
131
- continue;
132
- active.set(run.planId, run.target);
133
- }
134
- return active;
135
- }
136
85
  export async function listPlanIds(plansDir) {
137
86
  if (!existsSync(plansDir))
138
87
  return [];
@@ -142,57 +91,43 @@ export async function listPlanIds(plansDir) {
142
91
  .map((entry) => entry.name.replace(/\.json$/, ''))
143
92
  .sort();
144
93
  }
145
- export function summarizeRunStatus(run, runPath, eventPath) {
146
- const summary = {
147
- total: run.chunks.length,
94
+ export function summarizeRunStatus(run, runPath, plan) {
95
+ const totals = {
96
+ total: plan.chunks.length,
148
97
  pending: 0,
98
+ submitted: 0,
149
99
  running: 0,
150
100
  done: 0,
151
101
  failed: 0,
152
- skipped: 0,
153
102
  };
154
- let attempts = 0;
155
- for (const chunk of run.chunks) {
156
- attempts += chunk.attempts;
157
- if (chunk.status === 'pending')
158
- summary.pending += 1;
159
- if (chunk.status === 'running')
160
- summary.running += 1;
161
- if (chunk.status === 'done')
162
- summary.done += 1;
163
- if (chunk.status === 'failed')
164
- summary.failed += 1;
165
- if (chunk.status === 'skipped')
166
- summary.skipped += 1;
103
+ let rowsWritten = 0;
104
+ for (const chunk of plan.chunks) {
105
+ const state = run.progress[chunk.id];
106
+ if (!state) {
107
+ totals.pending += 1;
108
+ continue;
109
+ }
110
+ rowsWritten += state.writtenRows ?? 0;
111
+ if (state.status === 'pending')
112
+ totals.pending += 1;
113
+ else if (state.status === 'submitted')
114
+ totals.submitted += 1;
115
+ else if (state.status === 'running')
116
+ totals.running += 1;
117
+ else if (state.status === 'done')
118
+ totals.done += 1;
119
+ else if (state.status === 'failed')
120
+ totals.failed += 1;
167
121
  }
168
122
  return {
169
123
  planId: run.planId,
170
124
  target: run.target,
171
125
  status: run.status,
172
- totals: summary,
173
- attempts,
126
+ totals,
127
+ rowsWritten,
174
128
  updatedAt: run.updatedAt,
175
129
  runPath,
176
- eventPath,
177
130
  lastError: run.lastError,
178
131
  };
179
132
  }
180
- export async function persistRunAndEvent(input) {
181
- input.run.updatedAt = nowIso();
182
- await writeJson(input.runPath, input.run);
183
- await appendEvent(input.eventPath, input.event);
184
- }
185
- export function ensureRunCompatibility(input) {
186
- if (!input.run.compatibilityToken)
187
- return;
188
- const expected = computeCompatibilityToken({
189
- plan: input.plan,
190
- options: input.options,
191
- });
192
- if (input.run.compatibilityToken === expected)
193
- return;
194
- if (input.forceCompatibility)
195
- return;
196
- throw new BackfillConfigError(`Run compatibility check failed for plan ${input.plan.planId}. Runtime options changed since last checkpoint. Retry with --force-compatibility to acknowledge override.`);
197
- }
198
133
  //# sourceMappingURL=state.js.map
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface BackfillTableConfig {
2
+ timeColumn?: string;
3
+ }
4
+ declare module '@chkit/core' {
5
+ interface TablePlugins {
6
+ backfill?: BackfillTableConfig;
7
+ }
8
+ }
9
+ //# sourceMappingURL=table-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-config.d.ts","sourceRoot":"","sources":["../src/table-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,YAAY;QACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;KAC/B;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=table-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-config.js","sourceRoot":"","sources":["../src/table-config.ts"],"names":[],"mappings":""}
package/dist/types.d.ts CHANGED
@@ -1,33 +1,17 @@
1
1
  import type { ChxInlinePluginRegistration, ResolvedChxConfig } from '@chkit/core';
2
- export interface BackfillPluginDefaults {
3
- chunkHours?: number;
4
- maxParallelChunks?: number;
5
- maxRetriesPerChunk?: number;
6
- requireIdempotencyToken?: boolean;
7
- }
8
- export interface BackfillPluginPolicy {
9
- requireDryRunBeforeRun?: boolean;
10
- requireExplicitWindow?: boolean;
11
- blockOverlappingRuns?: boolean;
12
- failCheckOnRequiredPendingBackfill?: boolean;
13
- }
14
- export interface BackfillPluginLimits {
15
- maxWindowHours?: number;
16
- minChunkMinutes?: number;
17
- }
18
- export interface BackfillPluginOptions {
19
- stateDir?: string;
20
- defaults?: BackfillPluginDefaults;
21
- policy?: BackfillPluginPolicy;
22
- limits?: BackfillPluginLimits;
23
- }
24
- export interface NormalizedBackfillPluginOptions {
25
- stateDir?: string;
26
- defaults: Required<BackfillPluginDefaults>;
27
- policy: Required<BackfillPluginPolicy>;
28
- limits: Required<BackfillPluginLimits>;
2
+ import type { BackfillProgress } from './async-backfill.js';
3
+ import type { PartitionInfo, SortKeyInfo } from './chunking/types.js';
4
+ import type { PluginConfig } from './options.js';
5
+ /** @deprecated Use {@link PluginConfig} instead. */
6
+ export type BackfillPluginOptions = PluginConfig;
7
+ export type { PluginConfig };
8
+ export interface BackfillEnvironment {
9
+ fingerprint: string;
10
+ url: string;
11
+ database: string;
29
12
  }
30
13
  export type BackfillPlanStatus = 'planned' | 'running' | 'paused' | 'completed' | 'failed' | 'cancelled';
14
+ export type { ChunkBoundary, PartitionInfo, PlannedChunk, SortKeyInfo } from './chunking/types.js';
31
15
  export interface BackfillChunk {
32
16
  id: string;
33
17
  from: string;
@@ -37,50 +21,52 @@ export interface BackfillChunk {
37
21
  idempotencyToken: string;
38
22
  sqlTemplate: string;
39
23
  lastError?: string;
24
+ partitionId: string;
25
+ estimatedBytes: number;
26
+ sortKeyFrom?: string;
27
+ sortKeyTo?: string;
40
28
  }
41
29
  export interface BackfillPlanState {
42
30
  planId: string;
43
31
  target: string;
44
32
  createdAt: string;
45
33
  status: BackfillPlanStatus;
34
+ strategy?: 'table' | 'mv_replay' | 'partition';
35
+ environment?: BackfillEnvironment;
46
36
  from: string;
47
37
  to: string;
48
38
  chunks: BackfillChunk[];
39
+ partitions?: PartitionInfo[];
40
+ sortKey?: SortKeyInfo;
49
41
  options: {
50
- chunkHours: number;
42
+ chunkHours?: number;
43
+ maxChunkBytes?: number;
51
44
  maxParallelChunks: number;
52
45
  maxRetriesPerChunk: number;
53
46
  requireIdempotencyToken: boolean;
47
+ timeColumn?: string;
48
+ sortKeyColumn?: string;
49
+ };
50
+ policy: {
51
+ requireDryRunBeforeRun: boolean;
52
+ requireExplicitWindow: boolean;
53
+ blockOverlappingRuns: boolean;
54
+ failCheckOnRequiredPendingBackfill: boolean;
55
+ };
56
+ limits: {
57
+ maxWindowHours: number;
58
+ minChunkMinutes: number;
54
59
  };
55
- policy: Required<BackfillPluginPolicy>;
56
- limits: Required<BackfillPluginLimits>;
57
- }
58
- export interface BackfillRunChunkState {
59
- id: string;
60
- from: string;
61
- to: string;
62
- status: 'pending' | 'running' | 'done' | 'failed' | 'skipped';
63
- attempts: number;
64
- idempotencyToken: string;
65
- sqlTemplate: string;
66
- startedAt?: string;
67
- completedAt?: string;
68
- lastError?: string;
69
60
  }
70
61
  export interface BackfillRunState {
71
62
  planId: string;
72
63
  target: string;
73
- status: BackfillPlanStatus;
74
- createdAt: string;
64
+ status: 'running' | 'completed' | 'failed' | 'cancelled';
75
65
  startedAt: string;
76
66
  updatedAt: string;
77
67
  completedAt?: string;
78
68
  lastError?: string;
79
- replayDone: boolean;
80
- replayFailed: boolean;
81
- compatibilityToken: string;
82
- options: BackfillPlanState['options'];
83
- chunks: BackfillRunChunkState[];
69
+ progress: BackfillProgress;
84
70
  }
85
71
  export interface BackfillStatusSummary {
86
72
  planId: string;
@@ -89,15 +75,14 @@ export interface BackfillStatusSummary {
89
75
  totals: {
90
76
  total: number;
91
77
  pending: number;
78
+ submitted: number;
92
79
  running: number;
93
80
  done: number;
94
81
  failed: number;
95
- skipped: number;
96
82
  };
97
- attempts: number;
83
+ rowsWritten: number;
98
84
  updatedAt: string;
99
85
  runPath: string;
100
- eventPath: string;
101
86
  lastError?: string;
102
87
  }
103
88
  export interface BackfillPluginCheckContext {
@@ -122,7 +107,6 @@ export interface BackfillPluginCheckResult {
122
107
  export interface BuildBackfillPlanOutput {
123
108
  plan: BackfillPlanState;
124
109
  planPath: string;
125
- existed: boolean;
126
110
  }
127
111
  export interface ReadPlanOutput {
128
112
  plan: BackfillPlanState;
@@ -133,20 +117,8 @@ export interface BackfillPathSet {
133
117
  stateDir: string;
134
118
  plansDir: string;
135
119
  runsDir: string;
136
- eventsDir: string;
137
120
  planPath: string;
138
121
  runPath: string;
139
- eventPath: string;
140
- }
141
- export interface BackfillExecutionOptions {
142
- replayDone?: boolean;
143
- replayFailed?: boolean;
144
- forceOverlap?: boolean;
145
- forceCompatibility?: boolean;
146
- simulation?: {
147
- failChunkId?: string;
148
- failCount?: number;
149
- };
150
122
  }
151
123
  export interface BackfillDoctorReport {
152
124
  planId: string;
@@ -155,14 +127,9 @@ export interface BackfillDoctorReport {
155
127
  recommendations: string[];
156
128
  failedChunkIds: string[];
157
129
  }
158
- export interface ExecuteBackfillRunOutput {
159
- run: BackfillRunState;
160
- status: BackfillStatusSummary;
161
- runPath: string;
162
- eventPath: string;
163
- }
164
130
  export interface BackfillPluginCommandContext {
165
131
  args: string[];
132
+ flags: Record<string, string | string[] | boolean | undefined>;
166
133
  jsonMode: boolean;
167
134
  options: Record<string, unknown>;
168
135
  config: ResolvedChxConfig;
@@ -178,6 +145,13 @@ export interface BackfillPlugin {
178
145
  commands: Array<{
179
146
  name: 'plan' | 'run' | 'resume' | 'status' | 'cancel' | 'doctor';
180
147
  description: string;
148
+ flags?: ReadonlyArray<{
149
+ name: string;
150
+ type: 'boolean' | 'string' | 'string[]';
151
+ description: string;
152
+ placeholder?: string;
153
+ negation?: boolean;
154
+ }>;
181
155
  run: (context: BackfillPluginCommandContext) => undefined | number | Promise<undefined | number>;
182
156
  }>;
183
157
  hooks?: {
@@ -193,37 +167,10 @@ export interface BackfillPlugin {
193
167
  }) => void | Promise<void>;
194
168
  };
195
169
  }
196
- export type BackfillPluginRegistration = ChxInlinePluginRegistration<BackfillPlugin, BackfillPluginOptions>;
197
- export interface ParsedPlanArgs {
198
- target: string;
199
- from: string;
200
- to: string;
201
- chunkHours?: number;
202
- forceLargeWindow: boolean;
203
- }
204
- export interface ParsedRunArgs {
205
- planId: string;
206
- replayDone: boolean;
207
- replayFailed: boolean;
208
- forceOverlap: boolean;
209
- forceCompatibility: boolean;
210
- simulateFailChunk?: string;
211
- simulateFailCount: number;
212
- }
213
- export interface ParsedResumeArgs {
214
- planId: string;
215
- replayDone: boolean;
216
- replayFailed: boolean;
217
- forceOverlap: boolean;
218
- forceCompatibility: boolean;
219
- }
220
- export interface ParsedStatusArgs {
221
- planId: string;
222
- }
223
- export interface ParsedCancelArgs {
224
- planId: string;
225
- }
226
- export interface ParsedDoctorArgs {
227
- planId: string;
170
+ export type BackfillPluginRegistration = ChxInlinePluginRegistration<BackfillPlugin, PluginConfig>;
171
+ export interface TimeColumnCandidate {
172
+ name: string;
173
+ type: string;
174
+ source: 'order_by' | 'column_scan' | 'schema';
228
175
  }
229
176
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}