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 3 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/21 ●

  • Steuerelemente


    Wenn einem Job Berechtigungen in einer CI/CD-Pipeline zugewiesen werden, MUSS der Quellcode oder die Konfiguration nur die minimal erforderlichen Berechtigungen für die entsprechende Aktivität zuweisen. [OSPS-AC-04.02]
    Konfigurieren Sie die CI/CD-Pipelines des Projekts so, dass sie Benutzern und Diensten standardmäßig die niedrigsten verfügbaren Berechtigungen zuweisen und Berechtigungen nur bei Bedarf für bestimmte Aufgaben erhöhen. In einigen Versionsverwaltungssystemen kann dies auf Organisations- oder Repository-Ebene möglich sein. Falls nicht, setzen Sie Berechtigungen auf der obersten Ebene der Pipeline.

    Scopes are granted per job and each grant carries an inline comment saying why: packages: write only on the jobs that push an image, id-token: write only on the job that needs Sigstore OIDC. Everything else inherits the top-level contents: read. Runners additionally enforce egress-policy: block and disable-sudo where applicable.



    CI/CD-Pipelines, die vertrauenswürdige Mitarbeitereingaben akzeptieren, MÜSSEN diese Eingaben bereinigen und validieren, bevor sie in der Pipeline verwendet werden. [OSPS-BR-01.04]
    CI/CD-Pipelines sollten alle Mitarbeitereingaben bei expliziten Workflow-Ausführungen bereinigen (in Anführungszeichen setzen, escapen oder bei erwarteten Werten beenden). Obwohl Mitarbeiter im Allgemeinen vertrauenswürdig sind, können manuelle Eingaben in einen Workflow nicht überprüft werden und könnten durch eine Kontoübernahme oder eine Insider-Bedrohung missbraucht werden.

    No collaborator-supplied value is interpolated into a shell step. Enforced rather than asserted: zizmor at --persona=pedantic and actionlint run on every commit and in CI, and CodeQL analyses the workflows as its actions language — the combination is specifically good at template injection, which is the form this failure takes in GitHub Actions.



    Wenn ein offizielles Release erstellt wird, MÜSSEN alle Assets innerhalb dieses Releases eindeutig mit dem Release-Identifikator oder einem anderen eindeutigen Identifikator für das Asset verknüpft sein. [OSPS-BR-02.02]
    Weisen Sie jedem vom Projekt produzierten Software-Asset einen eindeutigen Versionsidentifikator zu, der einer konsistenten Namenskonvention oder einem Nummerierungsschema folgt. Beispiele sind SemVer, CalVer oder Git Commit ID.

    Every asset is identified by content: each layer and each per-architecture manifest carries its own sha256 digest, and the multi-arch index digest commits to all of them. The index is additionally tagged :sha-<commit>, associating the whole set with the exact commit that produced it. Nothing in a publish is identified by anything mutable.



    Das Projekt MUSS eine Richtlinie für die Verwaltung von Secrets und Zugangsdaten definieren, die vom Projekt verwendet werden. Die Richtlinie sollte Leitlinien für die Speicherung, den Zugriff und die Rotation von Secrets und Zugangsdaten enthalten. [OSPS-BR-07.02]
    Dokumentieren Sie, wie Secrets und Zugangsdaten innerhalb des Projekts verwaltet und verwendet werden. Dies sollte Details darüber enthalten, wie Secrets gespeichert werden (z.B. unter Verwendung eines Tools zur Verwaltung von Secrets), wie der Zugriff kontrolliert wird und wie Secrets rotiert oder aktualisiert werden. Stellen Sie sicher, dass sensible Informationen nicht fest im Quellcode kodiert oder in Versionsverwaltungssystemen gespeichert werden.

    The policy is documented and unusually simple, because the project deliberately holds nothing to manage: no long-lived registry or signing credential exists. GHCR authentication uses the workflow run's own short-lived token, and signing is keyless — an ephemeral Sigstore certificate bound to the workflow's OIDC identity, so there is no private key at rest to store, access or rotate. https://github.com/CarlAllenn/monumental-archive-db/blob/main/GOVERNANCE.md#access-continuity states this explicitly and gives the reason it was chosen: a private key is precisely the artifact that cannot be inherited by a successor. On the consumer side, https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md is equally explicit that the image ships no credentials and that POSTGRES_PASSWORD handling is the deployer's. Enforcement against accidents: gitleaks on every commit and over full history, plus persist-credentials: false on every checkout.



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der Integrität und Authentizität der Release-Assets enthalten. [OSPS-DO-03.01]
    Anweisungen im Projekt sollten Informationen über die verwendete Technologie, die auszuführenden Befehle und die erwartete Ausgabe enthalten. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.

    Both the README and https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md#verifying-what-you-pulled give the exact cosign command, including the certificate identity regexp and the OIDC issuer. Integrity is additionally verifiable by digest alone, since consumers pin digests rather than tags.



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der erwarteten Identität der Person oder des Prozesses enthalten, die/der die Software-Release erstellt hat. [OSPS-DO-03.02]
    Die erwartete Identität kann in Form von Schlüssel-IDs zur Signierung, Aussteller und Identität aus einem Sigstore-Zertifikat oder ähnlichen Formen vorliegen. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.

    The published verification command names the expected author process precisely: the certificate identity is this repository's publish workflow, anchored through @refs/heads/main$ so a signature minted from any other ref does not verify. The documentation states plainly that a signature not verifying against that identity is not ours, whatever the tag says. The same string appears in the README, SECURITY.md and the pipeline's own post-signing verification step, so the three cannot drift apart silently.



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage über den Umfang und die Dauer der Unterstützung für jedes Release enthalten. [OSPS-DO-04.01]
    Um den Umfang und die Dauer der Unterstützung für die veröffentlichten Software-Assets des Projekts zu kommunizieren, sollte das Projekt eine SUPPORT.md-Datei, einen "Support"-Abschnitt in SECURITY.md oder eine andere Dokumentation haben, die den Support-Lebenszyklus erklärt, einschließlich der erwarteten Dauer der Unterstützung für jedes Release, der Art der bereitgestellten Unterstützung (z.B. Fehlerkorrekturen, Sicherheitsaktualisierungen) und aller relevanten Richtlinien oder Verfahren zur Erlangung von Unterstützung.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md#supported-versions — the latest published digest only, with the reasoning: this image has no version surface of its own, so there are no back-branches to maintain. Support consists of the weekly cache-free rebuild plus pin bumps, and the upgrade path is a digest bump, which is what Renovate is for.



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage enthalten, wann Releases oder Versionen keine Sicherheitsaktualisierungen mehr erhalten werden. [OSPS-DO-05.01]
    Um den Umfang und die Dauer der Unterstützung für Sicherheitskorrekturen zu kommunizieren, sollte das Projekt eine SUPPORT.md oder eine andere Dokumentation haben, die die Richtlinien des Projekts für Sicherheitsaktualisierungen erklärt.

    The same section states it without euphemism: only the latest published digest is supported. A superseded digest receives no further security updates — it is immutable and remains exactly as published. Because consumers pin digests, this is a property they control directly: a fix reaches you when you bump the digest.



    Die Projektdokumentation MUSS eine Richtlinie enthalten, nach der Code-Mitwirkende überprüft werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden. [OSPS-GV-04.01]
    Veröffentlichen Sie eine durchsetzbare Richtlinie in der Projektdokumentation, die erfordert, dass Code-Mitwirkende überprüft und genehmigt werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden, wie z.B. Merge-Genehmigung oder Zugriff auf Secrets. Es wird empfohlen, dass die Überprüfung die Feststellung einer begründbaren Identitätslinie beinhaltet, wie z.B. die Bestätigung der Zugehörigkeit des Beitragsleistenden zu einer bekannten vertrauenswürdigen Organisation.

    Honest miss. https://github.com/CarlAllenn/monumental-archive-db/blob/main/GOVERNANCE.md describes the current single-maintainer model and says committer status would evolve with the project if it gained regular contributors, but it does not state a policy for vetting a collaborator before escalated permissions are granted. Nothing has been granted to date, so the gap is theoretical rather than active — but a policy written after the first request is worth less than one written before it, which is the point of this control. Tracked for fix as a short addition to GOVERNANCE.md.



    Wenn das Projekt ein Release erstellt hat, MÜSSEN alle kompilierten veröffentlichten Software-Assets mit einer Software-Stückliste (Software Bill of Materials) ausgeliefert werden. [OSPS-QA-02.02]
    Es wird empfohlen, SBOMs zum Build-Zeitpunkt automatisch mit einem Tool zu generieren, das auf Genauigkeit geprüft wurde. Dies ermöglicht es Benutzern, diese Daten auf standardisierte Weise zusammen mit anderen Projekten in ihrer Umgebung aufzunehmen.

    Every published image carries an SPDX SBOM attestation generated at build time (sbom: true), alongside a provenance attestation at mode=max. Both are attached to the manifest and retrievable by digest. Note the SBOM is generated by the build that produced the image rather than reconstructed afterwards, so it describes the bytes that shipped.



    Wenn das Projekt ein Release erstellt hat, das mehrere Quellcode-Repositorys umfasst, MÜSSEN alle Unterprojekte Sicherheitsanforderungen durchsetzen, die genauso streng oder strenger sind als die primäre Codebasis. [OSPS-QA-04.02]
    Alle zusätzlichen Unterprojekt-Code-Repositorys, die vom Projekt erstellt und in ein Release kompiliert wurden, müssen Sicherheitsanforderungen durchsetzen, die dem Status und der Absicht der jeweiligen Codebasis entsprechen. Zusätzlich zur Befolgung der entsprechenden OSPS Baseline-Anforderungen kann dies die Anforderung einer Sicherheitsüberprüfung, die Sicherstellung, dass es frei von Schwachstellen ist, und die Sicherstellung, dass es frei von bekannten Sicherheitsproblemen ist, umfassen.

    The project is a single repository with no subprojects.



    Die Projektdokumentation MUSS klar dokumentieren, wann und wie Tests ausgeführt werden. [OSPS-QA-06.02]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der erklärt, wie Tests lokal und in der CI/CD-Pipeline ausgeführt werden. Die Dokumentation sollte erklären, was die Tests testen und wie die Ergebnisse interpretiert werden.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md#development-quick-start documents how — task smoke for the test suite, task ci for the whole gate, identical locally and in CI — and when: the lefthook hooks run the lint suite on every commit and build and smoke the image on push when the Dockerfile or the smoke script changed, and CI runs the full gate on every pull request. CONTRIBUTING also documents the one trap in the smoke script (the official entrypoint starts postgres twice on a fresh volume, so the script waits for the second ready line).



    Die Projektdokumentation MUSS eine Richtlinie enthalten, nach der bei allen größeren Änderungen an der vom Projekt erstellten Software Tests der Funktionalität zu einer automatisierten Test-Suite hinzugefügt oder aktualisiert werden sollten. [OSPS-QA-06.03]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der die Richtlinie zum Hinzufügen oder Aktualisieren von Tests erklärt. Die Richtlinie sollte erklären, was eine wesentliche Änderung darstellt und welche Tests hinzugefügt oder aktualisiert werden sollten.

    https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md#tests-are-part-of-the-change — a change to what the image contains comes with a smoke assertion that fails without it, with the reasoning stated: adding an extension without its assertion means the next refactor can silently drop it and the gate stays green. It is listed as one of the four ordered review checks, so it is applied at review rather than merely written down.



    Wenn ein Commit in den primären Branch gemacht wird, MUSS das Versionskontrollsystem des Projekts mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen erfordern. [OSPS-QA-07.01]
    Konfigurieren Sie das Versionskontrollsystem des Projekts so, dass mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen in den Release- oder primären Branch erforderlich ist. Dies kann erreicht werden, indem ein Pull-Request von mindestens einem anderen Mitarbeiter überprüft und genehmigt werden muss, bevor er zusammengeführt werden kann.

    Structurally unreachable, not an oversight. This is a single-maintainer project, so no non-author human approval is available; requiring one would block the only path to main rather than improve review. The compensating controls are documented: every change including the maintainer's own goes through a pull request against a ruleset-protected main with the full gate green as required status checks, and https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md#code-review sets out the ordered checks applied — which is explicit that maintainer-authored changes are self-reviewed against that list. Note the ruleset deliberately does not set require_last_push_approval: at required_approving_review_count 0 it reads like a free toggle but instead demands an approval a lone maintainer cannot give.



    Wenn das Projekt ein Release erstellt hat, MUSS das Projekt eine Bedrohungsmodellierung und eine Analyse der Angriffsfläche durchführen, um Angriffe auf kritische Codepfade, Funktionen und Interaktionen innerhalb des Systems zu verstehen und sich davor zu schützen. [OSPS-SA-03.02]
    Bedrohungsmodellierung ist eine Aktivität, bei der das Projekt die Codebasis, zugehörige Prozesse und Infrastruktur, Schnittstellen, Schlüsselkomponenten betrachtet und "wie ein Hacker denkt" und darüber nachdenkt, wie das System kompromittiert werden könnte. Jede identifizierte Bedrohung wird aufgelistet, damit das Projekt dann darüber nachdenken kann, wie Lücken/Schwachstellen, die entstehen könnten, proaktiv vermieden oder geschlossen werden können. 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#threat-model is an explicit threat model ordered by exposure, naming supply-chain substitution as primary and enumerating its four distinct points (base image, extension build stage, apt layer, published manifest), then CI compromise, known-vulnerable OS packages, and configuration that misleads a consumer — each with what is explicitly out of scope. The attack surface analysis is the trust-boundary section, which states what crosses each boundary and by what mechanism. https://github.com/CarlAllenn/monumental-archive-db/blob/main/docs/security-review-2026.md then tests that model against the implementation on a dated pass and records where it did not hold.



    Alle Schwachstellen in Softwarekomponenten, die das Projekt nicht betreffen, MÜSSEN in einem VEX-Dokument erfasst werden, das den Schwachstellenbericht um Angaben zur Nicht-Ausnutzbarkeit ergänzt. [OSPS-VM-04.02]
    Richten Sie einen VEX-Feed ein, der den Ausnutzbarkeitsstatus bekannter Schwachstellen kommuniziert, einschließlich Bewertungsdetails oder aller vorhandenen Abhilfemaßnahmen, die verhindern, dass anfälliger Code ausgeführt wird.

    No VEX document is produced. trivy runs with --ignore-unfixed, so unfixed upstream findings are excluded from the gate rather than asserted non-exploitable with a machine-readable justification, and the report-only publish scan puts raw findings on the run log without dispositions. For an image whose CVE surface is almost entirely inherited from PostgreSQL, PostGIS, GDAL and Debian, a VEX would be genuinely useful to consumers — it would let them distinguish 'present in the image but not reachable in this configuration' from 'unremediated'. Tracked for fix.



    Die Projektdokumentation MUSS eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SCA-Befunden im Zusammenhang mit Schwachstellen und Lizenzen definiert. [OSPS-VM-05.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von SCA-Befunden in Bezug auf Schwachstellen und Lizenzen definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.

    The threshold is documented and is the strictest available: trivy runs at all severities — UNKNOWN through CRITICAL — with --ignore-unfixed, so any finding with an available fix fails the gate. There is no severity cutoff below which a fixable vulnerability is tolerated. The configuration is https://github.com/CarlAllenn/monumental-archive-db/blob/main/trivy.yaml, listed in the coding-standard table at https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md#coding-standard, and the remediation model behind it is https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md. Licence findings are handled separately and more strictly by reuse lint, which gates CI on full REUSE 3.3 compliance.



    Die Projektdokumentation MUSS eine Richtlinie enthalten, um SCA-Verstöße vor jeder Veröffentlichung zu beheben. [OSPS-VM-05.02]
    Dokumentieren Sie eine Richtlinie im Projekt, um anwendbare Software Composition Analysis-Ergebnisse vor jedem Release zu beheben, und fügen Sie Statusprüfungen hinzu, die die Einhaltung dieser Richtlinie vor dem Release überprüfen.

    Documented, and the placement is a deliberate decision rather than an accident, so it is worth stating precisely. The blocking CVE gate lives on pull requests: nothing merges with a fixable vulnerability. It is deliberately NOT on the publish path, and https://github.com/CarlAllenn/monumental-archive-db/blob/main/SECURITY.md explains why — a CVE published tomorrow must not retroactively kill a publish, and the weekly remediation rebuild especially must not die because a scanner had a bad day. Publish runs scan report-only so every published digest still has its CVE state on the run log, and the actual remediation for the inherited layer is the weekly cache-free rebuild rather than a gate.



    Alle Änderungen an der Codebasis des Projekts MÜSSEN automatisch anhand einer dokumentierten Richtlinie für bösartige Abhängigkeiten und bekannte Schwachstellen in Abhängigkeiten bewertet und im Falle von Verstößen blockiert werden, außer wenn diese als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-05.03]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Software Composition Analysis-Tool bei allen Änderungen an der Codebasis ausführt. Fordern Sie an, dass die Statusprüfung bestanden wird, bevor Änderungen zusammengeführt werden können.

    Every change is evaluated automatically and blocked on violation: trivy scans the filesystem and the built image on every pull request, and the scan tasks are deliberately never checksum-fingerprinted because vulnerability databases change without commits and a cached skip would be a false pass. Dependency provenance is gated too — https://github.com/CarlAllenn/monumental-archive-db/blob/main/scripts/check-edtf-attestation.sh proves the pinned extension image carries GitHub-attested provenance from edtf's own publish workflow at the matching release tag, which is a malicious-dependency control rather than a vulnerability one. Renovate keeps pins current between scans.



    Die Projektdokumentation MUSS eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SAST-Befunden definiert. [OSPS-VM-06.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von Befunden aus Static Application Security Testing (SAST) definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.

    The threshold is zero, documented as such: https://github.com/CarlAllenn/monumental-archive-db/blob/main/CONTRIBUTING.md states that fixing tool output is never optional and that there are no bypass flags. Any finding from hadolint, shellcheck, actionlint, zizmor --persona=pedantic or CodeQL fails the gate regardless of severity, and the gate is enforced twice — locally by the lefthook hooks and remotely by required status checks on main.



    Alle Änderungen an der Codebasis des Projekts MÜSSEN automatisch anhand einer dokumentierten Richtlinie für Sicherheitsschwächen bewertet und im Falle von Verstößen blockiert werden, außer wenn diese als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-06.02]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Static Application Security Testing (SAST) Tool bei allen Änderungen an der Codebasis ausführt. Verlangen Sie, dass die Statusprüfung erfolgreich ist, bevor Änderungen zusammengeführt werden können.

    All changes are evaluated automatically and blocked on violation. Static analysis of everything this repository actually authors: hadolint on the Dockerfile, shellcheck and shfmt on the two scripts, actionlint and zizmor at --persona=pedantic on the workflows, and CodeQL's actions analysis on the workflows — which is where this repository's real privilege lives, since that is what holds GHCR push, OIDC and cosign signing. Suppression is not available as a bypass: new words go in .codespellrc rather than a lint disable, by documented policy.



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.