Skip to content
CommonLayer
Documentation menu

Documentation

Rendered from the docs/ directory of the CommonLayer repository, so it changes together with the code it describes.

General

  • CommonLayer documentation

    CommonLayer is a community-funded platform for security-hardened container images and Helm charts: projects build from verified upstream source, the platform verifies, scans, mirrors and preserves…

  • Implementation status

    The final record of what CommonLayer implements, where, how it was tested and where that testing happened, and what is not done. It is compiled from the work-package status files in docs/status/…

API

  • gRPC API

    CommonLayer offers a gRPC API, package commonlayer.v1, for machine clients: CI pipelines, clctl and integrations. It calls the same application services as the REST API, so data, validation and…

  • REST API

    The CommonLayer REST API serves the portal, project CI and integrations under /api/v1, with JSON bodies, cookie or bearer-token authentication, RFC 9457 problem documents for errors and…

Architecture

  • Architecture overview

    CommonLayer is a modular monolith: one Rust workspace of domain crates, composed into three long-running processes (API, worker, scheduler) and an operator CLI, plus a Next.js portal and a CNCF…

  • Database schema

    CommonLayer keeps all state in one PostgreSQL database (version 16 or later; developed against 18): 121 tables and 2 views in 18 migration files (schema version 21) under…

Contributing

  • Contributing

    How to contribute to CommonLayer projects and to the platform: the standards every image and chart follows, how community contributions are recognised and rewarded, and which licenses apply to what.

  • CommonLayer container image standard, version 1

    Every CommonLayer image follows these rules. Each rule has an id; a project that cannot meet a rule records a deviation in its commonlayer.yaml:

  • CommonLayer Helm chart standard, version 1

    Applies to every chart published by CommonLayer. Reference implementation: templates/project-template/chart; worked example: the nginx project's chart/ (repository commonlayer-org/nginx; its tree…

  • Contributor handbook

    This handbook is for community contributors: people who improve a CommonLayer project without holding a maintainer assignment. It explains how contributions are recorded and reviewed, what…

  • Licensing

    CommonLayer involves several layers of software, and each has its own license. Applying Apache-2.0 to a Dockerfile does not relicense what the image contains. This guide explains which license…

Decisions (ADRs)

Funding

  • Funding model

    CommonLayer is funded by contributions that go to projects, not to people. Each project has a treasury with a monthly target and an allocation policy; once a month the treasury pays the maintainer…

  • Ledger specification

    This is the specification of CommonLayer's financial ledger as implemented in crates/commonlayer-funding and migrations 0010_funding.sql and 0020_funding_hardening.sql: the accounts, the…

Guides

  • Guides

    Task-oriented entry points into the documentation, by audience. Each guide links to the reference pages behind it. Every step names the portal page or API operation that exists today; where a step…

  • Migrating from Bitnami

    If you relied on Bitnami container images or Helm charts, the CommonLayer migration catalog in projects/bitnami-migration/ is the place to start: researched facts about what changed in the Bitnami…

  • Project onboarding

    This guide takes a maintainer from the project template to a first promoted release on CommonLayer. Your repository stays in your own GitHub account or organization: you connect it through the…

  • Using the registry

    CommonLayer distributes container images and Helm charts from its own OCI registry, which anyone can pull from anonymously and only the platform can push to. This guide explains the names and…

  • Verifying artifacts

    This guide shows how to verify a CommonLayer container image or Helm chart yourself before you deploy it: resolve the digest, verify the signature against the project's registered identity, verify…

Maintenance

  • Maintenance

    How CommonLayer projects are maintained: who maintains them, what maintainers are responsible for, how fulfilment is evaluated each month, and how that connects to compensation. Security status…

  • Maintainer handbook

    This handbook is for people who maintain a CommonLayer project or want to: how to apply, how assignments work, what you are responsible for, the security deadlines, the periodic tasks, how your…

Operations

  • Operations handbook

    How to run CommonLayer day to day: what to watch, the recurring jobs and what to do when they fail, administering users and projects, money operations (reconciliation, payout runs, adjustments),…

  • Backup and recovery

    What CommonLayer must back up, how, how to restore, and how to prove that a restore is complete and consistent. The PostgreSQL database plus the two object-storage buckets plus one encryption key…

  • Deployment guide

    This guide describes how CommonLayer is deployed: the components and what they need, the configuration a production deployment must provide, the secrets, the network flows, and the steps from an…

  • Disaster recovery

    Scenarios that take part of CommonLayer away (the database, a bucket, the registry, GitHub, the payment provider, a key) and how to recover from each: what stops working, how it shows up, what to…

  • Metric catalog

    Every CommonLayer metric is declared once in commonlayer_observability::metrics::catalog. Labels are low-cardinality enumerations; route is the matched route template and project is a project slug…

  • Publish drill

    scripts/dev/e2e-publish.sh (make e2e-publish) runs the submission and promotion pipeline of 06 §3 with the real tools — cosign, Trivy, Grype, syft, Helm, Docker and CNCF Distribution — instead of…

  • Repository settings for the CI workflows

    What the GitHub repository must provide for the workflows in .github/workflows/ to do their work: required status checks, branch protection, repository variables and secrets, the GitHub features…

  • Runbooks

    One section per alert of the CommonLayer alerting rules (infrastructure/monitoring/prometheus/rules/ and the copy shipped in the Helm chart,…

  • The CommonLayer GitHub App

    How an operator creates and configures the GitHub App that connects maintainers' repositories to the platform: its permissions and events, the URLs GitHub must call, the settings and which process…

Security

  • Security

    How CommonLayer handles security: what is verified before an artifact is published, how vulnerabilities are tracked after publication, how private reports and advisories work, and the documents…

  • Backend security review, November 2026

    An independent, read-only review of the backend carried out on 2026-11-10 against the main branch before the hardening work. It was asked to construct concrete attacks on money, sessions,…

  • Permission matrix

    Generated from commonlayer_core::authz::policy::ROLE_PERMISSIONS. platform_admin additionally holds every permission in every scope.

  • Privacy rules

    CommonLayer publishes a lot on purpose: funding flows, maintainer compensation by slot, eligibility states, security findings and exceptions. It never publishes personal and payment data, private…

  • Threat model

    This threat model lists what CommonLayer protects, where trust changes hands, the threats at each boundary (STRIDE), and for each threat the mitigation that exists in code, with a file reference.…

  • Verification policy

    Every container image and Helm chart in the CommonLayer registry was submitted by its project's CI as a digest, fetched from the source registry, and checked against the verification policy before…