bookstack-mcp

Projetos que seguem as melhores práticas abaixo podem se autocertificar voluntariamente e mostrar que alcançaram um selo de melhores práticas da Open Source Security Foundation (OpenSSF).

Não existe um conjunto de práticas que possa garantir que o software nunca terá defeitos ou vulnerabilidades; mesmo métodos formais podem falhar se as especificações ou suposições estiverem erradas. Nem existe qualquer conjunto de práticas que possa garantir que um projeto sustentará uma comunidade de desenvolvimento saudável e bem-funcionada. No entanto, seguir as melhores práticas pode ajudar a melhorar os resultados dos projetos. Por exemplo, algumas práticas permitem revisão multipessoal antes do lançamento, o que pode ajudar a encontrar vulnerabilidades técnicas difíceis de encontrar e ajudar a construir confiança e desejo de interação repetida entre desenvolvedores de diferentes empresas. Para ganhar um selo, todos os critérios DEVE e NÃO DEVE devem ser atendidos, todos os critérios DEVERIA devem ser atendidos OU não atendidos com justificativa, e todos os critérios SUGERIDO devem ser atendidos OU não atendidos (queremos que sejam considerados pelo menos). Se você quiser inserir texto de justificativa como um comentário genérico, em vez de ser uma justificativa de que a situação é aceitável, inicie o bloco de texto com '//' seguido de um espaço. Feedback é bem-vindo via site do GitHub como questões ou pull requests Há também uma lista de discussão para discussão geral.

