dataiku-sdk 3.4.0 → 3.6.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 (131) hide show
  1. package/README.md +4 -4
  2. package/bin/dss.js +28 -2
  3. package/dist/build-metadata.json +1 -1
  4. package/dist/src/cli/coerce.d.ts +0 -1
  5. package/dist/src/cli/coerce.js +0 -5
  6. package/dist/src/cli/command-syntax.json +14524 -0
  7. package/dist/src/cli/commands/analysis.js +6 -9
  8. package/dist/src/cli/commands/api-deployer.js +15 -33
  9. package/dist/src/cli/commands/api-service.js +17 -27
  10. package/dist/src/cli/commands/app.js +25 -41
  11. package/dist/src/cli/commands/bundle.js +15 -24
  12. package/dist/src/cli/commands/business-app.js +10 -17
  13. package/dist/src/cli/commands/code-env.js +23 -36
  14. package/dist/src/cli/commands/code.js +4 -4
  15. package/dist/src/cli/commands/connection.js +12 -22
  16. package/dist/src/cli/commands/continuous-activity.js +6 -9
  17. package/dist/src/cli/commands/dashboard.js +8 -13
  18. package/dist/src/cli/commands/data-collection.js +9 -16
  19. package/dist/src/cli/commands/data-quality.js +14 -26
  20. package/dist/src/cli/commands/dataset.js +29 -54
  21. package/dist/src/cli/commands/discussion.js +7 -10
  22. package/dist/src/cli/commands/doctor.js +3 -3
  23. package/dist/src/cli/commands/flow-zone.js +8 -17
  24. package/dist/src/cli/commands/folder.js +12 -20
  25. package/dist/src/cli/commands/future.js +7 -10
  26. package/dist/src/cli/commands/group.js +7 -11
  27. package/dist/src/cli/commands/insight.js +7 -11
  28. package/dist/src/cli/commands/job.js +17 -26
  29. package/dist/src/cli/commands/knowledge-bank.js +5 -6
  30. package/dist/src/cli/commands/llm.js +5 -8
  31. package/dist/src/cli/commands/macro.js +9 -16
  32. package/dist/src/cli/commands/meaning.js +7 -11
  33. package/dist/src/cli/commands/metrics.js +7 -10
  34. package/dist/src/cli/commands/ml-task.js +12 -20
  35. package/dist/src/cli/commands/model-evaluation-store.js +7 -11
  36. package/dist/src/cli/commands/notebook.js +15 -27
  37. package/dist/src/cli/commands/plugin.js +35 -68
  38. package/dist/src/cli/commands/project-deployer.js +10 -22
  39. package/dist/src/cli/commands/project-folder.js +10 -17
  40. package/dist/src/cli/commands/project-git.js +38 -70
  41. package/dist/src/cli/commands/project-library.js +15 -23
  42. package/dist/src/cli/commands/project.js +9 -26
  43. package/dist/src/cli/commands/recipe.d.ts +16 -0
  44. package/dist/src/cli/commands/recipe.js +83 -94
  45. package/dist/src/cli/commands/saved-model.js +23 -39
  46. package/dist/src/cli/commands/scenario.js +20 -34
  47. package/dist/src/cli/commands/sql.js +4 -4
  48. package/dist/src/cli/commands/statistics.js +11 -18
  49. package/dist/src/cli/commands/streaming-endpoint.js +7 -11
  50. package/dist/src/cli/commands/user.js +11 -22
  51. package/dist/src/cli/commands/variable.js +3 -4
  52. package/dist/src/cli/commands/webapp.js +10 -16
  53. package/dist/src/cli/commands/wiki.js +9 -13
  54. package/dist/src/cli/commands/workspace.js +8 -14
  55. package/dist/src/cli/contract.d.ts +5 -15
  56. package/dist/src/cli/contract.js +157 -254
  57. package/dist/src/cli/doctor.js +1 -0
  58. package/dist/src/cli/env.d.ts +2 -0
  59. package/dist/src/cli/env.js +16 -1
  60. package/dist/src/cli/flags.d.ts +1 -0
  61. package/dist/src/cli/flags.js +4 -9
  62. package/dist/src/cli/helpers/app-permissions.js +7 -5
  63. package/dist/src/cli/helpers/flow-zone.js +8 -6
  64. package/dist/src/cli/helpers/recipe.js +2 -1
  65. package/dist/src/cli/syntax.d.ts +83 -0
  66. package/dist/src/cli/syntax.js +217 -0
  67. package/dist/src/cli/types.d.ts +3 -0
  68. package/dist/src/cli/usage.d.ts +1 -1
  69. package/dist/src/cli/usage.js +4 -2
  70. package/dist/src/cli/version.d.ts +0 -2
  71. package/dist/src/cli/version.js +6 -7
  72. package/dist/src/cli.js +132 -274
  73. package/dist/src/client.d.ts +2 -1
  74. package/dist/src/client.js +32 -17
  75. package/dist/src/errors.d.ts +12 -1
  76. package/dist/src/errors.js +28 -3
  77. package/dist/src/index.d.ts +1 -3
  78. package/dist/src/index.js +2 -2
  79. package/dist/src/resources/api-services.js +2 -3
  80. package/dist/src/resources/applications.js +2 -4
  81. package/dist/src/resources/base.d.ts +2 -0
  82. package/dist/src/resources/base.js +14 -2
  83. package/dist/src/resources/code-envs.js +3 -5
  84. package/dist/src/resources/data-quality.js +14 -13
  85. package/dist/src/resources/datasets.d.ts +13 -0
  86. package/dist/src/resources/datasets.js +5 -4
  87. package/dist/src/resources/flow-zones.js +4 -2
  88. package/dist/src/resources/folders.js +4 -2
  89. package/dist/src/resources/futures.js +1 -3
  90. package/dist/src/resources/insights.js +3 -2
  91. package/dist/src/resources/jobs.js +4 -6
  92. package/dist/src/resources/macros.d.ts +1 -1
  93. package/dist/src/resources/macros.js +3 -7
  94. package/dist/src/resources/notebooks.js +2 -3
  95. package/dist/src/resources/project-git.js +9 -11
  96. package/dist/src/resources/project-library.d.ts +0 -2
  97. package/dist/src/resources/project-library.js +2 -7
  98. package/dist/src/resources/projects.js +4 -3
  99. package/dist/src/resources/recipes.d.ts +28 -0
  100. package/dist/src/resources/recipes.js +117 -89
  101. package/dist/src/resources/saved-models.js +1 -13
  102. package/dist/src/resources/scenarios.js +1 -3
  103. package/dist/src/resources/sql.js +9 -8
  104. package/dist/src/resources/statistics.js +3 -4
  105. package/dist/src/resources/variables.js +2 -1
  106. package/dist/src/resources/webapps.js +2 -3
  107. package/dist/src/schemas.d.ts +1 -2
  108. package/dist/src/schemas.js +1 -1
  109. package/dist/src/skill.js +6 -7
  110. package/dist/src/utils/cleanup-ledger.js +9 -8
  111. package/dist/src/utils/deep-merge.js +2 -4
  112. package/dist/src/utils/flow-map.js +1 -6
  113. package/dist/src/utils/polling.d.ts +3 -0
  114. package/dist/src/utils/polling.js +3 -0
  115. package/dist/src/utils/project-archive.js +10 -14
  116. package/dist/src/utils/project-incarnation.js +3 -7
  117. package/dist/src/utils/records.d.ts +4 -0
  118. package/dist/src/utils/records.js +8 -0
  119. package/dist/src/utils/stable-hash.d.ts +3 -1
  120. package/dist/src/utils/stable-hash.js +2 -0
  121. package/package.json +10 -14
  122. package/plugin.json +1 -1
  123. package/skills/dataiku-dss/SKILL.md +3 -4
  124. package/skills/dataiku-dss/references/authentication.md +3 -3
  125. package/skills/dataiku-dss/references/coding.md +1 -1
  126. package/skills/dataiku-dss/references/discovery.md +1 -1
  127. package/skills/dataiku-dss/references/mutations.md +0 -1
  128. package/dist/src/utils/pagination.d.ts +0 -8
  129. package/dist/src/utils/pagination.js +0 -23
  130. package/packages/types/dist/index.d.ts +0 -1062
  131. package/packages/types/dist/index.js +0 -871
