Unclassified

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-production
  • CLOUDFLARE_API_TOKEN
  • CI, or ALLOW_LOCAL_PROD_DEPLOY=true after 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.