Feito com Chinaski

Referência de Schema

Tudo o que você cria no Chinaski (páginas, posts, imagens, formulários, usuários, configurações) é armazenado em um único arquivo de banco de dados junto ao seu site. Esta página explica o que o banco de dados guarda e alguns de seus comportamentos que valem conhecer como administrador.

Como o banco de dados funciona

  • O banco de dados é um único arquivo SQLite. Todos os dados vivem nesse único arquivo, e os backups (manuais ou agendados) o capturam de lá.
  • Os relacionamentos de conteúdo permitidos são impostos pelo próprio banco de dados: apagar uma página, post, formulário ou stack também remove os registros que pendem dele, tais como suas submissões de formulário, blocos e edições de rascunho.
  • Apagar a maior parte do conteúdo é uma exclusão suave. Páginas, posts, blocos, snippets, mídia, categorias, formulários, documentos e stacks apagados são marcados, não apagados, para que recuperação e história permaneçam possíveis. Eles desaparecem das listas e do site publicado imediatamente. A limpeza definitiva acontece automaticamente durante a operação normal.
  • O banco de dados começa com padrões sensatos já em lugar: um site em inglês, o tema padrão embutido (The Letterbox) e uma primeira conta “admin” cuja senha é inutilizável até você completar a configuração de primeira execução.
  • As configurações são armazenadas como simples pares nome/valor, de modo que as opções do site que você vê em Settings são registradas individualmente. Cada vez que as configurações são salvas, um snapshot de todos os valores é armazenado, dando uma história das mudanças de configuração.

Conteúdo que você autorou

  • Páginas e posts cada um armazena seu próprio título, corpo e slug. Cada versão de idioma de uma página ou post é seu próprio registro independente . Um slug pode existir em um idioma, em vários, ou em todos, e nada força todos os idiomas a existirem.
  • Páginas e posts carregam os campos que você vê no editor: títulos e descrições SEO, campos de compartilhamento social, imagem destacada (com ponto focal), configurações de publicar/agendar, status de revisão, controles de sitemap e uma senha opcional para páginas com portão.
  • Páginas podem armazenar dados estruturados para listagens de produto e evento (nome, preço, disponibilidade, datas, local); posts compartilham o tipo de dados estruturados mas não esses conjuntos de campos.
  • Blocos são componentes reutilizáveis, únicos por nome e idioma, armazenando seu próprio texto, botões, cores e estilo. São anexados a páginas e posts, com sobrescritas opcionais por colocação.
  • Stacks são coleções nomeadas e ordenadas de blocos. Uma stack pode ser atribuída a páginas ou posts, pode empilhar dentro de outra stack, pode ter sobrescritas por idioma e pode herdar de outra stack. A área de admin também usa algumas tabelas companheiras internas para mostrar onde um bloco é usado, traduzir conteúdo de stack e reportar a integridade de build e a performance de cada stack.
  • Categorias são gerenciadas por idioma; um post salvo com um valor de categoria é adicionado automaticamente à lista de categorias gerenciadas.
  • Itens de FAQ e passos de HowTo deixam você anexar listas estruturadas de perguntas e respostas e de passos a páginas ou posts, para resultados de busca mais ricos.
  • Autores deixam você manter bylines: perfis com bio, avatar e links sociais, atribuídos a qualquer número de posts ou páginas.
  • Campos personalizados armazenam dados extras chave/valor em qualquer página ou post, com tipos para texto, números, booleanos, datas e JSON.
  • Rascunhos salvam automaticamente suas edições em andamento no servidor, para que uma longa sessão de edição sobreviva ao fechamento do navegador. Um rascunho por usuário por item.
  • Revisões são snapshots de cada página, post, bloco, snippet, documento, imagem, stack e formulário tomados justamente antes de cada salvamento . É isso que alimenta o histórico de versões e o rollback.
  • Notas internas podem ser deixadas em um post sem serem visíveis aos leitores.

