dataiku-sdk 1.1.0 → 3.0.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.
@@ -5,16 +5,16 @@ description: >-
5
5
  datasets, recipes, jobs, scenarios, folders, notebooks, SQL, variables,
6
6
  code envs, and connections. Discover scoped command metadata with
7
7
  dss commands run --fields RESOURCE.ACTION.
8
- license: MIT
8
+ license: LicenseRef-Dataiku-SDK-Limited-Use-1.0
9
9
  compatibility: >-
10
- Requires the dss CLI, network access to a Dataiku DSS instance, and configured
11
- DATAIKU_URL and DATAIKU_API_KEY credentials. Source-checkout fallback requires Bun.
10
+ Requires the dss CLI, network access to a Dataiku DSS instance, configured
11
+ DATAIKU_URL and DATAIKU_API_KEY credentials, and Bun >= 1.4.0.
12
12
  ---
13
13
 
14
14
  # Dataiku DSS agent CLI
15
15
 
16
16
  Use `dss` when an agent needs to inspect or change Dataiku DSS resources: projects, datasets, recipes, jobs, scenarios, folders, notebooks, SQL, variables, code envs, and connections.
17
- If the installed `dss` binary is unavailable but the repository checkout is the current workspace, prefer `bun --no-env-file src/cli.ts ...` or `bun --no-env-file ./bin/dss.js ...`. Node users can invoke the same cross-runtime launcher as `node ./bin/dss.js ...`; when `dist/` has not been built, it delegates to Bun. From another working directory, pass the checkout's absolute `bin/dss.js` path to Bun or Node.
17
+ If the installed `dss` binary is unavailable but the repository checkout is the current workspace, prefer `bun --no-env-file src/cli.ts ...` or the packaged launcher `bun --no-env-file ./bin/dss.js ...`. From another working directory, pass the checkout's absolute `bin/dss.js` path to Bun.
18
18
  `--no-env-file` disables Bun's automatic preloading only; the CLI still applies its documented `.env` handling unless `DATAIKU_DISABLE_ENV=1` is set.
19
19
 
20
20
  ## Contract
@@ -126,7 +126,8 @@ recipient-sharing, or UI-click operations that the public DSS API does not expos
126
126
  dss app validate-manifest --project-key APP_TEMPLATE
127
127
  dss app compare-manifest APP_ID --project-key RELEASE_INSTANCE
128
128
  dss app manifest-version --project-key APP_TEMPLATE
129
- dss app set-manifest-version --manifest-version 1.4.0 --project-key APP_TEMPLATE
129
+ dss app successor-preflight APP_ID --from RELEASE_INSTANCE --to RELEASE_INSTANCE_V2 --copy-permissions
130
+ dss app set-manifest-version --manifest-version 1.4.0 --expect-hash PREFLIGHT_TEMPLATE_MANIFEST_HASH --project-key APP_TEMPLATE
130
131
  # targetProjectKey in instance.json must be confirmed absent
131
132
  dss app create-instance APP_ID --data-file instance.json --wait --record-cleanup cleanup.jsonl
132
133
  dss app create-successor-instance APP_ID --from RELEASE_INSTANCE --to RELEASE_INSTANCE_V2 --copy-permissions --record-cleanup cleanup.jsonl
@@ -137,39 +138,30 @@ dss app permissions-diff --project-key RELEASE_INSTANCE --file permissions.json
137
138
  dss app permissions-restore --project-key RELEASE_INSTANCE --file permissions.json --dry-run
