Commit dabbbef
feat: emit JSON for env list, database list/query, and logs (NDJSON)
Third slice of the agent-ergonomics series. Wires `--json` (from #91)
into the list/inspect commands that an agent would normally pipe into
`jq`:
- `env list --json` — array of `{ id, key, value, isSecret, contexts }`.
Secret values are emitted as `null` rather than the `***` placeholder
so agents can tell "secret" from "literally three asterisks". Contexts
are resolved to names.
- `database list --json` — array of database instances with `name`,
`engine`, `createdAt`, `assignments` (app slugs), `connection` (the
safe-to-display fields), and a nested `databases` array.
- `database query --json` — `{ rows: [...] }` on success;
`{ error: { code, message, ... } }` (via the existing error envelope)
with errorCode `POSTGRES_ERROR` or `QUERY_ERROR` on failure.
- `logs --json` — NDJSON: one log record per line on stdout, fields
flattened to lowerCamelCase (`timestamp`, `traceId`, `severity`,
`severityNumber`, `body`, `scope`, `revision`, `attributes`). Pipes
cleanly into `jq -c .` or `grep -F`. The "connected, streaming logs"
preamble is suppressed.
Human output is unchanged when `--json` is not set.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent cfd9e77 commit dabbbef
3 files changed
Lines changed: 78 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
4 | 9 | | |
5 | 10 | | |
6 | 11 | | |
| |||
244 | 249 | | |
245 | 250 | | |
246 | 251 | | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
247 | 266 | | |
248 | 267 | | |
249 | 268 | | |
| |||
318 | 337 | | |
319 | 338 | | |
320 | 339 | | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
321 | 356 | | |
322 | 357 | | |
323 | 358 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
4 | 9 | | |
5 | 10 | | |
6 | 11 | | |
| |||
42 | 47 | | |
43 | 48 | | |
44 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
45 | 65 | | |
46 | 66 | | |
47 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
| 149 | + | |
149 | 150 | | |
150 | 151 | | |
151 | 152 | | |
| |||
160 | 161 | | |
161 | 162 | | |
162 | 163 | | |
163 | | - | |
| 164 | + | |
164 | 165 | | |
165 | 166 | | |
166 | 167 | | |
| |||
174 | 175 | | |
175 | 176 | | |
176 | 177 | | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
177 | 197 | | |
178 | 198 | | |
179 | 199 | | |
| |||
0 commit comments