@datarails-ai/dr-cli 1.6.112 → 1.6.114

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "cliVersion": "1.6.112",
3
+ "cliVersion": "1.6.114",
4
4
  "_contract": "Resolve a command path through `aliases` (canonical prefix + alias segment -> canonical path) before any lookup. A path listed in `pendingCommands`, or whose first segment is a key of `pending`, is UNDECIDED, not unrestricted: fail closed or skip it, and never read a path's absence from `commands` as 'no requirement'. An entry carrying `denied` is UNAVAILABLE to any AGENT-SCOPED credential — one whose `scopes` claim carries at least one `resource:action` entry; a claim that is absent, empty, capability-only or wholly unparseable is UNRESTRICTED, and this mark does not apply to it — whatever else that entry says: it is not a ceiling and it is not always-available, its `denied.reason` says why and `denied.until` names the ticket that lifts it, and the absence of `requires` on it must NEVER be read as 'no requirement'. Only an entry in `commands` with an empty `requires` means always-available.",
5
5
  "commands": {
6
6
  "login": {
@@ -1923,6 +1923,66 @@
1923
1923
  "until": "DR-53511"
1924
1924
  }
1925
1925
  },
1926
+ "connectors poll enable": {
1927
+ "denied": {
1928
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1929
+ "until": "DR-53511"
1930
+ }
1931
+ },
1932
+ "connectors poll set": {
1933
+ "denied": {
1934
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1935
+ "until": "DR-53511"
1936
+ }
1937
+ },
1938
+ "connectors poll disable": {
1939
+ "denied": {
1940
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1941
+ "until": "DR-53511"
1942
+ }
1943
+ },
1944
+ "connectors poll get": {
1945
+ "denied": {
1946
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1947
+ "until": "DR-53511"
1948
+ }
1949
+ },
1950
+ "connectors poll run": {
1951
+ "denied": {
1952
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1953
+ "until": "DR-53511"
1954
+ }
1955
+ },
1956
+ "connectors poll resume": {
1957
+ "denied": {
1958
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1959
+ "until": "DR-53511"
1960
+ }
1961
+ },
1962
+ "connectors poll items": {
1963
+ "denied": {
1964
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1965
+ "until": "DR-53511"
1966
+ }
1967
+ },
1968
+ "connectors poll retry": {
1969
+ "denied": {
1970
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1971
+ "until": "DR-53511"
1972
+ }
1973
+ },
1974
+ "connectors poll skip": {
1975
+ "denied": {
1976
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1977
+ "until": "DR-53511"
1978
+ }
1979
+ },
1980
+ "connectors poll seed": {
1981
+ "denied": {
1982
+ "reason": "The connectors control plane runs no dr-auth-sdk guard and checks no scope, so the `integrations` ceiling this command declares would be enforced by nobody. Closed to scoped credentials until that control plane adopts the SDK.",
1983
+ "until": "DR-53511"
1984
+ }
1985
+ },
1926
1986
  "filebox list": {
1927
1987
  "requires": [
1928
1988
  {
@@ -2055,6 +2115,14 @@
2055
2115
  }
2056
2116
  ]
2057
2117
  },
