Upgrade from 1.0.x to 1.1.0
This is a coordinated application, database, storage, gateway, cache, and worker migration. The canonical detailed document is docs/migration-1.1-security-hardening.md.
Required review
- Map verified principal claims and explicitly configure any trusted gateway identity boundary.
- Decorate every shared scope column, provide all required values, replace boolean bypass with a bounded audited grant, and review every
unsafe*ORM access. - Add/backfill uploaded-file tenant/owner columns, add nullable
uploadPendingAtanddeletionPendingAtindexes, and migrate object keys without overwrite. - Configure private local/S3 storage, a nonblank S3 bucket, complete/default-chain credentials, file policies, validation, and trusted cleanup maintenance.
- Version Redis prefixes and add
CacheInterceptorregistration for every@Cached()path. - Add/reconcile job owner tokens and v2 lock identities; use callback
idempotencyKeyfor external effects. - Add/backfill action-history tenant/resource identity, read policy, redaction, and retention job.
- Upgrade to Node.js 20+ and remove AWS SDK v2 when application code no longer uses it.
Database order
Add nullable fields first, backfill/quarantine from authoritative ownership data, validate, then apply non-null and indexes. Stop incompatible workers around job-lock changes. Do not use TypeORM schema synchronization in production, and adapt the illustrative SQL in the canonical guide to your schema/migration framework.
Verification
Run cross-tenant ID, relation, batch, cache, file, history, and stale-worker tests; reconcile every migrated object; confirm no old worker emits legacy lock keys; then run the full package and docs release gates.
