dataiku-sdk 0.10.1 → 0.11.0
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/packages/types/src/index.d.ts +15 -2
- package/dist/packages/types/src/index.js +9 -1
- package/dist/src/cli/coerce.d.ts +36 -0
- package/dist/src/cli/coerce.js +239 -0
- package/dist/src/cli/commands/api-deployer.d.ts +2 -0
- package/dist/src/cli/commands/api-deployer.js +170 -0
- package/dist/src/cli/commands/api-service.d.ts +2 -0
- package/dist/src/cli/commands/api-service.js +102 -0
- package/dist/src/cli/commands/app.d.ts +2 -0
- package/dist/src/cli/commands/app.js +78 -0
- package/dist/src/cli/commands/bundle.d.ts +2 -0
- package/dist/src/cli/commands/bundle.js +107 -0
- package/dist/src/cli/commands/business-app.d.ts +2 -0
- package/dist/src/cli/commands/business-app.js +76 -0
- package/dist/src/cli/commands/code-env.d.ts +2 -0
- package/dist/src/cli/commands/code-env.js +255 -0
- package/dist/src/cli/commands/code.d.ts +2 -0
- package/dist/src/cli/commands/code.js +63 -0
- package/dist/src/cli/commands/connection.d.ts +2 -0
- package/dist/src/cli/commands/connection.js +54 -0
- package/dist/src/cli/commands/continuous-activity.d.ts +2 -0
- package/dist/src/cli/commands/continuous-activity.js +38 -0
- package/dist/src/cli/commands/dashboard.d.ts +2 -0
- package/dist/src/cli/commands/dashboard.js +99 -0
- package/dist/src/cli/commands/data-quality.d.ts +2 -0
- package/dist/src/cli/commands/data-quality.js +235 -0
- package/dist/src/cli/commands/dataset.d.ts +2 -0
- package/dist/src/cli/commands/dataset.js +288 -0
- package/dist/src/cli/commands/discussion.d.ts +2 -0
- package/dist/src/cli/commands/discussion.js +47 -0
- package/dist/src/cli/commands/doctor.d.ts +2 -0
- package/dist/src/cli/commands/doctor.js +9 -0
- package/dist/src/cli/commands/flow-zone.d.ts +2 -0
- package/dist/src/cli/commands/flow-zone.js +282 -0
- package/dist/src/cli/commands/folder.d.ts +2 -0
- package/dist/src/cli/commands/folder.js +202 -0
- package/dist/src/cli/commands/future.d.ts +2 -0
- package/dist/src/cli/commands/future.js +57 -0
- package/dist/src/cli/commands/index.d.ts +2 -0
- package/dist/src/cli/commands/index.js +70 -0
- package/dist/src/cli/commands/insight.d.ts +2 -0
- package/dist/src/cli/commands/insight.js +156 -0
- package/dist/src/cli/commands/job.d.ts +2 -0
- package/dist/src/cli/commands/job.js +406 -0
- package/dist/src/cli/commands/meaning.d.ts +2 -0
- package/dist/src/cli/commands/meaning.js +115 -0
- package/dist/src/cli/commands/metrics.d.ts +2 -0
- package/dist/src/cli/commands/metrics.js +39 -0
- package/dist/src/cli/commands/notebook.d.ts +2 -0
- package/dist/src/cli/commands/notebook.js +242 -0
- package/dist/src/cli/commands/project-deployer.d.ts +2 -0
- package/dist/src/cli/commands/project-deployer.js +118 -0
- package/dist/src/cli/commands/project-library.d.ts +2 -0
- package/dist/src/cli/commands/project-library.js +197 -0
- package/dist/src/cli/commands/project.d.ts +2 -0
- package/dist/src/cli/commands/project.js +132 -0
- package/dist/src/cli/commands/recipe.d.ts +2 -0
- package/dist/src/cli/commands/recipe.js +632 -0
- package/dist/src/cli/commands/scenario.d.ts +2 -0
- package/dist/src/cli/commands/scenario.js +190 -0
- package/dist/src/cli/commands/sql.d.ts +2 -0
- package/dist/src/cli/commands/sql.js +109 -0
- package/dist/src/cli/commands/statistics.d.ts +2 -0
- package/dist/src/cli/commands/statistics.js +165 -0
- package/dist/src/cli/commands/streaming-endpoint.d.ts +2 -0
- package/dist/src/cli/commands/streaming-endpoint.js +50 -0
- package/dist/src/cli/commands/variable.d.ts +2 -0
- package/dist/src/cli/commands/variable.js +49 -0
- package/dist/src/cli/commands/webapp.d.ts +2 -0
- package/dist/src/cli/commands/webapp.js +67 -0
- package/dist/src/cli/commands/wiki.d.ts +2 -0
- package/dist/src/cli/commands/wiki.js +123 -0
- package/dist/src/cli/commands/workspace.d.ts +2 -0
- package/dist/src/cli/commands/workspace.js +68 -0
- package/dist/src/cli/contract.d.ts +104 -0
- package/dist/src/cli/contract.js +2031 -0
- package/dist/src/cli/doctor.d.ts +104 -0
- package/dist/src/cli/doctor.js +356 -0
- package/dist/src/cli/env.d.ts +2 -0
- package/dist/src/cli/env.js +37 -0
- package/dist/src/cli/flags.d.ts +16 -0
- package/dist/src/cli/flags.js +255 -0
- package/dist/src/cli/helpers/cleanup.d.ts +3 -0
- package/dist/src/cli/helpers/cleanup.js +158 -0
- package/dist/src/cli/helpers/dataset.d.ts +2 -0
- package/dist/src/cli/helpers/dataset.js +17 -0
- package/dist/src/cli/helpers/flow-zone.d.ts +69 -0
- package/dist/src/cli/helpers/flow-zone.js +420 -0
- package/dist/src/cli/helpers/recipe.d.ts +11 -0
- package/dist/src/cli/helpers/recipe.js +83 -0
- package/dist/src/cli/output.d.ts +38 -0
- package/dist/src/cli/output.js +159 -0
- package/dist/src/cli/runtime.d.ts +15 -0
- package/dist/src/cli/runtime.js +59 -0
- package/dist/src/cli/types.d.ts +25 -0
- package/dist/src/cli/types.js +1 -0
- package/dist/src/cli/usage.d.ts +16 -0
- package/dist/src/cli/usage.js +80 -0
- package/dist/src/cli/version.d.ts +14 -0
- package/dist/src/cli/version.js +63 -0
- package/dist/src/cli.js +671 -8254
- package/dist/src/client.d.ts +1 -1
- package/dist/src/client.js +14 -13
- package/dist/src/errors.d.ts +6 -0
- package/dist/src/errors.js +102 -4
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.js +2 -2
- package/dist/src/resources/applications.d.ts +1 -1
- package/dist/src/resources/applications.js +27 -1
- package/dist/src/resources/continuous-activities.js +1 -0
- package/dist/src/resources/data-quality.js +5 -3
- package/dist/src/resources/datasets.d.ts +3 -0
- package/dist/src/resources/datasets.js +3 -0
- package/dist/src/resources/flow-zones.d.ts +2 -2
- package/dist/src/resources/flow-zones.js +4 -1
- package/dist/src/resources/meanings.d.ts +2 -0
- package/dist/src/resources/meanings.js +4 -0
- package/dist/src/resources/notebooks.d.ts +5 -7
- package/dist/src/resources/notebooks.js +10 -7
- package/dist/src/resources/projects.d.ts +1 -1
- package/dist/src/resources/projects.js +2 -2
- package/dist/src/resources/recipes.d.ts +3 -3
- package/dist/src/resources/recipes.js +50 -7
- package/dist/src/resources/scenarios.js +67 -26
- package/dist/src/resources/statistics.js +9 -0
- package/dist/src/schemas.d.ts +2 -2
- package/dist/src/schemas.js +1 -1
- package/dist/src/skill.js +2 -2
- package/dist/src/utils/sanitize.js +2 -1
- package/package.json +1 -1
- package/packages/types/dist/index.d.ts +15 -2
- package/packages/types/dist/index.js +9 -1
|
@@ -291,46 +291,87 @@ export class ScenariosResource extends BaseResource {
|
|
|
291
291
|
* Returns `{ success: false, timedOut: true }` on timeout rather than throwing.
|
|
292
292
|
*/
|
|
293
293
|
async runAndWait(scenarioId, opts) {
|
|
294
|
-
const
|
|
294
|
+
const pkEnc = this.enc(opts?.projectKey);
|
|
295
|
+
const base = `/public/api/projects/${pkEnc}/scenarios/${encodeURIComponent(scenarioId)}`;
|
|
295
296
|
const baseIntervalMs = Math.max(1, opts?.pollIntervalMs ?? 2_000);
|
|
296
297
|
const adaptivePolling = opts?.pollIntervalMs === undefined;
|
|
297
298
|
const timeout = Math.max(baseIntervalMs, opts?.timeoutMs ?? 120_000);
|
|
298
299
|
const startedAt = Date.now();
|
|
300
|
+
// POST /run/ returns a TRIGGER run id, which differs from the actual scenario
|
|
301
|
+
// run id; resolve the real run via get-run-for-trigger so a completed scenario
|
|
302
|
+
// is not misreported as a timeout (the trigger id never matches lastRun).
|
|
303
|
+
const trigger = await this.client.post(`${base}/run/`, {});
|
|
304
|
+
const triggerObj = trigger.trigger;
|
|
305
|
+
const triggerId = triggerObj?.id ?? "manual";
|
|
306
|
+
const triggerRunId = String(trigger.runId ?? trigger.id ?? "");
|
|
307
|
+
if (!triggerRunId) {
|
|
308
|
+
throw new DataikuError(500, "Scenario run not started", `Scenario "${scenarioId}" run trigger returned no run id; cannot track the run.`);
|
|
309
|
+
}
|
|
310
|
+
const trigQuery = `triggerId=${encodeURIComponent(triggerId)}&triggerRunId=${encodeURIComponent(triggerRunId)}`;
|
|
311
|
+
let runId = "";
|
|
312
|
+
let outcome = "UNKNOWN";
|
|
299
313
|
let pollCount = 0;
|
|
314
|
+
let timedOut = false;
|
|
300
315
|
while (true) {
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
if (!st.running && st.lastRun?.runId === runId) {
|
|
306
|
-
const outcome = st.lastRun?.outcome ?? "UNKNOWN";
|
|
307
|
-
return {
|
|
308
|
-
scenarioId,
|
|
309
|
-
runId,
|
|
310
|
-
outcome,
|
|
311
|
-
success: outcome === "SUCCESS",
|
|
312
|
-
elapsedMs,
|
|
313
|
-
pollCount,
|
|
314
|
-
};
|
|
316
|
+
if (Date.now() - startedAt >= timeout) {
|
|
317
|
+
outcome = "TIMEOUT";
|
|
318
|
+
timedOut = true;
|
|
319
|
+
break;
|
|
315
320
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
321
|
+
pollCount += 1;
|
|
322
|
+
const run = await this.client.get(`${base}/get-run-for-trigger?${trigQuery}`);
|
|
323
|
+
const scenarioRun = run.scenarioRun;
|
|
324
|
+
if (scenarioRun) {
|
|
325
|
+
runId = scenarioRun.runId ?? runId;
|
|
326
|
+
const result = scenarioRun.result;
|
|
327
|
+
const finished = result?.outcome;
|
|
328
|
+
if (finished) {
|
|
329
|
+
outcome = finished;
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
326
332
|
}
|
|
327
333
|
const nextDelayMs = computeNextPollDelayMs({
|
|
328
334
|
pollCount,
|
|
329
335
|
baseIntervalMs,
|
|
330
336
|
adaptiveEnabled: adaptivePolling,
|
|
331
337
|
});
|
|
332
|
-
|
|
338
|
+
const { promise, resolve, } = Promise.withResolvers();
|
|
339
|
+
setTimeout(resolve, Math.min(nextDelayMs, Math.max(1, timeout - (Date.now() - startedAt))));
|
|
340
|
+
await promise;
|
|
333
341
|
}
|
|
342
|
+
const resolvedRunId = runId || triggerRunId;
|
|
343
|
+
let steps;
|
|
344
|
+
if (!timedOut && runId) {
|
|
345
|
+
try {
|
|
346
|
+
const details = await this.client.get(`${base}/${encodeURIComponent(runId)}/`);
|
|
347
|
+
const stepRuns = details.stepRuns ?? [];
|
|
348
|
+
const mapped = stepRuns.map((entry) => {
|
|
349
|
+
const stepDef = entry.step;
|
|
350
|
+
const stepResult = entry.result;
|
|
351
|
+
return {
|
|
352
|
+
name: stepDef?.name,
|
|
353
|
+
type: stepDef?.type,
|
|
354
|
+
outcome: stepResult?.outcome ?? "UNKNOWN",
|
|
355
|
+
};
|
|
356
|
+
});
|
|
357
|
+
if (mapped.length > 0)
|
|
358
|
+
steps = mapped;
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
// Best-effort diagnostics: never fail the wait because the run report is unavailable.
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
return {
|
|
365
|
+
scenarioId,
|
|
366
|
+
runId: resolvedRunId,
|
|
367
|
+
outcome,
|
|
368
|
+
success: outcome === "SUCCESS",
|
|
369
|
+
elapsedMs: Date.now() - startedAt,
|
|
370
|
+
pollCount,
|
|
371
|
+
...(triggerRunId !== resolvedRunId ? { triggerRunId, } : {}),
|
|
372
|
+
...(timedOut ? { timedOut: true, } : {}),
|
|
373
|
+
...(steps ? { steps, } : {}),
|
|
374
|
+
};
|
|
334
375
|
}
|
|
335
376
|
/**
|
|
336
377
|
* Run a one-off Python script in a throwaway custom-python scenario and return
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
import { UsageError, } from "../cli/usage.js";
|
|
1
2
|
import { BaseResource, } from "./base.js";
|
|
2
3
|
function isRecord(value) {
|
|
3
4
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
4
5
|
}
|
|
6
|
+
function validateWorksheetCreateRequest(body) {
|
|
7
|
+
const bodyRecord = isRecord(body) ? body : undefined;
|
|
8
|
+
const dataSpec = bodyRecord?.dataSpec;
|
|
9
|
+
if (!isRecord(dataSpec) || !isRecord(dataSpec.datasetSelection)) {
|
|
10
|
+
throw new UsageError("statistics.createWorksheet requires body.dataSpec.datasetSelection.", "validation_failed", "Include dataSpec.datasetSelection in the worksheet definition.", { requiredField: "dataSpec.datasetSelection", });
|
|
11
|
+
}
|
|
12
|
+
}
|
|
5
13
|
export class StatisticsResource extends BaseResource {
|
|
6
14
|
/** List statistics worksheets associated with a dataset. */
|
|
7
15
|
async listWorksheets(datasetName, projectKey) {
|
|
@@ -13,6 +21,7 @@ export class StatisticsResource extends BaseResource {
|
|
|
13
21
|
}
|
|
14
22
|
/** Create a statistics worksheet for a dataset. */
|
|
15
23
|
async createWorksheet(datasetName, body, projectKey) {
|
|
24
|
+
validateWorksheetCreateRequest(body);
|
|
16
25
|
return this.client.post(this.worksheetsPath(datasetName, projectKey), body);
|
|
17
26
|
}
|
|
18
27
|
/** Replace a statistics worksheet definition. */
|
package/dist/src/schemas.d.ts
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* The types package (packages/types/) owns the TypeBox schema definitions.
|
|
4
4
|
* SDK consumers get everything through this re-export.
|
|
5
5
|
*/
|
|
6
|
-
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZonePositionSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
|
7
|
-
export type { BuildMode, CodeEnvActionResult, CodeEnvCreateOptions, CodeEnvDetails, CodeEnvPackageList, CodeEnvSetPackagesOptions, CodeEnvSummary, CodeEnvUpdatePackagesOptions, CodeEnvUsage, CodeEnvWaitOptions, ConnectionSummary, DashboardDetails, DashboardSummary, DataQualityComputeResult, DataQualityProjectStatus, DataQualityRule, DataQualityRuleResult, DataQualityRules, DataQualityStatus, DataQualityStatusByPartition, DataQualityTimeline, DataQualityTimelineEntry, DatasetCreateOptions, DatasetDetails, DatasetSchema, DatasetSummary, FlowMapOptions, FlowZone, FlowZoneCreateOptions, FlowZoneItem, FlowZoneObjectType, FlowZonePosition, FlowZoneUpdateOptions, FolderCreateOptions, FolderDetails, FolderItem, FolderSummary, FutureState, FutureWaitResult, InsightDetails, InsightSummary, JobSummary, JobWaitResult, JupyterCell, JupyterNotebookContent, JupyterNotebookSummary, NotebookSession, ProjectDetails, ProjectMetadata, ProjectSummary, ProjectVariables, RecipeCreateOptions, RecipeCreateResult, RecipeDetails, RecipeSummary, SafeParseResult, ScenarioDetails, ScenarioStatus, ScenarioSummary, ScenarioWaitResult, SqlNotebookCell, SqlNotebookContent, SqlNotebookSummary, SqlQueryResponse, SqlQueryResult, SqlQuerySchema, WikiArticleData, WikiArticleMetadata, WikiSettings, WikiTaxonomyNode, } from "../packages/types/src/index.js";
|
|
6
|
+
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZonePositionSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioStepRunSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
|
7
|
+
export type { BuildMode, CodeEnvActionResult, CodeEnvCreateOptions, CodeEnvDetails, CodeEnvPackageList, CodeEnvSetPackagesOptions, CodeEnvSummary, CodeEnvUpdatePackagesOptions, CodeEnvUsage, CodeEnvWaitOptions, ConnectionSummary, DashboardDetails, DashboardSummary, DataQualityComputeResult, DataQualityProjectStatus, DataQualityRule, DataQualityRuleResult, DataQualityRules, DataQualityStatus, DataQualityStatusByPartition, DataQualityTimeline, DataQualityTimelineEntry, DatasetCreateOptions, DatasetDetails, DatasetSchema, DatasetSummary, FlowMapOptions, FlowZone, FlowZoneCreateOptions, FlowZoneItem, FlowZoneObjectType, FlowZonePosition, FlowZoneUpdateOptions, FolderCreateOptions, FolderDetails, FolderItem, FolderSummary, FutureState, FutureWaitResult, InsightDetails, InsightSummary, JobSummary, JobWaitResult, JupyterCell, JupyterNotebookContent, JupyterNotebookSummary, NotebookSession, ProjectDetails, ProjectMetadata, ProjectSummary, ProjectVariables, RecipeCreateOptions, RecipeCreateResult, RecipeDetails, RecipeSummary, SafeParseResult, ScenarioDetails, ScenarioStatus, ScenarioStepRun, ScenarioSummary, ScenarioWaitResult, SqlNotebookCell, SqlNotebookContent, SqlNotebookSummary, SqlQueryResponse, SqlQueryResult, SqlQuerySchema, WikiArticleData, WikiArticleMetadata, WikiSettings, WikiTaxonomyNode, } from "../packages/types/src/index.js";
|
package/dist/src/schemas.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* The types package (packages/types/) owns the TypeBox schema definitions.
|
|
4
4
|
* SDK consumers get everything through this re-export.
|
|
5
5
|
*/
|
|
6
|
-
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZonePositionSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
|
6
|
+
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZonePositionSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioStepRunSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
package/dist/src/skill.js
CHANGED
|
@@ -87,8 +87,8 @@ Mutations print a small JSON ack to stdout and exit 0 on success (e.g. \`{"updat
|
|
|
87
87
|
- Pass code and SQL via \`--file\`/\`--sql-file\`, not inline: shells (especially PowerShell) mangle quotes, \`$\`, and newlines in multi-line snippets.
|
|
88
88
|
- On a non-UTF-8 console (e.g. Windows cp1252), don't print non-ASCII results; write them to a UTF-8 file and read that, or use \`--output PATH\`.
|
|
89
89
|
- Build failures: \`dss job log <id> --errors-only\` surfaces just error/traceback lines, and \`--output PATH\` saves the full log to a file. Logs are one long line with JVM noise; the \`Error in Python process: At line <N>\` marker maps \`<N>\` straight to your recipe payload's source line.
|
|
90
|
-
- Schema changes aren't automatic: after changing a recipe's output columns run \`dss dataset refresh-schema\` (or rebuild) before downstream reads, and \`dss dataset validate-build\` to catch file-backed misconfig before launching a build.
|
|
91
|
-
- \`dss dataset download\` is capped (default 100k rows) and returns \`{ path, rows, truncated, limit }\`: check \`truncated\` and raise \`--limit N\` when you need more — treat it as a sample, not a guaranteed full export. For very large tables, aggregate in SQL or read inside a recipe instead.
|
|
90
|
+
- Schema changes aren't automatic for code recipes: after changing a python/SQL/prepare recipe's output columns run \`dss dataset refresh-schema\` (or rebuild) before downstream reads, and \`dss dataset validate-build\` to catch file-backed misconfig before launching a build. Exception: \`dss recipe create --type sync\` copies the input schema onto a schemaless dataset output at create time (see \`syncOutputSchemaPropagated\` in the result), so a fresh sync output builds populated without a manual refresh.
|
|
91
|
+
- \`dss dataset download\` is capped (default 100k rows) and returns \`{ path, rows, truncated, limit }\`: check \`truncated\` and raise \`--limit N\` when you need more — treat it as a sample, not a guaranteed full export. Without \`--output\` the file lands in the current working directory (and a \`dataset_download_default_location\` warning names that path); pass \`--output PATH\` to control the destination. For very large tables, aggregate in SQL or read inside a recipe instead.
|
|
92
92
|
|
|
93
93
|
## Error envelope
|
|
94
94
|
|
|
@@ -4,7 +4,8 @@ export function sanitizeFileName(name, fallback) {
|
|
|
4
4
|
const sanitized = name
|
|
5
5
|
.replace(/[<>:"/\\|?*\u0000-\u001F]/g, "_")
|
|
6
6
|
.replace(/[. ]+$/g, "")
|
|
7
|
-
.trim()
|
|
7
|
+
.trim()
|
|
8
|
+
.replace(/^\.+/, "");
|
|
8
9
|
if (!sanitized)
|
|
9
10
|
return fallback;
|
|
10
11
|
const dotIndex = sanitized.indexOf(".");
|
package/package.json
CHANGED
|
@@ -160,6 +160,7 @@ export declare const RecipeCreateResultSchema: import("@sinclair/typebox").TObje
|
|
|
160
160
|
outputFolder: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
161
161
|
temporaryOutputDataset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
162
162
|
temporaryOutputDatasetDeleted: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
163
|
+
syncOutputSchemaPropagated: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
163
164
|
}>;
|
|
164
165
|
export type RecipeCreateResult = Static<typeof RecipeCreateResultSchema>;
|
|
165
166
|
export declare const JobSummarySchema: import("@sinclair/typebox").TObject<{
|
|
@@ -264,6 +265,12 @@ export declare const ScenarioStatusSchema: import("@sinclair/typebox").TObject<{
|
|
|
264
265
|
}>>;
|
|
265
266
|
}>;
|
|
266
267
|
export type ScenarioStatus = Static<typeof ScenarioStatusSchema>;
|
|
268
|
+
export declare const ScenarioStepRunSchema: import("@sinclair/typebox").TObject<{
|
|
269
|
+
name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
270
|
+
type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
271
|
+
outcome: import("@sinclair/typebox").TString;
|
|
272
|
+
}>;
|
|
273
|
+
export type ScenarioStepRun = Static<typeof ScenarioStepRunSchema>;
|
|
267
274
|
export declare const ScenarioWaitResultSchema: import("@sinclair/typebox").TObject<{
|
|
268
275
|
scenarioId: import("@sinclair/typebox").TString;
|
|
269
276
|
runId: import("@sinclair/typebox").TString;
|
|
@@ -272,6 +279,12 @@ export declare const ScenarioWaitResultSchema: import("@sinclair/typebox").TObje
|
|
|
272
279
|
elapsedMs: import("@sinclair/typebox").TNumber;
|
|
273
280
|
pollCount: import("@sinclair/typebox").TNumber;
|
|
274
281
|
timedOut: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
282
|
+
triggerRunId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
283
|
+
steps: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
284
|
+
name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
285
|
+
type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
286
|
+
outcome: import("@sinclair/typebox").TString;
|
|
287
|
+
}>>>;
|
|
275
288
|
}>;
|
|
276
289
|
export type ScenarioWaitResult = Static<typeof ScenarioWaitResultSchema>;
|
|
277
290
|
export declare const FlowZoneObjectTypeSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"DATASET">, import("@sinclair/typebox").TLiteral<"MANAGED_FOLDER">, import("@sinclair/typebox").TLiteral<"SAVED_MODEL">, import("@sinclair/typebox").TLiteral<"RECIPE">, import("@sinclair/typebox").TLiteral<"MODEL_EVALUATION_STORE">, import("@sinclair/typebox").TLiteral<"STREAMING_ENDPOINT">, import("@sinclair/typebox").TLiteral<"LABELING_TASK">, import("@sinclair/typebox").TLiteral<"RETRIEVABLE_KNOWLEDGE">]>;
|
|
@@ -552,7 +565,7 @@ export declare const JupyterCellSchema: import("@sinclair/typebox").TObject<{
|
|
|
552
565
|
source: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
553
566
|
metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
|
|
554
567
|
outputs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnknown>>;
|
|
555
|
-
execution_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").
|
|
568
|
+
execution_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNull, import("@sinclair/typebox").TNumber]>>;
|
|
556
569
|
}>;
|
|
557
570
|
export type JupyterCell = Static<typeof JupyterCellSchema>;
|
|
558
571
|
export declare const JupyterNotebookSummarySchema: import("@sinclair/typebox").TObject<{
|
|
@@ -575,7 +588,7 @@ export declare const JupyterNotebookContentSchema: import("@sinclair/typebox").T
|
|
|
575
588
|
source: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
576
589
|
metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
|
|
577
590
|
outputs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnknown>>;
|
|
578
|
-
execution_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").
|
|
591
|
+
execution_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNull, import("@sinclair/typebox").TNumber]>>;
|
|
579
592
|
}>>;
|
|
580
593
|
}>;
|
|
581
594
|
export type JupyterNotebookContent = Static<typeof JupyterNotebookContentSchema>;
|
|
@@ -207,6 +207,7 @@ export const RecipeCreateResultSchema = Type.Object({
|
|
|
207
207
|
outputFolder: Type.Optional(Type.String()),
|
|
208
208
|
temporaryOutputDataset: Type.Optional(Type.String()),
|
|
209
209
|
temporaryOutputDatasetDeleted: Type.Optional(Type.Boolean()),
|
|
210
|
+
syncOutputSchemaPropagated: Type.Optional(Type.Array(Type.String())),
|
|
210
211
|
});
|
|
211
212
|
// ---------------------------------------------------------------------------
|
|
212
213
|
// Jobs
|
|
@@ -313,6 +314,11 @@ export const ScenarioStatusSchema = Type.Object({
|
|
|
313
314
|
}, { additionalProperties: true, })),
|
|
314
315
|
}, { additionalProperties: true, })),
|
|
315
316
|
}, { additionalProperties: true, });
|
|
317
|
+
export const ScenarioStepRunSchema = Type.Object({
|
|
318
|
+
name: Type.Optional(Type.String()),
|
|
319
|
+
type: Type.Optional(Type.String()),
|
|
320
|
+
outcome: Type.String(),
|
|
321
|
+
}, { additionalProperties: false, });
|
|
316
322
|
export const ScenarioWaitResultSchema = Type.Object({
|
|
317
323
|
scenarioId: Type.String(),
|
|
318
324
|
runId: Type.String(),
|
|
@@ -321,6 +327,8 @@ export const ScenarioWaitResultSchema = Type.Object({
|
|
|
321
327
|
elapsedMs: Type.Number(),
|
|
322
328
|
pollCount: Type.Number(),
|
|
323
329
|
timedOut: Type.Optional(Type.Boolean()),
|
|
330
|
+
triggerRunId: Type.Optional(Type.String()),
|
|
331
|
+
steps: Type.Optional(Type.Array(ScenarioStepRunSchema)),
|
|
324
332
|
});
|
|
325
333
|
// ---------------------------------------------------------------------------
|
|
326
334
|
// Flow zones
|
|
@@ -548,7 +556,7 @@ export const JupyterCellSchema = Type.Object({
|
|
|
548
556
|
source: Type.Array(Type.String()),
|
|
549
557
|
metadata: Type.Optional(Type.Record(Type.String(), Type.Unknown())),
|
|
550
558
|
outputs: Type.Optional(Type.Array(Type.Unknown())),
|
|
551
|
-
execution_count: Type.Optional(Type.Union([Type.
|
|
559
|
+
execution_count: Type.Optional(Type.Union([Type.Null(), Type.Number(),])),
|
|
552
560
|
}, { additionalProperties: true, });
|
|
553
561
|
export const JupyterNotebookSummarySchema = Type.Object({
|
|
554
562
|
name: Type.String(),
|