v0.6.0
Breaking Changes
Redis Schema Migration Required
Existing deployments must migrate Redis keys to hash-tagged format before upgrading to v0.6.0. This enables Redis Cluster support for horizontal scaling.
Schema Change
The Redis key structure has been updated to support Redis Cluster by adding hash tags:
| OLD SCHEMA | NEW SCHEMA |
|---|---|
tenant:123 |
tenant:{123}:tenant |
tenant:123:destinations |
tenant:{123}:destinations |
tenant:123:destination:abc |
tenant:{123}:destination:abc |
Why?
Redis Cluster distributes keys across nodes using hash slots. Without hash tags, related keys like tenant:123 and tenant:123:destinations could be on different nodes, causing CROSSSLOT errors during transactions. Hash tags {...} ensure all tenant data maps to the same hash slot, enabling atomic multi-key operations.
outpost binary behavior change
The outpost binary is now a unified CLI that consolidates server and migration operations.
The binary interface has changed:
Before v0.6.0:
outpost # Start the serverv0.6.0 and later:
outpost serve # Start the server
outpost migrate # Run migrations
outpost --version- Docker service users (e.g., docker-compose up) - No changes required. The container
still starts the server by default. - Docker CLI users (e.g., docker run hookdeck/outpost ...) - The entrypoint is now the
unified CLI, so commands change as shown above. - Binary users - Update scripts/commands to use outpost serve instead of outpost.
- NOTE: The
outpostCLI orchestratesoutpost-serverand
outpost-migrate-redisbinaries. All three binaries must be in the same directory or
available in your $PATH for the CLI to function correctly.
- NOTE: The
Migration Steps
Option 1: Using environment variables
docker run --rm \\
-e REDIS_HOST=your-host \\
-e REDIS_PASSWORD=your-password \\
hookdeck/outpost:v0.6.0 migrate plan
Option 2: Using CLI flags
docker run --rm hookdeck/outpost:v0.6.0 migrate plan \\
--redis-host=your-host \\
--redis-password=your-password
Option 3: Using .env file
docker run --rm --env-file .env hookdeck/outpost:v0.6.0 migrate plan
Then proceed with apply, verify, deploy, and cleanup:
docker run --rm -it hookdeck/outpost:v0.6.0 migrate apply [options]
docker run --rm hookdeck/outpost:v0.6.0 migrate verify [options]
# Deploy v0.6.0 and test thoroughly
docker run --rm -it hookdeck/outpost:v0.6.0 migrate cleanup [options]
📖 Full guide: Outpost Migration Guide
X-Outpost-Timestamp header and metadata timestamps now use Unix seconds
All timestamps now consistently use Unix seconds to align with the signature format. Applications parsing these timestamps will need to update their logic to expect seconds instead of milliseconds.
Features
- Core: Add Redis Cluster support with TLS and automatic node discovery (#465) by @leggetter
- Core: Add unified Outpost CLI with migration tool (
outpost migrate) (#498) by @alexluong
Fixes
- Portal: Fix inline SVG icons inflating table row height (#501) by @leggetter