Package and Deployment
IntegrateWise is packaged and deployed as a Cloudflare Workers platform. The separate frontend-only repositories described in historical material are not deployment targets for this repository.
The cross-functional release decision, design-partner rollout, and public launch
sequence live in Go-Live and GTM Plan. This document
remains the mechanical package and Worker deployment runbook.
Release boundary
The core Worker release profile is deliberately explicit:
pipeline → connector → mcp-connector → connector-sync → knowledge
→ continuity → intelligence → workflow → l2 → gateway
Gateway is always last. The profile includes only Workers that declare both locked deployment surfaces: test and canonical prod. A Worker must not be added until its surface configuration is complete.
mcp-connector is checked separately because it must remain isolated as:
test: mcp-connector-test
prod: mcp-connector-prod
Package a release
Create an immutable source archive and SHA-256 checksum from the current commit:
pnpm release:package
The archive is placed in releases/ and includes a RELEASE_MANIFEST.json with the commit, platform version, and deployment target. It uses git archive, so it excludes dependencies, build output, environment files, and any uncommitted work. To package a particular commit or tag:
pnpm release:package -- --ref <commit-or-tag>
Publish public packages
Only @integratewise/sdk and @integratewise/spine-schema are currently
publishable frontend contracts. Services and implementation packages stay
private; frontends call the Gateway through the SDK instead of importing service
code.
# Builds, typechecks, tests, and inspects both npm tarballs.
pnpm release:packages:check
# Requires a clean worktree, npm authentication for @integratewise, and new versions.
pnpm release:packages:publish
The publish command refuses to overwrite an existing npm version. Bump the
package versions and commit them before publishing.
Validate before deployment
Validation is local and does not call Cloudflare:
pnpm release:check -- --environment test
pnpm release:check -- --environment prod
It verifies the selected Workers have an entry point and an environment-specific Worker name ending in -test or -prod.
Every non-dry deployment also runs Wrangler dry-runs first. A Wrangler warning blocks publication by default, because it commonly means an environment is missing a non-inherited binding. --allow-wrangler-warnings is an explicit operational override, not a normal release path.
Deploy to test
Test is the first remote surface:
pnpm release:deploy -- --environment test --service core
To validate Wrangler builds without publishing a Worker:
pnpm release:deploy -- --environment test --service core --dry-run
For a shared release, use the Release Core Workers GitHub Action instead
of a direct Worker deployment. It accepts only the locked core profile or one
named core Worker, defaults to a dry run, and invokes this same canonical
release script. Worker source changes and package changes do not publish
Workers automatically.
Deploy to production
Production uses the canonical prod environment. A non-dry deployment requires all of the following:
--confirm-productionCLOUDFLARE_API_TOKEN- CI, or
ALLOW_LOCAL_PROD_DEPLOY=trueafter explicit approval - a recorded successful test-release run or change record when using the
shared GitHub Action
pnpm release:deploy -- --environment prod --service core --confirm-production
Local development is not a remote deployment surface. Use pnpm dev or a Worker’s wrangler dev command instead.
Verify
After a successful production deployment, verify the Gateway health endpoint:
pnpm release:verify
The release validator proves configuration shape and Worker-name isolation. Before a first deployment or any storage-binding change, also confirm in Cloudflare that test and prod do not share KV namespaces, Queues, or D1 databases, as required by Platform Lock v1.0.