feat: release v1.3.0 - Docker Stack, Multi-Schema Support, Auto-Container, CI Improvements, and Documentation#44
Conversation
…secrets from public configuration
…development sessions
…database cloning via container execution
…mote PostgreSQL version detection
…actor configuration into committed and ignored secrets files
…ig to gitignored secrets file
…artup logic across database commands
…m postkit.config.json to postkit.secrets.json in E2E tests
…e while ignoring ephemeral .postkit files
…lizing utility functions and standardizing deployment steps.
…file deletion using fs/promises
…iguration storage, and internal service functions
…urable base branches
…ches for git comparisons
chore: postkit agent skill
…crets refactor: split config/secrets, auto-container mode, dedup utilities
…ingle to array-based schema configuration and per-schema file handling
…and app subdirectories
…re planning migration
…cture documentation
… during stack setup
…during stack startup
…ng, and handle empty migration results gracefully
…dant healthcheck from keycloak compose config
…dge and explicit network naming
…se containers on SIGINT/SIGTERM
…-support feat: implement container interrupt handling to clean up local database
Deploying postkit with
|
| Latest commit: |
3b04300
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://3139612c.postkit.pages.dev |
⏺ Issue 1 — No Fix NeededCross-schema migration is not a supported feature of the As a result, a failure during this step has no impact on supported workflows. ⏺ Issue 2 — No Fix NeededThe fingerprint check is a valid and necessary safety mechanism. The existing error message already provides clear guidance:
Re-running the Introducing a
This friction is intentional and helps prevent unsafe operations. Answers for Questions1. Why is intermediate apply for cross-schema resolution non-fatal?The non-fatal behavior is intentional. The intermediate apply strips structural SQL only ( Error types that are safe to ignore:
If the apply fails for a genuinely structural reason (e.g. a missing type), the dependent schema's pgschema run will fail anyway with a direct, clear error. The non-fatal warn avoids false-fatal errors from the "already exists" class while still surfacing that something went wrong.
2. Should empty schema directories be allowed?The skip-by-warn behavior is intentional and the correct UX for the current design.
Running 3. Any plans for automated config migration?Automated config migration already exists.
The migrated result is written back to A separate 4. Is
|
| Example value | Meaning |
|---|---|
160003 |
PostgreSQL 16.3 |
150008 |
PostgreSQL 15.8 |
140012 |
PostgreSQL 14.12 |
The implementation at database.ts:148 extracts the major version with Math.floor(num / 10000), which is correct for this format. No known provider deviates from it.
…nly run during initial deployment
…ory seed deployment during stack initialization
…ructure to scaffold roles and schema files
|
Thanks for the detailed responses on Issues 1–2 and all four questions — the reasoning is clear and no further discussion is needed there. However, Issues 3 and 4 from the review were not addressed. Could you confirm whether these are no-fix (with rationale, as you did for Issues 1–2) or if a fix is planned? Issue 3 — Container cleanup on SIGKILLIf the CLI process is killed with Is adding process exit signal handlers ( Issue 4 — Port exhaustion error messageWhen all ports 15432–15532 are taken, the error thrown gives no actionable guidance to the user. The suggestion was to include a hint such as: ...so users can identify and clean up leftover PostKit containers. This is a small UX improvement — is it something you can add to the error message? |
… targets with validation
… directory into container
📝 Blog Post Fact-Check — PR #44Fact-checked all 5 blog posts against both the source code and general technical knowledge (Prisma, Supabase, PostgreSQL, Docker). Blogs 2 and 4 are fully accurate. Found issues in Blogs 1, 3, and 5. ✅ No Issues
🟡 Blog 1 —
|
…e mapper, and move Keycloak provider syncing to initialization
… modules and workflows
|
Fixed them in the upcoming PR #42. The read issue has also been fixed. |
…ration feat: implement Docker stack module for local backend management
feat: release v1.3.0 - Docker Stack, Multi-Schema Support, Auto-Container, CI Improvements, and Documentation
Branch:
development→mainSummary
This release introduces a major upgrade to PostKit's local development experience with a fully integrated Docker Stack module, while expanding the database engine with multi-schema support, automatic local PostgreSQL containers, improved CI/CD workflows, and comprehensive documentation updates.
The new Docker Stack module enables developers to manage PostgreSQL, Keycloak, PostgREST, and Traefik using a single CLI, providing an opinionated local backend environment with automated initialization, Keycloak configuration, JWT synchronization, and lifecycle management.
In addition, v1.3.0 delivers a redesigned database architecture with multi-schema support, improved configuration management, automatic Docker-based PostgreSQL provisioning, stronger GitHub Actions pipelines, and significant documentation and testing improvements.
Changes
Docker Stack
postkit stackmodule with commands:stack upstack downstack statusstack logsstack restartstack keysstack realmis_initialflag for first-time initializationstack down --volumesDatabase
schemawithschemaspostkit db schema addcommanddb/infradirectoryConfiguration
postkit.config.jsonpostkit.secrets.jsonCI/CD
Documentation
Testing
Type of Change
Test Plan
npm run test)npm run test:e2e)npm run build)Breaking Changes
Configuration changes
Directory structure
Schema layout
Generated files
Session state
Existing active sessions should be cleared before upgrading: