monumental-archive-db

Projekte, die den nachfolgenden Best Practices folgen, können sich freiwillig selbst zertifizieren und zeigen, dass sie einen Core-Infrastruktur-Initiative-/OpenSSF-Badge erhalten haben.

Es gibt keine Auswahl an Praktiken, die garantieren können, dass Software niemals Fehler oder Schwachstellen hat. Selbst formale Methoden können fehlschlagen, wenn die Spezifikationen oder Annahmen falsch sind. Auch gibt es keine Auswahl an Praktiken, die garantieren können, dass ein Projekt eine gesunde und gut funktionierende Entwicklungsgemeinschaft erhalten wird. Allerdings können Best Practices dabei helfen, die Ergebnisse von Projekten zu verbessern. Zum Beispiel ermöglichen einige Praktiken die Mehrpersonen-Überprüfung vor der Freigabe, die sowohl helfen können ansonsten schwer zu findende technische Schwachstellen zu finden und gleichzeitig dazu beitragen Vertrauen und den Wunsch nach wiederholter Zusammenarbeit zwischen Entwicklern verschiedener Unternehmen zu schaffen. Um ein Badge zu verdienen, müssen alle MÜSSEN und MÜSSEN NICHT Kriterien erfüllt sein, alle SOLLTEN Kriterien müssen erfüllt sein oder eine Rechtfertigung enthalten, und alle EMPFHOLEN Kriterien müssen erfüllt sein oder nicht (wir wollen sie zumindest berücksichtigt wissen). Wenn lediglich ein allgemeiner Kommentar angebeben werden soll, keine direkte Begründung, dann ist das erlaubt, wenn der Text mit "//" und einem Leerzeichen beginnt. Feedback ist willkommen auf derGitHub-Website als Issue oder Pull-Request. Es gibt auch eine E-Mail-Liste für allgemeine Diskussionen.

Wir stellen Ihnen gerne die Informationen in mehreren Sprachen zur Verfügung, allerdings ist die englische Version maßgeblich, insbesondere wenn es Konflikte oder Inkonsistenzen zwischen den Übersetzungen gibt.
Wenn dies Ihr Projekt ist, zeigen Sie bitte Ihren Baseline-Badge-Status auf Ihrer Projektseite! Der Baseline-Badge-Status sieht so aus: Baseline-Badge-Level für Projekt 13998 ist baseline-1 So betten Sie das Baseline-Badge ein:
Sie können Ihren Baseline-Badge-Status anzeigen, indem Sie Folgendes in Ihre Markdown-Datei einbetten:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/13998/baseline)](https://www.bestpractices.dev/projects/13998)
oder indem Sie Folgendes in Ihr HTML einbetten:
<a href="https://www.bestpractices.dev/projects/13998"><img src="https://www.bestpractices.dev/projects/13998/baseline"></a>


Dies sind die Baseline Niveau 2 Kriterien. Dies sind Kriterienversion v2026.08.28.

Baseline Series: Baseline Niveau 1 Baseline Niveau 2 Baseline Niveau 3

        

 Grundlagen

  • Allgemein

    Hinweis: Andere Projekte können den selben Namen benutzen.

    The Monumental Archive's PostgreSQL image: official postgres + PostGIS, pgaudit, edtf_postgres — native multi-arch, tested before published, cosign-signed

    Bitte verwenden Sie das SPDX-License-Expression-Format; Beispiele sind "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT" und "(BSD-2-Clause OR Ruby)". Geben sie nicht die einfachen oder doppelten Anführungszeichen mit an.
    Wenn es mehr als eine Programmiersprache gibt, listen Sie sie als kommagetrennte Werte (Leerzeichen sind optional) auf und sortieren Sie sie von am häufigsten zum am wenigsten verwendeten. Wenn es eine lange Liste gibt, bitte mindestens die ersten drei häufigsten auflisten. Wenn es keine Programmiersprache gibt (z. B. ist dies nur ein Dokumentations- oder Testprojekt), verwenden Sie das einzelne Zeichen "-". Bitte verwenden Sie eine herkömmliche Großschreibung für jede Sprache, z.B. "JavaScript".
    Das Common Platform Enumeration (CPE) ist ein strukturiertes Namensschema für IT-Systeme, Software und Pakete. Es wird in diversen Systemen und Datenbanken bei der Meldung von Schwachstellen verwendet.

 Steuerelemente 18/19 ●

  • Steuerelemente


    Wenn eine CI/CD-Aufgabe ohne angegebene Berechtigungen ausgeführt wird, MUSS das CI/CD-System die Berechtigungen der Aufgabe standardmäßig auf die niedrigsten in der Pipeline gewährten Berechtigungen setzen. [OSPS-AC-04.01]
    Konfigurieren Sie die Einstellungen des Projekts so, dass neuen Pipelines standardmäßig die niedrigsten verfügbaren Berechtigungen zugewiesen werden, wobei zusätzliche Berechtigungen nur bei Bedarf für bestimmte Aufgaben gewährt werden.

    Every workflow declares permissions: contents: read at the top level, so a job that specifies nothing inherits read-only. Elevated scopes are granted per job and annotated inline with the reason — packages: write only on the jobs that push, id-token: write only where Sigstore needs it.



    Wenn ein offizieller Release erstellt wird, MUSS diesem Release eine eindeutige Versionskennung zugewiesen werden. [OSPS-BR-02.01]
    Weisen Sie jedem vom Projekt erstellten Release eine eindeutige Versionskennung zu und folgen Sie dabei einer konsistenten Namenskonvention oder einem Nummerierungsschema. Beispiele sind SemVer, CalVer oder Git-Commit-ID.

    Every published image carries a unique identifier by construction: its immutable OCI manifest digest, plus a :sha-<commit> tag giving per-commit traceability. A tag-immutability repository ruleset prevents any tag from moving, and consumers pin digests. The project deliberately has no semantic version surface — its version is the postgres major plus three extension pins — but uniqueness is absolute rather than merely conventional.



    Wenn ein offizieller Release erstellt wird, MUSS dieser Release ein beschreibendes Protokoll funktionaler und sicherheitsrelevanter Änderungen enthalten. [OSPS-BR-04.01]
    Stellen Sie sicher, dass alle Releases ein beschreibendes Änderungsprotokoll enthalten. Es wird empfohlen sicherzustellen, dass das Änderungsprotokoll von Menschen lesbar ist und Details über Commit-Nachrichten hinaus enthält, wie z.B. Beschreibungen der Sicherheitsauswirkung oder Relevanz für verschiedene Anwendungsfälle. Um Maschinenlesbarkeit zu gewährleisten, platzieren Sie den Inhalt unter einer Markdown-Überschrift wie "## Changelog".

    The project creates no official releases. It is a rolling publisher: fixes land on main and a new digest publishes, with no version tags and no maintained back-branches, stated as a deliberate exclusion in https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/roadmap.md. What exists instead: every published digest is traceable to exactly one commit through its :sha-<commit> tag, the history is conventional-commit formatted so the functional and security changes between any two digests are readable with git log, and security modifications specifically are published as GitHub security advisories naming the fixing digest.



    Wenn eine Build- und Release-Pipeline Abhängigkeiten einbindet, MUSS sie standardisierte Tools verwenden, wo verfügbar. [OSPS-BR-05.01]
    Verwenden Sie ein gängiges Tool für Ihr Ökosystem, wie z.B. Paketmanager oder Abhängigkeits-Management-Tools, um Abhängigkeiten zur Build-Zeit einzubinden. Dies kann die Verwendung einer Abhängigkeitsdatei, Lock-Datei oder Manifest umfassen, um die erforderlichen Abhängigkeiten zu spezifizieren, die dann vom Build-System eingezogen werden.

    Dependencies are ingested entirely through standardized tooling: apt from PGDG and Debian for the extensions, the OCI registry protocol for both digest-pinned images, and mise for the development toolchain. Nothing is fetched with ad-hoc curl-to-shell, and there is no vendored or hand-copied dependency anywhere.



    Wenn ein offizieller Release erstellt wird, MUSS dieser Release signiert sein oder in einem signierten Manifest erfasst werden, das die kryptographischen Hashes jedes Assets enthält. [OSPS-BR-06.01]
    Signieren Sie alle freigegebenen Software-Assets zur Build-Zeit mit einer kryptographischen Signatur oder Attestierungen, wie z.B. GPG- oder PGP-Signatur, Sigstore-Signaturen, SLSA-Provenance oder SLSA-VSAs. Fügen Sie die kryptographischen Hashes jedes Assets in eine signierte Manifest- oder Metadaten-Datei ein.

    An OCI manifest is precisely a signed manifest containing each asset's cryptographic hash: it lists every layer by sha256 digest, and the manifest itself is cosign-signed keylessly with this repository's publish workflow on main as the certificate identity, anchored through @refs/heads/main$. The pipeline then runs cosign verify against that exact identity immediately after signing. SPDX SBOM and provenance (mode=max) attestations accompany it. https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md#verifying-what-you-pulled



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine Beschreibung enthalten, wie das Projekt seine Abhängigkeiten auswählt, bezieht und verfolgt. [OSPS-DO-06.01]
    Es wird empfohlen, diese Informationen zusammen mit der technischen und Design-Dokumentation des Projekts auf einer öffentlich zugänglichen Ressource wie dem Quellcode-Repository, der Projektwebsite oder einem anderen Kanal zu veröffentlichen.

    Selection is governed: the image is postgres plus exactly three extensions because the consuming archive needs those three, and a fourth is a recorded governance decision rather than a routine addition, with the bar stated in https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/roadmap.md. Obtaining is documented in https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/decisions/0001-own-the-installation.md, which explains why PostGIS and pgaudit are installed here from PGDG rather than inherited. Tracking is the Renovate pin convention in https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md#coding-standard — apt versions in ARG *_VERSION lines with a # renovate: comment above them, because an inline version would silently lose coverage.



    Die Projektdokumentation MUSS Anweisungen enthalten, wie die Software gebaut wird, einschließlich erforderlicher Bibliotheken, Frameworks, SDKs und Abhängigkeiten. [OSPS-DO-07.01]
    Es wird empfohlen, diese Informationen zusammen mit der Beiträgerdokumentation des Projekts zu veröffentlichen, z. B. in CONTRIBUTING.md oder anderen Entwickleraufgabendokumentationen. Dies kann auch mithilfe von Makefile-Zielen oder anderen Automatisierungsskripten dokumentiert werden.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md#development-quick-start — clone, mise install (which installs the pinned toolchain and the git hooks), then task ci for the full gate or task build for the image alone. The only prerequisite not installed by mise is Docker or a compatible engine, which is stated explicitly.



    Die Projektdokumentation MUSS eine Liste der Projektmitglieder mit Zugriff auf sensible Ressourcen enthalten. [OSPS-GV-01.01]
    Dokumentieren Sie Projektteilnehmer und ihre Rollen durch Artefakte wie members.md, governance.md, maintainers.md oder eine ähnliche Datei im Quellcode-Repository des Projekts. Dies kann so einfach sein wie die Aufnahme von Namen oder Account-Handles in einer Liste von Maintainern, oder komplexer sein, abhängig von der Governance des Projekts.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/GOVERNANCE.md#roles-and-responsibilities names the single maintainer who holds access to sensitive resources, and https://github.com/CarlAllenn/monumental-archive-db/blob/main/GOVERNANCE.md#access-continuity is explicit about what that access consists of — notably that no long-lived tokens or signing keys exist to hold, because GHCR uses the run's own token and signing is keyless.



    Die Projektdokumentation MUSS Beschreibungen der Rollen und Verantwortlichkeiten der Projektmitglieder enthalten. [OSPS-GV-01.02]
    Dokumentieren Sie Projektteilnehmer und ihre Rollen durch Artefakte wie members.md, governance.md, maintainers.md oder ähnliche Dateien im Quellcode-Repository des Projekts.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/GOVERNANCE.md#roles-and-responsibilities — maintainer and contributor roles with what each owns, plus the decision model and how it would evolve if the project gained regular contributors.



    Die Projektdokumentation MUSS einen Leitfaden für Code-Mitwirkende enthalten, der die Anforderungen für akzeptable Beiträge beschreibt. [OSPS-GV-03.02]
    Erweitern Sie die Inhalte von CONTRIBUTING.md oder CONTRIBUTING/ in der Projektdokumentation, um die Anforderungen für akzeptable Beiträge zu beschreiben, einschließlich Codierungsstandards, Testanforderungen und Einreichungsrichtlinien für Code-Beitragende. Es wird empfohlen, dass dieser Leitfaden die verbindliche Quelle sowohl für Beitragende als auch für Genehmiger ist.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md#requirements-for-an-acceptable-contribution — one pull request per issue, conventional commits, signed commits, DCO sign-off, a green gate, respect for the decision register, and new words in .codespellrc rather than a lint bypass.



    Das Versionskontrollsystem MUSS bei jedem Commit von allen Code-Mitwirkenden verlangen zu bestätigen, dass sie rechtlich befugt sind, die zugehörigen Beiträge zu leisten. [OSPS-LE-01.01]
    Fügen Sie ein DCO in das Repository des Projekts ein, das Code-Beitragende dazu verpflichtet zu bestätigen, dass sie rechtlich berechtigt sind, die zugehörigen Beiträge bei jedem Commit zu leisten. Verwenden Sie eine Statusüberprüfung, um sicherzustellen, dass die Bestätigung erfolgt ist. Ein CLA erfüllt diese Anforderung ebenfalls. Einige Versionskontrollsysteme, wie GitHub, können dies in den Nutzungsbedingungen der Plattform enthalten.

    Honest miss, and stricter than it first appears. https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md does require DCO sign-off and links the Developer Certificate of Origin, so the legal mechanism is documented — but this control asks that the version control system REQUIRE the assertion on every commit, and nothing enforces it. There is no DCO check on pull requests and no commit-msg hook validating the trailer, and in fact no commit in the repository's history currently carries a Signed-off-by line. The documented policy and the enforced reality have diverged, which is exactly the gap this control exists to catch. Tracked for fix: a DCO status check on pull requests plus a local commit-msg hook, matching how conventional commits are already enforced twice over.



    Wenn ein Commit in den primären Branch erfolgt, MÜSSEN alle automatisierten Statusüberprüfungen für Commits bestanden werden oder manuell umgangen werden. [OSPS-QA-03.01]
    Konfigurieren Sie das Versionskontrollsystem des Projekts so, dass alle automatisierten Statusüberprüfungen bestanden werden müssen oder eine manuelle Bestätigung erforderlich ist, bevor ein Commit in den primären Branch zusammengeführt werden kann. Es wird empfohlen, dass optionale Statusüberprüfungen NICHT als Bestehen-oder-Durchfallen-Anforderung konfiguriert werden, die Genehmiger versucht sein könnten zu umgehen.

    Direct pushes to main are blocked by the main-protection ruleset, so every commit arrives through a pull request, and the full gate runs as required status checks that must pass before merge. The same tasks run locally on every commit through the lefthook hooks, so the checks are not first encountered in CI.



    Bevor ein Commit akzeptiert wird, MÜSSEN die CI/CD-Pipelines des Projekts mindestens eine automatisierte Test-Suite ausführen, um sicherzustellen, dass die Änderungen den Erwartungen entsprechen. [OSPS-QA-06.01]
    Automatisierte Tests sollten vor jedem Merge in den primären Branch ausgeführt werden. Die Test-Suite sollte in einer CI/CD-Pipeline ausgeführt werden und die Ergebnisse sollten für alle Beitragenden sichtbar sein. Die Test-Suite sollte in einer konsistenten Umgebung ausgeführt werden und so ausgeführt werden, dass Beitragende die Tests lokal ausführen können. Beispiele für Test-Suites sind Unit-Tests, Integrationstests und End-to-End-Tests.

    Every pull request runs task ci, which includes the smoke test — booting the built image and asserting the extensions actually load via pg_get_loaded_modules(). The publish pipeline runs the same suite per-architecture on native amd64 and arm64 runners, and again against the published bytes pulled back from the registry by digest. https://github.com/CarlAllenn/monumental-archive-db/actions



    Wenn das Projekt eine Veröffentlichung vorgenommen hat, MUSS die Projektdokumentation Design-Dokumentation enthalten, die alle Aktionen und Akteure innerhalb des Systems demonstriert. [OSPS-SA-01.01]
    Fügen Sie Designs in die Projektdokumentation ein, die die Aktionen und Akteure erklären. Akteure umfassen jedes Subsystem oder jede Entität, die ein anderes Segment im System beeinflussen kann. Stellen Sie sicher, dass dies für neue Funktionen oder Breaking Changes aktualisiert wird.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/assurance-case.md documents the actors and actions: the five trust boundaries (publish, build-stage, apt, in-image privilege, registry identity), the four supply-chain substitution points an adversary could target, what crosses each boundary and by what mechanism, and what is explicitly out of scope. https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/decisions/0001-own-the-installation.md carries the load-bearing architectural decision behind the design.



    Wenn das Projekt eine Veröffentlichung vorgenommen hat, MUSS die Projektdokumentation Beschreibungen aller externen Software-Schnittstellen der veröffentlichten Software-Assets enthalten. [OSPS-SA-02.01]
    Dokumentieren Sie alle Software-Schnittstellen (APIs) der veröffentlichten Software-Assets und erklären Sie, wie Benutzer mit der Software interagieren können und welche Daten erwartet oder produziert werden. Stellen Sie sicher, dass dies für neue Funktionen oder Breaking Changes aktualisiert wird.

    The released asset's external interfaces are the PostgreSQL wire protocol on 5432, the environment-variable contract inherited unchanged from the official postgres image, the PGDATA volume, and the three extensions the image adds. All are documented in https://github.com/CarlAllenn/monumental-archive-db#readme, together with the baked server configuration (shared_preload_libraries and wal_level=logical) that changes behaviour relative to a stock postgres image — which is the part a consumer could not infer from upstream documentation.



    Wenn das Projekt eine Veröffentlichung vorgenommen hat, MUSS das Projekt eine Sicherheitsbewertung durchführen, um die wahrscheinlichsten und folgenschwersten potenziellen Sicherheitsprobleme zu verstehen, die innerhalb der Software auftreten könnten. [OSPS-SA-03.01]
    Die Durchführung einer Sicherheitsbewertung informiert sowohl Projektmitglieder als auch nachgelagerte Verbraucher darüber, dass das Projekt versteht, welche Probleme innerhalb der Software auftreten könnten. Das Verständnis darüber, welche Bedrohungen realisiert werden könnten, hilft dem Projekt, Risiken zu verwalten und anzugehen. Diese Informationen sind für nachgelagerte Verbraucher nützlich, um den Sicherheitssachverstand und die Praktiken des Projekts zu demonstrieren. Stellen Sie sicher, dass dies für neue Funktionen oder Breaking Changes aktualisiert wird.

    Two documents, deliberately different in kind. https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/assurance-case.md is the standing assessment: threat model in order of exposure, the four substitution points, and a table of weakness classes with countermeasures and evidence. https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/security-review-2026.md is a dated assessment performed 2026-08-09 against a specific commit, with five findings and a disposition for each — including two that resulted in fixes.



    Die Projektdokumentation MUSS eine Richtlinie für die koordinierte Offenlegung von Schwachstellen (Coordinated Vulnerability Disclosure, CVD) mit einem klaren Zeitrahmen für die Reaktion enthalten. [OSPS-VM-01.01]
    Erstellen Sie eine SECURITY.md-Datei im Stammverzeichnis, die die Richtlinie des Projekts für koordinierte Offenlegung von Schwachstellen beschreibt. Fügen Sie eine Methode zur Meldung von Schwachstellen hinzu. Setzen Sie Erwartungen dafür, wie das Projekt reagieren und gemeldete Probleme angehen wird.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md#reporting-a-vulnerability sets out coordinated disclosure with explicit timeframes: acknowledgement within 7 days, a triage verdict (accepted, out of scope, or upstream) within 14, then a fix republished as a new digest with that digest named in the published advisory. Reporters are credited. The scope boundary between this image and its upstreams is stated precisely so a reporter knows where to send what.



    Die Projektdokumentation MUSS eine Möglichkeit zur privaten Meldung von Schwachstellen direkt an die Sicherheitskontakte des Projekts bereitstellen. [OSPS-VM-03.01]
    Bieten Sie Sicherheitsforschern eine Möglichkeit, Schwachstellen privat an das Projekt zu melden. Dies kann eine dedizierte E-Mail-Adresse, ein Webformular, spezialisierte VCS-Tools, E-Mail-Adressen für Sicherheitskontakte oder andere Methoden sein.

    GitHub private vulnerability reporting is enabled and linked directly: https://github.com/CarlAllenn/monumental-archive-db/security/advisories/new — the report stays private until a fix ships. An email fallback to the maintainer address on the commits is documented for anyone who cannot use it.



    Die Projektdokumentation MUSS Daten über entdeckte Schwachstellen öffentlich veröffentlichen. [OSPS-VM-04.01]
    Bereitstellen von Informationen über bekannte Schwachstellen in einem vorhersehbaren öffentlichen Kanal, wie z.B. einem CVE-Eintrag, Blogbeitrag oder einem anderen Medium. Soweit möglich sollten diese Informationen betroffene Version(en) enthalten, wie ein Verbraucher feststellen kann, ob er betroffen ist, und Anweisungen zur Schadensbegrenzung oder Behebung.

    Vulnerabilities are published as GitHub security advisories on https://github.com/CarlAllenn/monumental-archive-db/security/advisories, with the fixing digest named in each, per the commitment in https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md#what-to-expect. Package-level CVE state is additionally public on every run: the publish workflow runs a report-only trivy scan so each published digest has its scan output on the run log.



Sie können Tools und KI-Systeme nutzen, um Änderungen über eine einfache URL vorzuschlagen, z. B. https://www.bestpractices.dev/de/projects/13998/choose/edit?osps_ac_01_01_status=Met&osps_ac_01_01_justification=GitHub+enforced. Wie das geht, erfahren Sie in unserem Automatisierungsvorschlagssystem. Diese Daten sind unter der Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0) verfügbar. Dies bedeutet, dass ein Datenempfänger die Daten mit oder ohne Änderungen weitergeben darf, solange der Datenempfänger den Text dieser Vereinbarung mit den weitergegebenen Daten zur Verfügung stellt. Bitte nennen Sie Carl Allen und die OpenSSF Best Practices Badge-Mitwirkenden als Urheber.

Projekt-Badge-Eintrag im Besitz von: Carl Allen.
Eintrag erstellt: 2026-08-09 00:45:46 UTC, zuletzt aktualisiert: 2026-08-09 01:33:27 UTC. Letztes erreichtes Badge: 2026-08-09 00:58:03 UTC.