dataiku-sdk 0.12.4 → 0.12.5
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/README.md +118 -7
- package/dist/packages/types/src/index.d.ts +5 -0
- package/dist/packages/types/src/index.js +5 -0
- package/dist/src/cli/coerce.d.ts +1 -3
- package/dist/src/cli/coerce.js +1 -17
- package/dist/src/cli/commands/app.js +709 -14
- package/dist/src/cli/commands/code-env.js +2 -2
- package/dist/src/cli/commands/dashboard.js +1 -1
- package/dist/src/cli/commands/dataset.js +2 -2
- package/dist/src/cli/commands/folder.js +1 -1
- package/dist/src/cli/commands/insight.js +2 -2
- package/dist/src/cli/commands/notebook.js +2 -2
- package/dist/src/cli/commands/recipe.js +3 -3
- package/dist/src/cli/commands/scenario.js +1 -1
- package/dist/src/cli/commands/sql.js +1 -1
- package/dist/src/cli/commands/variable.js +1 -1
- package/dist/src/cli/commands/wiki.js +1 -1
- package/dist/src/cli/contract.d.ts +12 -3
- package/dist/src/cli/contract.js +805 -49
- package/dist/src/cli/flags.js +8 -0
- package/dist/src/cli/helpers/app-permissions.d.ts +63 -0
- package/dist/src/cli/helpers/app-permissions.js +239 -0
- package/dist/src/cli/helpers/app-successor.d.ts +106 -0
- package/dist/src/cli/helpers/app-successor.js +625 -0
- package/dist/src/cli/helpers/cleanup.js +46 -12
- package/dist/src/cli/output.d.ts +12 -1
- package/dist/src/cli/output.js +53 -6
- package/dist/src/cli/usage.d.ts +1 -1
- package/dist/src/cli/usage.js +5 -2
- package/dist/src/cli.js +329 -32
- package/dist/src/client.d.ts +6 -0
- package/dist/src/client.js +28 -1
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/resources/applications.d.ts +191 -1
- package/dist/src/resources/applications.js +549 -10
- package/dist/src/resources/datasets.js +8 -0
- package/dist/src/resources/futures.js +7 -2
- package/dist/src/skill.js +76 -18
- package/dist/src/utils/cleanup-ledger.d.ts +34 -1
- package/dist/src/utils/cleanup-ledger.js +118 -7
- package/dist/src/utils/dss-url.d.ts +6 -0
- package/dist/src/utils/dss-url.js +17 -0
- package/dist/src/utils/project-incarnation.d.ts +6 -0
- package/dist/src/utils/project-incarnation.js +27 -0
- package/dist/src/utils/stable-hash.d.ts +11 -0
- package/dist/src/utils/stable-hash.js +27 -0
- package/node_modules/@sinclair/typebox/build/cjs/compiler/compiler.js +26 -46
- package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/guard.d.ts +1 -1
- package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/token.d.ts +2 -2
- package/node_modules/@sinclair/typebox/build/cjs/syntax/mapping.d.ts +1 -1
- package/node_modules/@sinclair/typebox/build/cjs/system/evaluate.d.ts +5 -0
- package/node_modules/@sinclair/typebox/build/cjs/system/evaluate.js +11 -0
- package/node_modules/@sinclair/typebox/build/cjs/system/index.d.ts +1 -0
- package/node_modules/@sinclair/typebox/build/cjs/system/index.js +1 -0
- package/node_modules/@sinclair/typebox/build/cjs/type/object/object.d.ts +2 -2
- package/node_modules/@sinclair/typebox/build/cjs/type/object/object.js +18 -2
- package/node_modules/@sinclair/typebox/build/cjs/value/parse/parse.d.ts +1 -1
- package/node_modules/@sinclair/typebox/build/esm/compiler/compiler.mjs +27 -47
- package/node_modules/@sinclair/typebox/build/esm/parser/runtime/guard.d.mts +1 -1
- package/node_modules/@sinclair/typebox/build/esm/parser/runtime/token.d.mts +2 -2
- package/node_modules/@sinclair/typebox/build/esm/syntax/mapping.d.mts +1 -1
- package/node_modules/@sinclair/typebox/build/esm/system/evaluate.d.mts +5 -0
- package/node_modules/@sinclair/typebox/build/esm/system/evaluate.mjs +7 -0
- package/node_modules/@sinclair/typebox/build/esm/system/index.d.mts +1 -0
- package/node_modules/@sinclair/typebox/build/esm/system/index.mjs +1 -0
- package/node_modules/@sinclair/typebox/build/esm/type/composite/composite.mjs +2 -2
- package/node_modules/@sinclair/typebox/build/esm/type/const/const.mjs +3 -3
- package/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.mjs +2 -2
- package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs +3 -3
- package/node_modules/@sinclair/typebox/build/esm/type/module/compute.mjs +2 -2
- package/node_modules/@sinclair/typebox/build/esm/type/object/object.d.mts +2 -2
- package/node_modules/@sinclair/typebox/build/esm/type/object/object.mjs +18 -2
- package/node_modules/@sinclair/typebox/build/esm/type/omit/omit.mjs +3 -3
- package/node_modules/@sinclair/typebox/build/esm/type/partial/partial.mjs +3 -3
- package/node_modules/@sinclair/typebox/build/esm/type/pick/pick.mjs +3 -3
- package/node_modules/@sinclair/typebox/build/esm/type/record/record.mjs +3 -3
- package/node_modules/@sinclair/typebox/build/esm/type/required/required.mjs +3 -3
- package/node_modules/@sinclair/typebox/build/esm/type/type/json.mjs +2 -2
- package/node_modules/@sinclair/typebox/build/esm/value/delta/delta.mjs +4 -4
- package/node_modules/@sinclair/typebox/build/esm/value/parse/parse.d.mts +1 -1
- package/node_modules/@sinclair/typebox/package.json +1 -1
- package/package.json +7 -5
- package/packages/types/dist/index.d.ts +5 -0
- package/packages/types/dist/index.js +5 -0
|
@@ -124,7 +124,7 @@ export const codeEnvCommands = {
|
|
|
124
124
|
}
|
|
125
125
|
return c.codeEnvs.setDefinition(a[0], a[1], definition);
|
|
126
126
|
},
|
|
127
|
-
usage: "dss code-env set-definition <lang> <name>
|
|
127
|
+
usage: "dss code-env set-definition <lang> <name> (--data JSON|--data-file PATH|--stdin) [--dry-run]",
|
|
128
128
|
description: "Replace a code environment definition previously fetched from DSS.",
|
|
129
129
|
examples: ["dss code-env set-definition PYTHON my_env --data-file code-env.json --dry-run",],
|
|
130
130
|
},
|
|
@@ -146,7 +146,7 @@ export const codeEnvCommands = {
|
|
|
146
146
|
}
|
|
147
147
|
return c.codeEnvs.setPackages(a[0], a[1], packages, { installCorePackages, });
|
|
148
148
|
},
|
|
149
|
-
usage: "dss code-env set-packages <lang> <name>
|
|
149
|
+
usage: "dss code-env set-packages <lang> <name> (--packages PKGS|--package PKG|--file PATH) [--install-core-packages true|false] [--dry-run]",
|
|
150
150
|
description: "Update requested package specs without rebuilding packages.",
|
|
151
151
|
examples: [
|
|
152
152
|
"dss code-env set-packages PYTHON my_env --packages 'tabulate\\nnameparser' --dry-run",
|
|
@@ -73,7 +73,7 @@ export const dashboardCommands = {
|
|
|
73
73
|
projectKey: f["project-key"],
|
|
74
74
|
});
|
|
75
75
|
},
|
|
76
|
-
usage: "dss dashboard update <id>
|
|
76
|
+
usage: "dss dashboard update <id> (--name NAME|--data JSON|--data-file PATH|--stdin) [--dry-run] [--project-key KEY]",
|
|
77
77
|
description: "Update dashboard settings via merge.",
|
|
78
78
|
examples: ["dss dashboard update DASHBOARD_ID --name 'New name' --dry-run",],
|
|
79
79
|
},
|
|
@@ -89,7 +89,7 @@ export const datasetCommands = {
|
|
|
89
89
|
await c.datasets.updateSchema(a[0], columns, pk);
|
|
90
90
|
return { updated: a[0], resource: "dataset", schema: { columns, }, };
|
|
91
91
|
},
|
|
92
|
-
usage: "dss dataset refresh-schema <name>
|
|
92
|
+
usage: "dss dataset refresh-schema <name> (--data JSON | --data-file PATH | --stdin) [--dry-run] [--project-key KEY]",
|
|
93
93
|
description: "Replace a dataset schema through the DSS schema endpoint.",
|
|
94
94
|
examples: [
|
|
95
95
|
`dss dataset refresh-schema orders --data '{"columns":[{"name":"id","type":"bigint"}]}' --dry-run`,
|
|
@@ -278,7 +278,7 @@ export const datasetCommands = {
|
|
|
278
278
|
await c.datasets.update(a[0], data, pk);
|
|
279
279
|
return { updated: a[0], resource: "dataset", };
|
|
280
280
|
},
|
|
281
|
-
usage: "dss dataset update <name>
|
|
281
|
+
usage: "dss dataset update <name> (--data '{...}' | --data-file PATH | --stdin) [--dry-run] [--project-key KEY]",
|
|
282
282
|
description: "Update dataset settings via JSON merge.",
|
|
283
283
|
examples: [
|
|
284
284
|
'dss dataset update orders --data \'{"tags":["production"]}\' --dry-run',
|
|
@@ -89,7 +89,7 @@ export const folderCommands = {
|
|
|
89
89
|
await c.folders.update(folderId, data, pk);
|
|
90
90
|
return { updated: folderId, resource: "folder", };
|
|
91
91
|
},
|
|
92
|
-
usage: "dss folder update <name-or-id>
|
|
92
|
+
usage: "dss folder update <name-or-id> (--data JSON | --data-file PATH | --stdin) [--dry-run] [--project-key KEY]",
|
|
93
93
|
description: "Update managed folder settings by deep-merging a JSON patch.",
|
|
94
94
|
examples: [
|
|
95
95
|
'dss folder update exports --data \'{"tags":["agent"]}\' --dry-run',
|
|
@@ -84,7 +84,7 @@ export const insightCommands = {
|
|
|
84
84
|
},
|
|
85
85
|
update: {
|
|
86
86
|
handler: async (c, a, f) => {
|
|
87
|
-
requireArgs(a, 1, "dss insight update <id>
|
|
87
|
+
requireArgs(a, 1, "dss insight update <id> (--name NAME|--listed true|false|--params JSON|--content TEXT|--file PATH|--content-type MIME|--data JSON|--data-file PATH|--stdin)");
|
|
88
88
|
const data = jsonInput(f);
|
|
89
89
|
const name = f["name"];
|
|
90
90
|
const params = json(f["params"]);
|
|
@@ -130,7 +130,7 @@ export const insightCommands = {
|
|
|
130
130
|
projectKey: f["project-key"],
|
|
131
131
|
});
|
|
132
132
|
},
|
|
133
|
-
usage: "dss insight update <id>
|
|
133
|
+
usage: "dss insight update <id> (--name NAME|--listed true|false|--params JSON|--content TEXT|--file PATH|--content-type MIME|--data JSON|--data-file PATH|--stdin) [--dry-run] [--project-key KEY]",
|
|
134
134
|
description: "Update an insight using GET-before-POST merge semantics.",
|
|
135
135
|
examples: ["dss insight update INSIGHT_ID --name 'Updated' --dry-run",],
|
|
136
136
|
},
|
|
@@ -172,7 +172,7 @@ export const notebookCommands = {
|
|
|
172
172
|
}
|
|
173
173
|
return { saved: a[0], resource: "jupyter-notebook", };
|
|
174
174
|
},
|
|
175
|
-
usage: "dss notebook save-jupyter <name>
|
|
175
|
+
usage: "dss notebook save-jupyter <name> (--data '{...}' | --data-file PATH | --stdin) [--dry-run] [--project-key KEY]",
|
|
176
176
|
description: "Save content to a Jupyter notebook, creating it if missing.",
|
|
177
177
|
examples: [
|
|
178
178
|
"dss notebook save-jupyter my_notebook --data-file notebook.json --dry-run",
|
|
@@ -207,7 +207,7 @@ export const notebookCommands = {
|
|
|
207
207
|
}
|
|
208
208
|
return { saved: a[0], resource: "sql-notebook", };
|
|
209
209
|
},
|
|
210
|
-
usage: "dss notebook save-sql <id>
|
|
210
|
+
usage: "dss notebook save-sql <id> (--data '{...}' | --data-file PATH | --stdin) [--dry-run] [--project-key KEY]",
|
|
211
211
|
description: "Save content to a SQL notebook, creating it if missing.",
|
|
212
212
|
examples: ["dss notebook save-sql my_sql_notebook --data-file content.json --dry-run",],
|
|
213
213
|
},
|
|
@@ -265,7 +265,7 @@ export const recipeCommands = {
|
|
|
265
265
|
},
|
|
266
266
|
clone: {
|
|
267
267
|
handler: async (c, a, f) => {
|
|
268
|
-
const usage = "dss recipe clone
|
|
268
|
+
const usage = "dss recipe clone (source|--from SOURCE) (--name NAME|--to NAME) [--replace-input FROM=TO] [--replace-output FROM=TO] [--replace-payload-text FROM=TO] [--output DATASET] [--copy-output-settings] [--path PATH] [--metastore-table TABLE] [--zone ZONE|--zone-id ID] [--dry-run] [--project-key KEY]";
|
|
269
269
|
const fromFlag = typeof f["from"] === "string" ? f["from"].trim() : "";
|
|
270
270
|
const sourceName = a[0] ?? fromFlag;
|
|
271
271
|
if (!sourceName) {
|
|
@@ -333,7 +333,7 @@ export const recipeCommands = {
|
|
|
333
333
|
const moved = await moveCreatedItemsToZone(c, f, [{ objectId: name, objectType: "RECIPE", },], pk);
|
|
334
334
|
return { ...cloned, resource: "recipe", ...moved, };
|
|
335
335
|
},
|
|
336
|
-
usage: "dss recipe clone
|
|
336
|
+
usage: "dss recipe clone (source|--from SOURCE) (--name NAME|--to NAME) [--replace-input FROM=TO] [--replace-output FROM=TO] [--replace-payload-text FROM=TO] [--output DATASET] [--copy-output-settings] [--path PATH] [--metastore-table TABLE] [--zone ZONE|--zone-id ID] [--dry-run] [--project-key KEY]",
|
|
337
337
|
description: "Clone a recipe graph/settings/payload into a separate experiment recipe.",
|
|
338
338
|
examples: [
|
|
339
339
|
"dss recipe clone compute_orders --name compute_orders_opt --output orders_opt --copy-output-settings --dry-run",
|
|
@@ -384,7 +384,7 @@ export const recipeCommands = {
|
|
|
384
384
|
await c.recipes.update(a[0], data, pk);
|
|
385
385
|
return { updated: a[0], resource: "recipe", };
|
|
386
386
|
},
|
|
387
|
-
usage: "dss recipe update <name>
|
|
387
|
+
usage: "dss recipe update <name> (--data '{...}' | --data-file PATH | --stdin) [--dry-run] [--project-key KEY]",
|
|
388
388
|
description: "Update recipe settings via JSON merge. Recipe definition fields must be nested under a top-level recipe key.",
|
|
389
389
|
examples: [
|
|
390
390
|
"dss recipe update compute_orders --data-file settings.json --dry-run",
|
|
@@ -180,7 +180,7 @@ export const scenarioCommands = {
|
|
|
180
180
|
unchangedPaths: result.unchangedPaths,
|
|
181
181
|
};
|
|
182
182
|
},
|
|
183
|
-
usage: "dss scenario update <id>
|
|
183
|
+
usage: "dss scenario update <id> (--data '{...}' | --data-file PATH | --stdin) [--dry-run] [--project-key KEY]",
|
|
184
184
|
description: "Update scenario settings via JSON merge; edit step-based scenario steps at params.steps, not rawParams.params.steps.",
|
|
185
185
|
examples: [
|
|
186
186
|
'dss scenario update my_scenario --data \'{"params":{"steps":[]}}\' --dry-run',
|
|
@@ -3,7 +3,7 @@ import { mkdir, writeFile, } from "node:fs/promises";
|
|
|
3
3
|
import { dirname, resolve, } from "node:path";
|
|
4
4
|
import { readStdinText, stripUtf8Bom, } from "../coerce.js";
|
|
5
5
|
import { UsageError, } from "../usage.js";
|
|
6
|
-
const SQL_QUERY_USAGE = "dss sql query
|
|
6
|
+
const SQL_QUERY_USAGE = "dss sql query (SQL | --sql QUERY | --sql-file PATH | --sql - | --stdin) (--connection CONN | --dataset FULL_NAME) [--database DB] [--output PATH|--output-file PATH] [--preview N] [--request-timeout MS] [--project-key KEY]";
|
|
7
7
|
const DEFAULT_SQL_PREVIEW_ROWS = 5;
|
|
8
8
|
/**
|
|
9
9
|
* Parse `--preview N` into a non-negative row count. Rejects non-integers,
|
|
@@ -39,7 +39,7 @@ export const variableCommands = {
|
|
|
39
39
|
projectKey: pk,
|
|
40
40
|
});
|
|
41
41
|
},
|
|
42
|
-
usage: `dss variable set --standard '{"k":"v"}'
|
|
42
|
+
usage: `dss variable set (--standard '{"k":"v"}'|--local '{"k":"v"}') [--replace] [--dry-run] [--project-key KEY]`,
|
|
43
43
|
description: "Set project variables via JSON merge (or full replace with --replace).",
|
|
44
44
|
examples: [
|
|
45
45
|
'dss variable set --standard \'{"env":"staging"}\' --dry-run',
|
|
@@ -97,7 +97,7 @@ export const wikiCommands = {
|
|
|
97
97
|
projectKey: f["project-key"],
|
|
98
98
|
});
|
|
99
99
|
},
|
|
100
|
-
usage: "dss wiki update <id-or-name>
|
|
100
|
+
usage: "dss wiki update <id-or-name> (--name NAME | --content TEXT|--file PATH|--data JSON|--data-file PATH|--stdin) [--dry-run] [--project-key KEY]",
|
|
101
101
|
description: "Update wiki article metadata/body via merge.",
|
|
102
102
|
examples: ["dss wiki update ARTICLE_ID --content '# Updated' --dry-run",],
|
|
103
103
|
},
|
|
@@ -22,6 +22,7 @@ export interface CommandExitCodes {
|
|
|
22
22
|
error: 2;
|
|
23
23
|
transient: 3;
|
|
24
24
|
longRunningFailure?: 4;
|
|
25
|
+
assertionFailure?: 4;
|
|
25
26
|
}
|
|
26
27
|
export type CommandFlagMetadata = {
|
|
27
28
|
name: string;
|
|
@@ -29,6 +30,7 @@ export type CommandFlagMetadata = {
|
|
|
29
30
|
valueType?: string;
|
|
30
31
|
enumValues?: string[];
|
|
31
32
|
aliases?: string[];
|
|
33
|
+
allowEmptyValue?: boolean;
|
|
32
34
|
};
|
|
33
35
|
export interface CommandStructuredExample {
|
|
34
36
|
shell: string;
|
|
@@ -78,11 +80,12 @@ export interface CommandRegistryEntry {
|
|
|
78
80
|
cleanupHint?: string;
|
|
79
81
|
agentContractVersion: number;
|
|
80
82
|
}
|
|
81
|
-
export declare const COMMANDS_USAGE = "dss commands run [--json]";
|
|
82
|
-
export declare const
|
|
83
|
+
export declare const COMMANDS_USAGE = "dss commands run [--fields PATHS] [--json]";
|
|
84
|
+
export declare const AGENT_CONTRACT_COMMAND = "dss agent contract";
|
|
85
|
+
export declare const AGENT_CONTRACT_USAGE = "dss agent contract [--fields PATHS] [--json]";
|
|
83
86
|
export declare const CLEANUP_USAGE = "dss cleanup --file PATH [--dry-run|--apply] [--continue-on-error]";
|
|
84
87
|
export declare function isAllowedCleanupAction(resource: string, action: string): boolean;
|
|
85
|
-
export declare function buildCommandSchemas(resource: string, action: string, flags: CommandFlagMetadata[],
|
|
88
|
+
export declare function buildCommandSchemas(resource: string, action: string, flags: CommandFlagMetadata[], requiredFlags: string[], requiredOneOf: CommandFlagChoice[], payloadSchema: CommandPayloadSchema | undefined, outputShape: CommandOutputShape, usage: string): CommandAgentSchemas;
|
|
86
89
|
export declare function inferRequiresProject(resource: string, _action: string, usage: string): boolean;
|
|
87
90
|
export declare function inferInputContract(usage: string): CommandInputContract;
|
|
88
91
|
export declare function supportsCleanupLedger(resource: string, action: string): boolean;
|
|
@@ -99,6 +102,12 @@ export declare function commandPlanShape(resource: string, action: string, args:
|
|
|
99
102
|
wait?: unknown;
|
|
100
103
|
};
|
|
101
104
|
export declare function buildMutationPlan(resource: string, action: string, meta: CommandMeta, args: string[], flags: Record<string, string | boolean>): Record<string, unknown>;
|
|
105
|
+
/**
|
|
106
|
+
* Batch plans may surface exit 4: any dispatched step can be a long-running
|
|
107
|
+
* lifecycle command whose remote work fails, or a synchronous assertion
|
|
108
|
+
* mismatch (`recipe assert-unchanged`). Batch itself stays async "none".
|
|
109
|
+
*/
|
|
110
|
+
export declare const BATCH_PLAN_EXIT_CODES: Record<string, number>;
|
|
102
111
|
export declare const BATCH_USAGE = "dss batch (--data JSON|--data-file PATH|--stdin) [--continue-on-error] [--dry-run]";
|
|
103
112
|
export declare const BATCH_HINT = "Pass a JSON array of argv arrays, e.g. [[\"dataset\",\"list\"],[\"recipe\",\"update\",\"r\",\"--data-file\",\"p.json\"]].";
|
|
104
113
|
export declare const BATCH_EXAMPLE_PAYLOAD: string[][];
|