2118
+ "filebox set-version-label": {
2119
+ "requires": [
2120
+ {
2121
+ "resource": "fileboxes",
2122
+ "action": "write"
2123
+ }
2124
+ ]
2125
+ },
2058
2126
  "filebox set-version-workflow": {
2059
2127
  "requires": [
2060
2128
  {
@@ -282,7 +282,7 @@ area's gotchas.
282
282
 
283
283
  **Fileboxes & documents** → [reference/filebox-documents.md](reference/filebox-documents.md)
284
284
  - `filebox list|get|versions|tags|sheets|preview|create|upload|upload-version|update|download` (alias `fileboxes`)
285
- - `filebox archive|archive-version|restore-version|set-version-include|set-version-date-tag|set-version-workflow|set-version-file-status|set-version-cycle`
285
+ - `filebox archive|archive-version|restore-version|set-version-include|set-version-date-tag|set-version-label|set-version-workflow|set-version-file-status|set-version-cycle`
286
286
  - _archived versions (opt-in; defaults unchanged): `versions --archived|--all` to discover them; `archive-version`/`restore-version` also take `--doc` + `--version-number <n>` or `--latest-archived`/`--latest-active`_
287
287
  - _include in database: `versions --included` lists the versions whose `include_file` flag is on (intent, not delivered rows); `set-version-include <vid> --include on|off` writes the flag (two-step confirm both ways — off deletes the version's table rows, on queues an ETL scan). `--doc <id> --all-except-latest` is the bulk cleanup; it never targets the latest, and warns in the plan if the latest is itself excluded_
288
288
  - `filebox share|shares|set-option|set-tag-config|set-parent|lock|unlock|lock-date-tag|unlock-date-tag|locked-date-tags`
@@ -661,6 +661,29 @@ is `export delete`.
661
661
  - `devices request-logs <id>…`, `devices download-logs`,
662
662
  `devices command-delete <cmd_id>` (two-step confirm-token flow).
663
663
 
664
+ **Clearing a backed-up sync-service queue: delete it as one batch, never one id
665
+ at a time.** `devices command-delete` takes several ids
666
+ (`command-delete 101 102 103`), or the machine's whole WAITING queue with
667
+ `--machine <machine_id> --all-queued`. Add `--data-query <id>` to clear only one
668
+ filebox's commands. Either way it is one plan, one token and, on prod, **one**
669
+ word gate for the whole set (Tier A, `badge-command-batch|delete`). The plan
670
+ lists every command (action, status, data query, update time), and that list is
671
+ the blast-radius check. With explicit ids the token is bound to the exact id
672
+ set. With `--all-queued` the plan saves the exact list it showed to a local
673
+ plan file and prints its confirm command with `--plan <plan id>`. The token is
674
+ bound to that plan, and the confirm deletes exactly those commands, never one
675
+ the plan did not list. Commands queued after the plan are left alone, so a
676
+ device that keeps queueing work does not block the confirm. Paste the printed
677
+ confirm command as is, on the same computer and within the 10-minute token
678
+ life; a confirm without `--plan` is refused, and a plan is spent once its
679
+ confirm runs. Plans are kept in the per-user config directory, next to the
680
+ confirm secret. Every planned command gets a DELETE; one the device has already
681
+ run answers 404, is reported as "already gone" and does not fail the run.
682
+ With explicit ids a 404 counts as a failure, because it may be a mistyped id.
683
+ `--machine` with explicit ids only adds each command's details to the plan.
684
+ `devices commands <machine_id>` lists the same WAITING backlog `--all-queued`
685
+ targets.
686
+
664
687
  ## Feature flags (IT)
665
688
 
666
689
  - `features list`, `features groups list`, `features groups get`,
@@ -6,7 +6,9 @@
6
6
  `filebox sheets`, `filebox preview`, `filebox shares <doc_id>` (current user +
7
7
  group shares). Names are HTML-decoded before render.
8
8
 
9
- `filebox versions <doc_id>` lists **active** versions by default (unchanged).
9
+ `filebox versions <doc_id>` lists **active** versions by default (unchanged);
10
+ the table includes each version's `LABEL` (blank when unset; control characters
11
+ show as escapes such as `\n`).
10
12
  To see archived (auto_save) versions, pass `--archived` (archived only) or
11
13
  `--all` (active + archived); both add an `ARCHIVED` column. This is the only
12
14
  way to discover an archived version's id from the CLI — archived rows are
@@ -33,7 +35,10 @@ set-version-include` (below).
33
35
  - `filebox upload-version <id>` — push a new version. Accepts `--date <date>
34
36
  --scenario <name>` to validate-then-tag at upload time in one call (planning
35
37
  fileboxes — same validation and read-back confirmation as
36
- `set-version-cycle`).
38
+ `set-version-cycle`). `--label <text>` labels the new version after the upload
39
+ and any cycle tag (validated first, so a bad label uploads nothing). If the
40
+ label write fails the command exits non-zero naming the new version id, and
41
+ `--json` reports `label_error` instead of `label`.
37
42
  - `filebox download` — download document content.
38
43
 
39
44
  ## Filebox — update / config
@@ -114,6 +119,17 @@ set-version-include` (below).
114
119
  - `filebox set-version-date-tag <vid> --doc <id> --month|--quarter|--day|--year|--week …
115
120
  [--json]` — set the date tag on one version (resolves the tag id from the doc's
116
121
  config; other tags untouched).
122
+ - `filebox set-version-label <vid> --label "<text>" | --clear [--json]` — set or
123
+ remove a version's free-text label; name, date and dimension tags are
124
+ untouched, and a locked date tag does not block it. No confirm step. Address it
125
+ like `archive-version` (global id, or `--doc <doc_id>` with `--version-number
126
+ <n>` / `--latest-active`; a tie on the highest number is refused — pass the
127
+ global id). The version is loaded first, so a bad id fails without writing,
128
+ and the label is read back after the write. `--json` returns `version_id`,
129
+ `doc_id`, `version`, `label` and `previous_label`. At most 256 characters, no
130
+ control characters, and not `auto-calculated` (reserved by the server for
131
+ versions it generates); pass the label as one quoted argument. Needs change
132
+ rights on the filebox or to be the version's uploader (HTTP 405 otherwise).
117
133
  - `filebox set-version-workflow <vid> --doc <id> --status <Not Started|In Progress|Pending|Approved|Rejected>`
118
134
  — set the workflow LIST-tag value (setting `Approved` requires `approve_workflow`).
119
135
  - `filebox set-version-file-status <vid> --doc <id> --status <Draft|Final> [--json]`
@@ -66,7 +66,10 @@ user names `import` and confirms the loss of hits/thumbs analytics and the id
66
66
  reassignment. Never reach for it on your own initiative. `error-enrichments
67
67
  delete` takes several ids at once and spends **one** word gate on the whole
68
68
  batch, so the plan output — which lists every targeted rule with its hits and
69
- feedback — is the blast-radius check; read it per-rule, not as a count. Batch
69
+ feedback — is the blast-radius check; read it per-rule, not as a count.
70
+ `devices command-delete` works the same way. It takes several ids, or
71
+ `--machine <machine_id> --all-queued` for a device's whole WAITING queue, with
72
+ one word gate for the whole set. The plan lists every command it will delete. Batch
70
73
  writes (`create`/`update`/`delete` with several targets) run sequentially and
71
74
  keep going after a per-item failure, then exit non-zero: the per-item summary
72
75
  table, not the exit code, is what says which ids actually landed. The two pushes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarails-ai/dr-cli",
3
- "version": "1.6.112",
3
+ "version": "1.6.114",
4
4
  "description": "Datarails CLI",
5
5
  "type": "module",
6
6
  "engines": {