Buscar K
Aparência
Aparência
Arquivos é o repositório centralizado de todos os arquivos do tenant: imagens de Cadastros (writeback), uploads manuais, arquivos gerados pelo sistema e por pipelines ETL. Aqui você vê tudo que está armazenado, quem enviou, quanto ocupa e pode gerenciar visibilidade, links e exclusão.
Arquivos é acessado pelo menu lateral, na seção Armazenamento (ao lado de Lixeira). Clicar em Arquivos abre a página dedicada /files, sempre operando no tenant da sessão corrente — exatamente como a página Lixeira funciona.
Armazenamento = Arquivos + Lixeira: a seção "Armazenamento" no menu agrupa duas funcionalidades distintas: Arquivos (repositório de arquivos do tenant, esta página) e Lixeira (apps e tabelas desativadas). São funcionalidades independentes, apenas co-localizadas na mesma seção do menu.
A tabela lista todos os arquivos ativos do tenant da sessão (excluídos ficam ocultos), ordenados do mais recente para o mais antigo.
| Coluna | Descrição |
|---|---|
| Nome | Nome do arquivo |
| Tamanho | Tamanho em bytes/KB/MB/GB |
| Tipo | MIME type (ex.: image/png, application/octet-stream) |
| Origem | Como o arquivo foi criado (veja abaixo) |
| Enviado por | Nome do usuário, ou "API" / "ETL" / "Sistema" quando não há usuário |
| Data | Data e hora de criação |
| Visibilidade | Público ou Privado |
| Origem | Quando aparece |
|---|---|
HEC | Upload manual feito nesta página |
API | Upload via integração REST headless |
Sistema | Criado pelo próprio sistema: imagens de Cadastro (writeback) ou exportações |
ETL | Gerado por um pipeline ETL |
A tela Arquivos (gestão global) é governada pela função de sistema Armazenamento (files):
files.read. Sem ela, o item de menu não aparece e a página não abre.files.update.files.delete.files.create.Por padrão, todos que já tinham gestão de arquivos (função Tabelas) receberam Armazenamento equivalente — sem mudança de comportamento.
Arquivos de ETL (CSV/Excel de Dataflows) são recurso do workspace de ETL: quem tem Dataflows (ETL) (
flow) vê/usa/sobe esses arquivos no editor de ETL, independentemente de Armazenamento. Isso é intencional — flows são clonáveis/compartilháveis, então o arquivo referenciado precisa ser acessível a quem edita o flow. A tela Arquivos do HEC mostra todos os tipos (inclusive ETL) e é a superfície de gestão global.
público (acessível na internet sem token) ≠ controle de acesso por usuário (esse é por função). Imagens de Cadastro são públicas por padrão.Use o filtro de origem no topo da tabela para ver apenas arquivos de um tipo específico. Útil para localizar imagens de Cadastro (Sistema), uploads de integrações (API) ou carregar apenas os arquivos subidos manualmente (HEC).
Clique em qualquer arquivo para abrir o painel de detalhes. Lá você vê:
Cada arquivo tem uma URL canônica no formato:
https://storage.horusbi.com.br/f/{id}/{nome-do-arquivo}O comportamento ao acessar essa URL depende da visibilidade do arquivo:
Para arquivos privados, você pode gerar um link assinado temporário clicando em "Gerar link". O link gerado inclui um token de acesso e expira após o tempo configurado (padrão: 1 hora).
https://storage.horusbi.com.br/f/{id}/{nome}?token=<token>O token pode ser reutilizado por qualquer pessoa que o receber, até expirar. Não é de uso único.
Permissão necessária: gerar um link temporário requer
files.read(a tela Arquivos é governada pela função Armazenamento). Isso é intencional — um link assinado cria acesso não autenticado a um arquivo privado, o que é um privilégio maior que simples leitura.
Cada arquivo pode ser alternado entre público e privado a qualquer momento pelo ícone de cadeado na tabela ou no painel de detalhes.
| Visibilidade | Comportamento |
|---|---|
| Público | URL canônica acessível sem autenticação. Padrão para imagens de Cadastro (Sistema) — mudar para privado pode quebrar Cadastros que dependam da URL. |
| Privado | URL canônica bloqueada; acesso somente com token assinado temporário. Padrão para arquivos HEC, API e ETL. |
WARNING
Imagens usadas em Cadastros (writeback) são criadas como públicas para que os dados do BI exibam a imagem corretamente. Alterar a visibilidade dessas imagens para privado pode fazer com que deixem de aparecer nos dashboards e nas exportações.
Para fazer upload de um novo arquivo, clique em "Fazer upload". A interface usa upload presigned (o arquivo vai direto do seu navegador para o armazenamento, sem passar pelo servidor), o que permite arquivos grandes com barra de progresso em tempo real.
Comportamento por nome: se já existe um arquivo ativo com o mesmo nome no tenant, o conteúdo é substituído e os metadados atualizados — o id permanece o mesmo. Isso é intencional para automações que fazem upload recorrente do mesmo arquivo.
Clique no ícone de lixeira para excluir um arquivo. A exclusão é soft-delete — o arquivo é marcado como excluído e some da listagem, mas o conteúdo só é removido do armazenamento pelo processo de limpeza automática.
Imagens de Cadastro (writeback, origin: Sistema) que ainda estejam referenciadas em registros ativos ou no histórico de um Cadastro não podem ser excluídas. O sistema bloqueia a operação e exibe:
"Arquivo ainda referenciado por um Cadastro (writeback)"
Para excluir, primeiro remova ou substitua a imagem no Cadastro correspondente.
O storage de arquivos é cobrado em GB, com base nos arquivos ativos (excluido=false) do tenant em cada dia. Não há cobrança por processamento nem por tráfego de download — apenas pelo espaço ocupado.
Todos os dias, o sistema registra o total de bytes ocupado pelos arquivos vivos do tenant na tabela sys_tenant_files_storage_usage. Isso gera um histórico diário que é usado para calcular a média de GB do mês — o mesmo modelo usado para o storage de tabelas do DW.
storage_de_arquivos_GB = média( snapshot_diário_bytes / 1.073.741.824 ) no mêsO GB de arquivos é somado ao GB de tabelas do DW para compor o total de storage cobrado no mês:
storage_total_GB = média_GB_tabelas_DW + média_GB_arquivosO armazenamento de arquivos aparece como "Arquivos" na Home (no total de storage) e na página Arquivos, sumado à cobrança do mês.
A partir do momento em que um arquivo é excluído (soft-delete), ele não entra mais nos snapshots diários — ou seja, o storage cobrado cai imediatamente no dia seguinte ao da exclusão. Além disso, um reaper diário purga os arquivos soft-deletados do storage físico (S3), encerrando qualquer cobrança residual e reclamando os bytes do bucket.
TIP
Para reduzir o custo de storage: exclua arquivos de API ou ETL que não são mais necessários. Imagens de Cadastro em uso precisam permanecer para não quebrar dashboards — mas imagens de registros deletados podem ser removidas.