Feito com Chinaski

Lixeira

Toda exclusão no Chinaski vai primeiro para a Trash. Uma página, post, bloco, formulário excluído. Ou qualquer outra coisa coberta pela trash. Mantém seu lugar no banco de dados com um timestamp, desaparece das listas, do admin e do site publicado, e volta exatamente como era com um clique: ou a limpeza automática de 30 dias a remove. O conteúdo se torna irrevogavelmente perdido quando você diz isso a partir da Trash, ou quando 30 dias passam.

O que é coberto

Dez tipos de conteúdo compartilham a Trash: páginas, posts, blocos, snippets, categorias, formulários, mídia, documentos, itens de navegação, stacks. Excluir um redirecionamento, um design token, uma chave de API ou um usuário *não* passa pela Trash. Essas são ações diretas (usuários, chaves de API: exclusão verificada imediatamente; redirecionamentos: conforme sua página). Se o que você excluiu foi um formulário, os campos do formulário e seus envios vão junto. Restaurar um registro destruído de formulário não é possível a partir da trash.

A tela da Trash

Abra Trash na barra lateral (um badge de contagem na navegação mostra quando ela contém itens). Duas visões:

  • Agrupada. Cada tipo em sua própria seção (páginas, posts, blocos, snippets, categorias, formulários, mídia, documentos, navegação, stacks), listando o nome do item, seu tipo/idioma e quando foi excluído.
  • Cronológica. Tudo intercalado, os mais novos primeiro, 50 por página.

Em cada linha:

  • Restore. Devolve o item, exatamente como era (incluindo seu histórico de revisões).
  • Delete permanently. Visível/permitido dependendo do papel: páginas, posts, snippets, formulários, mídia e documentos exigem um admin para remoção permanente; restaurar está disponível para qualquer um que possa editar aquele tipo de conteúdo.

Operações em massa ficam acima de cada seção: selecione linhas e escolha Restore ou Delete permanently. As mesmas confirmações se aplicam, incluídas as ações de exclusão permanente em múltiplos itens.

Restaurar, com segurança

Uma regra protege você de erros de restauração: se um item ativo já existe com o mesmo identificador, a restauração é recusada em vez de criar uma duplicata. As mensagens o explicam. Uma página restaura por slug+idioma ("a page with the same slug already exists in language …"), um bloco por nome+idioma, mídia por nome de arquivo, documentos por nome de arquivo. Resolva o conflito. Renomeie o item mais novo, ou exclua-o: e a restauração passa.

O que uma restauração bem-sucedida faz: o item volta para suas listas com todos os campos intactos, a ação é registrada na auditoria ("restored: name"), e um rebuild do site é disparado para que o conteúdo reapareça no site ao vivo imediatamente. (A única exceção opcional: restaurar mídia não faz rebuild por si só, porque mídia não aparecerá na saída até que uma página a referencie de novo.)

Restaurar-e-editar: links de restauração podem carregar um parâmetro de destino then=edit: um refinamento de implementação para fluxos automatizados, atualmente não emitido pela própria tela da trash.

Exclusão permanente

Duas saídas da Trash:

  • Manualmente. "Delete permanently" em uma linha ou em massa; somente admin para páginas, posts, snippets, formulários, mídia e documentos (editores podem restaurar, mas não destruir). Destruir remove o item, seu histórico de revisões e, para mídia, o arquivo real em disco; cada destruição é auditada ("permanent: name"), e um build do site se segue (mídia é a exceção documentada, como acima).
  • Automaticamente, após 30 dias. Uma rotina de purga roda a cada inicialização da aplicação, depois aproximadamente diariamente para servidores de longa execução, excluindo permanentemente tudo o que foi jogado na trash há 30 dias ou mais. A purga limpa revisões em lotes, remove linhas dependentes (os envios e campos de um formulário na trash vão junto) e nunca deixa órfãos. Categorias não têm histórico de revisões: apenas a linha.

Se você mudar de ideia depois da marca de 30 dias, os backups são a última linha de defesa. Restaure o banco de dados de um ponto anterior à exclusão.

O que a Trash não cobre

  • Redirecionamentos não são acompanhados na Trash. Excluir um redirecionamento o remove (você o recriaria na tela de Redirects em segundos de qualquer forma).
  • Design tokens são editados no lugar; excluir um é imediato.
  • Usuários e chaves de API são excluídos imediatamente (conforme a página Users & Roles), não após um estágio de reciclagem.
  • O log de 404, execuções de backup e logs de build antigos ficam ao lado da Trash com suas próprias regras de manutenção (um limite móvel nas entradas mais antigas. 50.000 linhas de auditoria, 10.000 linhas de auth, 5.000 linhas de eventos e 1.000 linhas de log de build são mantidas) em vez de restauração por item.

Orientação prática

  • Exclua com intenção; confie na Trash apenas para erros. Ela não é um arquivo de versões (é para isso que existem as revisões).
  • O badge na barra lateral mostra quantos itens estão esperando; restaurar vence delete-permanente para qualquer coisa que você não consiga recriar.
  • Conflitos de restauração são informativos: o item mais novo segura o slug/nome: resolva renomeando o que veio depois.
  • Páginas restauradas reingressam no site exatamente no mesmo endereço de antes (os slugs são delas de novo após uma restauração sem conflito); uma página na trash que foi renomeada enquanto ativa mantém seu comportamento de redirecionamento, porque redirecionamentos são registros separados.

A versão curta

Dez tipos de conteúdo, uma Trash compartilhada: excluir → invisível, até 30 dias para restaurar (com restaurações verificadas por conflito que recusam colisões de nome), exclusão permanente (admin para a maioria dos tipos; limpa o histórico), e uma purga que honra o noturno apagando linhas obsoletas automaticamente. É a camada de segurança entre um clique errado e o fim-para-sempre.

Leia este site em