ADR-0015: Segregação Estática de Conteúdo via Cloudflare Zero Trust | Wiki
ADR-0015: Segregação Estática de Conteúdo via Cloudflare Zero Trust
Este documento especifica a decisão de design sobre o suporte a visibilidade estática controlada (visibility = "public" | "private") no gerador estático gbr_ssg.
1. Contexto e Motivação
Determinadas seções da Base de Conhecimento (como o Startup Blueprint, dados financeiros, OKRs estratégicos e arquitetura interna de negócios) contêm informações confidenciais. Para integrar o gerador com regras de acesso do *Cloudflare Zero Trust / Cloudflare Access*, os arquivos estáticos compilados que forem marcados como privados devem ser fisicamente isolados em um diretório de saída exclusivo /dist/private/.
Dessa forma, o Cloudflare Access pode proteger o caminho /private/* por meio de autenticação de acesso (SSO/WebAuthn), sem exigir lógicas dinâmicas de autorização dentro das páginas HTML.
2. Decisão Arquitetural
-
*Atributo no Frontmatter TOML:* Introduziremos o campo de visibilidade nos metadados da página:
toml visibility = "private" # ou "public" -
**Tipagem e Fallback de Segurança (
ssg_core):** O recordPageMetadataserá expandido com a propriedadevisibility: String. Se a chave for omitida no TOML, a função de parsing usará por padrão o valor seguro"public". -
**Prefixagem de Rota no CLI (
apps/gbr_ssg):** No momento do build e gravação dos arquivos em disco: - Semetadata.visibility == "private", o caminho relativo de saída será alterado de./dist/<path>.htmlpara./dist/private/<path>.html.
3. Requisitos EARS
*Requisitos Ubíquos (Ubiquitous Requirements)*
- *UBQ-01 (Extração de Visibilidade com Fallback Seguro):* O decodificador TOML de PageMetadata DEVE extrair a chave visibility e, caso a chave seja omitida no documento .djot, DEVE atribuir o valor padrão "public".
- *UBQ-02 (Isolamento Físico de Arquivos Privados):* O gravador de arquivos do motor de build DEVE inspecionar a visibilidade da página e, para qualquer documento marcado como "private", DEVE prefixar o caminho de gravação no sistema de arquivos com private/, direcionando os artefatos estáticos para o diretório protegido ./dist/private/.