Migration v0.16 → v0.17
What changed and how to upgrade your deployment and integrations.
v0.17 is currently alpha — pin image and package versions in production until stable. Review changelog and GitHub releases for patch notes.
Major changes
Communications module
Separate email, sms, and push-notifications modules are consolidated into communications.
- Replace legacy module containers with communications in Helm, compose, and standalone images
- Update MCP URL:
?modules=communications(aliasesemail,push,smsstill work) - Update documentation links from
/docs/modules/email(v0.16 archive) to /docs/modules/communications - Config migrates under the communications key (
email,pushNotifications,sms,orchestrationnested fields) - grpc-sdk client names (
grpcSdk.email,grpcSdk.sms,grpcSdk.pushNotifications) route to communications automatically
Unified templates coordinate messaging across channels — Handlebars for email, {{variable}} interpolation for SMS and push. Use orchestration for multi-channel broadcasts and fallback chains (for example, email then SMS).
Removed modules
| v0.16 module | v0.17 |
|---|---|
| email, sms, push-notifications | communications |
| forms | Removed — use database schemas + custom endpoints or the functions module |
Remove forms from module enable lists and deployment manifests.
Service accounts → Admin API tokens
Authentication service account login (API keys stored in the Service collection) is removed in v0.17 (breaking change).
- Before:
POST /authentication/servicewith service-account credentials - After: Create
cdt_API tokens on core viaPOST /api-tokens(authenticated with admin JWT ormasterkey) - Use the token as
Authorization: Bearer cdt_…for Admin API, MCP, and CI — same privilege model as the creating admin - The
Servicecollection is dropped on authentication module startup migration
Never expose cdt_ tokens in application runtime or browser-accessible config. See Admin API.
Core package merge
admin, commons, and core are merged into packages/core. Custom modules and operators that imported from separate packages should depend on @conduitplatform/grpc-sdk and packages/core paths only.
Admin MCP server
- Streamable HTTP MCP at
{ADMIN_BASE_URL}/mcp - Protocol
2025-06-18 - Enable
transports.mcp: truein admin config - Auth: admin JWT or
cdt_API tokens (recommended for agents and CI)
Deep readiness (Kubernetes)
Core exposes deep GET /ready on the Admin port (default 3030):
- Returns JSON with per-check status; HTTP 503 when not ready
- Verifies bootstrap, gRPC health, Redis (when
READY_CHECK_REDISis set), and modules listed inREADY_REQUIRED_MODULES - Pass
?legacy=trueorAccept: text/plainfor the legacy plain-text response
The official Helm chart configures HTTP readiness and startup probes against /ready. The router's shallow GET /ready on :3000 does not replace core's probe. See Kubernetes and Helm and Architecture.
Functions module
vm2removed — handlers run in a constrainednode:vmcontext with a limitedrequiresurface (lodash,axios) and per-invocation timeout- Cron function type — schedule admin-defined handlers with cron expressions (alongside request, webhook, middleware, socket, and event types)
- Treat function code as admin-trusted server configuration, not tenant-submitted scripts
Toolchain (platform developers)
- Node.js 24+ and pnpm + Turbo replace Yarn/Lerna for Conduit development
- Application consumers unaffected — Docker images and Client API contracts remain the same
GitOps (preview)
Admin state export/import endpoints for config-as-code workflows — see GitOps state export.
Other breaking changes
- Router proxy routes removed — use explicit module routes or functions handlers
- Database: MongoDB read preference, write concern, and read concern configurable via
PATCH /config/database; optional view cleanup cron
Upgrade steps
- Pull v0.17 images or rebuild from
main/ the latest alpha tag - Replace legacy communication module containers with communications; remove forms
- Migrate automation from authentication service accounts to
cdt_API tokens - Update MCP client config:
?modules=communications(or required module list) - For Kubernetes: confirm readiness probes target core
GET /readyon port 3030 - Re-run integration tests against Client API (
:3000) - Read changelog for patch-level fixes
Breaking changes summary
| Change | Action required |
|---|---|
| Communications merge | Swap module images; update MCP and config paths |
| Forms removed | Remove from deployments; migrate to database/functions |
| Service accounts removed | Issue cdt_ tokens via Admin API |
| Proxy routes removed | Remove proxy config; use module or function routes |
| Alpha stability | Pin versions; test before production promotion |