Upgrading to v0.23.0
Kāore anō tēnei ihirangi kia wātea i tō reo.
v0.23.0 is a maintenance release that converts the main config file (etc/config.yaml) from symbol keys to string keys. This is part of a series of changes preparing for the v0.24.0 release.
Before You Start
Section titled “Before You Start”- Back up your configuration files. Especially
etc/config.yamland any custom.envfiles. - Back up your Redis data.
redis-cli BGSAVEor equivalent.
Migration Required
Section titled “Migration Required”The app will halt on boot if it detects the old config format. You have three options for handling the migration.
Option 1: Auto-migrate (recommended)
Section titled “Option 1: Auto-migrate (recommended)”Set the CONFIG_MIGRATE=auto environment variable. The migration runs automatically before the app starts.
docker run -p 3000:3000 \ -e SECRET=$SECRET \ -e REDIS_URL=redis://your-redis-host:6379/0 \ -e CONFIG_MIGRATE=auto \ -v $(pwd)/etc/config.yaml:/app/etc/config.yaml \ onetimesecret/onetimesecret:v0.23.0Option 2: Manual migration
Section titled “Option 2: Manual migration”Run the migration script yourself before starting the app:
bundle exec ruby migrations/20250727-1523_01_convert_symbol_keys.rb --dry-runReview the output, then apply:
bundle exec ruby migrations/20250727-1523_01_convert_symbol_keys.rb --runOption 3: Skip (not recommended)
Section titled “Option 3: Skip (not recommended)”Set CONFIG_MIGRATE=skip to bypass the migration check. The app will attempt to start with the old config format, which may cause unexpected behavior.
What the Migration Does
Section titled “What the Migration Does”The migration converts YAML keys in etc/config.yaml from Ruby symbol format (:key) to plain string format (key). No values are changed — only the key syntax is updated. The migration script creates a backup of your original file before making changes.
Boot Prompt
Section titled “Boot Prompt”If you start the app without setting CONFIG_MIGRATE, you’ll see this:
INFO: Running entrypoint.sh...
ERROR: Migrations needed before startup
Pending migrations: bundle exec ruby migrations/20250727-1523_01_convert_symbol_keys.rb --dry-run
Options: 1. Auto-migrate: Restart with CONFIG_MIGRATE=auto 2. Manual: Run each migration with --run flag 3. Skip: Set CONFIG_MIGRATE=skip (not recommended)Verify
Section titled “Verify”After starting, confirm everything is working:
- Create a secret, retrieve it
- If authentication is enabled: sign in, sign out
- Check logs for any warnings about config format
If you run into issues not covered here, please open an issue on GitHub.