Mídia e documentos

  • Mídia é a biblioteca de arquivos: imagens armazenam dimensões mais texto alt, legenda e crédito; uploads registram quem os enviou e em qual pasta vivem. Arquivos idênticos não podem ser enviados duas vezes, e os tamanhos de imagem gerados são rastreados por arquivo.
  • Documentos gerenciam PDFs com suas próprias URLs, pastas, tags e agendamento de publicar/despublicar.
  • Documentos suportam versões com um status de aprovação: rascunhos movem-se por em revisão, aprovado, rejeitado ou publicado.
  • Documentos privados podem ser compartilhados por links especiais com expiração opcional e limite de downloads; todos os downloads são registrados com hora, IP e navegador.

Usuários, login e segurança

  • Usuários são contas de admin ou editor. Uma conta pode ser suspensa, tem um idioma e um tema de admin preferidos, e pode ser restrita a certas entidades e idiomas.
  • As sessões de login são rastreadas, de modo que páginas de conta podem mostrar dispositivos ativos e administradores podem desconectar um usuário em todos os lugares.
  • Um registro é mantido de cada tentativa de login . Sucesso, falha ou bloqueada.
  • Links de redefinição de senha são armazenados sem expor o token em si e param de funcionar uma vez usados ou expirados.
  • Três pequenos registros de rate limiting acompanham tentativas repetidas de login com falha, tentativas de registro e pedidos de esquecimento de senha por endereço IP . Isso é o que alimenta os tempos de bloqueio descritos na página de Passwords.
  • Chaves de API (armazenadas com hash, nunca em texto puro) autenticam a API REST pública, cada uma com suas próprias permissões e expiração opcional.
  • Logs de auditoria e de eventos registram cada mudança de conteúdo (quem fez o quê em qual item) e eventos de sistema nos níveis info/warn/error, de modo que há uma trilha durável do que aconteceu e quando.

Formulários e submissões

  • Formulários definem seus formulários de contato: campos, comportamento da página de sucesso, e-mails de notificação, proteção contra spam e webhooks opcionais.
  • Campos de formulário controlam cada entrada: tipo, flag de obrigatório, placeholder, opções, exibição condicional e limites de validação.
  • Submissões armazenam os dados digitados, o IP do visitante (a menos que você tenha desabilitado isso), um token de recibo mostrado ao remetente e . Onde fornecido pelo visitante e consentido . Atribuição de marketing como referrer da landing page, parâmetros UTM e IDs de clique de anúncios comuns. Marcar uma submissão como lida é carimbado no registro.
  • As respostas de submissão também são normalizadas em uma linha por campo, para que os resultados do formulário possam ser filtrados e classificados por qualquer campo único.

Configuração e estrutura do site

  • Navegação é uma lista por idioma de links de header, suportando links externos e submenus aninhados.
  • Redirecionamentos são criados automaticamente quando você renomeia o slug de uma página ou post publicado, mantendo URLs antigas funcionando; cada registro conta os acessos que recebeu.
  • Temas são registrados no site; trocar de tema lembra qual estava ativo.
  • Design tokens armazenam os valores de cor/estilo que são convertidos em CSS custom properties em tempo de build.
  • Design briefs armazenam documentos de referência usados ao gerar temas.

Builds e trabalho em segundo plano

  • Build log registra cada build do site estático: quando, resultado, arquivos escritos, saída capturada, resultados de validação e tempos.
  • Progresso de build é uma única linha de status ao vivo atualizada enquanto um build executa . Isto alimenta o indicador de progresso de build.
  • Jobs em segundo plano rastreiam operações mais longas (como importações) com contadores de progresso e resultados.

Webhooks

  • Post webhooks são endpoints de saída que você define e que são notificados quando um post é publicado, atualizado ou apagado.
  • Log de entregas registra cada tentativa de webhook: payload, alvo, resposta e estado de retry.
  • Circuit breakers param as entregas a endpoints que falham repetidamente, pausando-os por um tempo em vez de martelar um destino quebrado.

Monitoramento

  • Log de 404 agrega relatos de página ausente do host estático ou processador de logs, contando a frequência de requisições de cada caminho e quando foi visto por último.
  • Execuções de backup registram cada tentativa de backup: se foi manual, agendada, feita por API ou enviada; o arquivo e tamanho resultantes; e se a verificação automática de integridade da restauração passou.
Leia este site em