feat(secrets): add local storage mode#75
Conversation
Test & Lint Summary
|
noa-lucent
left a comment
There was a problem hiding this comment.
Requesting changes.
Main blockers:
- Please avoid sending empty-string placeholders for mutually exclusive fields (
valuevssecretProviderId/remoteName). This is risky with proto3optional/oneofpresence and weakens the invariant. Build a discriminated union payload and omit irrelevant fields. - Storage mode detection should reflect the invariant (remote requires BOTH providerId + remoteName). The current
providerId || remoteNamecheck masks partial/invalid states.
Nice-to-have:
- Update the remote name placeholder/help text to match the spec format.
- Consider surfacing missing provider IDs instead of falling back to a generic label.
Tests (recommended): add a minimal e2e asserting local secrets show "Built-in"/"Stored in console" and that plaintext values never appear in the list/edit UI.
|
Summary:
Tests:
|
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review complete.
- Storage-mode inference now matches the invariant (remote requires provider+remote name; partial configs surfaced as invalid).
- Create payloads no longer send empty-string placeholders; irrelevant fields are omitted.
- Remote name UX updated to match the
<mount>/<path>/<key>format. - Added e2e coverage for local secrets (and verifies plaintext is not shown).
LGTM.
|
Summary:
Tests:
|
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review complete.
New commit adds Argos screenshots for secrets create/edit flows. The screenshots don’t expose plaintext secret values (local value remains empty/masked), and the new create-dialog storage-mode coverage looks good.
LGTM.
|
Summary:
Tests:
|
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review complete.
Reviewed latest UX change (single provider selector with Built-in first; no separate storage-mode selector).
- Provider selector cleanly represents storage modes (Built-in vs remote providers) and still enforces the mutual-exclusion invariant in validation + payload construction.
- Edit flow still prevents mode switching (Built-in <-> remote) via disabled options while allowing remote-only adjustments.
- Updated e2e coverage reflects the new UX and still asserts no plaintext display.
LGTM.
* feat(secrets): support local storage * fix(secrets): tighten storage mode handling * test(e2e): add secrets argos shots * feat(secrets): unify provider selection
Summary
Testing
Fixes #73