dataiku-sdk 3.6.1 → 3.8.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.
Files changed (139) hide show
  1. package/README.md +14 -6
  2. package/bin/bun-version.js +14 -0
  3. package/bin/dss.js +11 -15
  4. package/dist/build-metadata.json +1 -1
  5. package/dist/packages/types/src/index.d.ts +114 -5
  6. package/dist/packages/types/src/index.js +75 -2
  7. package/dist/src/cli/coerce.d.ts +2 -0
  8. package/dist/src/cli/coerce.js +20 -16
  9. package/dist/src/cli/command-syntax.json +3369 -144
  10. package/dist/src/cli/commands/analysis.js +19 -1
  11. package/dist/src/cli/commands/bundle.js +22 -0
  12. package/dist/src/cli/commands/connection.js +26 -2
  13. package/dist/src/cli/commands/data-quality.js +33 -1
  14. package/dist/src/cli/commands/dataset.js +76 -9
  15. package/dist/src/cli/commands/discussion.js +15 -0
  16. package/dist/src/cli/commands/doctor.js +1 -1
  17. package/dist/src/cli/commands/flow-zone.js +241 -46
  18. package/dist/src/cli/commands/flow.d.ts +5 -0
  19. package/dist/src/cli/commands/flow.js +57 -0
  20. package/dist/src/cli/commands/future.js +8 -0
  21. package/dist/src/cli/commands/index.js +6 -0
  22. package/dist/src/cli/commands/job.js +44 -6
  23. package/dist/src/cli/commands/metrics.js +21 -1
  24. package/dist/src/cli/commands/ml-task.d.ts +5 -0
  25. package/dist/src/cli/commands/ml-task.js +86 -16
  26. package/dist/src/cli/commands/mlflow.d.ts +11 -0
  27. package/dist/src/cli/commands/mlflow.js +121 -0
  28. package/dist/src/cli/commands/plugin.js +5 -11
  29. package/dist/src/cli/commands/project-deployer.js +70 -0
  30. package/dist/src/cli/commands/project-library.js +2 -5
  31. package/dist/src/cli/commands/project.js +8 -0
  32. package/dist/src/cli/commands/recipe.d.ts +13 -0
  33. package/dist/src/cli/commands/recipe.js +130 -7
  34. package/dist/src/cli/commands/saved-model.d.ts +1 -1
  35. package/dist/src/cli/commands/saved-model.js +9 -76
  36. package/dist/src/cli/commands/streaming-endpoint.js +30 -1
  37. package/dist/src/cli/commands/webapp.js +8 -0
  38. package/dist/src/cli/commands/wiki.js +78 -0
  39. package/dist/src/cli/commands/workspace.js +8 -0
  40. package/dist/src/cli/contract.d.ts +16 -15
  41. package/dist/src/cli/contract.js +150 -3407
  42. package/dist/src/cli/doctor.d.ts +13 -0
  43. package/dist/src/cli/doctor.js +43 -1
  44. package/dist/src/cli/flags.d.ts +14 -1
  45. package/dist/src/cli/flags.js +106 -8
  46. package/dist/src/cli/helpers/app-successor.js +1 -2
  47. package/dist/src/cli/helpers/dataset.d.ts +12 -0
  48. package/dist/src/cli/helpers/dataset.js +36 -0
  49. package/dist/src/cli/helpers/documentation.d.ts +21 -0
  50. package/dist/src/cli/helpers/documentation.js +53 -0
  51. package/dist/src/cli/helpers/flow-zone.d.ts +21 -0
  52. package/dist/src/cli/helpers/flow-zone.js +144 -4
  53. package/dist/src/cli/helpers/trained-model.d.ts +26 -0
  54. package/dist/src/cli/helpers/trained-model.js +144 -0
  55. package/dist/src/cli/list-output.d.ts +7 -0
  56. package/dist/src/cli/list-output.js +77 -0
  57. package/dist/src/cli/list-shapes.d.ts +21 -0
  58. package/dist/src/cli/list-shapes.js +111 -0
  59. package/dist/src/cli/output-schemas.d.ts +0 -14
  60. package/dist/src/cli/output-schemas.js +4 -7
  61. package/dist/src/cli/output.d.ts +0 -1
  62. package/dist/src/cli/output.js +33 -19
  63. package/dist/src/cli/plans.d.ts +14 -0
  64. package/dist/src/cli/plans.js +3740 -0
  65. package/dist/src/cli/types.d.ts +2 -0
  66. package/dist/src/cli/usage.d.ts +7 -0
  67. package/dist/src/cli/usage.js +20 -1
  68. package/dist/src/cli/version.d.ts +2 -2
  69. package/dist/src/cli/version.js +2 -2
  70. package/dist/src/cli.js +137 -115
  71. package/dist/src/client.d.ts +52 -43
  72. package/dist/src/client.js +267 -96
  73. package/dist/src/errors.d.ts +22 -2
  74. package/dist/src/errors.js +49 -50
  75. package/dist/src/generated/action-output-schemas.json +345 -89
  76. package/dist/src/index.d.ts +5 -1
  77. package/dist/src/index.js +3 -0
  78. package/dist/src/resources/analyses.d.ts +8 -0
  79. package/dist/src/resources/analyses.js +13 -1
  80. package/dist/src/resources/bundles.d.ts +34 -0
  81. package/dist/src/resources/bundles.js +67 -0
  82. package/dist/src/resources/connections.d.ts +9 -0
  83. package/dist/src/resources/connections.js +15 -0
  84. package/dist/src/resources/data-quality.d.ts +20 -0
  85. package/dist/src/resources/data-quality.js +30 -0
  86. package/dist/src/resources/dataset-create.d.ts +38 -0
  87. package/dist/src/resources/dataset-create.js +135 -0
  88. package/dist/src/resources/datasets.d.ts +46 -15
  89. package/dist/src/resources/datasets.js +120 -112
  90. package/dist/src/resources/discussions.d.ts +5 -0
  91. package/dist/src/resources/discussions.js +7 -0
  92. package/dist/src/resources/documentation.d.ts +25 -0
  93. package/dist/src/resources/documentation.js +16 -0
  94. package/dist/src/resources/flow-zones.d.ts +29 -3
  95. package/dist/src/resources/flow-zones.js +53 -3
  96. package/dist/src/resources/flow.d.ts +48 -0
  97. package/dist/src/resources/flow.js +65 -0
  98. package/dist/src/resources/futures.d.ts +23 -0
  99. package/dist/src/resources/futures.js +32 -0
  100. package/dist/src/resources/jobs.d.ts +34 -0
  101. package/dist/src/resources/jobs.js +170 -3
  102. package/dist/src/resources/metrics.d.ts +10 -0
  103. package/dist/src/resources/metrics.js +10 -0
  104. package/dist/src/resources/ml-tasks.d.ts +65 -2
  105. package/dist/src/resources/ml-tasks.js +102 -28
  106. package/dist/src/resources/mlflow-extension.d.ts +73 -0
  107. package/dist/src/resources/mlflow-extension.js +105 -0
  108. package/dist/src/resources/projects.d.ts +15 -0
  109. package/dist/src/resources/projects.js +18 -3
  110. package/dist/src/resources/recipe-create.d.ts +79 -0
  111. package/dist/src/resources/recipe-create.js +454 -0
  112. package/dist/src/resources/recipes.d.ts +28 -29
  113. package/dist/src/resources/recipes.js +201 -267
  114. package/dist/src/resources/saved-models.d.ts +10 -6
  115. package/dist/src/resources/saved-models.js +16 -14
  116. package/dist/src/resources/scenarios.js +8 -14
  117. package/dist/src/resources/sql.js +52 -13
  118. package/dist/src/resources/streaming-endpoints.d.ts +12 -0
  119. package/dist/src/resources/streaming-endpoints.js +15 -0
  120. package/dist/src/resources/trained-model.d.ts +60 -0
  121. package/dist/src/resources/trained-model.js +98 -0
  122. package/dist/src/resources/webapps.d.ts +8 -0
  123. package/dist/src/resources/webapps.js +10 -0
  124. package/dist/src/resources/wiki.d.ts +52 -1
  125. package/dist/src/resources/wiki.js +96 -0
  126. package/dist/src/resources/workspaces.d.ts +2 -0
  127. package/dist/src/resources/workspaces.js +4 -0
  128. package/dist/src/utils/flow-analysis.js +4 -0
  129. package/dist/src/utils/response-file.js +20 -9
  130. package/dist/src/utils/secret-sanitize.d.ts +7 -0
  131. package/dist/src/utils/secret-sanitize.js +46 -0
  132. package/package.json +25 -26
  133. package/plugin.json +1 -1
  134. package/skills/dataiku-dss/SKILL.md +1 -1
  135. package/skills/dataiku-dss/references/authentication.md +3 -1
  136. package/skills/dataiku-dss/references/coding.md +1 -0
  137. package/skills/dataiku-dss/references/discovery.md +4 -6
  138. package/skills/dataiku-dss/references/flow-maps.md +2 -2
  139. package/skills/dataiku-dss/references/troubleshooting.md +3 -2
