Inventário do Repositório
Introdução ao documento
Este documento consolida o inventário técnico do repositório activity-delivery-api com base em evidências do código e das configurações.
Versionamento
- Versão do documento: 1.0.0
- Última atualização: 2026-03-04
- Responsável: Time Dhedalos
Referencial teórico
Mapa de descoberta técnica
Propósito do repo
- API REST para gestão do ciclo de vida de atividades entregáveis: submissão, avaliação, reenvio e notificação de participantes e facilitadores.
- Evidência:
routes/api.php:14-34,app/Http/Controllers/Api/SubmissionController.php:87
Entrypoints
- API REST —
routes/api.php:14-34— endpoints para submissões e arquivos de template, protegidos porapi.keyejwt.auth. - Painel Admin (Backpack) —
routes/web.php+routes/backpack/custom.php:12-32— CRUD de usuários, submissões, roles, permissions, chaves Novu e arquivos modelo. - Artisan Commands —
app/Console/Commands/GenerateApiKey.php:16— geração de chaves de API ($signature = 'api:key:generate'). - Healthcheck —
GET /up— registrado embootstrap/app.php.
Principais pastas e responsabilidade
app/Http/Controllers/Api/— Controllers da API REST (SubmissionController, ActivityTemplateFileController)app/Http/Controllers/Admin/— Controllers CRUD do Backpack (DeliverableSubmissionCrudController, UserCrudController, etc.)app/Http/Controllers/Docs/— Definições OpenAPI/Swagger (OpenApi.php)app/Http/Middleware/— Middleware customizado (ApiKeyMiddleware, JwtAuthenticate, CheckIfAdmin, ViewLogs)app/Http/Requests/— Form Requests de validação (DeliverableSubmissionRequest, ActivityTemplateFileRequest, etc.)app/Models/— Eloquent Models (User, DeliverableSubmission, SubmissionFile, ApiKey, NovuKey, ActivityTemplateFile, Role, Permission)app/Services/— Lógica de negócio (NotificationService, SubmissionFileService, TemplateFileService)app/Actions/Fortify/— Ações de autenticação Fortify (CreateNewUser, ResetUserPassword, etc.)app/Helpers/— Helpers utilitários (MimeTypes.php)app/Providers/— Service Providers (AppServiceProvider, FortifyServiceProvider, NovuServiceProvider, TelescopeServiceProvider)database/migrations/— Migrations do schema do banco de dadosdatabase/seeders/— Seeders (UserSeeder — cria usuário root e roles padrão)database/factories/— Model Factories para testesconfig/— Configurações Laravel e pacotes (backpack, permission, l5-swagger, octane, pulse, telescope)routes/— Definição de rotas (api, web, backpack, console)tests/— Testes Pest PHP (Feature e Unit)
Integrações externas identificadas
- Novu API — notificações por e-mail/push via HTTP POST — Evidência:
app/Services/NotificationService.php:23 - AWS S3 — armazenamento de arquivos (submissões e templates) — Evidência:
config/filesystems.php,.env.example:60-64 - Redis — cache e sessão — Evidência:
.env.example:43-46,config/cache.php
Jobs / cron / queues / workers
- Queue driver:
database— Evidência:config/queue.php,.env.example:37 - Supervisor worker: configurado no
Dockerfilede produção — Evidência:Dockerfile:30-33 - Jobs tables:
jobs,job_batches,failed_jobs— Evidência:database/migrations/
⚠️ PENDÊNCIA: Nenhum job dispatch explícito identificado no código-fonte atual. Verificar se há jobs enfileirados em funcionalidades futuras.
Storage / caches
- File storage: S3 (produção) / local (dev) — Evidência:
config/filesystems.php - Paths de upload:
submissions/(arquivos de submissão),activity-templates/(arquivos modelo) — Evidência:app/Services/SubmissionFileService.php:14,app/Services/TemplateFileService.php:23 - Cache: database (default) / Redis (configurado) — Evidência:
config/cache.php - Session: database — Evidência:
.env.example:29
Lista de variáveis de ambiente
APP_NAME:.env.example:1APP_ENV:.env.example:2APP_KEY:.env.example:3APP_DEBUG:.env.example:4APP_URL:.env.example:5DB_CONNECTION:.env.example:22DB_HOST:.env.example:23DB_PORT:.env.example:24DB_DATABASE:.env.example:25DB_USERNAME:.env.example:26DB_PASSWORD:.env.example:27FILESYSTEM_DISK:.env.example:36QUEUE_CONNECTION:.env.example:37REDIS_HOST:.env.example:44REDIS_PORT:.env.example:46AWS_ACCESS_KEY_ID:.env.example:60AWS_SECRET_ACCESS_KEY:.env.example:61AWS_DEFAULT_REGION:.env.example:62AWS_BUCKET:.env.example:63L5_SWAGGER_GENERATE_ALWAYS:.env.example:67JWT_SECRET:app/Http/Controllers/Api/SubmissionController.php,app/Http/Middleware/JwtAuthenticate.phpNOVU_URL:app/Services/NotificationService.phpNOVU_SECRET_KEY:app/Services/NotificationService.php
Comandos para rodar, testar e buildar
- Run:
docker-compose up --build - Test:
docker-compose exec laravel php artisan test - Test coverage:
docker-compose exec laravel php artisan test --coverage - Lint:
docker compose exec laravel vendor/bin/phpinsights -v --config-path='config/insights.php' --fix - Swagger:
docker-compose exec laravel php artisan l5-swagger:generate - Build (prod):
docker build -t activity-delivery-api . - API Key:
docker-compose exec laravel php artisan api:key:generate
Pendências
- ⚠️ PENDÊNCIA: Variáveis
JWT_SECRET,NOVU_URLeNOVU_SECRET_KEYausentes do.env.example. - ⚠️ PENDÊNCIA: Verificar se existe uso de cron/scheduler além do worker de fila.
- ⚠️ PENDÊNCIA: Documentar endpoints de healthcheck Kubernetes (liveness/readiness probes) a partir dos Helm charts.