Visão Geral da BlackCat Corp
Toda a infraestrutura roda em uma VPS Hetzner (Ubuntu). O tráfego público passa pelo Caddy que gerencia HTTPS/TLS automaticamente e faz proxy reverso para cada container Docker.
Arquitetura de Infraestrutura
Portal BWC — Admin BlackCat Corp
Descrição
Portal interno da BlackCat Corp. Servidor Node.js/Express monolítico que serve tanto o painel financeiro pessoal do Victor (gastos, transações bancárias via Pluggy, orçamentos) quanto o módulo Meu Candidato na rota /meucandidato. Banco de dados PostgreSQL local (container edilenelura-db compartilhado). Integração com Google Drive para upload de documentos (com falha no subfolder atual). JWT para autenticação.
DRIVE_SUBFOLDER_ID e permissões da Service Account na pasta.Infraestrutura
Endpoints — Auth & Geral
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/health | público | Healthcheck do servidor |
| POST | /api/auth/login | público | Login — retorna JWT |
| GET | /api/auth/me | JWT | Dados do usuário autenticado |
| GET | /api/projects | JWT | Lista de projetos disponíveis no portal |
Endpoints — Gastos & Finanças
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/gastos/dashboard | JWT | Dashboard financeiro mensal |
| GET | /api/gastos/transactions | JWT | Transações por mês, busca, paginação |
| POST | /api/gastos/transactions | JWT | Criar transação manual |
| PATCH | /api/gastos/transactions/:id | JWT | Editar transação |
| DELETE | /api/gastos/transactions/:id | JWT | Remover transação |
| GET | /api/gastos/accounts | JWT | Contas bancárias conectadas |
| GET | /api/gastos/investments | JWT | Carteira de investimentos |
| GET | /api/gastos/categories | JWT | Categorias de gasto |
| POST | /api/gastos/categories | JWT | Criar categoria |
| DELETE | /api/gastos/categories/:id | JWT | Remover categoria |
| POST | /api/gastos/categories/apply-rules | JWT | Aplicar regras de categorização retroativamente |
| GET | /api/gastos/budgets | JWT | Orçamentos por categoria |
| PUT | /api/gastos/budgets | JWT | Definir orçamentos |
| GET | /api/gastos/evolution | JWT | Evolução histórica dos gastos |
Endpoints — Pluggy (Open Banking)
| Método | Path | Auth | Descrição |
|---|---|---|---|
| POST | /api/pluggy/connect-token | JWT | Gera token para conectar conta bancária via Pluggy Widget |
| POST | /api/pluggy/save-connection | JWT | Salva conexão bancária após autenticação no widget |
| POST | /api/pluggy/resync | JWT | Re-sincroniza todas as conexões bancárias |
Meu Candidato — Painel Edilene Lura 2026
Descrição
Painel de gestão de campanha política para a candidata Edilene Lura (eleições 2026). Mesma arquitetura do Portal BWC (Node.js/Express), banco PostgreSQL dedicado (edilenelura-db). O módulo é servido em /meucandidato/* e possui dois níveis de acesso: admin (acesso total) e usuário (acesso restrito). Integrações com Meta Ads, Instagram, Google Calendar e Google Drive para gestão completa da campanha.
Infraestrutura
Endpoints — Auth & Perfil
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/health | público | Healthcheck |
| POST | /api/mc/login | público | Login campanha — retorna JWT |
| POST | /api/mc/auth/change-password | JWT | Alterar senha |
| GET | /api/mc/me | JWT | Dados do usuário logado |
| GET | /api/mc/me/dados | JWT | Dados detalhados do perfil |
| DELETE | /api/mc/me | JWT | Excluir própria conta |
| GET | /api/mc/auditoria | admin | Log de auditoria de todas as mutações |
| GET | /api/infra/status | JWT | Status dos serviços BlackCat referenciados |
Endpoints — Campanha
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/mc/dashboard | admin | Métricas gerais da campanha |
| GET | /api/mc/config | JWT | Configurações da campanha |
| PUT | /api/mc/config | admin | Atualizar configurações |
| POST | /api/mc/config | admin | Configuração inicial |
| GET | /api/mc/votos | admin | Registro de votos mapeados |
| POST | /api/mc/votos | admin | Adicionar votos |
| DELETE | /api/mc/votos/:id | admin | Remover voto |
| GET | /api/mc/mapa/posicoes | JWT | Posições no mapa eleitoral |
| PUT | /api/mc/mapa/posicao | admin | Atualizar posição no mapa |
| GET | /api/mc/zonas | admin | Zonas eleitorais mapeadas |
| GET | /api/mc/guerra | admin | Análise de campanha / dados de guerra eleitoral |
| GET | /api/mc/demandas | admin | Demandas da comunidade |
| POST | /api/mc/demandas | admin | Registrar demanda |
| DELETE | /api/mc/demandas/:id | admin | Remover demanda |
| GET | /api/mc/propostas | admin | Propostas políticas |
| POST | /api/mc/propostas | admin | Criar proposta |
| PATCH | /api/mc/propostas/:id | admin | Editar proposta |
| DELETE | /api/mc/propostas/:id | admin | Remover proposta |
| GET | /api/mc/financeiro | admin | Finanças da campanha |
| POST | /api/mc/financeiro | admin | Registrar movimentação financeira |
Endpoints — Equipe & Tarefas
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/mc/equipe | admin | Membros da equipe |
| POST | /api/mc/equipe | admin | Adicionar membro |
| PATCH | /api/mc/equipe/:id | admin | Editar membro |
| GET | /api/mc/tarefas | admin | Tarefas da campanha |
| POST | /api/mc/tarefas | admin | Criar tarefa |
| PATCH | /api/mc/tarefas/:id | admin | Atualizar status/tarefa |
| DELETE | /api/mc/tarefas/:id | admin | Remover tarefa |
| GET | /api/mc/eventos | JWT | Eventos da campanha |
| POST | /api/mc/eventos | admin | Criar evento |
| PUT | /api/mc/eventos/:id | admin | Editar evento |
| DELETE | /api/mc/eventos/:id | admin | Remover evento |
Endpoints — Conteúdo & Social
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/mc/biblioteca | admin | Biblioteca de materiais |
| POST | /api/mc/biblioteca | admin | Upload de material |
| GET | /api/mc/conteudos | JWT | Conteúdos de mídia social |
| POST | /api/mc/conteudos | JWT | Criar conteúdo |
| PATCH | /api/mc/conteudos/:id | JWT | Editar conteúdo |
| DELETE | /api/mc/conteudos/:id | JWT | Remover conteúdo |
| POST | /api/mc/posts/upload | JWT | Upload de arquivo/post (multipart) |
| GET | /api/mc/posts | JWT | Posts da campanha |
| PATCH | /api/mc/posts/:id/status | JWT | Atualizar status do post |
| DELETE | /api/mc/posts/:id | admin | Remover post |
| GET | /api/mc/posts/:id/media | JWT | Mídia de um post |
| GET | /api/mc/mencoes | JWT | Menções à candidata |
| POST | /api/mc/mencoes | JWT | Registrar menção |
| PATCH | /api/mc/mencoes/:id/tratar | JWT | Marcar menção como tratada |
| GET | /api/mc/redes | JWT | Perfis em redes sociais |
| GET | /api/mc/concorrentes | admin | Concorrentes mapeados |
| GET | /api/mc/ads | JWT | Anúncios cadastrados |
Endpoints — Integrações OAuth
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /oauth/drive/start | público | Inicia fluxo OAuth Google Drive |
| GET | /oauth/drive/callback | público | Callback OAuth Drive |
| GET | /api/mc/oauth/instagram/connect | público | Inicia OAuth Instagram |
| GET | /api/mc/oauth/instagram/callback | público | Callback OAuth Instagram |
| POST | /api/mc/oauth/instagram/disconnect | admin | Desconectar Instagram |
| GET | /api/mc/instagram/metrics | JWT | Métricas Instagram da candidata |
| GET | /api/mc/oauth/meta/connect | público | Inicia OAuth Meta Ads |
| GET | /api/mc/meta/campaigns | JWT | Campanhas no Meta Ads |
| GET | /api/mc/meta/summary | JWT | Resumo de performance Meta |
| GET | /api/mc/meta/ads-insights | JWT | Insights de anúncios |
| GET | /api/mc/meta/demographics | JWT | Dados demográficos do público |
| GET | /api/mc/meta/audiences | JWT | Audiências do Meta |
| GET | /api/mc/oauth/calendar/connect | público | Inicia OAuth Google Calendar |
| GET | /api/mc/calendar/events | JWT | Eventos do Google Calendar |
| GET | /api/mc/calendar/ical-token | JWT | Token iCal para exportação |
| POST | /api/mc/calendar/ical-token/regenerate | JWT | Regenerar token iCal |
| GET | /api/mc/ical/:token | público | Feed iCal público da agenda |
Shield — Identity Shield
Descrição
Sistema de monitoramento de identidade digital. Monitora exposições de dados pessoais, vazamentos, breaches em bancos de dados, e gera alertas e planos de ação. Backend em NestJS (TypeScript) exposto em /identity-shield/api/*. Frontend Next.js separado. MFA (autenticação multifator) suportada. IA integrada via shield-ai para análise de risco. Dois bancos: PostgreSQL + Redis para sessões.
Infraestrutura
Endpoints — Auth (prefixo: /identity-shield/api/auth)
| Método | Path completo | Auth | Descrição |
|---|---|---|---|
| POST | /identity-shield/api/auth/register | público | Registrar usuário |
| POST | /identity-shield/api/auth/login | público | Login — retorna JWT |
| POST | /identity-shield/api/auth/mfa/verify | público | Verificar código MFA (TOTP) |
| GET | /identity-shield/api/auth/mfa/setup | JWT | Obter QR code para configurar MFA |
| POST | /identity-shield/api/auth/mfa/enable | JWT | Ativar MFA após verificação |
| POST | /identity-shield/api/auth/refresh | público | Renovar access token via refresh token |
| POST | /identity-shield/api/auth/logout | JWT | Logout — invalida sessão |
| GET | /identity-shield/api/health | público | Healthcheck do backend |
Endpoints — Monitoramento de Identidade
| Método | Path completo | Auth | Descrição |
|---|---|---|---|
| GET | /identity-shield/api/monitoring/dashboard | JWT | Dashboard geral de risco de identidade |
| GET | /identity-shield/api/monitoring/identities | JWT | Identidades monitoradas |
| POST | /identity-shield/api/monitoring/identities | JWT | Adicionar identidade para monitorar |
| GET | /identity-shield/api/monitoring/identities/:id | JWT | Detalhes de uma identidade |
| DELETE | /identity-shield/api/monitoring/identities/:id | JWT | Remover identidade monitorada |
| GET | /identity-shield/api/monitoring/breaches | JWT | Vazamentos encontrados |
| POST | /identity-shield/api/monitoring/scan | JWT | Iniciar scan de exposição |
| GET | /identity-shield/api/monitoring/score | JWT | Score de risco de identidade |
Endpoints — Alertas, Planos de Ação & IA
| Método | Path completo | Auth | Descrição |
|---|---|---|---|
| GET | /identity-shield/api/alerts | JWT | Lista de alertas |
| GET | /identity-shield/api/alerts/unread-count | JWT | Contagem de alertas não lidos |
| POST | /identity-shield/api/alerts/:id/read | JWT | Marcar alerta como lido |
| POST | /identity-shield/api/alerts/read-all | JWT | Marcar todos como lidos |
| DELETE | /identity-shield/api/alerts/:id | JWT | Remover alerta |
| GET | /identity-shield/api/action-plans | JWT | Planos de ação de segurança |
| POST | /identity-shield/api/action-plans/generate | JWT | Gerar plano de ação via IA |
| GET | /identity-shield/api/action-plans/:id | JWT | Detalhes do plano |
| PATCH | /identity-shield/api/action-plans/:planId/steps/:stepId/complete | JWT | Marcar etapa do plano como concluída |
| PATCH | /identity-shield/api/action-plans/:id/dismiss | JWT | Dispensar plano |
| POST | /identity-shield/api/shield-ai/chat | JWT | Chat com IA de segurança (Shield AI) |
RingCore — Saúde Smart Ring R11M
Descrição
Dashboard de saúde integrado com smart ring R11M via Bluetooth BLE. Coleta métricas do anel (frequência cardíaca, SpO2, temperatura, bateria, passos, estresse, HRV, sono) e exibe em dashboard Next.js. Banco de dados gerenciado via Prisma ORM. Comunicação BLE implementada em TypeScript (ble-client.ts, ble-protocol.ts). Também deployado como app mobile via Capacitor.
/api/health — impede monitoramento automático pelo BWC Status dashboard.Infraestrutura
Endpoints — API
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/metrics | JWT | Busca métricas do anel. Query params: type (hr, spo2, temp, battery, steps, stress, hrv, sleep), limit (1-200, default 50) |
| POST | /api/metrics | JWT | Gravar nova métrica coletada via BLE |
TruckRightWay — Logística de Transporte
Descrição
Plataforma de logística para caminhoneiros. Permite mapear rotas, pontuar paradas, reportar problemas na estrada (com moderação admin), gerenciar veículos, capturar leads e administrar regras de negócio. Autenticação via NextAuth (suporta credenciais + OAuth). API construída com Next.js App Router (cada arquivo route.ts é um endpoint REST). Também exportado como app mobile via Capacitor. Tem testes automatizados (Vitest) para validação, geo e rules-engine.
/api/health. O healthcheck no BWC Status retorna 404 para este serviço.Infraestrutura
Endpoints — API Routes (Next.js App Router)
| Método | Path | Auth | Descrição |
|---|---|---|---|
| POST | /api/auth/register | público | Registrar conta |
| GET | /api/auth/[...nextauth] | público | Endpoints NextAuth (login, callback, session) |
| POST | /api/auth/[...nextauth] | público | Endpoints NextAuth (login, callback, session) |
| POST | /api/auth/recover | público | Solicitar recuperação de senha |
| PUT | /api/auth/recover | público | Confirmar nova senha com token |
| PATCH | /api/me | Session | Atualizar perfil do usuário |
| GET | /api/routes | Session | Listar rotas disponíveis |
| GET | /api/routes/plan | Session | Planejar rota |
| GET | /api/stop-points | Session | Listar pontos de parada |
| POST | /api/stop-points | Session | Registrar ponto de parada |
| POST | /api/stop-points/:id/reviews | Session | Avaliar ponto de parada |
| GET | /api/vehicles | Session | Listar veículos do usuário |
| POST | /api/vehicles | Session | Cadastrar veículo |
| GET | /api/vehicles/:id | Session | Detalhes do veículo |
| GET | /api/vehicle-types | público | Tipos de veículo disponíveis |
| GET | /api/stop-point-categories | público | Categorias de pontos de parada |
| GET | /api/reports | Session | Reportes de ocorrências |
| POST | /api/reports | Session | Criar reporte de ocorrência |
| POST | /api/reports/:id/vote | Session | Votar em um reporte (confirmação) |
| POST | /api/leads | público | Capturar lead (landing page) |
Endpoints — Admin
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /api/admin/stats | admin | Estatísticas gerais da plataforma |
| GET | /api/admin/rules | admin | Regras de negócio do rules-engine |
| POST | /api/admin/rules | admin | Criar regra |
| PUT | /api/admin/rules/:id | admin | Atualizar regra |
| DELETE | /api/admin/rules/:id | admin | Remover regra |
| GET | /api/admin/moderation | admin | Fila de moderação de reportes |
| POST | /api/admin/moderation | admin | Aprovar/rejeitar item na moderação |
| GET | /api/admin/sources | admin | Fontes de dados externas |
| POST | /api/admin/sources | admin | Adicionar fonte de dados |
ShapeOS — App Fitness
Descrição
Aplicativo fitness com tracking de treinos, dieta, scanner de alimentos via IA (foodScanner.ts), insights de saúde, planos de treino e score de evolução (EvoScore). Desenvolvido em React Native com Expo e NativeWind para styling. Estado global via Zustand. Backend 100% Supabase self-hosted (PostgreSQL + Auth + Storage + REST/Realtime). Autenticação gerenciada pelo Supabase Auth. Também suporta compras in-app (purchases.ts).
shapeos.blackcatcorp.com.br retorna 401. Investigar nginx — o index.html da SPA deveria ser servido publicamente (o login acontece client-side).Infraestrutura
APIs (Supabase self-hosted)
O ShapeOS usa a API REST do Supabase diretamente. Todos os endpoints exigem o header apikey: <anon_key> e Authorization: Bearer <token> para rotas protegidas.
| Método | Path | Auth | Descrição |
|---|---|---|---|
| POST | /auth/v1/signup | anon key | Cadastro de usuário |
| POST | /auth/v1/token?grant_type=password | anon key | Login — retorna JWT |
| POST | /auth/v1/logout | JWT | Logout |
| GET | /rest/v1/profiles | JWT | Perfis de usuário (RLS ativo) |
| GET | /rest/v1/workouts | JWT | Treinos do usuário |
| POST | /rest/v1/workouts | JWT | Registrar treino |
| GET | /rest/v1/meals | JWT | Refeições registradas |
| POST | /rest/v1/meals | JWT | Registrar refeição |
| POST | /storage/v1/object/... | JWT | Upload de fotos/mídia |
api.shapeos.blackcatcorp.com.br (domínio com problema de roteamento). O app mobile usa as URLs diretamente via SDK @supabase/supabase-js.Descrição
Serviço de overlay para transmissões ao vivo estilo Cazé TV. Backend Python/FastAPI que fornece dados em tempo real via stream SSE para overlays de OBS ou browser source. Suporta proxy de status de lives e streaming de dados. Armazena cookies de sessão (cookies.txt) para acesso autenticado em plataformas externas.
Infraestrutura
Endpoints
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | / | público | Interface HTML do overlay |
| GET | /api/stream | público | SSE stream de dados ao vivo (Server-Sent Events) |
| GET | /api/proxy-status | público | Status do proxy de plataformas externas |
| GET | /api/supported | público | Plataformas de live suportadas |
| GET | /api/health | público | Healthcheck |
StockTrade — Bot de Trading Automatizado
Descrição
Plataforma de trading algorítmico automatizado. Backend Python/FastAPI com módulos para criação e gerenciamento de estratégias, backtesting histórico, simulação em papel (paper trading), execução de portfólio real, histórico de trades e configurações globais. Frontend React estático. WebSocket para dados de mercado em tempo real. Banco PostgreSQL dedicado. Docs OpenAPI disponíveis em /openapi.json.
Infraestrutura
Endpoints — API v1 (prefixo: /api/v1)
| Método | Path | Auth | Descrição |
|---|---|---|---|
| POST | /api/v1/auth/register | público | Registrar conta de trader |
| POST | /api/v1/auth/login | público | Login — retorna access + refresh token |
| POST | /api/v1/auth/refresh | público | Renovar token via refresh token |
| POST | /api/v1/auth/logout | JWT | Logout |
| GET | /api/v1/strategies | JWT | Listar estratégias de trading |
| POST | /api/v1/strategies | JWT | Criar estratégia |
| PUT | /api/v1/strategies/:id | JWT | Atualizar estratégia |
| DELETE | /api/v1/strategies/:id | JWT | Remover estratégia |
| POST | /api/v1/backtest | JWT | Iniciar backtest (assíncrono, retorna 202) |
| GET | /api/v1/backtest | JWT | Listar backtests executados |
| GET | /api/v1/backtest/:run_id | JWT | Status/resultado de um backtest |
| GET | /api/v1/portfolio | JWT | Status atual do portfólio |
| POST | /api/v1/portfolio/start | JWT | Iniciar execução do portfólio (live trading) |
| POST | /api/v1/portfolio/stop | JWT | Parar execução do portfólio |
| POST | /api/v1/portfolio/emergency | JWT | Parada de emergência — encerra todas as posições |
| GET | /api/v1/simulation | JWT | Status do paper trading |
| POST | /api/v1/simulation/start | JWT | Iniciar simulação (paper trading) |
| POST | /api/v1/simulation/stop | JWT | Parar simulação |
| GET | /api/v1/history/trades | JWT | Histórico completo de trades executados |
| GET | /api/v1/settings | JWT | Configurações globais do bot |
| PUT | /api/v1/settings | JWT | Atualizar configurações |
| WS | /ws | Token | WebSocket — dados de mercado em tempo real |
Omicron Assistant — GE Vernova / Subestações
Descrição
Assistente técnico para engenharia de subestações elétricas (GE Vernova). Gerencia subestações, transformadores, linhas de transmissão, barramentos, relés de proteção e planos de teste. Gera planos de teste automaticamente via IA e exporta para formatos XRIO, PDF e Excel. Backend Python/FastAPI com banco PostgreSQL dedicado. Frontend React (nginx). Autenticação JWT.
Infraestrutura
Endpoints — Auth
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /health | público | Healthcheck |
| POST | /auth/login | público | Login — retorna JWT |
| POST | /auth/logout | JWT | Logout |
| GET | /auth/me | JWT | Usuário atual |
Endpoints — Subestações & Equipamentos
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | /substations | JWT | Listar subestações |
| POST | /substations | JWT | Criar subestação |
| GET | /substations/:id | JWT | Detalhes da subestação |
| DELETE | /substations/:id | JWT | Remover subestação |
| POST | /substations/:id/transformers | JWT | Adicionar transformador |
| GET | /substations/:id/transformers | JWT | Listar transformadores |
| POST | /substations/:id/lines | JWT | Adicionar linha de transmissão |
| GET | /substations/:id/lines | JWT | Listar linhas de transmissão |
| POST | /substations/:id/buses | JWT | Adicionar barramento |
| GET | /substations/:id/buses | JWT | Listar barramentos |
| GET | /relays | JWT | Listar relés de proteção |
| POST | /relays | JWT | Cadastrar relé |
| GET | /relays/:id | JWT | Detalhes do relé |
| PATCH | /relays/:id | JWT | Atualizar relé |
| DELETE | /relays/:id | JWT | Remover relé |
Endpoints — Planos de Teste
| Método | Path | Auth | Descrição |
|---|---|---|---|
| POST | /test-plans/generate | JWT | Gerar plano de teste via IA (retorna 201) |
| GET | /test-plans | JWT | Listar planos de teste |
| GET | /test-plans/:id | JWT | Detalhes de um plano |
| DELETE | /test-plans/:id | JWT | Remover plano |
| POST | /test-plans/:id/results | JWT | Registrar resultados de teste executado |
| GET | /test-plans/:id/export/xrio | JWT | Exportar para formato XRIO (Omicron CMC) |
| GET | /test-plans/:id/export/pdf | JWT | Exportar relatório PDF |
| GET | /test-plans/:id/export/excel | JWT | Exportar planilha Excel |
Consultor IA — Documental
Descrição
Assistente IA para consulta de documentos internos (RAG — Retrieval-Augmented Generation). Indexa documentos no Qdrant (Vector DB) e responde perguntas com base no conteúdo. Backend Python/FastAPI rodando em ia-documental. Qdrant roda como container separado na VPS. Alto consumo de memória esperado (286MB) por carregar modelos de embedding.
Infraestrutura
BWC Status — Dashboard de Monitoramento
Descrição
Dashboard visual interno que monitora o status de todos os serviços BlackCat em tempo real. Faz healthcheck periódico em cada serviço configurado em services.json e exibe um grafo de topologia da infraestrutura. Intencionalmente sem domínio público — acessível apenas dentro da VPS via localhost:4000. Monitoramento inclui: VPS, Caddy, OpenClaw, OpenWebUI, Qdrant, Portainer, Evolution API, todos os projetos BlackCat e serviços externos (GitHub, Telegram, Neon, Render).
Serviços Monitorados
Endpoints
| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | / | interno | Dashboard HTML com grafo de topologia |
| GET | /api/status | interno | JSON com status de todos os serviços |