@flowwright/control-plane
v0.1.1
Published
Framework-independent FlowWright control-plane service layer.
Readme
@flowwright/control-plane
@flowwright/control-plane contains the framework-independent domain services behind
the FlowWright team application. The NestJS server adapts these services to HTTP, while
the standalone worker reuses the same execution and queue logic directly.
FlowWright · Server · Worker
What it owns
| Area | Responsibilities | |---|---| | Projects and runs | Project lifecycle, checkout, plan loading, triggering, comparison, and replay | | Execution plane | Durable queue, scheduling, worker pools, leases, recovery, cancellation, and retention | | Security | Authentication providers, sessions, RBAC services, password hashing, secrets, and policy | | Integrations | Signed webhooks, run ingestion, JUnit parsing, logs, artifacts, and archives | | Operations | Health, metrics, rate limiting, backup, configuration, reconciliation, and structured logging | | Read models | Runs, projects, workers, audit, queue, storage, search, and dashboard views |
Composition
The package exports functions and service contracts rather than a framework module:
import {
createWorkerPool,
createTokenAuthProvider,
createRateLimiter,
runProject,
} from "@flowwright/control-plane";Deployable hosts construct stores, loggers, executors, and configuration, then pass them into these services. This makes the same behavior usable from NestJS controllers, workers, integration tests, and future host frameworks.
Design boundary
HTTP host ──adapt──▶ control-plane services ──compose──▶ core + runtime- No module imports
@nestjs/*; transport concerns stay inapps/server. - API shapes come from
@flowwright/api-contract. - Pipeline and policy contracts come from
@flowwright/core. - Execution and repositories come from
@flowwright/runtime. - Browser UI and CLI concerns do not belong in this package.
This package is primarily an internal application layer. Use the
flowwright-server unless you are building a custom host
or extending FlowWright itself.
Development
$ pnpm --filter @flowwright/control-plane typecheck
$ pnpm --filter @flowwright/control-plane test
$ pnpm --filter @flowwright/control-plane buildTests cover services, scheduling, worker protocol, configuration as code, secrets, reconnection, logging, metrics, and log access.
Requires Node.js 24+. Licensed under MIT.
