Self-hosted platform for standing up and running software factories on AWS: complete DevSecOps environments with secure delivery pipelines, supply-chain controls, compliance evidence and multi-tenant governance — in minutes, not months.
View on GitHub · Documentation · Plugin Catalog · API Reference
Pipeline Builder is a self-hosted platform for standing up and running software factories on AWS. An organization gets a complete DevSecOps environment — secure delivery pipelines, supply-chain controls, compliance evidence, golden-path templates and the governance around them — in minutes rather than months, and can run many of them side by side.
The pipelines are one part of that environment, not the whole product. Every pipeline arrives with its controls already attached: signed and scanned plugins, SBOMs and vulnerability gates, per-organization secret encryption, policy-as-code compliance, and a tamper-evident audit trail. Developers reach it from the dashboard, the CLI, the REST API, a CDK construct, or a single AI prompt; platform and security teams set the rules that every one of those paths obeys.
Every pipeline is synthesized as native AWS CodePipeline + CodeBuild in your own AWS account. There is no proprietary runner and no lock-in: if you remove Pipeline Builder, your pipelines keep running.
It is multi-tenant from the ground up, which is what makes running many factories practical rather than theoretical. Every pipeline, plugin, secret, quota, log line, and bill belongs to an organization, and organizations can nest teams, bring their own SSO, and see each other only through deliberate, audited sharing.
| 119 | 5 | 14 | 18 | 4 | 4 |
|---|---|---|---|---|---|
| Official plugins in 10 categories | interfaces to build pipelines | AI models across 5 providers | compliance operators | plugin trust tiers | deploy targets, from laptop to EKS |
| If you are… | What you have on day one |
|---|---|
| A platform team serving many product teams | One installation that gives every team its own isolated organization, quotas and golden paths — instead of a CI server per team to maintain |
| A security or compliance lead | Controls that refuse non-compliant work at creation, a supply chain you can verify, and a tamper-evident audit trail you can hand to an auditor |
| Running a regulated or government programme | A self-hosted software factory in your own AWS account, optionally with no public surface, where evidence is a by-product of normal work rather than a quarterly scramble |
| Replacing a SaaS CI/CD contract | Native AWS pipelines that keep running if you remove the platform — you pay AWS for what executes, not a vendor for build minutes |
| Challenge | How Pipeline Builder solves it |
|---|---|
| Standing up a secure delivery environment takes months | A working software factory — pipelines, controls, compliance, identity and audit — in minutes, from a dashboard, CLI, API, CDK, or AI prompt |
| Security review happens after the build is written | Compliance rules block non-compliant pipelines and plugins at creation, with exemptions and a full audit trail |
| Build steps are copy-pasted between teams | Versioned, containerized plugins shared through a governed ecosystem with installs, version policies, and reviews |
| Third-party build steps are a supply-chain risk | Signed, SBOM-attested, digest-pinned images; trust tiers baked into signatures; two-person approval for every public listing |
| Teams share infrastructure without isolation | Everything is scoped per organization, with RBAC, quotas, per-org secrets, per-org log tenants, and row-level security |
| Proving compliance means assembling evidence by hand | A hash-chained, tamper-evident audit trail, per-org log isolation, and measured delivery metrics — collected as work happens |
| SaaS CI/CD creates lock-in | Pipelines deploy as native AWS resources in your account and keep running without the platform |
| No visibility into delivery health | EventBridge-fed analytics, DORA metrics, maturity scorecards, and plugin health scores |
| Interface | Best for | What you do |
|---|---|---|
| Dashboard | Application developers | Configure sources and stages visually, then deploy |
| AI prompt | New repositories | Paste a Git URL; the repo is analyzed and stages and plugins are generated for you |
| CLI | Scripting and CI | pipeline-manager pipeline create from any shell |
| REST API | Platform automation | Full CRUD plus AI generation endpoints |
| CDK construct | Infrastructure-as-code teams | Deploy the PipelineBuilder construct from any CDK app |
Golden-path templates. Platform teams publish governed starters with declared inputs. A developer picks one, sets the project and target repository, and gets a pipeline that still passes compliance and quota checks. Templates can be saved from an existing pipeline, authored from scratch, or imported.
Synth-time templating. A small {{ .. }} language for pipeline configs and plugin specs is resolved once, at synthesis, with no runtime evaluation and no shell-out. It supports path lookups, | default: fallbacks, type coercion, self-references with cycle detection, and plugin contracts (requiredMetadata, metadataTypes) that are validated at upload. See Template Syntax.
| Provider | Models |
|---|---|
| Anthropic | Claude Sonnet 5, Claude Opus 5, Claude Haiku 4.5 |
| OpenAI | GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.6 Luna |
| Gemini 3.7 Flash, Gemini 3.1 Pro | |
| xAI | Grok 4.6, Grok 4.5, Grok 4.3 |
| Amazon Bedrock | Claude Sonnet 4.5, Amazon Nova Pro, Amazon Nova Lite |
A plugin runs inside CodeBuild with your pipeline’s secrets and IAM role, so a shared plugin is a supply-chain dependency. The ecosystem treats it as one. Every public plugin is built by the platform, gated, approved by two people, signed with its trust tier, pinned by digest, and watched for new CVEs after it ships.
flowchart LR
O["Org publisher"] --> T["Tenant build<br/>rootless · SBOM · signed"]
A["Anonymous submitter<br/>verified email · proof of work"] --> Q["Quarantine<br/>isolated build · no credentials"]
T --> G["Automated gates<br/>lint · license · CVE · contract"]
Q --> H["Stricter gates<br/>+ heuristics · offline smoke test · look-alike names"]
G --> M{"Two-person<br/>approval"}
H --> M
M -->|approve| P["public/<publisher>/<name><br/>re-signed · immutable"]
P --> I["Org installs<br/>version + trust policy"]
I --> R["Pipeline pulls<br/>by digest"]
S["Nightly CVE rescan"] -.->|advisory · yank| I
Discover
/plugins has full-text search, facets, category pages, and a page per plugin with README, versions, SBOM, advisories, reviews, and health. Anyone can browse it without signing in, and sign-in is always one click away.pipeline-builder publisher and available to every org by default.Trust tiers and governance
409 IMAGE_VERIFICATION_FAILED).Plugin quarantine for anonymous submissions (optional, off by default)
plugin-quarantine bucket with 30-day expiry. The image goes to a quarantine/<id> registry namespace that only the plugin service can reach: no tenant, and not even a super admin, can list or pull it.community/<name> at the Unverified tier. The submitter can later claim the listing by creating an account with the same email.Supply chain
public/* namespace and re-signed fresh. Listed versions are immutable, and pipelines pull by digest on every run.Consume on your terms
Respond fast
Quality signals
Author with confidence
pipeline-manager plugin new | validate | test | publish scaffolds from base images and runs the server’s own lint, template-contract, and heuristic checks locally.| Category | Count | Examples |
|---|---|---|
| Language | 11 | Java, Python, Node.js, Go, Rust, .NET, C++, PHP, Ruby |
| Security | 34 | Snyk, SonarCloud, Trivy, Veracode, Semgrep, Checkmarx, Fortify |
| Quality | 17 | ESLint, Prettier, Checkstyle, Clippy, Ruff, ShellCheck |
| Testing | 14 | Jest, Pytest, Cypress, Playwright, k6, Postman, Artillery |
| Artifact & Registry | 16 | Docker, ECR, GHCR, npm, PyPI, Maven, NuGet, Cargo |
| Deploy | 13 | Terraform, CloudFormation, Kubernetes, Helm, Pulumi, ECS, Lambda, CDK |
| Infrastructure | 5 | CDK synth, manual approval, S3 cache, shell |
| Monitoring | 3 | Datadog, New Relic, Sentry |
| Notification | 5 | Slack, Teams, PagerDuty, email, GitHub status |
| AI | 1 | Dockerfile generation (multi-provider) |
See Installing Plugins, Publishing Plugins, and the Plugin Catalog.
Validate plugins and pipelines before they exist, not in a quarterly audit.
$count, $length, $keys, $lines) and cross-field conditions are also available.warning is advisory; error and critical block creation with HTTP 403.See Compliance.
resource:action permissions. Built-in Admin and Member roles can be extended with custom roles. Reads and writes are both enforced, and privilege changes revoke live sessions.See Roles & Permissions and Authentication & SSO.
/audit/verify. A durable spool keeps the security log intact through outages./health, /ready, /warmup, and /metrics. The platform ships with Prometheus, Thanos, Grafana dashboards, Alertmanager rules, Jaeger tracing, and Kiali.flowchart TB
subgraph Interfaces
DASH["Dashboard"] & CLI["CLI"] & API["REST API"] & CDK["CDK Construct"] & DIR["Public Plugin Directory"]
end
subgraph Platform["Platform Service"]
AUTH["Identity · Orgs · RBAC · Audit"]
end
subgraph Backend["Backend Services"]
PIPELINE["Pipeline"] & PLUGIN["Plugin + Ecosystem"]
COMPLIANCE["Compliance"]
REPORTING["Reporting"]
REGISTRY["Image Registry"]
ASK["Ask (AI)"]
SUPPORT["Quota · Billing · Messages"]
end
CORE["pipeline-core<br/>CDK Synth"]
AWS["Your AWS Account"]
DASH & CLI & API -->|token| Platform
DIR --> PLUGIN
CDK --> CORE
Platform --> PIPELINE & PLUGIN & COMPLIANCE & REPORTING & ASK & SUPPORT
PLUGIN & PIPELINE -->|validate| COMPLIANCE
PLUGIN -->|build · sign · publish| REGISTRY
PIPELINE --> CORE
CORE --> AWS
AWS -->|pull by digest| REGISTRY
AWS -->|EventBridge| REPORTING
style Platform fill:#4A90D9,color:#fff
style CORE fill:#F5A623,color:#fff
style AWS fill:#2ECC71,color:#fff
style COMPLIANCE fill:#E74C3C,color:#fff
style REPORTING fill:#9B59B6,color:#fff
| Service | Purpose |
|---|---|
| Platform | Identity (passwords, OAuth, SSO, passkeys, TOTP, SCIM), organizations and teams, RBAC, audit trail, log access |
| Pipeline | Pipeline CRUD, AI generation, templates, CDK synthesis |
| Plugin | Plugin builds (rootless BuildKit), the plugin ecosystem (publishers, listings, installs, reviews, advisories, public directory), AI plugin generation |
| Image Registry | Plugin images with token auth, signing and SBOM attestation, per-org storage quotas, garbage collection |
| Compliance | Per-org rule enforcement, rule catalog and subscriptions, scans, exemptions |
| Reporting | Execution analytics, DORA metrics, incidents, via EventBridge |
| Ask | Grounded in-app AI assistant (read and propose only) |
| Quota / Billing / Message | Resource limits pooled across teams, subscriptions and bundles, announcements, conversations, and attachments |
For end-to-end flows (plugin build, publish, pipeline create, synth, execution), see Architecture Flow. For the business case, see Organization Benefits.
Recommended: install with the CLI. pipeline-manager infra provision picks the target and checks prerequisites. It can fetch missing single-binary tools (yq, kubectl, minikube), generate the local .env with secrets, and build the exact, validated command to run. With an AI key set, it can also parse a natural-language goal and diagnose failures.
npm install -g @pipeline-builder/pipeline-manager
pipeline-manager infra provision --target docker # show the plan, then ask to confirm
pipeline-manager infra provision --target docker --yes # non-interactive (for CI)
pipeline-manager infra provision --target docker --json # print the plan as JSON, run nothing
# or describe the goal: pipeline-manager infra provision --prompt "deploy to EKS in us-east-1 with email"
--init <mode>controls post-deploy initialization. The default,auto, has the deploy initialize the platform itself: on EC2 at first boot, on EKS insetup.sh’s final phase, and onlocal/minikubethroughinfra provision. Use--init manualto runinit-platformyourself (for example, to set real admin credentials) or--init skipto do nothing. See the AWS deployment guide.
Prefer to run it directly? Every target ships a bin/setup.sh:
git clone https://github.com/mwashburn160/pipeline-builder.git && cd pipeline-builder
(cd deploy/local/docker && ./bin/setup.sh) # 1. pull images and start the stack
./deploy/bin/init-platform.sh docker # 2. register the admin and load plugins
Minikube instead of Docker? Run
(cd deploy/local/minikube && ./bin/setup.sh), then./deploy/bin/init-platform.sh minikube. On an ~8-core laptop useLEAN=1, because the full stack plus the Istio mesh won’t fit in 8 vCPU. LEAN drops the optional observability and admin services and runs single replicas. For more disk, useDISK_SIZE=60g(default 30g; applies only when the cluster is created). For a clean restart, runminikube delete --profile=pipeline-builder.
Then open https://localhost:8443 and sign in as the default local admin, admin@internal / Pipeline-Builder-Dev-2026!. Change this password immediately on any environment reachable beyond your laptop.
The first load uses a self-signed certificate. If the page is blank with
ERR_CERT_AUTHORITY_INVALIDerrors for JS chunks, trustdeploy/local/docker/certs/nginx-tls.crt(see Troubleshooting).Prerequisites: Docker only. The local stack pulls prebuilt public images, so no registry login is needed. Node.js >= 24.21 and pnpm >= 10.33 are needed only to build from source or use the CLI.
| Target | Best for | Cost |
|---|---|---|
| Local (Docker Compose) | Development | Free |
| Minikube | Local Kubernetes | Free |
| EC2 | Dev / staging | ~$610–680/mo at the default size (detail) |
| EKS (Auto Mode) | Production | ~$850–950/mo running 24/7 (measured) |
Building from source (not needed just to run the platform):
pnpm install # Node.js >= 24.21, pnpm >= 10.33
pnpm build # compile, test, and lint every package
| Path | Contains |
|---|---|
packages/ |
Shared libraries: api-core, api-server, ai-core, pipeline-data, pipeline-core, pipeline-events, pipeline-manager (the CLI) |
api/ |
Backend services: pipeline, plugin, image-registry, compliance, reporting, ask, quota, billing, message |
platform/ |
Identity, organizations, users, audit, and the observability proxy |
frontend/ |
Next.js dashboard and public plugin directory |
deploy/ |
Per-target install (local/docker, local/minikube, aws/ec2, aws/eks) and the plugin catalog (deploy/plugins) |
docs/ |
Documentation |
This repo is projen-managed.
package.json,tsconfig.json, and the CI workflows are generated. Edit.projenrc.ts/projenrc/and re-runpnpm dlx projen, or your change is overwritten on the next synth.
The full docs hub is docs/, grouped by task. For a term, see the Content Index (A–Z).
| Document | Description |
|---|---|
| Onboarding a New Organization | First admin: login → org → members → access key → store-token → setup-events → first pipeline |
| Pipeline Manager CLI | Provision the platform, build and deploy pipelines, author plugins, run audits |
| AWS Deployment | Deploy to EC2 or EKS: modes, post-deploy setup, reporting, teardown |
| Document | Description |
|---|---|
| Developer Guide | Five ways to create a pipeline, plus cut-and-paste patterns for 7 languages |
| CDK Usage | PipelineBuilder construct: sources, stages, VPC, IAM, secrets |
| Template Syntax | {{ .. }} synth-time interpolation and golden-path templates |
| Metadata Keys | Typed CodePipeline, CodeBuild, networking, and IAM configuration keys |
| Plugin Catalog | 119 Official plugins across 10 categories |
| Installing Plugins | Trust tiers, installs, version policies, consumption policy, reviews |
| Publishing Plugins | Publisher profiles, publish requests, catalog metadata, pausing |
| Developer Portal | Catalog ownership, My Services, golden-path templates, maturity scorecards |
| Samples | Ready-to-load pipeline templates for 7 languages, plus CDK patterns |
| Document | Description |
|---|---|
| Organization Benefits | What orgs gain from standardizing on the platform |
| Roles & Permissions | Permission catalog, built-in roles, assurance tiers, session invalidation, impersonation |
| Permission Contract | Hand-maintained route-to-permission table; a diff here is a permission change, reviewed as one |
| Compliance | Per-org rule engine: validation, enforcement, add-ons, audit trail |
| Authentication & SSO | Passwords, OAuth, OIDC and SAML SSO, SCIM, passkeys, TOTP, device sign-in |
| Audit Events | Hash-chained trail, /audit/verify, action catalog |
| Logs | Per-org application logs: search, masking, export |
| Billing Providers | Stripe and AWS Marketplace setup |
| Billing Add-on Bundles | Stackable add-ons that raise pooled caps and unlock features |
| Billing Discounts | Coupon codes and usage credits |
| Document | Description |
|---|---|
| Deploy Operations | Preflight, secret rotation, backups and DR, teardown |
| Service Mesh | Istio ambient: STRICT mTLS and identity-based authorization |
| Environment Variables | Every configuration variable, by subsystem |
| Notifications | Email, Slack, webhooks and the in-app inbox — what an operator enables, what an org configures |
| DORA Metrics | Deployment frequency, change failure rate, MTTR, measured lead time |
| Stakeholder Reports | Scheduled snapshot reports held for human review; authoring and sharing are separate permissions |
| Incident Webhook | Connect PagerDuty, Datadog, or Alertmanager for change failure rate and MTTR |
| Document | Description |
|---|---|
| API Reference | REST endpoints, query parameters, curl examples |
| Architecture Flow | End-to-end flow diagrams (request → build → deploy) |
| Error Handling | Error-to-HTTP convention |
| Testing Conventions | Module-mocking rules, authorization gates that run for real, coverage ratchet, type-checked tests |
Apache License 2.0. See LICENSE.