@loxtep/sdk 0.9.23 → 0.9.25

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 (83) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +1 -0
  3. package/dist/cli/commands/data-contracts-cmd.d.ts +11 -0
  4. package/dist/cli/commands/data-contracts-cmd.d.ts.map +1 -1
  5. package/dist/cli/commands/data-contracts-cmd.js +5 -0
  6. package/dist/cli/commands/data-contracts-cmd.js.map +1 -1
  7. package/dist/cli/commands/data-plane-cmd.d.ts +59 -0
  8. package/dist/cli/commands/data-plane-cmd.d.ts.map +1 -0
  9. package/dist/cli/commands/data-plane-cmd.js +604 -0
  10. package/dist/cli/commands/data-plane-cmd.js.map +1 -0
  11. package/dist/cli/commands/data-products-cmd.d.ts +3 -1
  12. package/dist/cli/commands/data-products-cmd.d.ts.map +1 -1
  13. package/dist/cli/commands/data-products-cmd.js +21 -2
  14. package/dist/cli/commands/data-products-cmd.js.map +1 -1
  15. package/dist/cli/commands/define-cmd.d.ts.map +1 -1
  16. package/dist/cli/commands/define-cmd.js +3 -1
  17. package/dist/cli/commands/define-cmd.js.map +1 -1
  18. package/dist/cli/commands/push-cmd.d.ts.map +1 -1
  19. package/dist/cli/commands/push-cmd.js +11 -2
  20. package/dist/cli/commands/push-cmd.js.map +1 -1
  21. package/dist/cli/commands/queue-cmd.d.ts +4 -1
  22. package/dist/cli/commands/queue-cmd.d.ts.map +1 -1
  23. package/dist/cli/commands/queue-cmd.js +20 -0
  24. package/dist/cli/commands/queue-cmd.js.map +1 -1
  25. package/dist/cli/help.d.ts.map +1 -1
  26. package/dist/cli/help.js +32 -4
  27. package/dist/cli/help.js.map +1 -1
  28. package/dist/cli/index.d.ts.map +1 -1
  29. package/dist/cli/index.js +35 -5
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/client/data-products-types.d.ts +61 -0
  32. package/dist/client/data-products-types.d.ts.map +1 -1
  33. package/dist/client/data-products-types.js +12 -1
  34. package/dist/client/data-products-types.js.map +1 -1
  35. package/dist/client/data-products.d.ts +13 -1
  36. package/dist/client/data-products.d.ts.map +1 -1
  37. package/dist/client/data-products.js +190 -9
  38. package/dist/client/data-products.js.map +1 -1
  39. package/dist/client/define.d.ts +3 -0
  40. package/dist/client/define.d.ts.map +1 -1
  41. package/dist/client/define.js +1 -0
  42. package/dist/client/define.js.map +1 -1
  43. package/dist/client/index.d.ts +2 -1
  44. package/dist/client/index.d.ts.map +1 -1
  45. package/dist/client/index.js +1 -0
  46. package/dist/client/index.js.map +1 -1
  47. package/dist/client/loxtep-client.d.ts +3 -1
  48. package/dist/client/loxtep-client.d.ts.map +1 -1
  49. package/dist/client/loxtep-client.js +11 -0
  50. package/dist/client/loxtep-client.js.map +1 -1
  51. package/dist/client/promises.d.ts.map +1 -1
  52. package/dist/client/promises.js.map +1 -1
  53. package/dist/client/quality-rules.d.ts +32 -0
  54. package/dist/client/quality-rules.d.ts.map +1 -0
  55. package/dist/client/quality-rules.js +67 -0
  56. package/dist/client/quality-rules.js.map +1 -0
  57. package/dist/client/queues.d.ts.map +1 -1
  58. package/dist/client/queues.js +10 -4
  59. package/dist/client/queues.js.map +1 -1
  60. package/dist/client/semantic-layer.d.ts +4 -0
  61. package/dist/client/semantic-layer.d.ts.map +1 -1
  62. package/dist/client/semantic-layer.js +8 -0
  63. package/dist/client/semantic-layer.js.map +1 -1
  64. package/dist/client/workflows-types.d.ts +2 -0
  65. package/dist/client/workflows-types.d.ts.map +1 -1
  66. package/dist/client/workflows.d.ts.map +1 -1
  67. package/dist/client/workflows.js +1 -0
  68. package/dist/client/workflows.js.map +1 -1
  69. package/dist/client/workspace-package.d.ts +4 -0
  70. package/dist/client/workspace-package.d.ts.map +1 -1
  71. package/dist/client/workspace-package.js +20 -0
  72. package/dist/client/workspace-package.js.map +1 -1
  73. package/dist/http/client.d.ts +6 -0
  74. package/dist/http/client.d.ts.map +1 -1
  75. package/dist/http/client.js +17 -1
  76. package/dist/http/client.js.map +1 -1
  77. package/dist/lib/workspace-lint.d.ts +5 -3
  78. package/dist/lib/workspace-lint.d.ts.map +1 -1
  79. package/dist/lib/workspace-lint.js +57 -1
  80. package/dist/lib/workspace-lint.js.map +1 -1
  81. package/docs/data-plane-cli.md +201 -0
  82. package/docs/quick-reference.md +14 -0
  83. package/package.json +1 -1
