monumental-archive-db

Проекты, которые следуют приведенным ниже лучшим практикам, могут добровольно и самостоятельно оценить себя и продемонстрировать, что они получили значок Open Source Security Foundation (OpenSSF).

Не существует набора практик, гарантирующего, что у программного обеспечения никогда не будет недостатков или уязвимостей; даже формальные методы могут не помочь, если спецификации или допущения ошибочны. Также не существует какой-либо практики, которая могла бы гарантировать, что проект будет поддерживать здоровое и хорошо функционирующее сообщество разработчиков. Однако следующие хорошие правила могут помочь улучшить результаты проектов. Например, некоторые правила описывают ревью несколькими участниками перед выпуском, что может помочь найти технические уязвимости, которые было бы сложно найти другим способом, и помочь построить доверие и желание дальнейшего взаимодействия между разработчиками из разных компаний. Чтобы получить значок, нужно выполнить все критерии с ключевыми словами "НЕОБХОДИМО"/"ОБЯЗАН"/"НЕДОПУСТИМО", все критерии со словом "СЛЕДУЕТ" либо должны удовлетворяться, либо должно быть приведено обоснование их невыполнения, и все критерии со словом "ЖЕЛАТЕЛЬНО" могут быть удовлетворены ИЛИ неудовлетворены (желательно, чтобы они были хотя бы рассмотрены). Если вы хотите ввести общий комментарий вместо объяснения, почему текущая ситуация приемлема, начните текст с '//' и пробела. Приветствуется обратная связь через сайт на GitHub в виде issues или pull requests. Существует также список рассылки для общих вопросов.