@@ -34,6 +34,29 @@ function resolveFieldPath(source, field) {
34
34
  }
35
35
  return { found: true, value: current ?? null, };
36
36
  }
37
+ /**
38
+ * Keys available at the deepest parent object a dotted field actually reaches.
39
+ * A miss like `recipe.params` is ambiguous — the path may be unsupported or the
40
+ * key may merely be absent — so listing sibling keys under the resolved parent
41
+ * (`recipe.type`, `recipe.name`, ...) shows nested paths work and points at
42
+ * real alternatives; a plain top-level miss keeps listing top-level keys.
43
+ */
44
+ function availableFieldsFor(records, field) {
45
+ const segments = field.split(".");
46
+ const parentPath = segments.slice(0, -1).join(".");
47
+ const keys = new Set();
48
+ for (const record of records) {
49
+ const parent = parentPath === ""
50
+ ? record
51
+ : resolveFieldPath(record, parentPath).value;
52
+ if (parent === null || typeof parent !== "object" || Array.isArray(parent))
53
+ continue;
54
+ for (const key of Object.keys(parent)) {
55
+ keys.add(parentPath === "" ? key : `${parentPath}.${key}`);
56
+ }
57
+ }
58
+ return [...keys,].sort();
59
+ }
37
60
  export function pickResultFields(item, fields) {
38
61
  if (!item || typeof item !== "object" || Array.isArray(item))
39
62
  return item;
@@ -54,8 +77,9 @@ function warnUnknownProjectionFields(result, fields, availableFieldNames) {
54
77
  const unknownFields = fields.filter((field) => !records.some((record) => resolveFieldPath(record, field).found));
55
78
  if (unknownFields.length === 0)
56
79
  return;
57
- const availableFields = availableFieldNames?.()
58
- ?? [...new Set(records.flatMap((record) => Object.keys(record))),].sort();
80
+ const explicitNames = availableFieldNames?.();
81
+ const availableFields = explicitNames
82
+ ?? [...new Set(unknownFields.flatMap((field) => availableFieldsFor(records, field))),].sort();
59
83
  enqueueCliWarning({
60
84
  code: "field_projection_missing",
61
85
  fields: unknownFields,
@@ -81,25 +105,9 @@ export function writeCommandResult(result) {
81
105
  flushCliWarnings();
82
106
  process.stdout.write(`${JSON.stringify(projected ?? { ok: true, })}\n`);
83
107
  }
84
- export function transientBodyWithTargetContext(body, target, elapsedMs) {
85
- try {
86
- const parsed = JSON.parse(body);
87
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
88
- const record = parsed;
89
- const message = typeof record.message === "string" && record.message.length > 0
90
- ? `Target: ${target}\nElapsed: ${elapsedMs}ms\n${record.message}`
91
- : `Target: ${target}\nElapsed: ${elapsedMs}ms`;
92
- return JSON.stringify({ ...record, message, target, elapsedMs, });
93
- }
94
- }
95
- catch {
96
- // Non-JSON DSS bodies are wrapped as text below.
97
- }
98
- return `Target: ${target}\nElapsed: ${elapsedMs}ms\n${body}`;
99
- }
100
108
  export function addTransientTargetContext(error, target, elapsedMs) {
101
109
  if (error instanceof DataikuError && error.category === "transient") {
102
- throw new DataikuError(error.status, error.statusText, transientBodyWithTargetContext(error.body, target, elapsedMs), error.retry, error.requestId, { target, elapsedMs, bodyTruncated: error.bodyTruncated, });
110
+ throw new DataikuError(error.status, error.statusText, error.body, error.retry, error.requestId, { target, elapsedMs, bodyTruncated: error.bodyTruncated, });
103
111
  }
104
112
  throw error;
105
113
  }
@@ -179,6 +187,12 @@ export class CommandResultFailure extends Error {
179
187
  export function commandFailureMessage(result) {
180
188
  if (isFailedWaitResult(result)) {
181
189
  const record = result;
190
+ const failure = record.failure;
191
+ if (failure !== null && typeof failure === "object" && !Array.isArray(failure)) {
192
+ const message = failure.message;
193
+ if (typeof message === "string" && message.length > 0)
194
+ return message;
195
+ }
182
196
  const state = typeof record.state === "string"
183
197
  ? record.state
184
198
  : typeof record.outcome === "string"
@@ -0,0 +1,14 @@
1
+ import { type CommandRegistryEntry } from "./contract.js";
2
+ import type { CommandMeta } from "./types.js";
3
+ export declare function commandPlanShape(resource: string, action: string, args: string[], flags: Record<string, string | boolean>, entry: CommandRegistryEntry, projectKey: string | undefined): {
4
+ endpoint?: string;
5
+ exact?: boolean;
6
+ identifiers?: Record<string, unknown>;
7
+ method?: string;
8
+ payload?: unknown;
9
+ localWrites?: unknown;
10
+ reason?: string;
11
+ wait?: unknown;
12
+ requests?: unknown;
13
+ };
14
+ export declare function buildMutationPlan(resource: string, action: string, meta: CommandMeta, args: string[], flags: Record<string, string | boolean>): Record<string, unknown>;