@datarails-ai/dr-cli 1.6.146 → 1.6.148
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.
- package/dist/cli.js +1741 -1093
- package/dist/scopes-map.json +9 -1
- package/dist/skills/dr-cli/SKILL.md +1 -0
- package/dist/skills/dr-cli/reference/integrations.md +19 -0
- package/package.json +2 -2
package/dist/scopes-map.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"cliVersion": "1.6.
|
|
3
|
+
"cliVersion": "1.6.148",
|
|
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": {
|
|
@@ -1971,6 +1971,14 @@
|
|
|
1971
1971
|
}
|
|
1972
1972
|
]
|
|
1973
1973
|
},
|
|
1974
|
+
"integrations escalation-report": {
|
|
1975
|
+
"requires": [
|
|
1976
|
+
{
|
|
1977
|
+
"resource": "integrations",
|
|
1978
|
+
"action": "read"
|
|
1979
|
+
}
|
|
1980
|
+
]
|
|
1981
|
+
},
|
|
1974
1982
|
"connectors publish": {
|
|
1975
1983
|
"denied": {
|
|
1976
1984
|
"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.",
|
|
@@ -326,6 +326,7 @@ area's gotchas.
|
|
|
326
326
|
- `integrations it list|get|add|update|delete|resync` (IT-admin file-sync; redacts secrets by default)
|
|
327
327
|
- `integrations sftp create|provision` — self-serve SFTP fileboxes: `create --name <n>` makes a filebox and its SFTP folder `/<name>_<id>` in one step; `provision <filebox_id>` does it for an existing filebox
|
|
328
328
|
- `integrations netsuite readiness|saved-search-sql` — NetSuite 3.0 -> SuiteQL migration: `readiness <id> [--dry-run]` probes the bundle and, on CONFIRMED, stamps `bundle_version` 3 (two-step confirm); `saved-search-sql <id> --saved-search <ssid> [--out <file>]` prints a saved search's SQL and its library match
|
|
329
|
+
- `integrations escalation-report [--server <key> | --servers A,B | --all-servers] [--out <file.html>] [--json]` — staff only: paused data sources and fileboxes, auth-error email funnel and recovery as one HTML page
|
|
329
330
|
- `entities list|qbd-availability|netsuite-connections|rename|rename-group|delete|mark-completed` (alias `companies`)
|
|
330
331
|
- `entities create qbo|xero|qbd|netsuite` (connected accounting systems)
|
|
331
332
|
- `error-enrichments list|stats|get|create|update|delete|test-regex|export|import|types list|types create` — the
|
|
@@ -136,6 +136,25 @@ is the NetSuite connection (data integration) id, not a filebox id.
|
|
|
136
136
|
call failed, or the translated SQL is over the 100,000-character custom-report cap;
|
|
137
137
|
the detail says which.
|
|
138
138
|
|
|
139
|
+
## Auth-error escalation report (`integrations escalation-report`)
|
|
140
|
+
|
|
141
|
+
Staff only (Datarails admins and the Integrations Team); anyone else gets a 403.
|
|
142
|
+
|
|
143
|
+
- `integrations escalation-report --server <key> --out <file.html>` writes one
|
|
144
|
+
self-contained HTML page: KPI cards and a By region table (one row per server plus a
|
|
145
|
+
total that matches the cards) at the top, then data sources paused now (by vendor,
|
|
146
|
+
server and age, plus the ones paused over 30 days for Customer Success), paused
|
|
147
|
+
fileboxes and filebox-days paused (a proxy for syncs not run), the auth-error email
|
|
148
|
+
funnel with recovery between emails, and recovery after a pause (per ISO week, by
|
|
149
|
+
trigger, time paused, repeat pausers). Without `--out` the page goes to stdout.
|
|
150
|
+
- `--servers A,B` or `--all-servers` (production servers; `--include-test` adds the
|
|
151
|
+
rest) merge every server into one page. A server without a stored login is skipped. A
|
|
152
|
+
server that fails, e.g. `Audit events are unavailable on <key>` (a 502), is listed on
|
|
153
|
+
the page; the page is still written and the command then exits non-zero.
|
|
154
|
+
- `--json` prints the merged raw data (every row tagged with its `server`) instead.
|
|
155
|
+
- Event history covers the audit retention window (~90 days). Refused sync attempts are
|
|
156
|
+
on the Groundcover board.
|
|
157
|
+
|
|
139
158
|
## Entities — company data sources (`entities`, alias `companies`)
|
|
140
159
|
|
|
141
160
|
The connected accounting systems (QuickBooks Online/Desktop, Xero, NetSuite) —
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datarails-ai/dr-cli",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.148",
|
|
4
4
|
"description": "Datarails CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@datarails-ai/dr-appspace-cli": "0.12.
|
|
20
|
+
"@datarails-ai/dr-appspace-cli": "0.12.20",
|
|
21
21
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
22
22
|
"@napi-rs/keyring": "^1.3.0",
|
|
23
23
|
"commander": "^12.1.0",
|