Fornecemos com prazer as informações em vários idiomas, no entanto, se houver qualquer conflito ou inconsistência entre as traduções, a versão em inglês é a versão autoritativa.
Se este é o seu projeto, por favor mostre o status do seu selo básico na página do seu projeto! O status do selo básico se parece com isto: O nível do selo básico para o projeto 12116 é baseline-3 Aqui está como incorporar o selo básico:
Você pode mostrar o status do seu selo básico incorporando isto no seu arquivo markdown:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/12116/baseline)](https://www.bestpractices.dev/projects/12116)
ou incorporando isto no seu HTML:
<a href="https://www.bestpractices.dev/projects/12116"><img src="https://www.bestpractices.dev/projects/12116/baseline"></a>


Estes são os critérios de Nível Básico 2. Estes critérios são da versão de referência v2025.10.10 com texto de critérios atualizado da versão v2026.02.19. Os critérios novos na versão v2026.02.19 são rotulados como "futuros" e começarão a ser aplicados a partir de 2026-06-01. Por favor, forneça respostas para os critérios "futuros" antes dessa data.

Baseline Series: Nível Básico 1 Nível Básico 2 Nível Básico 3

        

 Fundamentos

  • Geral

    Observe que outros projetos podem usar o mesmo nome.

    BookStack stores your team's knowledge — but AI assistants can't access it without an integration. BookStack MCP Server bridges that gap, connecting AI assistants (Claude Desktop, LibreChat, and any MCP-compatible client) directly to your BookStack instance so they can search, read, and manage your documentation through natural language.

    Use o formato de expressão de licença SPDX; exemplos incluem "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT" e "(BSD-2-Clause OR Ruby)". Não inclua aspas simples ou aspas duplas.
    Se houver mais de uma linguagem, liste-as como valores separados por vírgula (espaços opcionais) e ordene-as da mais usada para a menos usada. Se houver uma longa lista, liste pelo menos as três primeiras mais comuns. Se não houver linguagem (por exemplo, este é um projeto apenas de documentação ou apenas de teste), use o caractere único "-". Use uma capitalização convencional para cada linguagem, por exemplo, "JavaScript".
    O Common Platform Enumeration (CPE) é um esquema de nomenclatura estruturado para sistemas de tecnologia da informação, software e pacotes. Ele é usado em vários sistemas e bancos de dados ao relatar vulnerabilidades.

 Controles 19/19

  • Controles


    Quando uma tarefa de CI/CD é executada sem permissões especificadas, o sistema de CI/CD DEVE definir como padrão as permissões da tarefa para as menores permissões concedidas no pipeline. [OSPS-AC-04.01]
    Configure as definições do projeto para atribuir as menores permissões disponíveis a novos pipelines por padrão, concedendo permissões adicionais somente quando necessário para tarefas específicas.

    All workflows declare permissions: read-all at the top level, establishing read-only as the baseline for every job. Individual jobs that require write access (e.g. pushing to GHCR, creating git tags) override only the specific permissions they need at the job level. GitHub Actions honours the most restrictive scope when no job-level override is present, so any task without explicit permissions inherits the read-all baseline rather than the default broad token permissions.



    Quando um lançamento oficial é criado, esse lançamento DEVE receber um identificador de versão único. [OSPS-BR-02.01]
    Atribua um identificador de versão único a cada versão de lançamento produzida pelo projeto, seguindo uma convenção de nomenclatura ou esquema de numeração consistente. Exemplos incluem SemVer, CalVer ou id de commit git.

    Every release is tagged with a unique semantic version identifier (e.g. v2.5.6) derived from the version field in packages/stdio/package.json. The CI/CD pipeline (docker-publish.yml) reads this value at merge time, asserts the version tag does not already exist in the registry, and creates the git tag only after the multi-arch Docker manifest is verified. Attempting to release a version that already exists in GHCR causes the pipeline to fail, enforcing uniqueness.



    Quando um lançamento oficial é criado, esse lançamento DEVE conter um registro descritivo de modificações funcionais e de segurança. [OSPS-BR-04.01]
    Certifique-se de que todos os lançamentos incluam um registro de alterações descritivo. É recomendado garantir que o registro de alterações seja legível por humanos e inclua detalhes além das mensagens de commit, como descrições do impacto de segurança ou relevância para diferentes casos de uso. Para garantir a legibilidade por máquina, coloque o conteúdo sob um cabeçalho markdown como \"## Changelog\"."

    Each release produces a GitHub Release (automated via the merge job in docker-publish.yml) with notes extracted from the corresponding ## [X.Y.Z] section of CHANGELOG.md. The changelog follows the Keep a Changelog format and documents changes under categorised headings: Added, Fixed, Security, Dependencies, and Changed. See the v2.5.6 release as an example.



    Quando um pipeline de compilação e lançamento ingere dependências, ele DEVE usar ferramentas padronizadas quando disponíveis. [OSPS-BR-05.01]
    Use ferramentas comuns para o seu ecossistema, como gerenciadores de pacotes ou ferramentas de gerenciamento de dependências para ingerir dependências no momento da compilação. Isso pode incluir o uso de um arquivo de dependências, arquivo de bloqueio ou manifesto para especificar as dependências necessárias, que são então incorporadas pelo sistema de compilação.

    The build pipeline uses npm ci — the standardized, deterministic install command for Node.js/npm projects. npm ci installs exclusively from package-lock.json, ensuring exact, reproducible dependency versions across all CI runs. This is the npm-recommended practice for automated environments over npm install.



    Quando um lançamento oficial é criado, esse lançamento DEVE ser assinado ou contabilizado em um manifesto assinado incluindo os hashes criptográficos de cada ativo. [OSPS-BR-06.01]
    Assine todos os ativos de software lançados no momento da construção com uma assinatura criptográfica ou atestados, como assinatura GPG ou PGP, assinaturas Sigstore, proveniência SLSA ou VSAs SLSA. Inclua os hashes criptográficos de cada ativo em um manifesto assinado ou arquivo de metadados.

    Docker images are published to GHCR with SLSA Level 2 provenance attestations generated by actions/attest-build-provenance during each post-merge build. The attestation records the builder identity, source commit SHA, and a signed manifest of the image digests, anchored to the GitHub Actions OIDC token. The attestation is stored in the repository's attestation log and can be verified with gh attestation verify.



    Quando o projeto tiver feito um lançamento, a documentação do projeto DEVE incluir uma descrição de como o projeto seleciona, obtém e rastreia suas dependências. [OSPS-DO-06.01]
    É recomendado publicar essas informações juntamente com a documentação técnica e de design do projeto em um recurso publicamente visível, como o repositório de código-fonte, site do projeto ou outro canal.

    Dependencies are declared in packages/core/package.json and packages/stdio/package.json and locked in package-lock.json. All installs use npm ci for reproducible builds. Updates are automated via Dependabot (weekly schedule for npm, GitHub Actions, and Docker base image). Vulnerability tracking uses npm audit on every CI build, OSV Scanner, and Trivy image scanning. See the Dependency Management section in README.md.



    (Critério futuro) A documentação do projeto DEVE incluir instruções sobre como compilar o software, incluindo bibliotecas, frameworks, SDKs e dependências necessários. [OSPS-DO-07.01]
    Recomenda-se publicar essas informações junto com a documentação de colaboradores do projeto, como em CONTRIBUTING.md ou outra documentação de tarefas de desenvolvimento. Isso também pode ser documentado usando alvos de Makefile ou outros scripts de automação.

    Build instructions are documented in README.md under "Quick Start" (prerequisites: Node.js 18+, npm; steps: npm install, npm run build) and in CONTRIBUTING.md under "Getting started". Required dependencies are listed in packages/core/package.json and packages/stdio/package.json. The project has no system-level library requirements beyond Node.js and npm.



    Enquanto ativo, a documentação do projeto DEVE incluir uma lista de membros do projeto com acesso a recursos sensíveis. [OSPS-GV-01.01]
    Documente os participantes do projeto e seus papéis através de artefatos como members.md, governance.md, maintainers.md ou arquivo similar dentro do repositório de código-fonte do projeto. Isso pode ser tão simples quanto incluir nomes ou identificadores de conta em uma lista de mantenedores, ou mais complexo dependendo da governança do projeto.

    MAINTAINERS.md in the repository root lists all project members with access to sensitive resources (GitHub repo admin, GHCR registry, GitHub Actions secrets). The project has a single maintainer: @paradoxbound. No manually stored secrets exist — the only credential used by CI is the auto-provisioned GITHUB_TOKEN



    Enquanto ativo, a documentação do projeto DEVE incluir descrições dos papéis e responsabilidades dos membros do projeto. [OSPS-GV-01.02]
    Documente os participantes do projeto e seus papéis através de artefatos como members.md, governance.md, maintainers.md ou arquivo similar dentro do repositório de código-fonte do projeto.

    MAINTAINERS.md describes the project's single Maintainer role held by @paradoxbound, with responsibilities covering repository administration, release management (approving and merging PRs, triggering the release pipeline), and ownership of sensitive resources (GitHub repo, GHCR registry, Actions secrets).



    Enquanto ativo, a documentação do projeto DEVE incluir um guia para contribuidores de código que inclui requisitos para contribuições aceitáveis. [OSPS-GV-03.02]
    Estenda o conteúdo de CONTRIBUTING.md ou CONTRIBUTING/ na documentação do projeto para delinear os requisitos para contribuições aceitáveis, incluindo padrões de codificação, requisitos de testes e diretrizes de submissão para contribuidores de código. É recomendado que este guia seja a fonte da verdade tanto para contribuidores quanto para aprovadores.

    CONTRIBUTING.md in the repository root provides a contribution guide covering: repository setup and build steps, project structure, the pull request workflow (fork → branch from main → pass type-check and build → open PR), how to run tests, security vulnerability reporting, and the code style requirements (TypeScript strict mode, native fetch only, Zod schemas for inputs, specific error handling patterns). These constitute the requirements for acceptable contributions.



    Enquanto ativo, o sistema de controle de versão DEVE exigir que todos os contribuidores de código afirmem que estão legalmente autorizados a fazer as contribuições associadas em cada commit. [OSPS-LE-01.01]
    Inclua um DCO no repositório do projeto, exigindo que os contribuidores de código afirmem que estão legalmente autorizados a confirmar as contribuições associadas em cada commit. Use uma verificação de status para garantir que a afirmação seja feita. Um CLA também satisfaz este requisito. Alguns sistemas de controle de versão, como o GitHub, podem incluir isso nos termos de serviço da plataforma.

    All pull requests are checked by a GitHub Actions DCO workflow (dco.yml) that fails if any commit lacks a Signed-off-by: line. The DCO sign-off check is required before merging. Contributors are instructed to use git commit -s in CONTRIBUTING.md. This implements the Developer Certificate of Origin, asserting legal authorisation to contribute under the MIT License.



    Quando um commit é feito na branch primária, quaisquer verificações de status automatizadas para commits DEVEM passar ou ser manualmente ignoradas. [OSPS-QA-03.01]
    Configure o sistema de controle de versão do projeto para exigir que todas as verificações de status automatizadas passem ou exijam reconhecimento manual antes que um commit possa ser mesclado na branch primária. É recomendado que quaisquer verificações de status opcionais NÃO sejam configuradas como um requisito de aprovação ou reprovação que os aprovadores possam ser tentados a ignorar.

    GitHub branch protection on main requires all status checks to pass before merging. The required checks are: test (functional-tests.yml), build-and-push (docker-publish.yml), and pre-merge-cd-check (docker-publish.yml). "Do not allow bypassing the above settings" is enabled, preventing administrators from merging without passing checks. Bypasses are therefore explicit and require removing branch protection rules, which is itself a logged, auditable action.



    Antes de um commit ser aceito, os pipelines de CI/CD do projeto DEVEM executar pelo menos um conjunto de testes automatizados para garantir que as alterações atendam às expectativas. [OSPS-QA-06.01]
    Testes automatizados devem ser executados antes de cada mesclagem na branch primária. O conjunto de testes deve ser executado em um pipeline de CI/CD e os resultados devem ser visíveis a todos os contribuidores. O conjunto de testes deve ser executado em um ambiente consistente e deve ser executado de uma maneira que permita aos contribuidores executar os testes localmente. Exemplos de conjuntos de testes incluem testes unitários, testes de integração e testes de ponta a ponta.

    The functional-tests.yml workflow runs on every pull request targeting main and on every push to main. It executes npm run build, npm run type-check, and npm test (the full vitest suite including unit tests, fuzz tests, and where credentials are available, functional tests against a live BookStack instance). This check is a required status check — PRs cannot merge unless it passes.



    Quando o projeto tiver feito um lançamento, a documentação do projeto DEVE incluir documentação de design demonstrando todas as ações e atores dentro do sistema. [OSPS-SA-01.01]
    Inclua designs na documentação do projeto que expliquem as ações e atores. Atores incluem qualquer subsistema ou entidade que possa influenciar outro segmento no sistema. Certifique-se de que isso seja atualizado para novos recursos ou mudanças que quebrem compatibilidade.

    The README Architecture section documents all actors (MCP client, bookstack-mcp server, BookStack API client, BookStack instance, operator) in a table, and includes an ASCII data flow diagram showing the complete request/response path through the system — from MCP client through stdio transport, Zod validation, the BookStack HTTP client, and back. Key design decisions (native fetch, write-gate, Zod schemas, stdio transport, monorepo split) are also documented.



    Quando o projeto tiver feito um lançamento, a documentação do projeto DEVE incluir descrições de todas as interfaces de software externas dos ativos de software lançados. [OSPS-SA-02.01]
    Documente todas as interfaces de software (APIs) dos ativos de software lançados, explicando como os usuários podem interagir com o software e quais dados são esperados ou produzidos. Certifique-se de que isso seja atualizado para novos recursos ou mudanças que quebrem compatibilidade.

    The README documents all external software interfaces: the MCP tool interface (45 tools listed with descriptions), the environment variable configuration interface, the BookStack REST API dependency (with authentication format), and the stdio transport interface as consumed by each supported MCP client (Claude Desktop and LibreChat).



    Quando o projeto tiver feito um lançamento, o projeto DEVE realizar uma avaliação de segurança para compreender os problemas de segurança potenciais mais prováveis e impactantes que poderiam ocorrer dentro do software. [OSPS-SA-03.01]
    Realizar uma avaliação de segurança informa tanto os membros do projeto quanto os consumidores a jusante que o projeto compreende quais problemas poderiam surgir dentro do software. Compreender quais ameaças poderiam se concretizar ajuda o projeto a gerenciar e tratar riscos. Essa informação é útil para os consumidores a jusante demonstrarem a perspicácia e as práticas de segurança do projeto. Certifique-se de que isso seja atualizado para novos recursos ou mudanças disruptivas.

    SECURITY.md contains a Security Assessment section documenting six threats with severity ratings (HIGH/MEDIUM/LOW) and existing mitigations: API credential exposure, unintended write operations, prompt injection via BookStack content, insecure transport (now enforced at startup), supply chain compromise, and SSRF via BOOKSTACK_BASE_URL.



    Enquanto ativo, a documentação do projeto DEVE incluir uma política para divulgação coordenada de vulnerabilidades (CVD), com um prazo claro para resposta. [OSPS-VM-01.01]
    Crie um arquivo SECURITY.md na raiz do diretório, descrevendo a política do projeto para divulgação coordenada de vulnerabilidades. Inclua um método para relatar vulnerabilidades. Estabeleça expectativas sobre como o projeto responderá e tratará problemas relatados.

    SECURITY.md documents a coordinated vulnerability disclosure policy: reporters use GitHub's private Security Advisory feature, can expect acknowledgement within 7 days and a patch or mitigation within 30 days where feasible, and will be credited in the advisory unless they request otherwise.



    Enquanto ativo, a documentação do projeto DEVE fornecer um meio para relato privado de vulnerabilidades diretamente aos contatos de segurança dentro do projeto. [OSPS-VM-03.01]
    Forneça um meio para que pesquisadores de segurança relatem vulnerabilidades privadamente ao projeto. Isso pode ser um endereço de e-mail dedicado, um formulário web, ferramentas especializadas do VCS, endereços de e-mail para contatos de segurança ou outros métodos.

    SECURITY.md directs reporters to use GitHub's private Security Advisory feature (https://github.com/paradoxbound/bookstack-mcp/security/advisories/new), which routes directly to the maintainer without public disclosure. The README also links to SECURITY.md via the Security Considerations section.



    Enquanto ativo, a documentação do projeto DEVE publicar publicamente dados sobre vulnerabilidades descobertas. [OSPS-VM-04.01]
    Forneça informações sobre vulnerabilidades conhecidas em um canal público previsível, como uma entrada CVE, postagem em blog ou outro meio. Na medida do possível, essa informação deve incluir versão(ões) afetada(s), como um consumidor pode determinar se está vulnerável e instruções para mitigação ou remediação.

    SECURITY.md states that once a fix is released, the GitHub Security Advisory will be published publicly and a CVE requested where appropriate, and that security fixes are recorded in CHANGELOG.md under the relevant release.



Estes dados estão disponíveis sob o Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0). Isso significa que um Destinatário de Dados pode compartilhar os Dados, com ou sem modificações, desde que o Destinatário de Dados disponibilize o texto deste acordo com os Dados compartilhados. Por favor, dê crédito a Jim Bailey e aos contribuidores do selo de melhores práticas OpenSSF.

Entrada de selo do projeto de propriedade de: Jim Bailey.
Entrada criada em 2026-03-08 10:20:21 UTC, última atualização em 2026-03-10 14:13:23 UTC. Selo de aprovação alcançado pela última vez em 2026-03-10 14:13:23 UTC.