docs(okf): entidades e relacionamentos OKF do DashDescomplicar
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, integra]
|
||||
title: "CSR-Integration → integra-com → Metrics"
|
||||
---
|
||||
|
||||
# CSR-Integration integra Metrics
|
||||
|
||||
CSR-Integration instrumento requisições HTTP e tempos de renderização para Metrics.
|
||||
|
||||
## Instrumentação
|
||||
|
||||
- Latência de requisições (por endpoint)
|
||||
- Taxa de sucesso / erro (HTTP 2xx vs 4xx/5xx)
|
||||
- Tempo de renderização (React components)
|
||||
- Tamanho de payload
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`integra-com` — CSR-Integration expõe eventos para coleta de métricas.
|
||||
|
||||
## Implementação
|
||||
|
||||
- Middleware Express para logging
|
||||
- Custom hooks React para performance monitoring
|
||||
- `logs/performance-metrics.json` (saída)
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, exibe]
|
||||
title: "Dashboard-Engine → exibe → Painéis"
|
||||
---
|
||||
|
||||
# Dashboard-Engine exibe Painéis
|
||||
|
||||
Dashboard-Engine orquestra e exibe todos os painéis através da navegação por routes.
|
||||
|
||||
## Arestas individuais
|
||||
|
||||
- Dashboard-Engine → exibe → Painel-Dashboard (`/`)
|
||||
- Dashboard-Engine → exibe → Painel-Monitor (`/monitor`)
|
||||
- Dashboard-Engine → exibe → Painel-Financeiro (`/financial`)
|
||||
- Dashboard-Engine → exibe → Painel-MCPs (`/mcps`)
|
||||
- Dashboard-Engine → exibe → Painel-N8n (`/n8n`)
|
||||
- Dashboard-Engine → exibe → Painel-Paperclip (`/paperclip`)
|
||||
- Dashboard-Engine → exibe → Painel-IA (`/ai`)
|
||||
- Dashboard-Engine → exibe → Painel-Operacoes (`/operations`)
|
||||
- Dashboard-Engine → exibe → Painel-CronDev (`/cron-dev`) — proposto
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`exibe` — Dashboard-Engine é responsável por renderizar os painéis.
|
||||
|
||||
## Implementação
|
||||
|
||||
- React Router (v6+)
|
||||
- Route handlers em `src/App.tsx`
|
||||
- Layout wrapper em `src/components/Layout.tsx`
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, integra]
|
||||
title: "Dashboard-Engine → integra-com → CSR-Integration"
|
||||
---
|
||||
|
||||
# Dashboard-Engine integra CSR-Integration
|
||||
|
||||
Dashboard-Engine integra a camada CSR para fetch de dados, caching e reconnection logic.
|
||||
|
||||
## Fluxo
|
||||
|
||||
1. Dashboard-Engine renderiza Layout
|
||||
2. Painéis (componentes filhos) usam hooks/Context de CSR-Integration
|
||||
3. CSR-Integration faz requisições HTTP para API Express
|
||||
4. Respostas são cacheadas e compartilhadas entre painéis
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`integra-com` — Dashboard-Engine depende funcionalmente de CSR-Integration.
|
||||
|
||||
## Touchpoints
|
||||
|
||||
- `src/lib/DataContext.tsx` — Context Provider
|
||||
- `src/App.tsx` — wrapper CSR
|
||||
- Painéis — consumem Context
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, observabilidade, sistema]
|
||||
title: "Dashboard-Engine → integra-com → Observabilidade (Sistema)"
|
||||
---
|
||||
|
||||
# Dashboard-Engine integra Observabilidade
|
||||
|
||||
Dashboard-Engine integra o sistema Observabilidade para visibilidade de sessões Claude Code, métricas cross-sistema e operações.
|
||||
|
||||
## Escopo de Integração
|
||||
|
||||
**Observabilidade é um sistema transversal (Desk #2059) que:**
|
||||
- Fornece SPEC autoritária em `/media/ealmeida/Dados/Hub/05-Projectos/Observabilidade/SPEC.md`
|
||||
- Fornece PLAN autoritário em `/media/ealmeida/Dados/Hub/05-Projectos/Observabilidade/PLAN.md`
|
||||
- Indexa e expõe sessões Claude Code (replay, timeline, eventos)
|
||||
- Coleta telemetria cross-projeto (IJFW, n8n, MCPs, SelfImprovement)
|
||||
|
||||
## Touchpoints no DashDescomplicar
|
||||
|
||||
1. **Painel Sessions** (`/sessions`) — Replay de sessões Claude Code
|
||||
- Consome índice SQLite do Observabilidade
|
||||
- Timeline + busca + filtros por agente/projecto
|
||||
|
||||
2. **Painel Monitor** (`/monitor`) — Métricas de infraestrutura
|
||||
- Integrado com telemetria Observabilidade
|
||||
- Health de MCPs, n8n, servidores VPS
|
||||
|
||||
3. **Painel Operações** (`/operations`) — Desk CRM + eventos cross-sistema
|
||||
- Visibility de tarefas + webhooks/eventos Observabilidade
|
||||
|
||||
4. **Metrics Entity** (`okf/entidades/Metrics.md`)
|
||||
- Coleta de eventos do Observabilidade
|
||||
- Agregação em `logs/performance-metrics.json`
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`integra-com` — Dashboard-Engine depende de Observabilidade para visibilidade completa do stack
|
||||
|
||||
## Relacionamentos Secundários (Bidirecional)
|
||||
|
||||
- Metrics ← alimenta → Painel-Monitor (okf/relacionamentos/Metrics-alimenta-PainelMonitor.md)
|
||||
- Painel-Sessions ← consome → Observabilidade
|
||||
- Observabilidade ← expõe-em → Painel-Monitor + Painel-Operacoes
|
||||
|
||||
## Referências Autoritárias
|
||||
|
||||
- **Observabilidade SPEC:** `/media/ealmeida/Dados/Hub/05-Projectos/Observabilidade/SPEC.md`
|
||||
- **Observabilidade PLAN:** `/media/ealmeida/Dados/Hub/05-Projectos/Observabilidade/PLAN.md`
|
||||
- **Desk Observabilidade:** #2059
|
||||
- **SelfImprovement:** #2066 (melhoria contínua da Observabilidade)
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, automação, melhoria]
|
||||
title: "Dashboard-Engine → integra-com → SelfImprovement"
|
||||
---
|
||||
|
||||
# Dashboard-Engine integra SelfImprovement
|
||||
|
||||
Dashboard-Engine integra o ciclo de melhoria contínua SelfImprovement para feedback, análise e decisões de priorização.
|
||||
|
||||
## Ciclo de Feedback
|
||||
|
||||
**Fluxo PDCA (em STATUS.md § ACT):**
|
||||
|
||||
1. **Recolher Feedback**
|
||||
- Desk #65 comentários (bugs, features)
|
||||
- CodeRED incidents (site down, P0)
|
||||
- Logs de erro (`docker logs descomplicar_dashboard_descomplicar`)
|
||||
- Métricas de saúde monitoradas (uptime, response time, error rate)
|
||||
|
||||
2. **Análise** (SelfImprovement)
|
||||
- Identificar padrões e causa raiz
|
||||
- Correlacionar com eventos do Observabilidade
|
||||
- Priorizar via RICE: Reach × Impact ÷ Confidence ÷ Effort
|
||||
|
||||
3. **Decisão & Implementação**
|
||||
- Nova feature/bugfix → PR em Gitea
|
||||
- Code review + merge → deploy
|
||||
- Atualizar CHANGELOG.md + PLAN.md roadmap
|
||||
|
||||
4. **Registar & Monitorar**
|
||||
- STATUS.md atualizado com versão
|
||||
- Métricas de sucesso monitoradas
|
||||
- Feedback loop re-inicia
|
||||
|
||||
## SelfImprovement Desk Task
|
||||
|
||||
- **Desk #2066:** Melhoria contínua da operação
|
||||
- **SPEC:** `/media/ealmeida/Dados/Hub/05-Projectos/SelfImprovement/SPEC.md`
|
||||
- **PLAN:** `/media/ealmeida/Dados/Hub/05-Projectos/SelfImprovement/PLAN.md`
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`integra-com` — Dashboard-Engine alimenta SelfImprovement com feedback e métricas para decisões
|
||||
|
||||
## Relacionamentos Secundários
|
||||
|
||||
- Metrics ← coleta-observabilidade → SelfImprovement (validação de impacto)
|
||||
- Observabilidade ← expõe-dados → SelfImprovement (causa raiz)
|
||||
- SelfImprovement ← realimenta → Dashboard-Engine (novas features/fixes)
|
||||
|
||||
## Escalação de Incidentes
|
||||
|
||||
| Severidade | Processo | Contacto |
|
||||
|------------|----------|----------|
|
||||
| **P0** (site down) | CodeRED trigger imediato | `curl -X POST https://codered.descomplicar.pt/v1/trigger/RED-ZMT3FCU8` |
|
||||
| **P1** (erro crítico) | Desk #65 comentário + SelfImprovement análise | RFC em #65 |
|
||||
| **P2** (bugfix/feature) | Desk #65 comentário + roadmap | Próximo sprint Q3-Q4 |
|
||||
|
||||
## Referência à Integração
|
||||
|
||||
Ver STATUS.md § ACT (Melhoria Contínua) para documentação do ciclo completo.
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, docker, deploy]
|
||||
title: "Docker-Deploy-serve-Dashboard"
|
||||
---
|
||||
|
||||
# Docker-Deploy → serve → DashDescomplicar
|
||||
|
||||
**Origem:** [[Docker-Deploy]]
|
||||
**Destino:** [[Express-API]], [[Dashboard-Engine]]
|
||||
**Tipo:** `serve`
|
||||
|
||||
## Descrição
|
||||
|
||||
O Docker-Deploy empacota e serve a aplicação completa (frontend + backend) num container Docker no EasyPanel Swarm.
|
||||
|
||||
## Fluxo de Deploy
|
||||
|
||||
```
|
||||
git push Gitea → Docker build → docker service update → Traefik → dash.descomplicar.pt
|
||||
```
|
||||
|
||||
## Artefactos
|
||||
|
||||
- **Dockerfile**: `node:22-alpine`, build multi-stage
|
||||
- **Procfile**: `web: node api/dist/server.js`
|
||||
- **Volume**: `sessions.db` bind mount para persistência SQLite
|
||||
- **Rede**: Traefik reverse proxy (EasyPanel)
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, api, paineis]
|
||||
title: "ExpressAPI-roteia-Paineis"
|
||||
---
|
||||
|
||||
# ExpressAPI → roteia → Painéis
|
||||
|
||||
**Origem:** [[Express-API]]
|
||||
**Destino:** [[Painel-Dashboard]], [[Painel-Monitor]], [[Painel-Financeiro]], [[Painel-MCPs]], [[Painel-N8n]], [[Painel-Paperclip]], [[Painel-IA]], [[Painel-Operacoes]], [[Painel-Sessoes]]
|
||||
**Tipo:** `roteia`
|
||||
|
||||
## Descrição
|
||||
|
||||
A Express-API expõe 15 endpoints REST que fornecem dados a todos os 9 painéis frontend. Cada painel consome um ou mais endpoints específicos:
|
||||
|
||||
| Painel | Endpoint(s) |
|
||||
|---|---|
|
||||
| Painel-Dashboard | `GET /api/dashboard` |
|
||||
| Painel-Monitor | `GET /api/monitor`, `GET /api/beszel`, `GET /api/hetzner` |
|
||||
| Painel-Financeiro | `GET /api/financial` |
|
||||
| Painel-MCPs | `GET /api/mcps` |
|
||||
| Painel-N8n | `GET /api/n8n` |
|
||||
| Painel-Paperclip | `GET /api/paperclip` |
|
||||
| Painel-IA | `GET /api/ai` |
|
||||
| Painel-Operacoes | `GET /api/operations` |
|
||||
| Painel-Sessoes | `GET /api/sessions` |
|
||||
|
||||
## Notas
|
||||
|
||||
- Vite proxy no desenvolvimento: `/api` → `http://localhost:3001`
|
||||
- Em produção, Express serve o bundle estático + API na mesma porta (3001)
|
||||
- Rate limit compartilhado: 100 req/15min (prod), 1000/15min (dev)
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, gemini, telemetria]
|
||||
title: "Gemini-Telemetry-alimenta-Observabilidade"
|
||||
---
|
||||
|
||||
# Monitorizacao-Gemini → alimenta → Observabilidade
|
||||
|
||||
**Origem:** [[Monitorizacao-Gemini]]
|
||||
**Destino:** [[Observabilidade-Sessions]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
Os hooks de telemetria do Gemini CLI escrevem métricas de tool calls no mesmo ficheiro JSONL usado pelo Claude Code, unificando a observabilidade cross-engine.
|
||||
|
||||
## Fluxo
|
||||
|
||||
```
|
||||
Gemini CLI (tool call)
|
||||
→ gemini-pre-telemetry.py (timestamp start)
|
||||
→ [tool execution]
|
||||
→ gemini-telemetry.py (log JSONL)
|
||||
→ ~/.claude-work/tool-invocations.jsonl
|
||||
→ Observabilidade-Sessions (indexer)
|
||||
→ Painel-Sessoes (consulta)
|
||||
```
|
||||
|
||||
## Formato Unificado
|
||||
|
||||
Cada entrada inclui campo `engine` para distinguir origem (claude, gemini, hermes, opencode).
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, beszel, monitor]
|
||||
title: "Integracao-Beszel-alimenta-Monitor"
|
||||
---
|
||||
|
||||
# Integracao-Beszel → alimenta → Painel-Monitor
|
||||
|
||||
**Origem:** [[Integracao-Beszel]]
|
||||
**Destino:** [[Painel-Monitor]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
A integração Beszel recolhe métricas de fleet (CPU, RAM, disco, containers, uptime) via PocketBase API e alimenta a secção "Frota Beszel" do Painel-Monitor.
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, hetzner, monitor]
|
||||
title: "Integracao-Hetzner-alimenta-Monitor"
|
||||
---
|
||||
|
||||
# Integracao-Hetzner → alimenta → Painel-Monitor
|
||||
|
||||
**Origem:** [[Integracao-Hetzner]]
|
||||
**Destino:** [[Painel-Monitor]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
A integração Hetzner recolhe métricas de CPU, disco e rede dos VPS e sincroniza a lista de servidores. Estes dados alimentam a secção "Servidores" do Painel-Monitor, com histórico para gráficos de tendência.
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, mcp, gateway]
|
||||
title: "Integracao-MCPGateway-alimenta-Paineis"
|
||||
---
|
||||
|
||||
# Integracao-MCP-Gateway → alimenta → Painéis
|
||||
|
||||
**Origem:** [[Integracao-MCP-Gateway]]
|
||||
**Destino:** [[Painel-MCPs]], [[Painel-IA]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
A integração MCP Gateway faz ping paralelo a 32 MCPs e fornece estado (online/offline/disabled) para o Painel-MCPs (detalhe por MCP) e Painel-IA (Camada 1 — contagem de MCPs).
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, n8n, monitor]
|
||||
title: "Integracao-N8n-alimenta-Paineis"
|
||||
---
|
||||
|
||||
# Integracao-N8n-API → alimenta → Painéis
|
||||
|
||||
**Origem:** [[Integracao-N8n-API]]
|
||||
**Destino:** [[Painel-N8n]], [[Painel-IA]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
A integração n8n consulta a API REST do n8n (`automator.descomplicar.pt`) e fornece dados de workflows e execuções para o Painel-N8n (detalhe de workflows) e Painel-IA (Camada 2 — contagem de workflows determinísticos).
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, wordpress, monitor]
|
||||
title: "Integracao-WordPress-alimenta-Monitor"
|
||||
---
|
||||
|
||||
# Integracao-WordPress → alimenta → Painel-Monitor
|
||||
|
||||
**Origem:** [[Integracao-WordPress]]
|
||||
**Destino:** [[Painel-Monitor]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
O plugin "Descomplicar Monitor" instalado nos sites WordPress cliente envia dados (versão WP, plugins, temas, health) via POST para a API. Estes dados alimentam as secções "Sites WordPress" e "WP Updates" do Painel-Monitor.
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, observabilidade, métricas]
|
||||
title: "Metrics → alimenta → Painel-Monitor"
|
||||
---
|
||||
|
||||
# Metrics alimenta Painel-Monitor
|
||||
|
||||
Painel-Monitor consome métricas de infraestrutura e performance agregadas pelo sistema Metrics.
|
||||
|
||||
## Fluxo de Dados
|
||||
|
||||
1. **Coleta:** Middleware Express + hooks React instrumentam requisições/renderização
|
||||
2. **Agregação:** Logs JSON em `logs/performance-metrics.json` (rotated 7 dias)
|
||||
3. **Exposição:** GET `/api/metrics` (Prometheus format ou JSON custom)
|
||||
4. **Consumo:** Painel-Monitor via CSR-Integration (com cache + reconnect)
|
||||
|
||||
## Métricas Expostas
|
||||
|
||||
- **Performance:** response time (p95), latência por endpoint, tamanho de payload
|
||||
- **Disponibilidade:** uptime, taxa de erro (5xx), health de dependências
|
||||
- **Infraestrutura:** CPU/RAM/Disk dos servidores monitorados (via SSH)
|
||||
- **Aplicação:** tempos de renderização, LCP, FID, CLS
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`alimenta` — Metrics → Painel-Monitor: fonte de verdade para observabilidade
|
||||
|
||||
## Referências
|
||||
|
||||
- Entidade Metrics: `okf/entidades/Metrics.md`
|
||||
- Entidade Painel-Monitor: `okf/entidades/Painel-Monitor.md`
|
||||
- Métrica de saúde: STATUS.md § CHECK
|
||||
- Documentação: docs/PLANS/DashDescomplicar-PLAN.md § Métricas de Saúde
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, mysql, servicos]
|
||||
title: "MySQL-Pool-alimenta-Servicos"
|
||||
---
|
||||
|
||||
# MySQL-Pool → alimenta → Serviços
|
||||
|
||||
**Origem:** [[MySQL-Pool]]
|
||||
**Destino:** [[Express-API]], [[Painel-Dashboard]], [[Painel-Financeiro]], [[Painel-Operacoes]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
O MySQL-Pool é a fonte de verdade para dados do Desk CRM (Perfex). Todos os serviços que precisam de dados de negócio (tarefas, tickets, facturação, leads, projectos) consultam o mesmo pool.
|
||||
|
||||
## Fluxo de Dados
|
||||
|
||||
```
|
||||
MySQL-Pool (ealmeida_desk24 @ 176.9.3.158)
|
||||
├── dashboard.ts → Painel-Dashboard (16 queries)
|
||||
├── financial.ts → Painel-Financeiro (7 queries)
|
||||
├── operations.ts → Painel-Operacoes (4 queries)
|
||||
├── monitoring.ts → Painel-Monitor (1 query)
|
||||
└── hetzner.ts → Painel-Monitor (sync + métricas)
|
||||
```
|
||||
|
||||
## Tabelas Críticas
|
||||
|
||||
| Tabela | Consumidores |
|
||||
|---|---|
|
||||
| `tbltasks` | dashboard, operations |
|
||||
| `tblinvoices` | financial |
|
||||
| `tblexpenses` | financial |
|
||||
| `tbltickets` | dashboard, operations |
|
||||
| `tbl_eal_monitoring` | monitoring, hetzner, wp-monitor |
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, sessoes, observabilidade]
|
||||
title: "Observabilidade-alimenta-PainelSessoes"
|
||||
---
|
||||
|
||||
# Observabilidade-Sessions → alimenta → Painel-Sessoes
|
||||
|
||||
**Origem:** [[Observabilidade-Sessions]]
|
||||
**Destino:** [[Painel-Sessoes]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
O sistema de observabilidade indexa sessões Claude Code (JSONL), Hermes (SQLite) e OpenCode (SQLite) na base SQLite local. O Painel-Sessoes consulta estes dados via API para listagem paginada com filtros e visualização detalhada de eventos.
|
||||
|
||||
## Fluxo
|
||||
|
||||
```
|
||||
Fontes (JSONL + SQLite)
|
||||
→ Systemd-Timers (indexer/import/patterns)
|
||||
→ Observabilidade-Sessions (sessions.db)
|
||||
→ Express-API (/api/sessions)
|
||||
→ Painel-Sessoes (lista + detalhe)
|
||||
```
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, consome]
|
||||
title: "Painéis → usa → Desk CRM"
|
||||
---
|
||||
|
||||
# Painéis consomem Desk CRM
|
||||
|
||||
Múltiplos painéis consomem dados do Desk CRM (tarefas, projetos, tickets, horas).
|
||||
|
||||
## Painéis que consomem
|
||||
|
||||
- Painel-Dashboard — hero stats (tarefas, calendário)
|
||||
- Painel-Operacoes — tickets, alta prioridade, SLA metrics
|
||||
- Painel-Financeiro — dados de horas e projectos para cálculo de receita
|
||||
|
||||
## API
|
||||
|
||||
- Desk CRM API (gateway: `desk.descomplicar.pt:3150`)
|
||||
- Endpoints: `/tasks`, `/projects`, `/tickets`, `/timesheets`
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`usa` — Painéis consomem dados de Desk CRM para exibição.
|
||||
|
||||
## Autenticação
|
||||
|
||||
- JWT / OAuth (conforme configuração Desk)
|
||||
- Credenciais em `.env`
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, consome]
|
||||
title: "Painéis → usa → MCP Gateway"
|
||||
---
|
||||
|
||||
# Painéis consomem MCP Gateway
|
||||
|
||||
Painel-MCPs consome estado dos 39 MCPs através do MCP Gateway.
|
||||
|
||||
## Dados consumidos
|
||||
|
||||
- Estado online/offline/disabled de cada MCP
|
||||
- Health check results
|
||||
- Latência de resposta
|
||||
- Última actualização
|
||||
|
||||
## Painel que consome
|
||||
|
||||
- Painel-MCPs — status agregados, lista detalhada
|
||||
|
||||
## API
|
||||
|
||||
- MCP Gateway: `gateway.descomplicar.pt:3151`
|
||||
- Endpoint: `GET /health`, `GET /mcps`
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`usa` — Painel-MCPs consome estado dos MCPs.
|
||||
|
||||
## Frequência
|
||||
|
||||
- Polling a cada 30-60 segundos
|
||||
- Refresh manual via botão "Actualizar"
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, consome]
|
||||
title: "Painéis → usa → Moloni API"
|
||||
---
|
||||
|
||||
# Painéis consomem Moloni API
|
||||
|
||||
Painel-Financeiro consome dados de faturação da Moloni.
|
||||
|
||||
## Dados consumidos
|
||||
|
||||
- Documentos (Faturas, Recibos)
|
||||
- Clientes
|
||||
- Produtos
|
||||
- Estatísticas (Receita, Despesa por período)
|
||||
|
||||
## Painel que consome
|
||||
|
||||
- Painel-Financeiro — receita, despesa, gráficos de evolução
|
||||
|
||||
## API
|
||||
|
||||
- Moloni API v2 (MCP: `moloni-api`)
|
||||
- Gateway: `gateway.descomplicar.pt:3158`
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`usa` — Painel-Financeiro consome dados de faturação da Moloni.
|
||||
|
||||
## Frequência
|
||||
|
||||
- Polling a cada 15-30 minutos (configurável)
|
||||
- Cache local para performance
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, consome]
|
||||
title: "Painéis → usa → SSH/Infraestrutura"
|
||||
---
|
||||
|
||||
# Painéis consomem SSH/Infraestrutura
|
||||
|
||||
Painel-Monitor consome dados de infraestrutura via SSH2 e APIs Hetzner.
|
||||
|
||||
## Dados consumidos
|
||||
|
||||
- Load dos servidores (CPU, RAM, Disk)
|
||||
- Estado de containers Docker
|
||||
- Status de serviços
|
||||
- Logs de erro / alertas
|
||||
- Backup status
|
||||
|
||||
## Painel que consome
|
||||
|
||||
- Painel-Monitor — load, containers, serviços, backups
|
||||
|
||||
## Fontes
|
||||
|
||||
- **SSH2**: `ssh-unified` MCP (servidores Hetzner)
|
||||
- `176.9.3.158` (CWP)
|
||||
- `176.9.65.41` (EasyPanel)
|
||||
- **Hetzner Cloud API**: infra.descomplicar.pt
|
||||
- **WP-CLI**: WordPress sites via SSH
|
||||
|
||||
## Tipo de relação
|
||||
|
||||
`usa` — Painel-Monitor consome dados de infraestrutura.
|
||||
|
||||
## Frequência
|
||||
|
||||
- Polling contínuo (WebSocket ou short-poll a cada 30s)
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: Relationship
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, relacionamento, systemd, observabilidade]
|
||||
title: "Systemd-Timers-alimenta-Observabilidade"
|
||||
---
|
||||
|
||||
# Systemd-Timers → alimenta → Observabilidade
|
||||
|
||||
**Origem:** [[Systemd-Timers]]
|
||||
**Destino:** [[Observabilidade-Sessions]]
|
||||
**Tipo:** `alimenta`
|
||||
|
||||
## Descrição
|
||||
|
||||
Os systemd timers executam scripts de indexação de sessões que alimentam a base de dados SQLite de observabilidade.
|
||||
|
||||
## Fluxo
|
||||
|
||||
```
|
||||
Systemd-Timers
|
||||
├── observabilidade-indexer (always-on) → Watcher JSONL
|
||||
├── observabilidade-worklog-import (daily 03:00) → Import Desk worklogs
|
||||
└── observabilidade-patterns (Sun 23:00) → Detecção padrões
|
||||
↓
|
||||
Observabilidade-Sessions (sessions.db)
|
||||
↓
|
||||
Express-API → Painel-Sessoes
|
||||
```
|
||||
|
||||
## Volumes
|
||||
|
||||
- `~/.claude-work/sessions.db` (local) ↔ `/data/sessions.db` (container via bind mount)
|
||||
- `~/.claude/projects/` → fonte JSONL
|
||||
- `~/.hermes/state.db` → fonte Hermes
|
||||
- `~/.local/share/opencode/opencode.db` → fonte OpenCode
|
||||
Reference in New Issue
Block a user