O módulo usa a identidade Supabase, isola cada workspace e registra storage, TTL, runner e biblioteca XLSX como decisões ainda abertas. Co-authored-by: Cursor <cursoragent@cursor.com>
65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
# PROMPT 07 — Gestão de modelos e configuração administrativa
|
|
|
|
Use o MASTER CONTEXT.
|
|
|
|
## Objetivo
|
|
|
|
Implementar o ciclo de vida de modelos do workspace e a configuração que permite upload por perfis não administrativos.
|
|
|
|
## Funcionalidades
|
|
|
|
### Lista de modelos
|
|
- listar somente workspace ativo;
|
|
- ordem alfabética;
|
|
- nome, data, criador e metadados úteis;
|
|
- empty state e loading state;
|
|
- seleção do modelo para operação.
|
|
|
|
### Upload de modelo
|
|
- XLSX e CSV apenas;
|
|
- drag-and-drop + file picker;
|
|
- critérios de upload visíveis em Dialog/ajuda contextual;
|
|
- até 10 modelos ativos por workspace;
|
|
- impedir nome lógico duplicado;
|
|
- validar cabeçalho/estrutura mínima;
|
|
- permitir escolha de aba e linha de cabeçalho quando necessário;
|
|
- persistir arquivo somente em storage privado aprovado pelo repo;
|
|
- persistir metadados/`columns_schema` no PostgreSQL.
|
|
|
|
### Exclusão
|
|
- owner/admin apenas;
|
|
- Dialog de confirmação;
|
|
- bloquear se houver job ativo usando o modelo;
|
|
- auditar;
|
|
- respeitar estratégia delete/soft delete já decidida.
|
|
|
|
### Setting de upload por não-admin
|
|
- Switch oficial;
|
|
- `owner/admin` alteram;
|
|
- valor por workspace;
|
|
- server-side authorization;
|
|
- `gestor/agent` apenas recebem permissão de upload, não de exclusão/administração.
|
|
|
|
## Segurança
|
|
|
|
- storage key não deve ser construída de modo vulnerável a path traversal;
|
|
- MIME/extensão/estrutura devem ser checados;
|
|
- não confiar em metadata do navegador;
|
|
- sem bucket público.
|
|
|
|
## API/Actions
|
|
|
|
Implemente no padrão do repo as operações equivalentes a:
|
|
- listar;
|
|
- criar;
|
|
- excluir;
|
|
- ler/alterar settings.
|
|
|
|
## Testes
|
|
|
|
Cubra 10 modelos, 11º bloqueado, duplicidade, papel não autorizado, setting ligado/desligado, RLS, job ativo e arquivo inválido.
|
|
|
|
## Entrega
|
|
|
|
Atualize documentação técnica e descreva o contrato de upload e erros possíveis.
|