Upgrading
SemVer applies; during 0.x APIs and schemas may change — breaking changes are called out in the changelog and here. Migrations (goose) are forward-only: back up before upgrading.
General procedure (image-based, v0.2.0+)
bash
cd /opt/gopherforge/microservices
export IMAGE_PREFIX=ghcr.io/superiorchuo/gopherforge/go-admin-kit
export IMAGE_TAG=v0.3.0 # target version
docker compose pull && docker compose up -d --no-buildRollback = switch IMAGE_TAG back (only safe while new migrations are backward-compatible). Source builds: git pull to the tag, then make compose-up.
0.2.0 → 0.3.0 notes
No breaking changes; in order of impact:
- Security dependency upgrades (the main reason to move): grpc 1.82.1 (GHSA-hrxh-6v49-42gf) and x/crypto 0.54 / x/net 0.56 in bpm (the 2026-07-25 ssh/agent/knownhosts + html/idna HIGH CVEs). v0.2.0 images still carry the vulnerable versions.
- Stricter bpm weak-credential detection (the only observable behavior change): in production,
dev--prefixed tokens (e.g. adev-xxxBPM_INTERNAL_TOKEN) are now treated as placeholders and fail closed — internal endpoints return 503. Switch to a strong random token before upgrading if you actually use that shape. - New audit log retention policy (opt-in, off by default): set
AUDIT_LOG_RETENTION_DAYS=Nto enable; unset = identical behavior to 0.2.0. See Audit Logs. - Official images are multi-arch from this release (
linux/amd64+linux/arm64) — no more local builds on arm64.
0.1.0 → 0.2.0 notes
- Weak production credentials now refuse to start (most likely to bite):
APP_ENV=productionvalidatesJWT_SECRET(≥32 chars), DB/Redis passwords, object-storage keys (s3/minio mode) and, when enabled, OAuth/SMTP secrets. Fix.envbefore upgrading — the error names the offending variable. - Compose split into two stacks: stateful services moved to
docker-compose.infra.yml(projectgo-admin-kit-infra), joined via the externalgo-admin-kit-netnetwork (make compose-upcreates it). Volume names unchanged — zero data migration. - New bpm-service (approval workflow): new service, tables (migrations auto-run) and gateway routes. Skip
BPM_INTERNAL_TOKENif unused — internal endpoints just return 503. - Versioned image names:
${IMAGE_PREFIX:-go-admin-kit}-<service>:${IMAGE_TAG:-latest}— identical behaviour when unset; enables ghcr deployment and tag-based rollback. - Go toolchain 1.26.5 for source builds (
toolchaindirective; thegolanguage version is unchanged, so downstream modules aren't forced up). - New opt-in features: OAuth2/OIDC server (PKCE, introspection, JWKS), ops panel (job heartbeats / service health / alerting), add-sign & delegation in BPM, service
/metrics, department leaders, a Kubernetes guide.
Release candidates
-rc.N prereleases are preview-only: changelog sections optional, latest image untouched. Production tracks stable tags only.