feat: l for details; details for vaults, scopes and files; getting started; the age of cached lists #17

Merged
keb merged 17 commits from feat/l-for-details into main 2026-10-11 14:24:09 +02:00
Owner

Combines #14, #15 and #16 with the l change, in one PR.

l goes to the details of what's selected. On a vault, l now opens its details on the right instead of its secrets. enter still drills in (source → vaults → secrets), h goes back, tab cycles the panes. A new lists.details binding (l, right); lists.nextPane is now just tab.

Vaults, scopes and files show their details (was #16)

  • Azure vault: group, location, SKU, access model, soft delete, purge protection, network, private endpoints, tags. They come with the Resource Graph query that lists vaults (or the management-API fallback): no extra requests, and cached with the list.
  • Databricks scope: who has access (manage/write/read). One request per scope, only once the cursor rests on it, cancelled when you move on, never during search. To non-managers it says it can't be seen.
  • Repo file: encryption and the (public) keys it's encrypted for, last encrypted, git status and last commit. No network. A plain .env that git tracks, or doesn't ignore, is red.

With nothing to show, the right pane says how to get started (was #15): az login (L runs it), databricks auth login --host …, repos, --demo, docs.

A list from the cache says how old it is while it reloads (was #14): cached 3h ago · 2 of 3 on the bottom border. Also fixes the Sources spinner missing during that reload.

Docs: README, keys.md, config.md, azure.md, databricks.md, repos.md. Tests for each part.

Not verified against a live Azure tenant (both accounts needed a new sign-in).

🤖 Generated with Claude Code

Combines #14, #15 and #16 with the `l` change, in one PR. **`l` goes to the details of what's selected.** On a vault, `l` now opens its details on the right instead of its secrets. `enter` still drills in (source → vaults → secrets), `h` goes back, `tab` cycles the panes. A new `lists.details` binding (`l`, `right`); `lists.nextPane` is now just `tab`. **Vaults, scopes and files show their details** (was #16) - Azure vault: group, location, SKU, access model, soft delete, purge protection, network, private endpoints, tags. They come with the Resource Graph query that lists vaults (or the management-API fallback): **no extra requests**, and cached with the list. - Databricks scope: who has access (manage/write/read). **One request per scope**, only once the cursor rests on it, cancelled when you move on, never during search. To non-managers it says it can't be seen. - Repo file: encryption and the (public) keys it's encrypted for, last encrypted, git status and last commit. No network. A plain `.env` that git tracks, or doesn't ignore, is red. **With nothing to show, the right pane says how to get started** (was #15): `az login` (`L` runs it), `databricks auth login --host …`, repos, `--demo`, docs. **A list from the cache says how old it is while it reloads** (was #14): `cached 3h ago · 2 of 3` on the bottom border. Also fixes the Sources spinner missing during that reload. Docs: README, keys.md, config.md, azure.md, databricks.md, repos.md. Tests for each part. Not verified against a live Azure tenant (both accounts needed a new sign-in). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
keb added 9 commits 2026-10-11 13:51:23 +02:00
feat: a list from the cache says how old it is while it reloads
PR title / Conventional title (pull_request) Successful in 2s
CI / Checks (pull_request) Successful in 24s
4d6db97d54
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
feat: with nothing to show, the right pane says how to get started
CI / Checks (pull_request) Successful in 23s
PR title / Conventional title (pull_request) Successful in 2s
164d933bea
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
feat: vaults, scopes and files show their details: a vault's settings, who has a scope, a file's keys and git status
CI / Checks (pull_request) Successful in 24s
PR title / Conventional title (pull_request) Successful in 1s
5381cf5d43
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
feat: a vault's settings come with the vault list, with no requests of their own
CI / Checks (pull_request) Successful in 24s
PR title / Conventional title (pull_request) Successful in 2s
879b961ac5
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix: details load once the cursor rests, and moving on cancels them
CI / Checks (pull_request) Successful in 25s
PR title / Conventional title (pull_request) Successful in 1s
cd35a8acf4
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge remote-tracking branch 'origin/feat/container-details' into feat/l-for-details
CI / Checks (pull_request) Failing after 5s
PR title / Conventional title (pull_request) Successful in 2s
75f62240fc
# Conflicts:
#	internal/ui/app/app_test.go
keb added 1 commit 2026-10-11 13:53:23 +02:00
fix: the merged tests' closing braces
CI / Checks (pull_request) Successful in 24s
PR title / Conventional title (pull_request) Successful in 2s
8e8d1c5af0
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
keb added 2 commits 2026-10-11 13:56:23 +02:00
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge branch 'feat/expiring' into feat/l-for-details
CI / Checks (pull_request) Successful in 25s
PR title / Conventional title (pull_request) Successful in 2s
b64ca81dfe
# Conflicts:
#	docs/azure.md
#	internal/ui/app/app_test.go
keb added 1 commit 2026-10-11 13:57:47 +02:00
fix: lazysecrets expiring says each problem once, and exits like grep
CI / Checks (pull_request) Successful in 20s
PR title / Conventional title (pull_request) Successful in 1s
bf374176df
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
keb added 1 commit 2026-10-11 14:04:15 +02:00
feat: when a vault refuses, what to check: PIM, the owner, or the network
CI / Checks (pull_request) Successful in 21s
PR title / Conventional title (pull_request) Successful in 1s
206e26fdba
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
keb added 1 commit 2026-10-11 14:07:13 +02:00
feat: what to check when access is refused, as a list, for Databricks too
CI / Checks (pull_request) Successful in 23s
PR title / Conventional title (pull_request) Successful in 1s
32a2c3be20
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
keb added 1 commit 2026-10-11 14:20:20 +02:00
feat: a refusing Databricks profile that signs in through az says to check the az account
CI / Checks (pull_request) Successful in 24s
PR title / Conventional title (pull_request) Successful in 1s
4b2a6a8ae8
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
keb added 1 commit 2026-10-11 14:23:15 +02:00
refactor: no group list in an account's details, and no Microsoft Graph call for it
CI / Checks (pull_request) Successful in 22s
PR title / Conventional title (pull_request) Successful in 1s
18918db1d4
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
keb merged commit 09bacd8438 into main 2026-10-11 14:24:09 +02:00
keb deleted branch feat/l-for-details 2026-10-11 14:24:09 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: keb/lazysecrets#17