Skip to content

Arquivos — Repositório de Arquivos do Tenant

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.


O que aparece na página

A tabela lista todos os arquivos ativos do tenant da sessão (excluídos ficam ocultos), ordenados do mais recente para o mais antigo.

ColunaDescrição
NomeNome do arquivo
TamanhoTamanho em bytes/KB/MB/GB
TipoMIME type (ex.: image/png, application/octet-stream)
OrigemComo o arquivo foi criado (veja abaixo)
Enviado porNome do usuário, ou "API" / "ETL" / "Sistema" quando não há usuário
DataData e hora de criação
VisibilidadePúblico ou Privado

Origens possíveis

OrigemQuando aparece
HECUpload manual feito nesta página
APIUpload via integração REST headless
SistemaCriado pelo próprio sistema: imagens de Cadastro (writeback) ou exportações
ETLGerado por um pipeline ETL

Controle de acesso

A tela Arquivos (gestão global) é governada pela função de sistema Armazenamento (files):

  • Visualizar a tela e listar todos os arquivos → files.read. Sem ela, o item de menu não aparece e a página não abre.
  • Tornar público/privadofiles.update.
  • Excluirfiles.delete.
  • Fazer upload por esta tela → 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.

Notas de implementação (quirks)

  • O proxy de download é por token assinado (sem identidade de usuário); o controle por usuário acontece no momento de emitir o link (backend). Um link assinado é um portador — vale até expirar.
  • 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.
  • A REST API de arquivos é por tenant/bearer, não filtra por usuário.

Filtrar por origem

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).


Metadados de um arquivo

Clique em qualquer arquivo para abrir o painel de detalhes. Lá você vê:

  • URL canônica
  • Tamanho exato
  • MIME type
  • Origem
  • Quem enviou e quando
  • Se está público ou privado

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:

  • Público: a URL funciona diretamente no navegador ou em qualquer integração, sem autenticação.
  • Privado: a URL sem token retorna erro. Use "Gerar link temporário" para compartilhar.

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.


Visibilidade: público vs. privado

Cada arquivo pode ser alternado entre público e privado a qualquer momento pelo ícone de cadeado na tabela ou no painel de detalhes.

VisibilidadeComportamento
PúblicoURL canônica acessível sem autenticação. Padrão para imagens de Cadastro (Sistema) — mudar para privado pode quebrar Cadastros que dependam da URL.
PrivadoURL 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.


Upload de arquivos

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.


Excluir 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.

Guard de writeback

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.


Como o storage de Arquivos entra no custo

O que é contado

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.

Snapshot diário

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ês

Como entra na fatura

O 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_arquivos

O armazenamento de arquivos aparece como "Arquivos" na Home (no total de storage) e na página Arquivos, sumado à cobrança do mês.

Quando o arquivo excluído para de contar

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.


Veja também