138
139
  ```
139
140
 
140
- An invalid manifest exits non-zero with the validation result in the structured error details.
141
- Review the cleanup preview before `dss cleanup --file cleanup.jsonl --apply`. Every new entry is
142
- bound to the canonical DSS URL. App cleanup records a `creationTag` hash observed after the DSS
143
- future identifies its target key; unconfirmed creation stops unresolved. The future target and
144
- later `creationTag` are independent, non-atomic observations because the public API exposes
145
- neither an immutable project ID joined to the future nor a conditional DELETE. Cleanup rechecks
146
- type and `creationTag` immediately before deletion, rejecting detected key reuse but unable to
147
- eliminate replacement in the remaining check-to-DELETE gap. Apply validates the full ledger before
148
- any request and rejects legacy, mixed-server, mismatched-server, or unbound app cleanup entries.
149
- The successor's cleanup ledger entry targets only the new project key;
150
- the predecessor is never targeted. Some DSS deployments return 403 for an unknown target project:
151
- instance creation requires confirmed target absence before POST, so an inaccessible target absent
152
- from the visible project list is still rejected as unconfirmed rather than risking cleanup against
153
- a pre-existing project. A definitive create rejection never produces a cleanup entry.
141
+ Run `successor-preflight` before changing the template version. It validates the template,
142
+ predecessor, target, and optional ACL snapshot, performs no mutation, and returns the template
143
+ manifest hash for the next `set-manifest-version --expect-hash` guard.
144
+
145
+ A masked `403` absent from both visible lists is rejected as
146
+ `target_absence_unverifiable` / `permission_or_environment`; lists prove collisions, not absence.
147
+ DSS exposes no permission-independent public key-availability endpoint or guaranteed
148
+ non-overwriting duplicate-key rejection, so no force or server-atomic bypass is supported. Use
149
+ global project visibility. A definitive rejection writes no cleanup entry. An ambiguous POST
150
+ without a returned future ID or verified incarnation is `INDETERMINATE` and also produces no cleanup
151
+ entry. Future-addressable cleanup waits for target identity and `creationTag`; the predecessor is
152
+ never targeted. Ledgers bind the canonical DSS URL, project key, and concrete project incarnation,
153
+ and reject legacy, mixed-server, mismatched-server, or unbound app cleanup entries. Static plans
154
+ expose `preflightExecuted:false` and `preflightWillRunDuringApply:true`.
154
155
 
155
156
  `app set-manifest-version` reports
156
- `concurrencyControl:"client-side-non-atomic-stale-read-check"`. `--expect-hash SHA256` refuses the
157
- write when the manifest already changed, but the PUT itself stays unconditional: this command can
158
- overwrite a writer that commits inside the read-then-write window, and the post-write read cannot
159
- detect that lost update when this command's payload wins. Never treat the hash as a serializing lock.
160
- An ambiguous manifest PUT or verification read exits non-zero with `persisted:null`,
161
- `after:null`, and `outcome:"indeterminate"`; it never claims success or rejection.
162
-
163
- The API key authenticates public REST only. `app verify-instance` reports `apiReady:true`,
164
- `status:"API_VERIFIED_UI_PENDING"`, and `uiPublicationVerified:false`. Its `visual-ui` gate
165
- requires a pre-authenticated SSO browser session or dedicated UI test identity and evidence from
166
- exercising the affected tiles, forms, and actions; the CLI never marks that external gate complete.
167
- Permission snapshots have an integrity hash bound to the canonical DSS URL, project key, and
168
- observed concrete project incarnation from `creationTag`; diff and restore reject detected server,
169
- key, or incarnation mismatches. DSS exposes no conditional permission PUT, so these client-side checks
170
- narrow and detect key-reuse races but cannot serialize the final check with the write. Snapshots
171
- contain access-control identities; keep them mode `0600` and commit them only when repository
172
- policy permits.
157
+ `concurrencyControl:"client-side-non-atomic-stale-read-check"`. `--expect-hash` is a stale-read
158
+ guard; the PUT is unconditional. Never treat the hash as a serializing lock. Ambiguous writes report
159
+ `outcome:"indeterminate"`.
160
+
161
+ The API key authenticates public REST only. `app verify-instance` reports
162
+ `status:"API_VERIFIED_UI_PENDING"`; its external SSO gate requires exercising the affected tiles,
163
+ forms, and actions. Permission snapshots bind identity and permissions to the server/project
164
+ incarnation and reject mismatches.
173
165
 
174
166
  ## Project Git
175
167