@@ -19,17 +19,19 @@ The CLI is functional for core workflows. Here's where things stand:
1919| Area | Status |
2020| ---| ---|
2121| Auth (login, logout, status, profiles) | Working |
22- | Datasource (list, get, create, delete, onboard) | Working |
23- | Dataset (list, get, update, delete, profiling, permissions, onboard) | Working |
22+ | Datasource (list, get, create, update, delete, onboard, test-connection, diagnostics ) | Working |
23+ | Dataset (list, get, update, delete, profiling, diagnostics, permissions, onboard) | Working |
2424| Contract (list, push, pull, diff, create, lint, verify via cloud or local) | Working |
2525| Monitor (list, config, add column/custom, update, delete) | Working |
2626| Results (list with filtering, sorting, date ranges) | Working |
2727| Runner (list, get, create, delete) | Working |
28- | IAM (user list, group CRUD, role list) | Working |
29- | Job logs | Working |
28+ | IAM (user list, user invite, group CRUD, role list) | Working |
29+ | Job (status, logs) | Working |
30+ | Secrets (list, get, create, update, delete — client-side encrypted) | Working |
3031| Contract verify (local via soda-core) | Working |
31- | Incidents | Planned |
32- | Notifications, Secrets | Planned |
32+ | Incidents (list, get, update) | Wired, waiting on API deploy |
33+ | Dataset attributes | Wired, waiting on API deploy |
34+ | Notifications | Planned |
3335| Dashboard | Planned |
3436
3537Per-command status is tracked in [ ` command_tree.txt ` ] ( command_tree.txt ) :
@@ -141,6 +143,11 @@ sodacli datasource list
141143sodacli datasource get < id>
142144sodacli datasource create config.yml # register from YAML config
143145sodacli datasource onboard config.yml --monitoring --profiling --contracts skeleton # full setup
146+ sodacli datasource update < id> --label " Production DW" # change label, runner, or connection
147+ sodacli datasource test-connection config.yml # async connection test via Runner
148+ sodacli datasource diagnostics < id> # view diagnostics warehouse config
149+ sodacli datasource diagnostics < id> --enable --warehouse same --collect-results --collect-failed-rows
150+ sodacli datasource diagnostics < id> --max-failed-rows 5000 --expose-failed-rows-query
144151sodacli datasource delete < id>
145152```
146153
@@ -150,6 +157,7 @@ sodacli datasource delete <id>
150157sodacli dataset list --datasource < name> --status onboarded --limit 50
151158sodacli dataset get < id>
152159sodacli dataset update < id> --tag production --tag critical
160+ sodacli dataset attributes < id> # list dataset attributes
153161sodacli dataset profiling < id> --enable --schedule " 0 6 * * *"
154162sodacli dataset time-partition < id> --column created_at
155163sodacli dataset diagnostics < id> --collect-results --collect-failed-rows
@@ -187,18 +195,34 @@ sodacli monitor update <monitor-id> --dataset <id> --disable
187195sodacli monitor delete < monitor-id> --dataset < id>
188196```
189197
198+ ### Secrets
199+
200+ ``` bash
201+ sodacli secret list
202+ sodacli secret get < id>
203+ sodacli secret create --name DB_PASSWORD # masked interactive prompt
204+ sodacli secret create --name DB_PASSWORD --value " s3cret" # via flag (visible in shell history)
205+ echo " s3cret" | sodacli secret create --name DB_PASSWORD # via stdin pipe
206+ sodacli secret update < id> # masked prompt for new value
207+ sodacli secret delete < id>
208+ # Values are encrypted client-side (AES-256-GCM + RSA-OAEP) — Soda never sees plaintext.
209+ # Reference in datasource configs: ${secret.DB_PASSWORD}
210+ ```
211+
190212### Results & Jobs
191213
192214``` bash
193215sodacli results list
194216sodacli results list --dataset-name " orders" --status failing --from 2026-03-01 --limit 20
217+ sodacli job status < scan-id>
195218sodacli job logs < scan-id>
196219```
197220
198221### IAM
199222
200223``` bash
201224sodacli iam user list
225+ sodacli iam user invite --email alice@co.com --email bob@co.com # invite up to 10 users
202226sodacli iam group create --name " Data Engineers" --member alice@co.com --member bob@co.com
203227sodacli iam group update < id> --add-member carol@co.com
204228sodacli iam role list --scope dataset
@@ -294,13 +318,10 @@ export SODACLI_TELEMETRY=false
294318
295319The CLI code is written for these. They'll work as soon as the API endpoints ship :
296320
297- - **Incidents** (list, get, update)
321+ - **Incidents** (list, get, update) — documented in OpenAPI spec but still returns HTML
298322- **Notifications** (rules and integrations CRUD)
299- - **Secrets** (CRUD for cloud-stored secrets)
300323- **Job list** (scan history)
301324- **Job cancel** (cancel running scans)
302- - **Datasource update** (change labels, runners, connection configs)
303- - **Datasource test-connection** (async connection test)
304325
305326# ## Planned Features
306327
0 commit comments