@@ -0,0 +1,604 @@
1
+ /**
2
+ * CLI for Iceberg control, read-only export, query receipts, and governance gaps.
3
+ * Commands call the existing REST API. A queued rebuild is not completion.
4
+ */
5
+ import { readFile } from 'fs/promises';
6
+ import { requireCliClient } from '../create-cli-client.js';
7
+ const ENABLE_WINDOWS = new Set(['now', '1h', '6h', '1d', '7d', '30d', 'all']);
8
+ const REJECTED_REBUILD_SCOPES = new Set(['start', 'all', 'now', '1h', '6h', '1d', '7d', '30d']);
9
+ const defaultIo = {
10
+ log: line => console.log(line),
11
+ error: line => console.error(line),
12
+ };
13
+ function emit(io, json, value) {
14
+ io.log(json ? JSON.stringify(value) : JSON.stringify(value, null, 2));
15
+ }
16
+ function fail(io, json, code, message, extra = {}, exitCode = 1) {
17
+ const payload = { code, message, ...extra };
18
+ const job = typeof extra.job_id === 'string' ? ` job_id=${extra.job_id}` : '';
19
+ io.error(json ? JSON.stringify(payload) : `${code}: ${message}${job}`);
20
+ return exitCode;
21
+ }
22
+ export function argValue(args, name) {
23
+ const idx = args.indexOf(name);
24
+ if (idx < 0)
25
+ return undefined;
26
+ const value = args[idx + 1];
27
+ if (!value || value.startsWith('--'))
28
+ return undefined;
29
+ return value;
30
+ }
31
+ export function hasFlag(args, name) {
32
+ return args.includes(name);
33
+ }
34
+ export function parseDurationMs(value) {
35
+ const match = /^(\d+)(ms|s|m|h)$/.exec(value.trim());
36
+ if (!match)
37
+ return undefined;
38
+ const amount = Number(match[1]);
39
+ if (!Number.isFinite(amount) || amount < 0)
40
+ return undefined;
41
+ const unit = match[2];
42
+ if (unit === 'ms')
43
+ return amount;
44
+ if (unit === 's')
45
+ return amount * 1000;
46
+ if (unit === 'm')
47
+ return amount * 60_000;
48
+ return amount * 3_600_000;
49
+ }
50
+ function isQueueEid(value) {
51
+ return value.startsWith('z/');
52
+ }
53
+ export function validateRebuildArgs(args) {
54
+ const mode = argValue(args, '--backfill-from');
55
+ if (!mode) {
56
+ return {
57
+ ok: false,
58
+ code: 'scope_required',
59
+ message: 'Rebuild requires --backfill-from <z/eid>, --backfill-from checkpoint --start-checkpoint <z/eid>, or --backfill-from start_of_queue',
60
+ };
61
+ }
62
+ if (REJECTED_REBUILD_SCOPES.has(mode)) {
63
+ return {
64
+ ok: false,
65
+ code: 'unsupported_scope',
66
+ message: `Rebuild does not accept backfill_from ${mode}. Pass a z/ event id, checkpoint, or start_of_queue.`,
67
+ };
68
+ }
69
+ const dryRun = hasFlag(args, '--dry-run');
70
+ if (!dryRun && !hasFlag(args, '--confirm')) {
71
+ return {
72
+ ok: false,
73
+ code: 'confirm_required',
74
+ message: 'A rebuild deletes and recreates the table. Pass --confirm. --dry-run does not require it.',
75
+ };
76
+ }
77
+ const end = argValue(args, '--end-checkpoint');
78
+ if (end && !isQueueEid(end)) {
79
+ return { ok: false, code: 'invalid_end_checkpoint', message: '--end-checkpoint must be a z/ event id' };
80
+ }
81
+ const body = { confirm: true, backfill_from: mode, dry_run: dryRun };
82
+ if (mode === 'checkpoint') {
83
+ const start = argValue(args, '--start-checkpoint');
84
+ if (!start || !isQueueEid(start)) {
85
+ return {
86
+ ok: false,
87
+ code: 'start_checkpoint_required',
88
+ message: '--backfill-from checkpoint requires --start-checkpoint <z/eid>',
89
+ };
90
+ }
91
+ body.start_checkpoint = start;
92
+ }
93
+ else if (mode === 'start_of_queue') {
94
+ body.backfill_from = 'start_of_queue';
95
+ }
96
+ else if (isQueueEid(mode)) {
97
+ body.backfill_from = mode;
98
+ }
99
+ else {
100
+ return {
101
+ ok: false,
102
+ code: 'unsupported_scope',
103
+ message: `Unsupported --backfill-from ${mode}`,
104
+ };
105
+ }
106
+ if (end)
107
+ body.end_checkpoint = end;
108
+ return { ok: true, body, end_bound: end ? 'checkpoint' : 'evergreen' };
109
+ }
110
+ function errorFields(err) {
111
+ const record = err && typeof err === 'object' ? err : {};
112
+ const details = record.details && typeof record.details === 'object'
113
+ ? record.details
114
+ : {};
115
+ const code = typeof details.code === 'string'
116
+ ? details.code
117
+ : typeof record.code === 'string'
118
+ ? record.code
119
+ : undefined;
120
+ const jobId = typeof details.job_id === 'string'
121
+ ? details.job_id
122
+ : typeof record.job_id === 'string'
123
+ ? record.job_id
124
+ : undefined;
125
+ return {
126
+ message: err instanceof Error ? err.message : String(err),
127
+ code,
128
+ job_id: jobId,
129
+ };
130
+ }
131
+ function applyInstance(client, args, io, json) {
132
+ const instance = argValue(args, '--instance');
133
+ if (instance)
134
+ client.setInstanceId(instance);
135
+ return undefined;
136
+ }
137
+ function requireInstance(client, io, json) {
138
+ if (client.instance_id)
139
+ return undefined;
140
+ return fail(io, json, 'instance_required', 'Select an instance with --instance or attach a project that has instance_id');
141
+ }
142
+ function trackedRebuildJobIds(health) {
143
+ const rebuild = health.rebuild_status && typeof health.rebuild_status === 'object'
144
+ ? health.rebuild_status
145
+ : undefined;
146
+ const ids = [rebuild?.job_id, rebuild?.backfill_job_id].filter((value) => typeof value === 'string' && value.length > 0);
147
+ return {
148
+ status: typeof rebuild?.status === 'string' ? rebuild.status : undefined,
149
+ ids,
150
+ current: ids[0],
151
+ };
152
+ }
153
+ export async function pollIcebergJob(input) {
154
+ const sleep = input.sleep ?? (ms => new Promise(resolve => setTimeout(resolve, ms)));
155
+ const now = input.now ?? (() => Date.now());
156
+ const started = now();
157
+ let lastStatus;
158
+ let lastHealth = {};
159
+ while (true) {
160
+ lastHealth = await input.readHealth();
161
+ const tracked = trackedRebuildJobIds(lastHealth);
162
+ lastStatus = tracked.status;
163
+ const matches = tracked.ids.includes(input.jobId);
164
+ if (tracked.ids.length > 0 && !matches) {
165
+ return {
166
+ exitCode: 1,
167
+ body: {
168
+ code: 'job_not_current',
169
+ message: 'Health is tracking a different rebuild job',
170
+ job_id: input.jobId,
171
+ current_job_id: tracked.current,
172
+ status: lastStatus,
173
+ completed: false,
174
+ },
175
+ };
176
+ }
177
+ if (matches && lastStatus === 'completed') {
178
+ return {
179
+ exitCode: 0,
180
+ body: { job_id: input.jobId, status: 'completed', completed: true, health: lastHealth },
181
+ };
182
+ }
183
+ if (matches && lastStatus === 'failed') {
184
+ return {
185
+ exitCode: 1,
186
+ body: {
187
+ code: 'rebuild_failed',
188
+ message: 'Rebuild job failed',
189
+ job_id: input.jobId,
190
+ status: 'failed',
191
+ completed: false,
192
+ health: lastHealth,
193
+ },
194
+ };
195
+ }
196
+ if (now() - started >= input.waitMs) {
197
+ return {
198
+ exitCode: 2,
199
+ body: {
200
+ code: 'wait_timeout',
201
+ message: 'Timed out waiting for the original rebuild job. It was not resubmitted or cancelled.',
202
+ job_id: input.jobId,
203
+ status: lastStatus ?? 'unknown',
204
+ completed: false,
205
+ health: lastHealth,
206
+ },
207
+ };
208
+ }
209
+ await sleep(input.intervalMs);
210
+ }
211
+ }
212
+ function inspectionOf(health) {
213
+ if (health.not_applicable === true)
214
+ return 'not_applicable';
215
+ const assessment = health.assessment && typeof health.assessment === 'object'
216
+ ? health.assessment
217
+ : undefined;
218
+ const status = typeof assessment?.status === 'string' ? assessment.status : undefined;
219
+ if (!assessment)
220
+ return 'unreadable';
221
+ if (status === 'empty_ok')
222
+ return 'empty_ok';
223
+ if (status === 'unknown' || status === 'managed_s3_tables')
224
+ return 'unknown';
225
+ if (status === 'unreadable')
226
+ return 'unreadable';
227
+ return 'ok';
228
+ }
229
+ export async function executeIceberg(client, args, io, clock) {
230
+ const json = hasFlag(args, '--json');
231
+ const action = args[0];
232
+ const productId = args[1];
233
+ applyInstance(client, args, io, json);
234
+ if (!action || !productId || productId.startsWith('--')) {
235
+ return fail(io, json, 'usage', 'loxtep data-products iceberg rebuild|status|cancel|enable|config|health|files|snapshots|schema <product-id>');
236
+ }
237
+ try {
238
+ if (action === 'rebuild') {
239
+ const validated = validateRebuildArgs(args);
240
+ if (!validated.ok)
241
+ return fail(io, json, validated.code, validated.message);
242
+ const accepted = await client.build.data_products.iceberg.rebuild(productId, validated.body);
243
+ const jobId = typeof accepted.job_id === 'string' ? accepted.job_id : undefined;
244
+ const receipt = {
245
+ ...accepted,
246
+ job_id: jobId,
247
+ data_product_id: accepted.data_product_id ?? productId,
248
+ accepted_status: accepted.status ?? null,
249
+ status: validated.body.dry_run ? 'dry_run' : accepted.status ?? 'queued',
250
+ completed: false,
251
+ backfill_from: validated.body.backfill_from,
252
+ start_checkpoint: validated.body.start_checkpoint,
253
+ end_checkpoint: validated.body.end_checkpoint ?? null,
254
+ end_bound: validated.end_bound,
255
+ dry_run: validated.body.dry_run,
256
+ confirm_sent_for_api_gate: true,
257
+ destructive: validated.body.dry_run ? false : true,
258
+ };
259
+ const waitArg = argValue(args, '--wait');
260
+ if (!waitArg) {
261
+ emit(io, json, receipt);
262
+ return 0;
263
+ }
264
+ if (!jobId) {
265
+ emit(io, json, receipt);
266
+ return fail(io, json, 'job_id_missing', 'Rebuild was accepted without a job id, so --wait cannot poll');
267
+ }
268
+ const waitMs = parseDurationMs(waitArg);
269
+ if (waitMs == null) {
270
+ return fail(io, json, 'invalid_wait', '--wait expects a duration such as 30s', { job_id: jobId });
271
+ }
272
+ const intervalArg = argValue(args, '--interval') ?? '5s';
273
+ const intervalMs = parseDurationMs(intervalArg);
274
+ if (intervalMs == null) {
275
+ return fail(io, json, 'invalid_interval', '--interval expects a duration such as 5s', {
276
+ job_id: jobId,
277
+ });
278
+ }
279
+ const polled = await pollIcebergJob({
280
+ jobId,
281
+ waitMs,
282
+ intervalMs,
283
+ now: clock?.now,
284
+ sleep: clock?.sleep,
285
+ readHealth: async () => client.build.data_products.iceberg.health(productId),
286
+ });
287
+ emit(io, json, { ...receipt, ...polled.body, requested: receipt });
288
+ return polled.exitCode;
289
+ }
290
+ if (action === 'status') {
291
+ const health = await client.build.data_products.iceberg.health(productId);
292
+ const requested = argValue(args, '--job-id');
293
+ const waitArg = argValue(args, '--wait');
294
+ if (waitArg) {
295
+ if (!requested)
296
+ return fail(io, json, 'job_id_required', 'status --wait requires --job-id');
297
+ const waitMs = parseDurationMs(waitArg);
298
+ const intervalMs = parseDurationMs(argValue(args, '--interval') ?? '5s');
299
+ if (waitMs == null || intervalMs == null) {
300
+ return fail(io, json, 'invalid_wait', '--wait and --interval expect durations such as 30s');
301
+ }
302
+ const polled = await pollIcebergJob({
303
+ jobId: requested,
304
+ waitMs,
305
+ intervalMs,
306
+ now: clock?.now,
307
+ sleep: clock?.sleep,
308
+ readHealth: async () => client.build.data_products.iceberg.health(productId),
309
+ });
310
+ emit(io, json, polled.body);
311
+ return polled.exitCode;
312
+ }
313
+ const tracked = trackedRebuildJobIds(health);
314
+ const rebuild = health.rebuild_status && typeof health.rebuild_status === 'object'
315
+ ? health.rebuild_status
316
+ : undefined;
317
+ if (requested && tracked.ids.length > 0 && !tracked.ids.includes(requested)) {
318
+ emit(io, json, {
319
+ code: 'job_not_current',
320
+ job_id: requested,
321
+ current_job_id: tracked.current,
322
+ status: tracked.status,
323
+ health,
324
+ completed: false,
325
+ });
326
+ return 1;
327
+ }
328
+ const sameJob = !requested || tracked.ids.includes(requested);
329
+ emit(io, json, {
330
+ job_id: requested ?? rebuild?.job_id ?? tracked.current,
331
+ status: rebuild?.status,
332
+ completed: sameJob && rebuild?.status === 'completed',
333
+ health,
334
+ });
335
+ return 0;
336
+ }
337
+ if (action === 'cancel') {
338
+ const result = await client.build.data_products.iceberg.cancel(productId);
339
+ emit(io, json, { ...result, completed: false });
340
+ return 0;
341
+ }
342
+ if (action === 'enable') {
343
+ const configText = argValue(args, '--config') ?? (argValue(args, '--file') ? await readFile(argValue(args, '--file'), 'utf8') : undefined);
344
+ if (!configText) {
345
+ return fail(io, json, 'config_required', 'enable requires --config <json> or --file <path>. No partition is invented.');
346
+ }
347
+ let parsed;
348
+ try {
349
+ parsed = JSON.parse(configText);
350
+ }
351
+ catch {
352
+ return fail(io, json, 'invalid_config', 'Iceberg config must be JSON');
353
+ }
354
+ const record = parsed && typeof parsed === 'object' ? parsed : {};
355
+ const icebergConfig = record.iceberg_config ?? record;
356
+ const window = argValue(args, '--backfill-from');
357
+ if (window && !ENABLE_WINDOWS.has(window)) {
358
+ return fail(io, json, 'unsupported_scope', 'enable --backfill-from accepts now, 1h, 6h, 1d, 7d, 30d, or all. Omit it to load no history. z/ event ids are not accepted here.');
359
+ }
360
+ const body = { iceberg_config: icebergConfig };
361
+ if (window)
362
+ body.backfill_from = window;
363
+ const result = await client.build.data_products.iceberg.enable(productId, body);
364
+ emit(io, json, result);
365
+ return 0;
366
+ }
367
+ if (action === 'config') {
368
+ if (hasFlag(args, '--put')) {
369
+ const file = argValue(args, '--file');
370
+ if (!file)
371
+ return fail(io, json, 'file_required', 'config --put requires --file <json>');
372
+ const parsed = JSON.parse(await readFile(file, 'utf8'));
373
+ const result = await client.build.data_products.iceberg.put_config(productId, parsed);
374
+ emit(io, json, result);
375
+ return 0;
376
+ }
377
+ const status = await client.build.data_products.iceberg.status(productId);
378
+ emit(io, json, {
379
+ source: 'GET /dataproducts/{id}/iceberg',
380
+ iceberg_config: status.iceberg_config ?? null,
381
+ status,
382
+ });
383
+ return 0;
384
+ }
385
+ if (action === 'health') {
386
+ emit(io, json, await client.build.data_products.iceberg.health(productId));
387
+ return 0;
388
+ }
389
+ if (action === 'files') {
390
+ emit(io, json, await client.build.data_products.iceberg.files(productId));
391
+ return 0;
392
+ }
393
+ if (action === 'snapshots') {
394
+ emit(io, json, await client.build.data_products.iceberg.snapshots(productId));
395
+ return 0;
396
+ }
397
+ if (action === 'schema') {
398
+ const [product, health, icebergStatus] = await Promise.all([
399
+ client.build.data_products.get(productId, { include_schema: true }),
400
+ client.build.data_products.iceberg.health(productId),
401
+ client.build.data_products.iceberg.status(productId),
402
+ ]);
403
+ const assessment = health.assessment && typeof health.assessment === 'object'
404
+ ? health.assessment
405
+ : null;
406
+ const configured = icebergStatus.iceberg_config && typeof icebergStatus.iceberg_config === 'object'
407
+ ? icebergStatus.iceberg_config
408
+ : null;
409
+ emit(io, json, {
410
+ catalog: product.schema ?? null,
411
+ physical: assessment
412
+ ? {
413
+ metadata_fields: assessment.metadata_fields ?? [],
414
+ partition: assessment.metadata_partition_summary ?? assessment.registered_partition_summary ?? null,
415
+ total_data_files: assessment.total_data_files ?? null,
416
+ snapshot_count: assessment.snapshot_count ?? null,
417
+ configured_partition: configured?.partition ?? configured?.partition_spec ?? null,
418
+ }
419
+ : {
420
+ metadata_fields: null,
421
+ partition: null,
422
+ total_data_files: null,
423
+ snapshot_count: null,
424
+ configured_partition: configured?.partition ?? configured?.partition_spec ?? null,
425
+ },
426
+ materialization: {
427
+ status: assessment?.status ?? null,
428
+ needs_rebuild: assessment?.needs_rebuild ?? null,
429
+ rebuild_status: health.rebuild_status ?? null,
430
+ backfill_status: health.backfill_status ?? null,
431
+ writer_sync: health.writer_sync ?? icebergStatus.writer_sync ?? null,
432
+ },
433
+ inspection: inspectionOf(health),
434
+ });
435
+ return 0;
436
+ }
437
+ return fail(io, json, 'usage', `Unknown iceberg action ${action}`);
438
+ }
439
+ catch (err) {
440
+ const fields = errorFields(err);
441
+ return fail(io, json, fields.code || 'request_failed', fields.message, {
442
+ job_id: fields.job_id,
443
+ });
444
+ }
445
+ }
446
+ export async function executeExport(client, args, io = defaultIo) {
447
+ const json = hasFlag(args, '--json');
448
+ applyInstance(client, args, io, json);
449
+ const missing = requireInstance(client, io, json);
450
+ if (missing)
451
+ return missing;
452
+ const productId = args[0];
453
+ if (!productId || productId.startsWith('--')) {
454
+ return fail(io, json, 'usage', 'loxtep data-products export <product-id> --start <eid> | --from-beginning');
455
+ }
456
+ if (!hasFlag(args, '--from-beginning') && !argValue(args, '--start')) {
457
+ return fail(io, json, 'start_required', 'export requires --start <eid> or --from-beginning');
458
+ }
459
+ const limitText = argValue(args, '--limit');
460
+ const pagesText = argValue(args, '--max-pages');
461
+ try {
462
+ const result = await client.build.data_products.export_events(productId, {
463
+ start: argValue(args, '--start'),
464
+ end: argValue(args, '--end'),
465
+ from_beginning: hasFlag(args, '--from-beginning'),
466
+ limit: limitText ? Number(limitText) : undefined,
467
+ max_pages: pagesText ? Number(pagesText) : undefined,
468
+ });
469
+ emit(io, json, result);
470
+ return 0;
471
+ }
472
+ catch (err) {
473
+ const fields = errorFields(err);
474
+ return fail(io, json, fields.code || 'request_failed', fields.message);
475
+ }
476
+ }
477
+ export async function executePrimaryEntity(client, productId, io = defaultIo, json = false) {
478
+ try {
479
+ const product = await client.build.data_products.get(productId, { include_schema: true });
480
+ const schema = product.schema;
481
+ emit(io, json, {
482
+ data_product_id: productId,
483
+ entities: schema?.entities ?? [],
484
+ writable: false,
485
+ message: 'Primary entity is read from schema.entities. Change it with define submit-shape, then approve and apply. This command does not invent a key.',
486
+ });
487
+ return 0;
488
+ }
489
+ catch (err) {
490
+ const fields = errorFields(err);
491
+ return fail(io, json, fields.code || 'request_failed', fields.message);
492
+ }
493
+ }
494
+ export async function executeGlossary(client, args, io = defaultIo) {
495
+ const json = hasFlag(args, '--json');
496
+ const action = args[0];
497
+ const productId = args[1];
498
+ if (!productId)
499
+ return fail(io, json, 'usage', 'loxtep define glossary|apply-glossary <product-id>');
500
+ try {
501
+ if (action === 'glossary') {
502
+ emit(io, json, await client.build.data_products.get_lexicon(productId));
503
+ return 0;
504
+ }
505
+ if (action === 'apply-glossary') {
506
+ const revisionText = argValue(args, '--mapping-revision');
507
+ const result = await client.meaning.semantic.apply_glossary_bindings({
508
+ data_product_id: productId,
509
+ ...(revisionText ? { mapping_revision: Number(revisionText) } : {}),
510
+ });
511
+ emit(io, json, result);
512
+ return 0;
513
+ }
514
+ return fail(io, json, 'usage', `Unknown define action ${action}`);
515
+ }
516
+ catch (err) {
517
+ const fields = errorFields(err);
518
+ return fail(io, json, fields.code || 'request_failed', fields.message);
519
+ }
520
+ }
521
+ export async function executeContractUpdate(client, args, io = defaultIo) {
522
+ const json = hasFlag(args, '--json');
523
+ const contractId = args[0];
524
+ const schemaVersionId = argValue(args, '--schema-version-id');
525
+ if (!contractId || !schemaVersionId) {
526
+ return fail(io, json, 'usage', 'loxtep data-contracts update <id> --schema-version-id <uuid>');
527
+ }
528
+ try {
529
+ const updated = await client.define.data_contracts.update(contractId, {
530
+ schema_version_id: schemaVersionId,
531
+ });
532
+ emit(io, json, updated);
533
+ return 0;
534
+ }
535
+ catch (err) {
536
+ const fields = errorFields(err);
537
+ return fail(io, json, fields.code || 'request_failed', fields.message);
538
+ }
539
+ }
540
+ export async function executeQualityRules(client, args, io = defaultIo) {
541
+ const json = hasFlag(args, '--json');
542
+ const action = args[0];
543
+ try {
544
+ if (action === 'list') {
545
+ emit(io, json, await client.define.quality_rules.list({
546
+ data_product_id: argValue(args, '--data-product-id'),
547
+ rule_type: argValue(args, '--rule-type'),
548
+ severity: argValue(args, '--severity'),
549
+ }));
550
+ return 0;
551
+ }
552
+ if (action === 'get' && args[1]) {
553
+ emit(io, json, await client.define.quality_rules.get(args[1], {
554
+ data_product_id: argValue(args, '--data-product-id'),
555
+ }));
556
+ return 0;
557
+ }
558
+ if (action === 'create' || action === 'update') {
559
+ const file = argValue(args, '--file');
560
+ if (!file)
561
+ return fail(io, json, 'file_required', `quality-rules ${action} requires --file <json>`);
562
+ const body = JSON.parse(await readFile(file, 'utf8'));
563
+ const result = action === 'create'
564
+ ? await client.define.quality_rules.create(body)
565
+ : await client.define.quality_rules.update(args[1], body);
566
+ emit(io, json, result);
567
+ return 0;
568
+ }
569
+ if (action === 'delete' && args[1]) {
570
+ emit(io, json, await client.define.quality_rules.delete(args[1]));
571
+ return 0;
572
+ }
573
+ return fail(io, json, 'usage', 'loxtep quality-rules list|get <id>|create --file <json>|update <id> --file <json>|delete <id>');
574
+ }
575
+ catch (err) {
576
+ const fields = errorFields(err);
577
+ return fail(io, json, fields.code || 'request_failed', fields.message);
578
+ }
579
+ }
580
+ async function runWithClient(options, exec) {
581
+ const { client } = await requireCliClient(options);
582
+ const code = await exec(client);
583
+ if (code !== 0)
584
+ process.exitCode = code;
585
+ }
586
+ export async function runDataPlaneIceberg(args, options = {}) {
587
+ await runWithClient(options, client => executeIceberg(client, args, defaultIo));
588
+ }
589
+ export async function runDataPlaneExport(args, options = {}) {
590
+ await runWithClient(options, client => executeExport(client, args));
591
+ }
592
+ export async function runPrimaryEntity(productId, options = {}) {
593
+ await runWithClient(options, client => executePrimaryEntity(client, productId, defaultIo, Boolean(options.json)));
594
+ }
595
+ export async function runDefineGlossary(args, options = {}) {
596
+ await runWithClient(options, client => executeGlossary(client, args));
597
+ }
598
+ export async function runDataContractsUpdate(args, options = {}) {
599
+ await runWithClient(options, client => executeContractUpdate(client, args));
600
+ }
601
+ export async function runQualityRules(args, options = {}) {
602
+ await runWithClient(options, client => executeQualityRules(client, args));
603
+ }
604
+ //# sourceMappingURL=data-plane-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-plane-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/data-plane-cmd.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@ export interface DataProductsCmdOptions {
10
10
  }
