feat: add secure remote gateway access - #331
Conversation
Checkpoint via cy-loop-tasks (iteration 5, phase B mode=tasks). Adds daemon-owned tier listeners, device authentication, secure pairing and credentials, stream tickets, live revocation, transaction mutation fencing, transport parity, generated contracts, and gateway documentation. Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 11, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 15, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 17, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 19, phase B mode=tasks). QA execution settled all reset scenarios, re-walked six fixes, passed strict evidence audit, and ended with a clean teardown. Full workstream gate remains deferred until the single final review remediation is complete. Co-Authored-By: Codex <[email protected]>
Resolve the sole deep-review round across the Gateway runtime, CLI, SDKs, web UI, documentation, package boundaries, and QA evidence. Fix nullable bridge provider configuration and preserve exact public SDK and native-tool metadata contracts.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Too many files changed for review (802 files, 100 file limit). |
|
Important Review skippedToo many files! This PR contains 563 files, which is 263 over the limit of 300. To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (239)
📒 Files selected for processing (563)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
React Doctor found no new issues. 🎉 Reviewed by React Doctor for commit |
Co-Authored-By: Claude Fable 5 <[email protected]>
Co-Authored-By: Claude Fable 5 <[email protected]>
Resolve go.sum conflict by keeping main's new gateway deps (coder/websocket, coreos/go-iptables) alongside the release bump of compozy-web-assets to v0.0.68, and list PR #331 in the release notes. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Summary
Changes
connectivity.providerextension contract to the Go and TypeScript SDKs, provider challenge verification and supervision, a bundled Tailscale provider, scaffold templates, trust diagnostics, and lifecycle recovery.workspace_idthrough core handlers, HTTP/UDS, storage, events, projections, caches, and integration tests.compozy gatewaystatus, audit, device, provider, and exposure controls; exposes equivalent HTTP, UDS, Web, andcompozy__gatewaynative-tool behavior with canonical structured output./docs/gateway— overview, ten-minute quickstart, Tailscale extension setup page, end-to-end verified GitHub-webhooks tutorial, remote CLI/SSH/public-access guide, devices-audit-teardown runbook, and a plain-language security page — replacing the former runbook, threat-model, and access-model pages as a hard cut with every inbound link updated; plus configuration and CLI references, bridge setup guidance, extension authoring guidance, and official Compozy skill updates.0600artifacts, normalizes nullable bridge provider configuration at the SQL boundary, reconciles bundled-extension provenance, and makes provider lifecycle tests scheduler-independent.Compozy Impact Audit
compozy__gateway, its actions, descriptors, schemas, digests, risk and availability metadata,Reading/🌐progress presentation, catalog fixtures, and cross-surface parity tests.connectivity.providerprovide surface, Go/TypeScript SDK contracts, bundled Tailscale implementation, provider registries, scaffold templates, challenge verification, lifecycle supervision, and config handling. Existing unrelated hook contracts are unchanged.skills/compozy/references/runtime-operations.mdand extension-authoring guidance for Gateway operations and connectivity providers.Security and rollout
0600, public ingress is signed and replay-protected, secrets are redacted, and revocation takes effect immediately.Release Notes
Curated notes for the upcoming release PR live in
.release-notes/and are rendered by pr-release alongside the git-cliff changelog:🎉 Features
tsnetnode under the operator's own account servescompozy-gateway.<tailnet>.ts.net— tailnet on 8443, Funnel on 443 — with hidden-inputTS_AUTHKEYbinding, digest-confirmed network participation, and the publicconnectivity.providerSDK contract for third-party providers.✨ Highlights
/docs/gatewaysection for first-time operators: ten-minute quickstart, end-to-end verified GitHub-webhooks tutorial (with the Actions-signed delivery workflow a native repository webhook cannot provide), Tailscale extension setup through clean removal, and a plain-language security page. The former runbook, threat-model, and access-model pages moved into it as a hard cut.🐛 Bug Fixes
0600pairing handoff, SQL-boundary nullability normalization, and scheduler-independent lifecycle tests.Deep review
reviewerround after all tasks: 72 jobs and 379 canonical findings.QA
Final Status: locally ready with external verification blocked — every executable path and every discovered defect passed its re-walk; only named provider, network, SSH, and published-SDK prerequisites remain.
Coverage: 4 personas walked 5/5 journeys and settled 7/7 charters across 22 changed scenarios, followed by two isolated remediation re-walks for private pairing handoff and Gateway tool metadata.
Issues: 7 QA defects found, fixed in production, and re-walked (Blocks-Completion: 4, Data-Loss: 0, Trust-Damage: 2, Friction: 1, Cosmetic: 0); no locally reproducible defect remains open. The last regression is recorded in
BUG-20260808-bridge-enable-without-config.Blocked / needs human: verify the public HTTPS route and second-machine pairing with an authorized Tailscale provider; exercise signed public delivery during sender/daemon interruption; verify owned forwarding against a real SSH host; rebuild clean external provider projects after publishing the new SDK; and observe
compozy__gatewayprogress through an authorized ACP provider turn.Full reports:
2026-08-07-remote-gateway.md2026-08-08-remote-gateway-review-remediation.md2026-08-08-remote-gateway-toolmeta-remediation.mdTest plan
make gate-full— full monorepo verify passed after rebasing onto currentorigin/main(fingerprintbb39217cd044c355b36f01705fc73ddbafe4df0d).CGO_ENABLED=1 go test -race ./internal/extension ./extensions/dev-cycle ./extensions/connectivity-tailscalepassed after conflict resolution.-racerepetitions and its canonical package suite.clean: trueand no surviving processes.bunx turbo run typecheck test build --filter=./packages/site(321 tests, full build) and zero-tolerancemake bun-lintpassed after the/docs/gatewaymove.🤖 Generated with Claude Code