@@ -1,24 +1,23 @@
1
1
  import { requiredJsonInput, } from "../coerce.js";
2
2
  import { executionMode, } from "../flags.js";
3
3
  import { planResult, } from "../output.js";
4
+ import { commandUsage, withUsage, } from "../syntax.js";
4
5
  import { requireArgs, UsageError, } from "../usage.js";
5
6
  const PLAN_FAILURE_CODES = { usage: 1, error: 2, transient: 3, };
6
7
  function collectionEndpoint(dataCollectionId, suffix = "") {
7
8
  return `/public/api/data-collections/${encodeURIComponent(dataCollectionId)}${suffix}`;
8
9
  }
9
- export const dataCollectionCommands = {
10
+ export const dataCollectionCommands = withUsage("data-collection", {
10
11
  list: {
11
12
  handler: (c) => c.dataCollections.list(),
12
- usage: "dss data-collection list",
13
13
  description: "List data collections on which the API key has READ privilege.",
14
14
  examples: ["dss data-collection list",],
15
15
  },
16
16
  get: {
17
17
  handler: (c, a) => {
18
- requireArgs(a, 1, "dss data-collection get <dataCollectionId>");
18
+ requireArgs(a, 1, commandUsage("data-collection", "get"));
19
19
  return c.dataCollections.get(a[0]);
20
20
  },
21
- usage: "dss data-collection get <dataCollectionId>",
22
21
  description: "Get collection settings. Permissions are omitted for non-admins.",
23
22
  examples: ["dss data-collection get OjVsTQ3O",],
24
23
  },
@@ -38,7 +37,6 @@ export const dataCollectionCommands = {
38
37
  }
39
38
  return c.dataCollections.create(body);
40
39
  },
41
- usage: "dss data-collection create (--data JSON|--data-file PATH|--stdin) [--dry-run]",
42
40
  description: "Create a collection (creator becomes admin; requires mayCreateDataCollections).",
43
41
  examples: [
44
42
  'dss data-collection create --data \'{"displayName":"My Collection"}\'',
@@ -46,7 +44,7 @@ export const dataCollectionCommands = {
46
44
  },
47
45
  "settings-set": {
48
46
  handler: async (c, a, f) => {
49
- requireArgs(a, 1, "dss data-collection settings-set <dataCollectionId> (--data JSON|--data-file PATH|--stdin) [--dry-run]");
47
+ requireArgs(a, 1, commandUsage("data-collection", "settings-set"));
50
48
  const settings = requiredJsonInput(f, "--data, --data-file, or --stdin is required (collection settings).");
51
49
  if (executionMode(f).dryRun) {
52
50
  return planResult("data-collection", "settings-set", {
@@ -63,7 +61,6 @@ export const dataCollectionCommands = {
63
61
  const updated = await c.dataCollections.update(a[0], settings);
64
62
  return { updated: a[0], resource: "data-collection", ...updated, };
65
63
  },
66
- usage: "dss data-collection settings-set <dataCollectionId> (--data JSON|--data-file PATH|--stdin) [--dry-run]",
67
64
  description: "Update collection settings; only send settings obtained through get. Admin required.",
68
65
  examples: [
69
66
  "dss data-collection settings-set OjVsTQ3O --data-file settings.json",
@@ -71,7 +68,7 @@ export const dataCollectionCommands = {
71
68
  },
72
69
  delete: {
73
70
  validate: (a) => {
74
- const usage = "dss data-collection delete <dataCollectionId> [--dry-run]";
71
+ const usage = commandUsage("data-collection", "delete");
75
72
  requireArgs(a, 1, usage);
76
73
  if (a[0].trim().length === 0) {
77
74
  throw new UsageError(`<dataCollectionId> must be a non-empty identifier. Usage: ${usage}`);
@@ -92,16 +89,14 @@ export const dataCollectionCommands = {
92
89
  await c.dataCollections.delete(a[0]);
93
90
  return { deleted: a[0], resource: "data-collection", };
94
91
  },
95
- usage: "dss data-collection delete <dataCollectionId> [--dry-run]",
96
92
  description: "Permanently delete a collection. Admin required.",
97
93
  examples: ["dss data-collection delete OjVsTQ3O --dry-run",],
98
94
  },
99
95
  "list-objects": {
100
96
  handler: (c, a) => {
101
- requireArgs(a, 1, "dss data-collection list-objects <dataCollectionId>");
97
+ requireArgs(a, 1, commandUsage("data-collection", "list-objects"));
102
98
  return c.dataCollections.listObjects(a[0]);
103
99
  },
104
- usage: "dss data-collection list-objects <dataCollectionId>",
105
100
  description: "List the objects in a collection.",
106
101
  examples: ["dss data-collection list-objects OjVsTQ3O",],
107
102
  },
@@ -111,7 +106,7 @@ export const dataCollectionCommands = {
111
106
  const collectionId = a[0]
112
107
  ?? (typeof object.dataCollectionId === "string" ? object.dataCollectionId : undefined);
113
108
  if (!collectionId) {
114
- throw new UsageError("Usage: dss data-collection add-object <dataCollectionId> (--data JSON|--data-file PATH|--stdin)");
109
+ throw new UsageError(`Usage: ${commandUsage("data-collection", "add-object")}`);
115
110
  }
116
111
  const reference = { ...object, };
117
112
  delete reference.dataCollectionId;
@@ -130,7 +125,6 @@ export const dataCollectionCommands = {
130
125
  await c.dataCollections.addObject(collectionId, reference);
131
126
  return { added: reference.id, dataCollectionId: collectionId, resource: "data-collection", };
132
127
  },
133
- usage: "dss data-collection add-object <dataCollectionId> (--data JSON|--data-file PATH|--stdin) [--dry-run]",
134
128
  description: "Add an object (e.g. {type:'DATASET',projectKey:'K',id:'name'}) to a collection. Contributor required.",
135
129
  examples: [
136
130
  'dss data-collection add-object OjVsTQ3O --data \'{"type":"DATASET","projectKey":"MYPROJECT","id":"orders"}\'',
@@ -138,7 +132,7 @@ export const dataCollectionCommands = {
138
132
  },
139
133
  "remove-dataset": {
140
134
  handler: async (c, a, f) => {
141
- requireArgs(a, 3, "dss data-collection remove-dataset <dataCollectionId> <projectKey> <datasetName> [--dry-run]");
135
+ requireArgs(a, 3, commandUsage("data-collection", "remove-dataset"));
142
136
  if (executionMode(f).dryRun) {
143
137
  return planResult("data-collection", "remove-dataset", {
144
138
  asyncKind: "none",
@@ -157,8 +151,7 @@ export const dataCollectionCommands = {
157
151
  await c.dataCollections.removeDataset(a[0], a[1], a[2]);
158
152
  return { removed: a[2], projectKey: a[1], dataCollectionId: a[0], resource: "data-collection", };
159
153
  },
160
- usage: "dss data-collection remove-dataset <dataCollectionId> <projectKey> <datasetName> [--dry-run]",
161
154
  description: "Remove a dataset from a collection. Contributor required.",
162
155
  examples: ["dss data-collection remove-dataset OjVsTQ3O MYPROJECT DATASET1",],
163
156
  },
164
- };
157
+ });
@@ -2,6 +2,7 @@ import { deepMerge, } from "../../utils/deep-merge.js";
2
2
  import { num, parseBooleanOption, requiredJsonInput, } from "../coerce.js";
3
3
  import { executionMode, } from "../flags.js";
4
4
  import { encodedProjectEndpoint, readIfExists, skipResult, } from "../output.js";
5
+ import { commandUsage, withUsage, } from "../syntax.js";
5
6
  import { requireArgs, UsageError, } from "../usage.js";
6
7
  /**
7
8
  * A data quality result counts as passing only when it actually carries a
@@ -15,37 +16,34 @@ function resultReportsOk(result) {
15
16
  .map((value) => value.trim().toUpperCase());
16
17
  return verdicts.length > 0 && verdicts.every((value) => value === "OK");
17
18
  }
18
- export const dataQualityCommands = {
19
+ export const dataQualityCommands = withUsage("data-quality", {
19
20
  rules: {
20
21
  handler: (c, a, f) => {
21
- requireArgs(a, 1, "dss data-quality rules <dataset>");
22
+ requireArgs(a, 1, commandUsage("data-quality", "rules"));
22
23
  return c.dataQuality.listRules(a[0], f["project-key"]);
23
24
  },
24
- usage: "dss data-quality rules <dataset> [--project-key KEY]",
25
25
  description: "List data quality rules for a dataset.",
26
26
  examples: ["dss data-quality rules orders",],
27
27
  },
28
28
  "get-rule": {
29
29
  handler: (c, a, f) => {
30
- requireArgs(a, 2, "dss data-quality get-rule <dataset> <rule-id>");
30
+ requireArgs(a, 2, commandUsage("data-quality", "get-rule"));
31
31
  return c.dataQuality.getRule(a[0], a[1], f["project-key"]);
32
32
  },
33
- usage: "dss data-quality get-rule <dataset> <rule-id> [--project-key KEY]",
34
33
  description: "Get one data quality rule by id.",
35
34
  examples: ["dss data-quality get-rule orders RULE_ID",],
36
35
  },
37
36
  status: {
38
37
  handler: (c, a, f) => {
39
- requireArgs(a, 1, "dss data-quality status <dataset>");
38
+ requireArgs(a, 1, commandUsage("data-quality", "status"));
40
39
  return c.dataQuality.status(a[0], f["project-key"]);
41
40
  },
42
- usage: "dss data-quality status <dataset> [--project-key KEY]",
43
41
  description: "Get the aggregate data quality status for a dataset.",
44
42
  examples: ["dss data-quality status orders",],
45
43
  },
46
44
  "create-rule": {
47
45
  handler: async (c, a, f) => {
48
- requireArgs(a, 1, "dss data-quality create-rule <dataset> --data JSON");
46
+ requireArgs(a, 1, commandUsage("data-quality", "create-rule"));
49
47
  const config = requiredJsonInput(f, "--data, --data-file, or --stdin is required.");
50
48
  const pk = f["project-key"];
51
49
  const identity = typeof config.id === "string"
@@ -88,7 +86,6 @@ export const dataQualityCommands = {
88
86
  ...created,
89
87
  };
90
88
  },
91
- usage: "dss data-quality create-rule <dataset> (--data JSON|--data-file PATH|--stdin) [--if-not-exists] [--dry-run] [--project-key KEY]",
92
89
  description: "Create a data quality rule from raw rule config.",
93
90
  examples: [
94
91
  'dss data-quality create-rule orders --data \'{"type":"RecordCountInRangeRule","softMinimum":1,"softMinimumEnabled":true,"displayName":"Has rows"}\' --dry-run',
@@ -96,7 +93,7 @@ export const dataQualityCommands = {
96
93
  },
97
94
  "update-rule": {
98
95
  handler: async (c, a, f) => {
99
- requireArgs(a, 2, "dss data-quality update-rule <dataset> <rule-id> --data JSON");
96
+ requireArgs(a, 2, commandUsage("data-quality", "update-rule"));
100
97
  const data = requiredJsonInput(f, "--data, --data-file, or --stdin is required.");
101
98
  if (executionMode(f).dryRun) {
102
99
  const current = await c.dataQuality.getRule(a[0], a[1], f["project-key"]);
@@ -116,7 +113,6 @@ export const dataQualityCommands = {
116
113
  projectKey: f["project-key"],
117
114
  });
118
115
  },
119
- usage: "dss data-quality update-rule <dataset> <rule-id> (--data JSON|--data-file PATH|--stdin) [--dry-run] [--project-key KEY]",
120
116
  description: "Update a data quality rule via GET-before-PUT merge.",
121
117
  examples: [
122
118
  "dss data-quality update-rule orders RULE_ID --data '{\"enabled\":false}' --dry-run",
@@ -124,7 +120,7 @@ export const dataQualityCommands = {
124
120
  },
125
121
  "delete-rule": {
126
122
  handler: async (c, a, f) => {
127
- requireArgs(a, 2, "dss data-quality delete-rule <dataset> <rule-id>");
123
+ requireArgs(a, 2, commandUsage("data-quality", "delete-rule"));
128
124
  const pk = f["project-key"];
129
125
  if (executionMode(f).dryRun || f["if-exists"] === true) {
130
126
  const current = await readIfExists(() => c.dataQuality.getRule(a[0], a[1], pk));
@@ -144,38 +140,35 @@ export const dataQualityCommands = {
144
140
  await c.dataQuality.deleteRule(a[0], a[1], pk);
145
141
  return { deleted: a[1], dataset: a[0], resource: "data-quality", };
146
142
  },
147
- usage: "dss data-quality delete-rule <dataset> <rule-id> [--if-exists] [--dry-run] [--project-key KEY]",
148
143
  description: "Delete a data quality rule.",
149
144
  examples: ["dss data-quality delete-rule orders RULE_ID --dry-run",],
150
145
  },
151
146
  "status-by-partition": {
152
147
  handler: (c, a, f) => {
153
- requireArgs(a, 1, "dss data-quality status-by-partition <dataset>");
148
+ requireArgs(a, 1, commandUsage("data-quality", "status-by-partition"));
154
149
  return c.dataQuality.statusByPartition(a[0], {
155
150
  includeAllPartitions: f["include-all-partitions"] === true,
156
151
  projectKey: f["project-key"],
157
152
  });
158
153
  },
159
- usage: "dss data-quality status-by-partition <dataset> [--include-all-partitions] [--project-key KEY]",
160
154
  description: "Get data quality status by dataset partition.",
161
155
  examples: ["dss data-quality status-by-partition orders --include-all-partitions",],
162
156
  },
163
157
  "last-results": {
164
158
  handler: (c, a, f) => {
165
- requireArgs(a, 1, "dss data-quality last-results <dataset>");
159
+ requireArgs(a, 1, commandUsage("data-quality", "last-results"));
166
160
  return c.dataQuality.lastResults(a[0], {
167
161
  partition: f["partition"],
168
162
  ruleId: f["rule-id"],
169
163
  projectKey: f["project-key"],
170
164
  });
171
165
  },
172
- usage: "dss data-quality last-results <dataset> [--partition P] [--rule-id ID] [--project-key KEY]",
173
166
  description: "Get latest data quality rule results for a dataset.",
174
167
  examples: ["dss data-quality last-results orders",],
175
168
  },
176
169
  "assert-results": {
177
170
  handler: async (c, a, f) => {
178
- requireArgs(a, 1, "dss data-quality assert-results <dataset>");
171
+ requireArgs(a, 1, commandUsage("data-quality", "assert-results"));
179
172
  const ruleId = f["rule-id"];
180
173
  const pk = f["project-key"];
181
174
  const results = await c.dataQuality.lastResults(a[0], { ruleId, projectKey: pk, });
@@ -196,7 +189,6 @@ export const dataQualityCommands = {
196
189
  ...(selected.length === 0 ? { reason: "no_results", } : {}),
197
190
  };
198
191
  },
199
- usage: "dss data-quality assert-results <dataset> [--rule-id ID] [--project-key KEY]",
200
192
  description: "Assert the latest data quality results: at least one selected rule must exist and every selected result must report OK. Returns { satisfied, checked, failed } with failed rule ids/outcomes only; a failed assertion exits 4 with assertion_failed.",
201
193
  examples: [
202
194
  "dss data-quality assert-results orders",
@@ -205,7 +197,7 @@ export const dataQualityCommands = {
205
197
  },
206
198
  history: {
207
199
  handler: (c, a, f) => {
208
- requireArgs(a, 1, "dss data-quality history <dataset>");
200
+ requireArgs(a, 1, commandUsage("data-quality", "history"));
209
201
  return c.dataQuality.history(a[0], {
210
202
  minTimestamp: num(f["min-timestamp"], "--min-timestamp"),
211
203
  maxTimestamp: num(f["max-timestamp"], "--max-timestamp"),
@@ -215,7 +207,6 @@ export const dataQualityCommands = {
215
207
  projectKey: f["project-key"],
216
208
  });
217
209
  },
218
- usage: "dss data-quality history <dataset> [--rule-id ID] [--min-timestamp MS] [--max-timestamp MS] [--results-per-page N] [--page N] [--project-key KEY]",
219
210
  description: "Get data quality rule execution history.",
220
211
  examples: ["dss data-quality history orders --results-per-page 100",],
221
212
  },
@@ -224,7 +215,6 @@ export const dataQualityCommands = {
224
215
  onlyMonitored: parseBooleanOption(f["only-monitored"], "--only-monitored"),
225
216
  projectKey: f["project-key"],
226
217
  }),
227
- usage: "dss data-quality project-status [--only-monitored true|false] [--project-key KEY]",
228
218
  description: "Get project-level data quality status by dataset.",
229
219
  examples: ["dss data-quality project-status --only-monitored false",],
230
220
  },
@@ -234,13 +224,12 @@ export const dataQualityCommands = {
234
224
  maxTimestamp: num(f["max-timestamp"], "--max-timestamp"),
235
225
  projectKey: f["project-key"],
236
226
  }),
237
- usage: "dss data-quality project-timeline [--min-timestamp MS] [--max-timestamp MS] [--project-key KEY]",
238
227
  description: "Get project-level data quality timeline aggregates.",
239
228
  examples: ["dss data-quality project-timeline --min-timestamp 1714521600000",],
240
229
  },
241
230
  compute: {
242
231
  handler: async (c, a, f) => {
243
- requireArgs(a, 1, "dss data-quality compute <dataset>");
232
+ requireArgs(a, 1, commandUsage("data-quality", "compute"));
244
233
  const pk = f["project-key"];
245
234
  const options = {
246
235
  partition: f["partition"],
@@ -268,11 +257,10 @@ export const dataQualityCommands = {
268
257
  return c.dataQuality.computeRulesAndWait(a[0], options);
269
258
  return c.dataQuality.computeRules(a[0], options);
270
259
  },
271
- usage: "dss data-quality compute <dataset> [--partition P] [--rule-id ID] [--wait] [--timeout MS] [--poll-interval MS] [--dry-run] [--project-key KEY]",
272
260
  description: "Start data quality rule computation, optionally waiting on the returned DSS future.",
273
261
  examples: [
274
262
  "dss data-quality compute orders --dry-run",
275
263
  "dss data-quality compute orders --wait",
276
264
  ],
277
265
  },
278
- };
266
+ });