11
11
  export declare function runDataProductsList(options?: DataProductsCmdOptions): Promise<void>;
12
12
  export declare function runDataProductsGet(dataProductId: string, options?: DataProductsCmdOptions): Promise<void>;
13
- export declare function runDataProductsQuery(dataProductId: string, sql: string, options?: DataProductsCmdOptions): Promise<void>;
13
+ export declare function runDataProductsQuery(dataProductId: string, sql: string, options?: DataProductsCmdOptions & {
14
+ receipt?: boolean;
15
+ }): Promise<void>;
14
16
  export declare function runDataProductsTables(dataProductId: string, options?: DataProductsCmdOptions): Promise<void>;
15
17
  export declare function runDataProductsCreate(body: DataProductCreateInput, options?: DataProductsCmdOptions): Promise<void>;
16
18
  export declare function runDataProductsReadiness(dataProductId: string, options?: DataProductsCmdOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"data-products-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/data-products-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAElF,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7F;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,sBAAsB,EAC5B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,QAAQ,GAAG,MAAM,EAC7B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAqBf"}
1
+ {"version":3,"file":"data-products-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/data-products-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAElF,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7F;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,sBAAsB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3D,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,sBAAsB,EAC5B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,QAAQ,GAAG,MAAM,EAC7B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAqBf"}