Skip to content

Comments

feat: add persistent configuration management to eliminate repetitive parameters#56

Open
sneaxhuh wants to merge 1 commit intoakave-ai:mainfrom
sneaxhuh:feat/config-management-persistent-settings
Open

feat: add persistent configuration management to eliminate repetitive parameters#56
sneaxhuh wants to merge 1 commit intoakave-ai:mainfrom
sneaxhuh:feat/config-management-persistent-settings

Conversation

@sneaxhuh
Copy link

@sneaxhuh sneaxhuh commented Dec 3, 2025

Implements a comprehensive configuration system similar to AWS CLI, kubectl,and gcloud to solve the UX issue of repeatedly entering the same parameters for every command.

Changes:

  • Add new 'config' command with 5 subcommands (set/get/list/unset/path)
  • Store configuration in ~/.akave/config.json with 0600 permissions
  • Support all 8 repetitive parameters (node-address, private-key, etc.)
  • Auto-load config defaults for all commands via PreRunE hooks
  • Command-line flags always override config file values
  • Mask sensitive values (private-key, encryption-key) in output
  • Full test coverage with 5 new test cases

Before:
akavecli bucket create mybucket --node-address=... --private-key=... akavecli bucket list --node-address=... --private-key=...

After:
akavecli config set node-address connect.akave.ai:5000 akavecli config set private-key 0x123... akavecli bucket create mybucket akavecli bucket list

Testing:

  • All existing tests continue to pass (51+ tests)
  • New config tests verify core functionality
  • File permissions tested (0600)
  • JSON serialization validated
  • No regressions detected

Fixes #38

…ubectl,

and gcloud to solve the UX issue of repeatedly entering the same parameters
for every command.

Changes:
- Add new 'config' command with 5 subcommands (set/get/list/unset/path)
- Store configuration in ~/.akave/config.json with 0600 permissions
- Support all 8 repetitive parameters (node-address, private-key, etc.)
- Auto-load config defaults for all commands via PreRunE hooks
- Command-line flags always override config file values
- Mask sensitive values (private-key, encryption-key) in output
- Full test coverage with 5 new test cases

Before:
  akavecli bucket create mybucket --node-address=... --private-key=...
  akavecli bucket list --node-address=... --private-key=...

After:
  akavecli config set node-address connect.akave.ai:5000
  akavecli config set private-key 0x123...
  akavecli bucket create mybucket
  akavecli bucket list

Testing:
- All existing tests continue to pass (51+ tests)
- New config tests verify core functionality
- File permissions tested (0600)
- JSON serialization validated
- No regressions detected

Fixes akave-ai#38

Signed-off-by: sneax <paladesh600@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repetitive parameter entry reduces usability

1 participant