cosmetic: config set storage_url to s3:// is refused until the S3 keys are set #428

Closed
opened 2026-11-11 01:01:48 +01:00 by clawbot · 2 comments
Collaborator

Found by the acceptance test (#418).

Steps to reproduce

  • Start from a config that loads, with a file:// destination.
  • Follow the README's "Restoring on another machine" block in its order: vaultik config set storage_url "s3://bucket/prefix?endpoint=https://s3.example.com", then the two s3.* keys.

What happened

The first command is refused: vaultik would not load the config after this change, so the file was not changed: s3.access_key_id is required for s3:// URLs. The order in the README works only on the config config init writes, which does not load yet and is checked one setting at a time. A user moving an existing setup from a local directory to S3 has to set the keys first, which nothing says.

What should happen

Either config set accepts the URL when the only remaining load error is a credential the new scheme needs (and says what to set next), or the README and the refusal tell the user to set s3.access_key_id and s3.secret_access_key before storage_url.

Model: fable-5-1

Found by the acceptance test (https://git.eeqj.de/sneak/vaultik/issues/418). **Steps to reproduce** - Start from a config that loads, with a `file://` destination. - Follow the README's "Restoring on another machine" block in its order: `vaultik config set storage_url "s3://bucket/prefix?endpoint=https://s3.example.com"`, then the two `s3.*` keys. **What happened** The first command is refused: `vaultik would not load the config after this change, so the file was not changed: s3.access_key_id is required for s3:// URLs`. The order in the README works only on the config `config init` writes, which does not load yet and is checked one setting at a time. A user moving an existing setup from a local directory to S3 has to set the keys first, which nothing says. **What should happen** Either `config set` accepts the URL when the only remaining load error is a credential the new scheme needs (and says what to set next), or the README and the refusal tell the user to set `s3.access_key_id` and `s3.secret_access_key` before `storage_url`. Model: fable-5-1
Author
Collaborator

Plan, the second option of the issue: when config set storage_url is refused because the new scheme needs credentials that are not set, the refusal names them (s3.access_key_id and s3.secret_access_key) and says to set them first. config set keeps refusing a change that leaves the config unable to load.

Package: internal/cli (config.go). Starts after #419 merges, which changes the same file.

For every unit from the acceptance test

  • One branch off current next, one PR with base next, labelled needs-review and assigned to clawbot. The title ends (closes #N).
  • Add nothing to docs/TODO.md. sneak ruled on 11 November that it is not a history document (#440).
  • README.md on next: change only a sentence the fix makes false. The rewritten README in #399 is with sneak and is updated after this merges.
  • A test that fails on current next shows the fix. Run make fmt and make check before the final push.

Model: opus-5-5

Plan, the second option of the issue: when `config set storage_url` is refused because the new scheme needs credentials that are not set, the refusal names them (`s3.access_key_id` and `s3.secret_access_key`) and says to set them first. `config set` keeps refusing a change that leaves the config unable to load. Package: `internal/cli` (`config.go`). Starts after https://git.eeqj.de/sneak/vaultik/issues/419 merges, which changes the same file. **For every unit from the acceptance test** - One branch off current `next`, one PR with base `next`, labelled `needs-review` and assigned to `clawbot`. The title ends `(closes #N)`. - Add nothing to `docs/TODO.md`. sneak ruled on 11 November that it is not a history document (https://git.eeqj.de/sneak/vaultik/issues/440). - `README.md` on `next`: change only a sentence the fix makes false. The rewritten README in https://git.eeqj.de/sneak/vaultik/pulls/399 is with sneak and is updated after this merges. - A test that fails on current `next` shows the fix. Run `make fmt` and `make check` before the final push. Model: opus-5-5
clawbot self-assigned this 2026-11-11 01:21:29 +01:00
Author
Collaborator

Built in #454: when config set storage_url to an s3:// URL is refused for a missing S3 credential, the refusal ends set s3.access_key_id and s3.secret_access_key first, then storage_url. README unchanged.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/vaultik/pulls/454: when `config set storage_url` to an `s3://` URL is refused for a missing S3 credential, the refusal ends `set s3.access_key_id and s3.secret_access_key first, then storage_url`. README unchanged. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/vaultik#428