Мы с удовольствием предоставляем информацию на нескольких языках, однако, если есть какой-либо конфликт или несоответствие между переводами, английская версия является авторитетной.
Если это ваш проект, пожалуйста, отобразите статус вашего базового значка на странице проекта! Статус базового значка выглядит так: Базовый уровень значка для проекта 13998 - baseline-1 Вот как встроить базовый значок:
Вы можете показать статус базового значка, вставив это в ваш файл markdown:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/13998/baseline)](https://www.bestpractices.dev/projects/13998)
или вставив это в ваш HTML:
<a href="https://www.bestpractices.dev/projects/13998"><img src="https://www.bestpractices.dev/projects/13998/baseline"></a>


Это критерии Базового Уровня 2. Это критерии версии v2026.08.28.

Baseline Series: Базовый уровень 1 Базовый Уровень 2 Базовый Уровень 3

        

 Основы

  • Общая

    Обратите внимание, что другие проекты могут использовать то же имя.

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

    Используйте формат выражения лицензии SPDX; примеры включают «Apache-2.0», «BSD-2-Clause», «BSD-3-Clause», «GPL-2.0+», «LGPL-3.0+», «MIT» и «(BSD-2-Clause OR Ruby)».
    Если используется более одного языка, перечислите их через запятую (пробелы необязательны), и отсортируйте их от наиболее до наименее используемого. Если список длинный, пожалуйста, перечислите по крайней мере три наиболее распространенных. Если языка нет (например, это проект только для документации или только для тестирования), используйте один символ «-» (минус). Для каждого языка используйте общепринятую капитализацию названия, например «JavaScript».
    Common Platform Enumeration (CPE) - это структурированная схема именования для информационных систем, программного обеспечения и пакетов. Она используется в ряде систем и баз данных для отчетов об уязвимостях.

 Элементы управления 18/19 ●

  • Элементы управления


    Когда задача CI/CD выполняется без указания прав доступа, система CI/CD ОБЯЗАНА по умолчанию назначать задаче минимальные права, предоставленные в конвейере. [OSPS-AC-04.01]
    Настройте параметры проекта для назначения минимальных доступных прав новым конвейерам по умолчанию, предоставляя дополнительные права только при необходимости для конкретных задач.

    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.



    Когда создается официальный выпуск, этому выпуску ОБЯЗАН быть назначен уникальный идентификатор версии. [OSPS-BR-02.01]
    Присваивайте уникальный идентификатор версии каждому выпуску, создаваемому проектом, следуя согласованному соглашению о наименовании или схеме нумерации. Примеры включают SemVer, CalVer или идентификатор коммита git.

    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.



    Когда создается официальный выпуск, этот выпуск ОБЯЗАН содержать описательный журнал функциональных изменений и изменений безопасности. [OSPS-BR-04.01]
    Убедитесь, что все выпуски содержат описательный журнал изменений. Рекомендуется обеспечить, чтобы журнал изменений был читаемым человеком и содержал более подробные сведения, чем сообщения коммитов, такие как описания влияния на безопасность или релевантность для различных сценариев использования. Для обеспечения машиночитаемости размещайте содержимое под заголовком markdown, таким как "## 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.



    Когда конвейер сборки и выпуска загружает зависимости, он ОБЯЗАН использовать стандартизированные инструменты, где они доступны. [OSPS-BR-05.01]
    Используйте общие инструменты для вашей экосистемы, такие как менеджеры пакетов или инструменты управления зависимостями для загрузки зависимостей во время сборки. Это может включать использование файла зависимостей, lock-файла или манифеста для указания требуемых зависимостей, которые затем подключаются системой сборки.

    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.



    Когда создается официальный выпуск, этот выпуск ОБЯЗАН быть подписан или учтен в подписанном манифесте, включающем криптографические хеши каждого актива. [OSPS-BR-06.01]
    Подписывайте все выпущенные программные активы во время сборки с использованием криптографической подписи или аттестаций, таких как подпись GPG или PGP, подписи Sigstore, происхождение SLSA или SLSA VSA. Включите криптографические хеши каждого актива в подписанный манифест или файл метаданных.

    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



    Когда проект создал выпуск, документация проекта ОБЯЗАНА включать описание того, как проект выбирает, получает и отслеживает свои зависимости. [OSPS-DO-06.01]
    Рекомендуется публиковать эту информацию вместе с технической документацией и документацией по дизайну проекта в общедоступном ресурсе, таком как репозиторий исходного кода, веб-сайт проекта или другой канал.

    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.



    Документация проекта ДОЛЖНА включать инструкции по сборке программного обеспечения, включая необходимые библиотеки, фреймворки, SDK и зависимости. [OSPS-DO-07.01]
    Рекомендуется публиковать эту информацию вместе с документацией для участников проекта, например в файле CONTRIBUTING.md или другой документации по задачам разработчика. Это также может быть задокументировано с помощью целей Makefile или других сценариев автоматизации.

    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.



    Документация проекта ОБЯЗАНА включать список участников проекта, имеющих доступ к чувствительным ресурсам. [OSPS-GV-01.01]
    Документируйте участников проекта и их роли с помощью таких артефактов, как members.md, governance.md, maintainers.md или аналогичного файла в репозитории исходного кода проекта. Это может быть просто включение имен или учетных записей в список сопровождающих или более сложное в зависимости от управления проектом.

    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.



    Документация проекта ОБЯЗАНА включать описания ролей и обязанностей участников проекта. [OSPS-GV-01.02]
    Документируйте участников проекта и их роли с помощью таких артефактов, как members.md, governance.md, maintainers.md или аналогичного файла в репозитории исходного кода проекта.

    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.



    Документация проекта ОБЯЗАНА включать руководство для авторов кода, содержащее требования к приемлемым вкладам. [OSPS-GV-03.02]
    Расширьте содержимое CONTRIBUTING.md или CONTRIBUTING/ в документации проекта, чтобы изложить требования к приемлемым вкладам, включая стандарты кодирования, требования к тестированию и руководства по отправке для участников кода. Рекомендуется, чтобы это руководство было источником истины как для участников, так и для утверждающих.

    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.



    Система управления версиями ОБЯЗАНА требовать от всех авторов кода подтверждения того, что они юридически уполномочены вносить соответствующие изменения, при каждом коммите. [OSPS-LE-01.01]
    Включите DCO в репозиторий проекта, требуя от участников кода утверждать, что они имеют законное право вносить соответствующий вклад в каждом коммите. Используйте проверку статуса, чтобы убедиться, что утверждение сделано. CLA также удовлетворяет этому требованию. Некоторые системы контроля версий, такие как GitHub, могут включать это в условия обслуживания платформы.

    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.



    При внесении коммита в основную ветку все автоматические проверки статуса для коммитов ДОЛЖНЫ пройти успешно или быть явно обойдены вручную. [OSPS-QA-03.01]
    Настройте систему контроля версий проекта таким образом, чтобы все автоматические проверки статуса должны были пройти успешно или требовать ручного подтверждения перед тем, как коммит может быть объединен с основной веткой. Рекомендуется НЕ настраивать необязательные проверки статуса как требование успешного прохождения или провала, которые утверждающие могут быть склонны обойти.

    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.



    Перед принятием коммита в проекте ДОЛЖЕН выполняться хотя бы один автоматизированный набор тестов в конвейере CI/CD для обеспечения соответствия изменений ожиданиям. [OSPS-QA-06.01]
    Автоматизированные тесты должны выполняться перед каждым объединением с основной веткой. Набор тестов должен выполняться в конвейере CI/CD, и результаты должны быть видны всем участникам. Набор тестов должен выполняться в согласованной среде и таким образом, чтобы участники могли выполнять тесты локально. Примеры наборов тестов включают модульные тесты, интеграционные тесты и сквозные тесты.

    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



    Когда проект выпустил релиз, документация проекта ДОЛЖНА включать проектную документацию, демонстрирующую все действия и участников в системе. [OSPS-SA-01.01]
    Включите в документацию проекта проектные описания, объясняющие действия и участников. Участники включают любую подсистему или сущность, которая может повлиять на другой сегмент в системе. Убедитесь, что эта информация обновляется для новых функций или критических изменений.

    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.



    Когда проект выпустил релиз, документация проекта ДОЛЖНА включать описания всех внешних программных интерфейсов выпущенных программных активов. [OSPS-SA-02.01]
    Документируйте все программные интерфейсы (API) выпущенных программных активов, объясняя, как пользователи могут взаимодействовать с программным обеспечением и какие данные ожидаются или производятся. Убедитесь, что эта информация обновляется для новых функций или критических изменений.

    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.



    Когда проект выпустил релиз, проект ДОЛЖЕН провести оценку безопасности для понимания наиболее вероятных и значимых потенциальных проблем безопасности, которые могут возникнуть в программном обеспечении. [OSPS-SA-03.01]
    Проведение оценки безопасности информирует как членов проекта, так и конечных потребителей о том, что проект понимает, какие проблемы могут возникнуть в программном обеспечении. Понимание того, какие угрозы могут быть реализованы, помогает проекту управлять рисками и справляться с ними. Эта информация полезна для конечных потребителей для демонстрации компетентности в области безопасности и практик проекта. Убедитесь, что эта информация обновляется для новых функций или критических изменений.

    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.



    Документация проекта ОБЯЗАНА включать политику скоординированного раскрытия информации об уязвимостях (CVD) с четко определенными сроками реагирования. [OSPS-VM-01.01]
    Создайте файл SECURITY.md в корневом каталоге, описывающий политику проекта для координированного раскрытия уязвимостей. Включите метод сообщения об уязвимостях. Установите ожидания относительно того, как проект будет реагировать и решать сообщенные проблемы.

    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.



    Документация проекта ОБЯЗАНА предоставлять способ конфиденциального сообщения об уязвимостях непосредственно контактам по вопросам безопасности в проекте. [OSPS-VM-03.01]
    Предоставьте средства для того, чтобы исследователи безопасности могли приватно сообщать об уязвимостях в проект. Это может быть специальный адрес электронной почты, веб-форма, специализированные инструменты системы контроля версий, адреса электронной почты контактов по безопасности или другие методы.

    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.



    Документация проекта ОБЯЗАНА публично публиковать данные об обнаруженных уязвимостях. [OSPS-VM-04.01]
    Предоставляйте информацию об известных уязвимостях в предсказуемом публичном канале, таком как запись CVE, запись в блоге или другом носителе. По мере возможности эта информация должна включать затронутые версии, как потребитель может определить, уязвим ли он, и инструкции по смягчению последствий или исправлению.

    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.



Вы можете использовать инструменты и системы ИИ для предложения изменений через простой URL, например https://www.bestpractices.dev/ru/projects/13998/choose/edit?osps_ac_01_01_status=Met&osps_ac_01_01_justification=GitHub+enforced. Смотрите нашу систему автоматизированных предложений о том, как это сделать. Эти данные доступны по лицензии Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0). Это означает, что получатель данных может распространять данные с изменениями или без них, при условии, что получатель данных предоставляет текст данного соглашения вместе с распространяемыми данными. Пожалуйста, укажите в качестве источника Carl Allen и участников OpenSSF Best Practices badge.

Владелец анкеты на значок проекта: Carl Allen.
2026-08-09 00:45:46 UTC, последнее изменение сделано 2026-08-09 01:33:27 UTC. Последний раз условия для получения значка были выполнены 2026-08-09 00:58:03 UTC.