@vigilbase/cli 0.2.0 → 0.2.2
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/CLOUDFLARE.md +9 -12
- package/COMMANDS.md +192 -111
- package/LOCAL.md +77 -84
- package/ONE.md +5 -6
- package/README.md +349 -173
- package/SECURITY.md +6 -4
- package/dist/auth/device-auth.d.ts +0 -1
- package/dist/auth/device-auth.js +6 -5
- package/dist/auth/index.d.ts +1 -2
- package/dist/auth/index.js +1 -2
- package/dist/auth/provider.d.ts +1 -1
- package/dist/auth/provider.js +16 -7
- package/dist/auth/refresh.d.ts +23 -4
- package/dist/auth/refresh.js +78 -22
- package/dist/auth/store.d.ts +78 -4
- package/dist/auth/store.js +385 -74
- package/dist/auth/token-metadata.d.ts +0 -1
- package/dist/auth/token-metadata.js +0 -1
- package/dist/auth/types.d.ts +0 -1
- package/dist/auth/types.js +0 -1
- package/dist/bin.d.ts +0 -1
- package/dist/bin.js +0 -1
- package/dist/cli.d.ts +4 -2
- package/dist/cli.js +13 -11
- package/dist/commands/account.d.ts +0 -1
- package/dist/commands/account.js +1 -2
- package/dist/commands/auth.d.ts +0 -1
- package/dist/commands/auth.js +71 -22
- package/dist/commands/billing.d.ts +0 -1
- package/dist/commands/billing.js +0 -1
- package/dist/commands/cloudflare.d.ts +1 -2
- package/dist/commands/cloudflare.js +14 -9
- package/dist/commands/helpers.d.ts +0 -1
- package/dist/commands/helpers.js +0 -1
- package/dist/commands/index.d.ts +0 -1
- package/dist/commands/index.js +0 -1
- package/dist/commands/legacy-validation.d.ts +7 -2
- package/dist/commands/legacy-validation.js +15 -3
- package/dist/commands/local.d.ts +6 -1
- package/dist/commands/local.js +36 -12
- package/dist/commands/one.d.ts +0 -1
- package/dist/commands/one.js +39 -13
- package/dist/commands/public-tools.d.ts +0 -1
- package/dist/commands/public-tools.js +63 -29
- package/dist/commands/runs.d.ts +0 -1
- package/dist/commands/runs.js +1 -2
- package/dist/commands/security.d.ts +1 -2
- package/dist/commands/security.js +34 -23
- package/dist/commands/watchdog.d.ts +0 -1
- package/dist/commands/watchdog.js +0 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -2
- package/dist/lib/banner.d.ts +0 -1
- package/dist/lib/banner.js +0 -1
- package/dist/lib/client.d.ts +9 -2
- package/dist/lib/client.js +49 -20
- package/dist/lib/cloudflare-client.d.ts +0 -1
- package/dist/lib/cloudflare-client.js +1 -2
- package/dist/lib/config.d.ts +16 -3
- package/dist/lib/config.js +41 -14
- package/dist/lib/format.d.ts +2 -1
- package/dist/lib/format.js +19 -8
- package/dist/lib/help.d.ts +4 -2
- package/dist/lib/help.js +72 -23
- package/dist/lib/network.d.ts +10 -1
- package/dist/lib/network.js +31 -4
- package/dist/lib/one-client.d.ts +4 -1
- package/dist/lib/one-client.js +9 -3
- package/dist/lib/one-error-hints.d.ts +19 -0
- package/dist/lib/one-error-hints.js +47 -0
- package/dist/lib/one-operations.d.ts +0 -1
- package/dist/lib/one-operations.js +0 -1
- package/dist/lib/open-url.d.ts +0 -1
- package/dist/lib/open-url.js +0 -1
- package/dist/lib/platform.d.ts +2 -0
- package/dist/lib/platform.js +4 -0
- package/dist/lib/progress.d.ts +0 -1
- package/dist/lib/progress.js +0 -1
- package/dist/lib/security-client.d.ts +0 -1
- package/dist/lib/security-client.js +0 -1
- package/dist/lib/skill-fetch.d.ts +0 -1
- package/dist/lib/skill-fetch.js +0 -1
- package/dist/lib/system-trust.d.ts +0 -1
- package/dist/lib/system-trust.js +0 -1
- package/dist/lib/tui.d.ts +0 -1
- package/dist/lib/tui.js +0 -1
- package/dist/local/cloudflare-checkup/cf/allowlist.d.ts +0 -1
- package/dist/local/cloudflare-checkup/cf/allowlist.js +0 -1
- package/dist/local/cloudflare-checkup/cf/auth-lifecycle.d.ts +0 -1
- package/dist/local/cloudflare-checkup/cf/auth-lifecycle.js +0 -1
- package/dist/local/cloudflare-checkup/cf/child-env.d.ts +0 -1
- package/dist/local/cloudflare-checkup/cf/child-env.js +0 -1
- package/dist/local/cloudflare-checkup/cf/install.d.ts +0 -1
- package/dist/local/cloudflare-checkup/cf/install.js +0 -1
- package/dist/local/cloudflare-checkup/cf/locate.d.ts +0 -1
- package/dist/local/cloudflare-checkup/cf/locate.js +0 -1
- package/dist/local/cloudflare-checkup/cf/run-cf.d.ts +0 -1
- package/dist/local/cloudflare-checkup/cf/run-cf.js +0 -1
- package/dist/local/cloudflare-checkup/collector.d.ts +0 -1
- package/dist/local/cloudflare-checkup/collector.js +0 -1
- package/dist/local/cloudflare-checkup/contract.d.ts +14 -3
- package/dist/local/cloudflare-checkup/contract.js +9 -3
- package/dist/local/cloudflare-checkup/email-verification.d.ts +0 -1
- package/dist/local/cloudflare-checkup/email-verification.js +0 -1
- package/dist/local/cloudflare-checkup/errors.d.ts +4 -1
- package/dist/local/cloudflare-checkup/errors.js +8 -2
- package/dist/local/cloudflare-checkup/output.d.ts +0 -1
- package/dist/local/cloudflare-checkup/output.js +0 -1
- package/dist/local/cloudflare-checkup/prompts.d.ts +0 -1
- package/dist/local/cloudflare-checkup/prompts.js +0 -1
- package/dist/local/cloudflare-checkup/rate-budget.d.ts +0 -1
- package/dist/local/cloudflare-checkup/rate-budget.js +0 -1
- package/dist/local/cloudflare-checkup/snapshot-file.d.ts +0 -1
- package/dist/local/cloudflare-checkup/snapshot-file.js +5 -4
- package/dist/local/cloudflare-checkup/submit-client.d.ts +19 -5
- package/dist/local/cloudflare-checkup/submit-client.js +63 -17
- package/dist/local/cloudflare-checkup/terminal-ui.d.ts +0 -1
- package/dist/local/cloudflare-checkup/terminal-ui.js +0 -1
- package/dist/types.d.ts +25 -3
- package/dist/types.js +16 -1
- package/dist/version.d.ts +0 -1
- package/dist/version.js +0 -1
- package/package.json +5 -9
- package/dist/auth/device-auth.d.ts.map +0 -1
- package/dist/auth/device-auth.js.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/provider.d.ts.map +0 -1
- package/dist/auth/provider.js.map +0 -1
- package/dist/auth/refresh.d.ts.map +0 -1
- package/dist/auth/refresh.js.map +0 -1
- package/dist/auth/store.d.ts.map +0 -1
- package/dist/auth/store.js.map +0 -1
- package/dist/auth/token-metadata.d.ts.map +0 -1
- package/dist/auth/token-metadata.js.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js.map +0 -1
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/account.d.ts.map +0 -1
- package/dist/commands/account.js.map +0 -1
- package/dist/commands/auth.d.ts.map +0 -1
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/billing.d.ts.map +0 -1
- package/dist/commands/billing.js.map +0 -1
- package/dist/commands/cloudflare.d.ts.map +0 -1
- package/dist/commands/cloudflare.js.map +0 -1
- package/dist/commands/helpers.d.ts.map +0 -1
- package/dist/commands/helpers.js.map +0 -1
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/legacy-validation.d.ts.map +0 -1
- package/dist/commands/legacy-validation.js.map +0 -1
- package/dist/commands/local.d.ts.map +0 -1
- package/dist/commands/local.js.map +0 -1
- package/dist/commands/one.d.ts.map +0 -1
- package/dist/commands/one.js.map +0 -1
- package/dist/commands/public-tools.d.ts.map +0 -1
- package/dist/commands/public-tools.js.map +0 -1
- package/dist/commands/runs.d.ts.map +0 -1
- package/dist/commands/runs.js.map +0 -1
- package/dist/commands/security.d.ts.map +0 -1
- package/dist/commands/security.js.map +0 -1
- package/dist/commands/watchdog.d.ts.map +0 -1
- package/dist/commands/watchdog.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/banner.d.ts.map +0 -1
- package/dist/lib/banner.js.map +0 -1
- package/dist/lib/client.d.ts.map +0 -1
- package/dist/lib/client.js.map +0 -1
- package/dist/lib/cloudflare-client.d.ts.map +0 -1
- package/dist/lib/cloudflare-client.js.map +0 -1
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/format.d.ts.map +0 -1
- package/dist/lib/format.js.map +0 -1
- package/dist/lib/help.d.ts.map +0 -1
- package/dist/lib/help.js.map +0 -1
- package/dist/lib/network.d.ts.map +0 -1
- package/dist/lib/network.js.map +0 -1
- package/dist/lib/one-client.d.ts.map +0 -1
- package/dist/lib/one-client.js.map +0 -1
- package/dist/lib/one-operations.d.ts.map +0 -1
- package/dist/lib/one-operations.js.map +0 -1
- package/dist/lib/open-url.d.ts.map +0 -1
- package/dist/lib/open-url.js.map +0 -1
- package/dist/lib/progress.d.ts.map +0 -1
- package/dist/lib/progress.js.map +0 -1
- package/dist/lib/security-client.d.ts.map +0 -1
- package/dist/lib/security-client.js.map +0 -1
- package/dist/lib/skill-fetch.d.ts.map +0 -1
- package/dist/lib/skill-fetch.js.map +0 -1
- package/dist/lib/system-trust.d.ts.map +0 -1
- package/dist/lib/system-trust.js.map +0 -1
- package/dist/lib/tui.d.ts.map +0 -1
- package/dist/lib/tui.js.map +0 -1
- package/dist/local/cloudflare-checkup/cf/allowlist.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/cf/allowlist.js.map +0 -1
- package/dist/local/cloudflare-checkup/cf/auth-lifecycle.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/cf/auth-lifecycle.js.map +0 -1
- package/dist/local/cloudflare-checkup/cf/child-env.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/cf/child-env.js.map +0 -1
- package/dist/local/cloudflare-checkup/cf/install.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/cf/install.js.map +0 -1
- package/dist/local/cloudflare-checkup/cf/locate.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/cf/locate.js.map +0 -1
- package/dist/local/cloudflare-checkup/cf/run-cf.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/cf/run-cf.js.map +0 -1
- package/dist/local/cloudflare-checkup/collector.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/collector.js.map +0 -1
- package/dist/local/cloudflare-checkup/contract.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/contract.js.map +0 -1
- package/dist/local/cloudflare-checkup/email-verification.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/email-verification.js.map +0 -1
- package/dist/local/cloudflare-checkup/errors.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/errors.js.map +0 -1
- package/dist/local/cloudflare-checkup/output.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/output.js.map +0 -1
- package/dist/local/cloudflare-checkup/prompts.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/prompts.js.map +0 -1
- package/dist/local/cloudflare-checkup/rate-budget.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/rate-budget.js.map +0 -1
- package/dist/local/cloudflare-checkup/snapshot-file.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/snapshot-file.js.map +0 -1
- package/dist/local/cloudflare-checkup/submit-client.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/submit-client.js.map +0 -1
- package/dist/local/cloudflare-checkup/terminal-ui.d.ts.map +0 -1
- package/dist/local/cloudflare-checkup/terminal-ui.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js.map +0 -1
package/CLOUDFLARE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Cloudflare CLI reference
|
|
2
2
|
|
|
3
|
-
`vigilbase cf` and `vigilbase cloudflare` use the authenticated Vigilbase One API. Run `vigilbase login` first. Your organization, permissions, customer links, and allowed zones determine access. The CLI never requires a Cloudflare API key.
|
|
3
|
+
`vigilbase cf` and `vigilbase cloudflare` use the authenticated Vigilbase One API. Run `vigilbase login` first (signing in isn't supported on Windows yet). Your organization, permissions, customer links, and allowed zones determine access. The CLI never requires a Cloudflare API key.
|
|
4
4
|
|
|
5
|
-
`cf checkup` runs on One's servers. `cloudflare-checkup` (also `local cloudflare-checkup`) runs on your machine with Cloudflare's own `cf` CLI and needs no Vigilbase login: one command, `npx @vigilbase/cli cloudflare-checkup
|
|
5
|
+
`cf checkup` runs on One's servers. `cloudflare-checkup` (also `local cloudflare-checkup`) runs on your machine with Cloudflare's own `cf` CLI and needs no Vigilbase login: one command, `npx @vigilbase/cli cloudflare-checkup`, verifies your work email with a code, installs cf if needed, signs in read-only, collects and uploads after you confirm. It works while vigilbase.com has local checkups switched on; otherwise it says so before asking for your email and points you to the checkup in your browser at https://vigilbase.com/tools/cloudflare-checkup (see [LOCAL.md](https://app.unpkg.com/@vigilbase/cli@0.2.2/files/LOCAL.md)).
|
|
6
6
|
|
|
7
7
|
Customer provider access requires an `active` or `trialing` Cloudflare service
|
|
8
8
|
entitlement for the selected account. Historical/inactive rows and legacy account
|
|
@@ -22,13 +22,13 @@ vigilbase cf zones
|
|
|
22
22
|
vigilbase cf workspace --json
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
`--customer-id` explicitly selects a customer; it never grants access to that customer. Customer users can usually omit it when their organization identifies the customer. Internal users should select it for customer-specific operations. Analytics always
|
|
25
|
+
`--customer-id` explicitly selects a customer; it never grants access to that customer. Customer users can usually omit it when their organization identifies the customer. Internal users should select it for customer-specific operations: One answers accounts, workspace and checkup reads without it with HTTP 400. Analytics, DNS, WAF and speed settings always require it, for every user: One refuses these reads without it, so the CLI stops before sending them. Live zone detail requires it; zone detail without it uses the stored workspace inventory. When One answers 400 to accounts, workspace or checkup reads because the customer is missing, the CLI adds the hint `Vigilbase staff: add --customer-id <uuid>.`
|
|
26
26
|
|
|
27
27
|
An account or zone positional ID can instead be supplied using `--account-id` or `--zone-id` for commands that take that kind of ID. Supplying both requires identical values. Account-resource commands reject `--zone-id`; DNS, WAF, and speed-settings reject `--account-id` because those APIs scope by zone. `--days` is accepted only for analytics.
|
|
28
28
|
|
|
29
29
|
## Command grammar
|
|
30
30
|
|
|
31
|
-
In this table, `C` means `[--customer-id <uuid>]`, `A` means `[--account-id <hex-id>]`, and `Z` means `[--zone-id <hex-id>]`. Every command also accepts the common options above.
|
|
31
|
+
In this table, `C` means `[--customer-id <uuid>]`, `C!` means a required `--customer-id <uuid>`, `A` means `[--account-id <hex-id>]`, and `Z` means `[--zone-id <hex-id>]`. Every command also accepts the common options above.
|
|
32
32
|
|
|
33
33
|
| Command | Selection | Result |
|
|
34
34
|
| --- | --- | --- |
|
|
@@ -38,9 +38,9 @@ In this table, `C` means `[--customer-id <uuid>]`, `A` means `[--account-id <hex
|
|
|
38
38
|
| `cf accounts` | C A | Accessible account inventory including customer and service IDs |
|
|
39
39
|
| `cf account <account-id>` | C | One stored account summary |
|
|
40
40
|
| `cf workspace [section]` | C A Z | Workspace bootstrap or section data |
|
|
41
|
-
| `cf dns <zone-id>` | C | DNS record IDs, types, names, contents, TTL and proxy state |
|
|
42
|
-
| `cf waf <zone-id>` | C | Rules, expressions, analytics availability and suggestions |
|
|
43
|
-
| `cf speed-settings <zone-id>` | C | Current performance settings; internal access required |
|
|
41
|
+
| `cf dns <zone-id>` | C! | DNS record IDs, types, names, contents, TTL and proxy state |
|
|
42
|
+
| `cf waf <zone-id>` | C! | Rules, expressions, analytics availability and suggestions |
|
|
43
|
+
| `cf speed-settings <zone-id>` | C! | Current performance settings; internal access required |
|
|
44
44
|
| `cf audit-logs <account-id>` | C | Most recent provider audit events, up to 100 |
|
|
45
45
|
| `cf zero-trust <account-id>` | C | Users, Access applications, tunnels and authentication analytics |
|
|
46
46
|
| `cf developer-platform <account-id>` | C | Workers, Workers analytics and Pages projects |
|
|
@@ -64,8 +64,8 @@ Replace example IDs with IDs from your account inventory:
|
|
|
64
64
|
```bash
|
|
65
65
|
vigilbase cf account bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
66
66
|
vigilbase cf zone aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --customer-id cb156546-b6ba-42a9-bdd0-4a09cb156546
|
|
67
|
-
vigilbase cf dns aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --json
|
|
68
|
-
vigilbase cf waf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
67
|
+
vigilbase cf dns aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --customer-id cb156546-b6ba-42a9-bdd0-4a09cb156546 --json
|
|
68
|
+
vigilbase cf waf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --customer-id cb156546-b6ba-42a9-bdd0-4a09cb156546
|
|
69
69
|
vigilbase cf zero-trust bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb --json
|
|
70
70
|
vigilbase cf developer-platform bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
71
71
|
vigilbase cf magic-transit bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
@@ -109,6 +109,3 @@ Checkup progress reads once and does not poll automatically. Run the command aga
|
|
|
109
109
|
|
|
110
110
|
Malformed IDs, conflicting selections, extra positional arguments and unsupported scope combinations fail before a network request. Authentication, permission, HTTP and explicit `success:false` API failures return a nonzero exit status. Provider configuration writes, token management, cache purge, account deletion and DNS edits are not exposed by this command group.
|
|
111
111
|
|
|
112
|
-
## Verification
|
|
113
|
-
|
|
114
|
-
`pnpm --filter @vigilbase/cli test` runs command contract tests, including tenant filters, exact paths, bearer authentication, rejected input, permission failures and terminal text handling. Cloudflare fixtures in `scripts/fixtures/cloudflare.mjs` cover every command and workspace section for the compiled CLI end-to-end harness. These fixtures execute against a local HTTP server; the checkup-start case never contacts production.
|
package/COMMANDS.md
CHANGED
|
@@ -2,76 +2,146 @@
|
|
|
2
2
|
|
|
3
3
|
The CLI uses public scanner APIs on `vigilbase.com` and authenticated APIs on
|
|
4
4
|
`one.vigilbase.com`. Use `vigilbase <command> --help` or
|
|
5
|
-
`vigilbase help <command>` for built-in help
|
|
6
|
-
|
|
5
|
+
`vigilbase help <command>` for built-in help, and `vigilbase help <tool>` (for
|
|
6
|
+
example `vigilbase help website-security`) for how to run a tool. Examples
|
|
7
|
+
below omit `--json`, which every command supports.
|
|
7
8
|
|
|
8
9
|
## References
|
|
9
10
|
|
|
10
11
|
| Area | Complete command and API reference |
|
|
11
12
|
| --- | --- |
|
|
12
|
-
| Cloudflare | [CLOUDFLARE.md](
|
|
13
|
-
| Security | [SECURITY.md](
|
|
14
|
-
| Customers, organizations, monitoring, support | [ONE.md](
|
|
15
|
-
| Local Cloudflare Checkup (cf on your machine) | [LOCAL.md](
|
|
16
|
-
|
|
|
13
|
+
| Cloudflare | [CLOUDFLARE.md](https://app.unpkg.com/@vigilbase/cli@0.2.2/files/CLOUDFLARE.md) |
|
|
14
|
+
| Security | [SECURITY.md](https://app.unpkg.com/@vigilbase/cli@0.2.2/files/SECURITY.md) |
|
|
15
|
+
| Customers, organizations, monitoring, support | [ONE.md](https://app.unpkg.com/@vigilbase/cli@0.2.2/files/ONE.md) |
|
|
16
|
+
| Local Cloudflare Checkup (cf on your machine) | [LOCAL.md](https://app.unpkg.com/@vigilbase/cli@0.2.2/files/LOCAL.md) |
|
|
17
|
+
| Sign-in, credentials, configuration, troubleshooting | [README.md](https://app.unpkg.com/@vigilbase/cli@0.2.2/files/README.md) |
|
|
17
18
|
|
|
18
|
-
The references
|
|
19
|
-
|
|
20
|
-
supported API surface, not every internal endpoint in the monorepo.
|
|
19
|
+
The references list the supported operations, filters, response and pagination
|
|
20
|
+
behaviour, API endpoints and access requirements of the CLI.
|
|
21
21
|
|
|
22
22
|
## Global options
|
|
23
23
|
|
|
24
24
|
| Flag | Meaning |
|
|
25
25
|
| --- | --- |
|
|
26
|
-
| `--json`, `-j` | JSON on stdout; progress
|
|
26
|
+
| `--json`, `-j` | JSON on stdout; progress and browser instructions on stderr |
|
|
27
27
|
| `--help`, `-h` | Help for the named command; makes no API request |
|
|
28
|
-
| `--version`, `-V` |
|
|
28
|
+
| `--version`, `-V` | The installed version: the banner in a terminal, only the version number when stdout is a pipe or a file, `{"name":"@vigilbase/cli","version":"…"}` with `--json` |
|
|
29
29
|
| `--one-url <origin>` | One origin; default `https://one.vigilbase.com` |
|
|
30
|
-
| `--auth-url <origin>` |
|
|
30
|
+
| `--auth-url <origin>` | The Identity issuer to trust; default `https://auth.vigilbase.com`. Staging (`https://identity-staging.vigilbase.com`) or a loopback issuer is trusted only when set here or in `VIGILBASE_AUTH_URL` |
|
|
31
31
|
| `--base-url <origin>` | Public origin; default `https://vigilbase.com` |
|
|
32
32
|
| `--timeout <ms>` | Per-request timeout, integer 1–2147483647; default 60000 |
|
|
33
33
|
| `--client-id <id>` | Device authorization client; default `vigilbase-cli` |
|
|
34
34
|
|
|
35
|
-
Origins must be HTTP(S) URLs without credentials, paths, query strings
|
|
36
|
-
fragments. One requires HTTPS, except HTTP loopback development.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
Origins must be HTTP(S) URLs without credentials, paths, query strings or
|
|
36
|
+
fragments. One requires HTTPS, except HTTP for loopback development.
|
|
37
|
+
`--customer-id` is a command-specific One customer UUID; it does not change the
|
|
38
|
+
session's permissions. API reads may still return 403 when the signed-in role
|
|
39
|
+
lacks access. Unknown flags, flags a command doesn't take (including scope
|
|
40
|
+
flags), missing arguments and extra arguments fail before any API request. A
|
|
41
|
+
missing argument is named with the command's usage, for example
|
|
42
|
+
`Missing <url>. Usage: vigilbase headers <url>` or
|
|
43
|
+
`Missing <customer-id>. Usage: vigilbase customers summary <customer-id>`.
|
|
44
|
+
`cf dns`, `cf waf` and `cf speed-settings` require `--customer-id` before
|
|
45
|
+
they send a request, because One refuses these reads without it. `--style`
|
|
46
|
+
applies only to `badge`.
|
|
41
47
|
|
|
42
48
|
## Authentication
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
Paths on One are relative to `--one-url`; Identity endpoints come from the
|
|
51
|
+
issuer's `/.well-known/openid-configuration` (for production,
|
|
52
|
+
`https://auth.vigilbase.com/api/auth/…`).
|
|
53
|
+
|
|
54
|
+
| Command | Options and behaviour | Requests |
|
|
45
55
|
| --- | --- | --- |
|
|
46
|
-
| `login` | Device
|
|
47
|
-
| `login --token-stdin` |
|
|
48
|
-
| `login --token <bearer>` |
|
|
49
|
-
| `whoami` |
|
|
50
|
-
| `logout` |
|
|
51
|
-
| `doctor` |
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
| `login` | Device sign-in; `--no-open` for remote terminals. Signing in again with Identity first revokes and removes the sign-in it replaces (before the new device code), unless that one's last refresh had an uncertain result | One `GET /.well-known/oauth-protected-resource`. Identity: discovery, `POST /api/auth/device/code`, polling the token endpoint, then userinfo; you approve at `https://auth.vigilbase.com/device`. Legacy: One `POST /api/auth/device/code`, `POST /api/auth/device/token`, `GET /api/auth/get-session`; you approve at One's `/device` |
|
|
57
|
+
| `login --token-stdin` | Check and save a token piped from a secret manager; the input is bounded and never echoed. A saved Identity sign-in is revoked and removed before the token is saved | One `GET /api/auth/get-session`; Identity revocation when a sign-in is saved |
|
|
58
|
+
| `login --token <bearer>` | Older input, discouraged because arguments can appear in process lists and history. `VIGILBASE_ONE_TOKEN` also works; neither combines with `--token-stdin` | Same as `--token-stdin` |
|
|
59
|
+
| `whoami` | Shows the saved session; signed out is a successful answer. Notes a CLI 0.2.0 `credentials.json` that is being ignored | Identity: discovery and userinfo (a refresh first if due). Legacy: One `GET /api/auth/get-session` |
|
|
60
|
+
| `logout` | Revokes every saved Identity sign-in, signs a legacy session out, then deletes the credential files. A sign-in Identity has already ended counts as revoked; any other failed Identity revocation keeps every file | Identity: discovery, then `POST /api/auth/oauth2/revoke` per saved sign-in. Legacy: One `POST /api/auth/sign-out` (best effort) |
|
|
61
|
+
| `doctor` | Checks the public API, your session and your saved sign-in independently; exits 1 if any check fails | `GET {base-url}/api/v1/agent/tools`. Signed out or legacy: One `GET /api/auth/get-session`. Identity: `GET {issuer}/.well-known/openid-configuration`, then the userinfo endpoint it names (One is not contacted); a refresh at the token endpoint first if the access token expires within 60 seconds |
|
|
62
|
+
|
|
63
|
+
Credentials are saved atomically with owner-only permissions in
|
|
64
|
+
`identity-credentials.json` (Identity) or `credentials.json` (legacy One
|
|
65
|
+
sessions, shared with CLI 0.1.x), and are tied to the One origin and, for
|
|
66
|
+
Identity, the issuer, client and One resource they were issued for. Rotating
|
|
67
|
+
refresh tokens are coordinated across CLI processes by `credentials.json.lock`.
|
|
68
|
+
Login polling handles pending approval, denial, expiry and short network
|
|
69
|
+
failures. Access tokens never appear in CLI output. Signing in isn't supported
|
|
70
|
+
on Windows yet. The README covers the files, CLI 0.1.x/0.2.0 compatibility,
|
|
71
|
+
logout, directory checks and the config directory.
|
|
72
|
+
|
|
73
|
+
`doctor` JSON has `checks.publicApi`, `checks.one` and `checks.signIn`, each
|
|
74
|
+
`{ok, url?, error?, status?, code?}`. `checks.one.url` is the endpoint it
|
|
75
|
+
checked: One's `get-session`, the discovered userinfo endpoint, or the
|
|
76
|
+
issuer's discovery URL when discovery itself failed. `checks.signIn` has no
|
|
77
|
+
`url`.
|
|
78
|
+
|
|
79
|
+
`whoami` JSON has `authenticated`, `oneBaseUrl`, `user`, `issuer`,
|
|
80
|
+
`clientId`, `resource`, `organizationId`, `expiresAt`, `scope`, `obtainedAt`,
|
|
81
|
+
`authRequiredTools` and `legacyIdentityFileIgnored`. `expiresAt` and `scope`
|
|
82
|
+
are those of the access token in use, after any refresh `whoami` just made.
|
|
83
|
+
`obtainedAt` is when you signed in; a refresh doesn't change it. Signed out,
|
|
84
|
+
`expiresAt`, `scope` and `obtainedAt` are `null`.
|
|
85
|
+
|
|
86
|
+
`authRequiredTools` means something different per command. The names stay as
|
|
87
|
+
they are so scripts keep working:
|
|
88
|
+
|
|
89
|
+
| Command | `authRequiredTools` in JSON |
|
|
90
|
+
| --- | --- |
|
|
91
|
+
| `list`, `doctor` | Every tool that needs a One sign-in, whether you are signed in or not. In `list`, `oneExecutableTools` is what you can run through One now |
|
|
92
|
+
| `whoami` | The tools your sign-in unlocks: the same tools when signed in, `[]` when signed out |
|
|
93
|
+
| `login` | Every tool that needs a One sign-in; all of them are unlocked once login succeeds |
|
|
58
94
|
|
|
59
95
|
## Public scanners and authenticated scans
|
|
60
96
|
|
|
61
97
|
| Command | Options | API |
|
|
62
98
|
| --- | --- | --- |
|
|
63
|
-
| `list` (alias `tools`) | Lists the public catalog and
|
|
64
|
-
| `run <tool> <target>` | `--via public\|one`; `--public` forces the public API | POST `/api/agent/tools/<tool>/execute` or One POST `/api/tools/<tool>/execute` |
|
|
99
|
+
| `list` (alias `tools`) | Lists the public catalog and the One-only scanners | GET `/api/v1/agent/tools` |
|
|
100
|
+
| `run <tool> <target>` | `--via public\|one`; `--public` forces the public API | POST `/api/v1/agent/tools/<tool>/execute` (anonymous) or One POST `/api/tools/<tool>/execute` |
|
|
65
101
|
| `headers <url>` | Shortcut for `run security-headers`; same routing options | Same as `run` |
|
|
66
102
|
| `email <domain>` | Shortcut for `run email-security`; same routing options | Same as `run` |
|
|
67
103
|
| `describe <tool>` | `--no-skill` skips fetching skill Markdown | Catalog plus the tool's published skill URL |
|
|
68
|
-
| `skill <tool>` | Prints the complete published skill; JSON includes URL
|
|
69
|
-
| `badge <domain>` | `--style default\|compact\|mini` |
|
|
104
|
+
| `skill <tool>` | Prints the complete published skill; JSON includes URL and content | Catalog plus the tool's skill URL |
|
|
105
|
+
| `badge <domain>` | `--style default\|compact\|mini` | None; builds the public badge URL locally |
|
|
106
|
+
|
|
107
|
+
Public tools: `security-headers`, `email-security`. One-only tools:
|
|
108
|
+
`website-security`, `react2shell`, `fortibleed-check`. Tools aren't commands of
|
|
109
|
+
their own: run them with `run <tool> <target>` (`vigilbase help <tool>` prints
|
|
110
|
+
that usage offline). Public scans use the
|
|
111
|
+
public API unless you add `--via one`; being signed in doesn't change that.
|
|
112
|
+
`--public` and `--via one` cannot be combined.
|
|
113
|
+
|
|
114
|
+
Public paths are relative to `--base-url`. CLI 0.2.1 and earlier call the
|
|
115
|
+
unversioned `/api/agent/tools` instead, which vigilbase.com plans to retire on
|
|
116
|
+
1 September 2027.
|
|
117
|
+
|
|
118
|
+
The public route is anonymous and never reads your saved sign-in, the
|
|
119
|
+
credentials lock or Identity, so sign-in problems cannot make it fail. Runs
|
|
120
|
+
that go through One (`--via one` and the One-only tools) need a sign-in.
|
|
121
|
+
Without one they stop with this error:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
Error: This tool needs a Vigilbase One sign-in: run `vigilbase login`.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Other sign-in errors keep their own message, with that sentence as the hint
|
|
128
|
+
unless the message already says to run `vigilbase login`.
|
|
70
129
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
130
|
+
`list` reads your saved sign-in from disk only (no refresh, no network, no wait
|
|
131
|
+
for the lock). In JSON, `authenticated` says whether it looks usable and
|
|
132
|
+
`oneExecutableTools` follows it. If it can't be used, `list` still prints the
|
|
133
|
+
catalog, shows you as signed out and prints one stderr line per run:
|
|
134
|
+
``Couldn't use your saved sign-in (<reason>); running anonymously. Run `vigilbase login` to fix.``
|
|
135
|
+
For an unsafe config path or credentials file, which `login` would refuse too,
|
|
136
|
+
the line ends with the fix instead, for example
|
|
137
|
+
``Couldn't use your saved sign-in (/tmp is a symbolic link); running anonymously. Set VIGILBASE_CONFIG_DIR to a private directory without symbolic links in its path.``
|
|
138
|
+
`list` and `doctor` ignore a config path that fails the checks when no
|
|
139
|
+
credentials file is there.
|
|
140
|
+
|
|
141
|
+
When a public scan fails and vigilbase.com explains why with a known error
|
|
142
|
+
code, the CLI prints `Error: <message> (<code>)` (JSON: `error`, `code`,
|
|
143
|
+
`status`), with the message cleaned to one line of at most 300 characters.
|
|
144
|
+
Otherwise it prints `Request failed (HTTP <status>).`
|
|
75
145
|
|
|
76
146
|
## Account and billing
|
|
77
147
|
|
|
@@ -84,21 +154,22 @@ that choice. `--public` and `--via one` cannot be combined.
|
|
|
84
154
|
| `account sessions` | `session` | GET `/api/account/sessions` |
|
|
85
155
|
| `account invites` | `invitations`; optional `list` or `ls` | GET `/api/auth/orgs/invitations` |
|
|
86
156
|
| `account invites create` | `add` alias; `--email <email>`, `--role <role>` (default member), required `--confirm` | POST `/api/auth/orgs/invite` |
|
|
87
|
-
| `account billing` |
|
|
157
|
+
| `account billing` | Same as the billing commands | Same as billing |
|
|
88
158
|
| `billing` | `summary`, `show`, `status` | GET `/api/account/billing` |
|
|
89
159
|
| `billing portal` | `open`; `--no-open` prints the portal URL without opening a browser | POST `/api/billing/portal` |
|
|
90
160
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
161
|
+
Invitations need a One browser session: Identity's management API doesn't accept CLI sign-ins, so `account invites` and `account invites create` answer 403 (`browser_session_required`) and the CLI points you to https://one.vigilbase.com.
|
|
162
|
+
|
|
163
|
+
Creating an invitation sends it; `billing portal` starts a Stripe portal
|
|
164
|
+
session. Both are explicit actions. Billing data comes from One's Stripe
|
|
165
|
+
integration; the CLI does not store invoices or payment information.
|
|
94
166
|
|
|
95
|
-
Invitations
|
|
96
|
-
`operationId`
|
|
167
|
+
Invitations check the email and role locally and send a fresh UUID
|
|
168
|
+
`operationId` each time. Accepted roles: `admin`, `member`, `readonly`,
|
|
97
169
|
`partner_owner`, `partner_sales`, `partner_operations`, `partner_finance`,
|
|
98
|
-
`partner_readonly`, `billing_only
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
output, printing, or opening; Windows requires manual opening.
|
|
170
|
+
`partner_readonly`, `billing_only` and `sales_only`. One still checks whether
|
|
171
|
+
you may assign the role. `--confirm` is required. Portal URLs must be HTTPS on
|
|
172
|
+
Stripe's billing host before they are printed, opened or put in JSON.
|
|
102
173
|
|
|
103
174
|
## Run history and account Watchdog
|
|
104
175
|
|
|
@@ -106,79 +177,89 @@ output, printing, or opening; Windows requires manual opening.
|
|
|
106
177
|
| --- | --- | --- |
|
|
107
178
|
| `runs` | `list`, `ls`; `--tool <name>`, `--limit <n>` (1–200, default 50) | GET `/api/tool-runs` |
|
|
108
179
|
| `runs get <id>` | `show <id>` or `runs <UUID>` | GET `/api/tool-runs/<id>` |
|
|
109
|
-
| `runhistory` | Alias of the
|
|
180
|
+
| `runhistory` | Alias of the whole `runs` group | Same as runs |
|
|
110
181
|
| `watchdog` | `list`, `targets`, `status` | GET `/api/account/watchdog/targets` |
|
|
111
182
|
| `watchdog scans` | `scan`; `--target-id <UUID>`, `--limit <n>` (1–100, default 20) | GET `/api/account/watchdog/scans` |
|
|
112
183
|
|
|
113
|
-
Customer-specific Watchdog and monitoring views are
|
|
184
|
+
Customer-specific Watchdog and monitoring views are in ONE.md.
|
|
114
185
|
|
|
115
|
-
## Local Cloudflare Checkup (no
|
|
186
|
+
## Local Cloudflare Checkup (no sign-in)
|
|
187
|
+
|
|
188
|
+
All vigilbase.com paths below are under
|
|
189
|
+
`https://vigilbase.com/api/v1/tools/cloudflare-checkup/local-session`.
|
|
116
190
|
|
|
117
191
|
| Command | Options | Requests |
|
|
118
192
|
| --- | --- | --- |
|
|
119
|
-
| `cloudflare-checkup` (≡ `local cloudflare-checkup [run]`) | `--email`, `--account-id`, `--out`, `--overwrite`, `--yes`, `--confirm`, `--no-open`, `--cf-auth auto\|profile\|env\|default` (default `auto`), `--profile`, `--cf-bin`, `--max-requests-per-5min`, `--base-url` (vigilbase.com or loopback), `--timeout` | POST
|
|
193
|
+
| `cloudflare-checkup` (≡ `local cloudflare-checkup [run]`) | `--email`, `--account-id`, `--out`, `--overwrite`, `--yes`, `--confirm`, `--no-open`, `--cf-auth auto\|profile\|env\|default` (default `auto`), `--profile`, `--cf-bin`, `--max-requests-per-5min`, `--base-url` (vigilbase.com or loopback), `--timeout` | In order: GET `…/availability` (before the email is asked for), POST `…/request` and `…/verify` (email verification), GET `…/local-session` (before cf runs), allowlisted read-only cf commands, GET `…/local-session` again and POST `…/local-session/snapshot` after you confirm. npm only to install the pinned cf when none is usable (asks first) |
|
|
120
194
|
| `cloudflare-checkup login` | `--profile`, `--no-open`, `--dry-run`, `--cf-bin` | Runs `cf auth create <profile> --scopes …` interactively |
|
|
121
195
|
| `cloudflare-checkup doctor` | `--cf-auth`, `--profile`, `--cf-bin` | Offline cf mapping check, one `cf auth whoami` |
|
|
122
196
|
| `cloudflare-checkup accounts` | `--cf-auth`, `--profile`, `--cf-bin` | `cf accounts list` (all pages) |
|
|
123
197
|
| `cloudflare-checkup collect` | `--out` (required), `--account-id`, `--overwrite`, `--dry-run`, `--max-requests-per-5min`, cf options | Allowlisted read-only cf commands; writes the snapshot |
|
|
124
198
|
| `cloudflare-checkup inspect <file>` | — | None |
|
|
125
|
-
| `cloudflare-checkup submit <file>` | `--email`, `--yes`/`--confirm`, `--no-open`, `--base-url`, `--timeout` | POST `…/
|
|
199
|
+
| `cloudflare-checkup submit <file>` | `--email`, `--yes`/`--confirm`, `--no-open`, `--base-url`, `--timeout` | After checking the file: GET `…/availability`, POST `…/request` and `…/verify`, GET `…/local-session`, POST `…/local-session/snapshot` |
|
|
126
200
|
| `cloudflare-checkup logout` | `--profile`, `--cf-bin` | Runs `cf auth delete <profile>` interactively, then removes the cf Vigilbase installed |
|
|
127
201
|
|
|
128
|
-
Each subcommand also works as `local cloudflare-checkup <subcommand>`.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
`
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
```
|
|
202
|
+
Each subcommand also works as `local cloudflare-checkup <subcommand>`.
|
|
203
|
+
|
|
204
|
+
The one command and `submit` first ask vigilbase.com whether local checkups are
|
|
205
|
+
available (no email, no credentials). When they are switched off, the command
|
|
206
|
+
stops before asking for your email with
|
|
207
|
+
`Local checkups aren't available right now.` and the hint
|
|
208
|
+
`Run the Cloudflare Checkup in your browser instead: https://vigilbase.com/tools/cloudflare-checkup`
|
|
209
|
+
(`LOCAL_MODE_DISABLED`). When vigilbase.com needs a newer CLI, it stops with
|
|
210
|
+
`CLI_UPGRADE_REQUIRED`, also before any email. If vigilbase.com doesn't answer
|
|
211
|
+
the check, the command goes on.
|
|
212
|
+
|
|
213
|
+
Then they verify your work email: the CLI asks for it (or takes `--email`),
|
|
214
|
+
vigilbase.com emails a 6-digit code, and the CLI asks for the code (without a
|
|
215
|
+
terminal, both are read from stdin, one line each; add `--yes`). In a terminal
|
|
216
|
+
both show an interactive timeline on stderr (inputs, arrow-key questions,
|
|
217
|
+
spinners, a collection progress bar); pipes, CI, `TERM=dumb` and `--json` keep
|
|
218
|
+
plain lines and prompts. Ctrl-C exits 130. The address, the code and the
|
|
219
|
+
session code are never echoed, logged, stored or passed to cf or npm. cf output
|
|
220
|
+
and stderr are never echoed; failures carry a stable `code` and a `hint` that
|
|
221
|
+
usually says to run the same command again. See LOCAL.md for the email
|
|
222
|
+
verification, the managed cf install, the allowlist, the environment policy,
|
|
223
|
+
the uploaded data and the error codes.
|
|
224
|
+
|
|
225
|
+
## Output and effects
|
|
226
|
+
|
|
227
|
+
Exit codes: **0** success, **1** validation, API, network or sign-in failure,
|
|
228
|
+
**2** HTTP 429 rate limiting. A completed scan whose result is unsuccessful
|
|
229
|
+
also exits 1. A signed-out `whoami` is not a failure, and a healthy `doctor`
|
|
230
|
+
does not need a sign-in. API error JSON keeps the status, code and retry delay
|
|
231
|
+
when available.
|
|
232
|
+
|
|
233
|
+
Vigilbase One's error messages are never shown, because they can describe
|
|
234
|
+
One's configuration: the CLI prints `Request failed (HTTP <status>).` When it
|
|
235
|
+
recognises the failure from the route, the status and One's error code, it adds
|
|
236
|
+
a hint of its own (`Hint: …` in text, `hint` in JSON):
|
|
237
|
+
|
|
238
|
+
| One answers | Hint |
|
|
239
|
+
| --- | --- |
|
|
240
|
+
| 400 without `--customer-id` to `support tickets`, or to a `cf` command that reads the Cloudflare workspace or checkups (`cf accounts`, `cf account`, `cf workspace`, `cf zones` with filters, `cf checkup`, `cf checkup start`) | `Vigilbase staff: add --customer-id <uuid>.` |
|
|
241
|
+
| 403 to `security settings …` or `security notifications preferences` with `--customer-id` | `Personal settings belong to each user, so View-as (--customer-id) cannot read them.` |
|
|
242
|
+
|
|
243
|
+
A security command that needs a customer (`FLAREHAWK_VIEW_AS_REQUIRED`) says
|
|
244
|
+
`Select a customer with --customer-id <customer UUID> for security commands.`
|
|
245
|
+
|
|
246
|
+
Security and customer operations keep JSON response envelopes and pagination
|
|
247
|
+
fields. Cloudflare inventory commands may apply the account or zone filter you
|
|
248
|
+
asked for locally as well as sending it to One; zone detail returns the
|
|
249
|
+
selected object. Text output is for people; use JSON for automation and
|
|
250
|
+
evidence export.
|
|
178
251
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
252
|
+
Provider credentials, signed delegation claims, internal bearer tokens and
|
|
253
|
+
organization overrides are never CLI inputs. Commands use named One routes,
|
|
254
|
+
with two exceptions. Local provider reads: `vigilbase cloudflare-checkup` runs
|
|
255
|
+
Cloudflare's own `cf` CLI on your machine with a fixed allowlist of read-only
|
|
256
|
+
commands; cf owns your Cloudflare login, and the Vigilbase CLI never reads,
|
|
257
|
+
prints, stores or uploads it. And the vigilbase.com local-session routes, which
|
|
258
|
+
are the checkup's only Vigilbase requests: GET `…/availability`, POST
|
|
259
|
+
`…/request` and POST `…/verify` without a credential, then GET `…/local-session`
|
|
260
|
+
and, after you confirm, POST `…/local-session/snapshot` with the exact snapshot
|
|
261
|
+
file, both authorized by the session code the email verification returned (see
|
|
262
|
+
LOCAL.md). Webhooks, cron and admin repair endpoints, interactive OAuth
|
|
263
|
+
handoffs, streaming or binary downloads, and endpoints that create records on
|
|
264
|
+
GET are not exposed. Remediation that needs durable approval and receipts stays
|
|
265
|
+
in its existing One and Vigil flows.
|