Spaces:
Paused
Paused
| # WidgeTDC Cloud Architecture | |
| ## "Operation Cloudborne" - Headless Ghost Deployment | |
| **Version:** 1.0 | |
| **Dato:** 2025-12-13 | |
| **Status:** PRODUCTION LIVE | |
| --- | |
| ## 1. Arkitektur Oversigt | |
| ``` | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β WIDGETDC CLOUD ARCHITECTURE β | |
| β "Headless Ghost" Pattern β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ββββββββββββββββββββ | |
| β BRUGER/KLIENT β | |
| β (Browser/App) β | |
| ββββββββββ¬ββββββββββ | |
| β HTTPS | |
| βΌ | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β FRONTEND LAYER β | |
| β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| β β VERCEL (CDN Edge) β β | |
| β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β | |
| β β β React 19 + Vite + Tailwind CSS v4 β β β | |
| β β β ββββββββββββββββββββββββββββββββββββββββ β β β | |
| β β β β’ Matrix UI (Cyber Terminal) β β β | |
| β β β β’ Widget System (Modular Components) β β β | |
| β β β β’ Zustand State Management β β β | |
| β β β β’ PWA Support (Offline-capable) β β β | |
| β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β | |
| β β URL: https://widge-tdc-matrix-frontend.vercel.app β β | |
| β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| β REST API + WebSocket | |
| β (CORS: origin: '*') | |
| βΌ | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β BACKEND LAYER β | |
| β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| β β HUGGING FACE SPACES (Docker) β β | |
| β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β | |
| β β β Node.js 20 + Express + TypeScript β β β | |
| β β β ββββββββββββββββββββββββββββββββββββββββ β β β | |
| β β β β β β | |
| β β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β β | |
| β β β β MCP Engine β β Cognitive β β Agent β β β β | |
| β β β β (63 Tools) β β Layer β β Orchestratorβ β β β | |
| β β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β β | |
| β β β β β β | |
| β β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β β | |
| β β β β HyperLog β β Ingestion β β Security β β β β | |
| β β β β (Events) β β Pipeline β β Layer β β β β | |
| β β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β β | |
| β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β | |
| β β URL: https://kraft102-widgetdc-backend.hf.space β β | |
| β β Port: 7860 (HF Standard) β β | |
| β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βββββββββββββββββββΌββββββββββββββββββ | |
| β β β | |
| βΌ βΌ βΌ | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β DATA LAYER β | |
| β β | |
| β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ β | |
| β β REDIS CLOUD β β NEO4J AURADB β β NEON POSTGRES β β | |
| β β (EU-North-1) β β (Cloud) β β (Serverless) β β | |
| β β βββββββββββββββ β β βββββββββββββββ β β βββββββββββββββ β β | |
| β β β’ Hot Cache β β β’ Knowledge β β β’ Vector Store β β | |
| β β β’ Session State β β Graph β β (pgvector) β β | |
| β β β’ Event Pub/Sub β β β’ 4274 Nodes β β β’ Prisma ORM β β | |
| β β β’ Real-time β β β’ 5252 Rels β β β’ Structured β β | |
| β β Messaging β β β’ Cypher Query β β Data β β | |
| β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ β | |
| β β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βΌ | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β AI/LLM LAYER β | |
| β β | |
| β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β | |
| β β GEMINI β β OPENAI β β ANTHROPIC β β DEEPSEEK β β | |
| β β PRO β β GPT-4 β β CLAUDE β β V3 β β | |
| β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β | |
| β β Primary AI β β Fallback β β Analysis β β Code Gen β β | |
| β β Reasoning β β Provider β β Tasks β β Tasks β β | |
| β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β | |
| β β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ``` | |
| --- | |
| ## 2. Komponent Detaljer | |
| ### 2.1 Frontend ("The Satellite") | |
| | Attribut | Værdi | | |
| |----------|-------| | |
| | **Platform** | Vercel Edge Network | | |
| | **Framework** | React 19 + Vite 5 | | |
| | **Styling** | Tailwind CSS v4 | | |
| | **State** | Zustand | | |
| | **URL** | `https://widge-tdc-matrix-frontend.vercel.app` | | |
| **Funktioner:** | |
| - Cyber Terminal UI med widget-baseret dashboard | |
| - Real-time data via REST/WebSocket | |
| - PWA-enabled (offline support) | |
| - Responsive design | |
| **Environment Variables:** | |
| ``` | |
| VITE_API_URL=https://kraft102-widgetdc-backend.hf.space | |
| VITE_WS_URL=wss://kraft102-widgetdc-backend.hf.space | |
| ``` | |
| --- | |
| ### 2.2 Backend ("The Ghost") | |
| | Attribut | Værdi | | |
| |----------|-------| | |
| | **Platform** | Hugging Face Spaces (Docker) | | |
| | **Runtime** | Node.js 20-slim | | |
| | **Framework** | Express.js + TypeScript | | |
| | **Port** | 7860 | | |
| | **URL** | `https://kraft102-widgetdc-backend.hf.space` | | |
| **Arkitektur Lag:** | |
| ``` | |
| apps/backend/src/ | |
| βββ mcp/ # Model Context Protocol | |
| β βββ cognitive/ # AI Engines | |
| β β βββ UnifiedGraphRAG.ts | |
| β β βββ AutonomousTaskEngine.ts | |
| β β βββ HybridSearchEngine.ts | |
| β β βββ StateGraphRouter.ts | |
| β β βββ AgentTeam.ts | |
| β βββ autonomous/ # Self-directed Agents | |
| β βββ memory/ # Cognitive Memory Systems | |
| βββ platform/ # Infrastructure Adapters | |
| β βββ embeddings/ # Vector Embeddings | |
| β βββ vector/ # Vector Stores | |
| β βββ events/ # Redis Event Bus | |
| β βββ graph/ # Neo4j Adapter | |
| βββ services/ # Business Logic | |
| β βββ hyper-log.ts # Event Streaming | |
| β βββ ingestion/ # Data Pipeline (20+ adapters) | |
| β βββ external/ # External Integrations | |
| βββ routes/ # API Endpoints | |
| ``` | |
| **MCP Tools (63 registreret):** | |
| - `cma.*` - Context Memory Access | |
| - `srag.*` - Semantic RAG Queries | |
| - `autonomous.*` - Agent Operations | |
| - `vidensarkiv.*` - Knowledge Archive | |
| - `widgets.*` - Widget Control | |
| - `ingestion.*` - Data Ingestion | |
| - `docgen.*` - Document Generation | |
| --- | |
| ### 2.3 Data Layer | |
| #### Redis Cloud (Hot Data) | |
| | Attribut | Værdi | | |
| |----------|-------| | |
| | **Region** | EU-North-1 (Stockholm) | | |
| | **Host** | `redis-16522.crce175.eu-north-1-1.ec2.cloud.redislabs.com` | | |
| | **Port** | 16522 | | |
| | **FormΓ₯l** | Cache, Sessions, Pub/Sub | | |
| #### Neo4j AuraDB (Knowledge Graph) | |
| | Attribut | Værdi | | |
| |----------|-------| | |
| | **Type** | Cloud Graph Database | | |
| | **URI** | `neo4j+s://054eff27.databases.neo4j.io` | | |
| | **Nodes** | 4,274 | | |
| | **Relationships** | 5,252 | | |
| | **FormΓ₯l** | Knowledge Graph, Entity Relations | | |
| #### Neon PostgreSQL (Vector Store) | |
| | Attribut | Værdi | | |
| |----------|-------| | |
| | **Type** | Serverless Postgres | | |
| | **Region** | US-East-2 | | |
| | **Extensions** | pgvector | | |
| | **ORM** | Prisma | | |
| | **FormΓ₯l** | Structured Data, Vector Search | | |
| --- | |
| ### 2.4 AI/LLM Providers | |
| | Provider | API Key Env | Anvendelse | | |
| |----------|-------------|------------| | |
| | Google Gemini | `GOOGLE_AI_API_KEY` | Primary reasoning | | |
| | OpenAI GPT-4 | `OPENAI_API_KEY` | Fallback, embeddings | | |
| | Anthropic Claude | `ANTHROPIC_API_KEY` | Analysis tasks | | |
| | DeepSeek V3 | `DEEPSEEK_API_KEY` | Code generation | | |
| --- | |
| ## 3. Dataflow | |
| ``` | |
| βββββββββββ βββββββββββ βββββββββββ βββββββββββ | |
| β Browser ββββββΆβ Vercel ββββββΆβ HF SpaceββββββΆβ DBs β | |
| β Request β β CDN β β Backend β β β | |
| βββββββββββ βββββββββββ βββββββββββ βββββββββββ | |
| β β β | |
| β βΌ β | |
| β βββββββββββββββ β | |
| β β MCP Router β β | |
| β ββββββββ¬βββββββ β | |
| β β β | |
| β βββββββββββββββββΌββββββββββββββββ€ | |
| β βΌ βΌ βΌ | |
| β βββββββββββββ βββββββββββββ βββββββββββββ | |
| β β Cognitive β β Redis β β Neo4j β | |
| β β Engine β β Cache β β Graph β | |
| β βββββββββββββ βββββββββββββ βββββββββββββ | |
| β β | |
| β βΌ | |
| β βββββββββββββ | |
| β β AI/LLM β | |
| β β Providers β | |
| β βββββββββββββ | |
| β β | |
| βββββββββββββββββ | |
| Response | |
| ``` | |
| --- | |
| ## 4. API Endpoints | |
| ### Health & Status | |
| ``` | |
| GET /health # System health | |
| GET /api/hyper/status # HyperLog status | |
| GET /api/evolution/graph/stats # Graph statistics | |
| ``` | |
| ### MCP Protocol | |
| ``` | |
| GET /api/mcp/tools # List all tools (63) | |
| POST /api/mcp/route # Execute MCP tool | |
| WS /mcp/ws # WebSocket connection | |
| ``` | |
| ### Agent Operations | |
| ``` | |
| POST /api/team/delegate # Delegate task to agent | |
| GET /api/team/tasks # List agent tasks | |
| POST /api/team/plan # Create execution plan | |
| GET /api/team/status # Agent team status | |
| ``` | |
| ### Knowledge & Search | |
| ``` | |
| POST /api/srag/query # Semantic RAG search | |
| GET /api/knowledge/* # Knowledge endpoints | |
| POST /api/vidensarkiv/search # Archive search | |
| ``` | |
| --- | |
| ## 5. Environment Secrets (HF Spaces) | |
| | Secret | Status | FormΓ₯l | | |
| |--------|--------|--------| | |
| | `DATABASE_URL` | β | Neon PostgreSQL connection | | |
| | `NEO4J_URI` | β | AuraDB endpoint | | |
| | `NEO4J_USER` | β | AuraDB username | | |
| | `NEO4J_PASSWORD` | β | AuraDB password | | |
| | `REDIS_URL` | β | Redis Cloud connection | | |
| | `GOOGLE_AI_API_KEY` | β | Gemini API | | |
| | `OPENAI_API_KEY` | β | OpenAI API | | |
| | `ANTHROPIC_API_KEY` | β | Claude API | | |
| | `JWT_SECRET` | β | Auth tokens | | |
| --- | |
| ## 6. Deployment Pipeline | |
| ``` | |
| βββββββββββββββ βββββββββββββββ βββββββββββββββ | |
| β GitHub ββββββΆβ Build ββββββΆβ Deploy β | |
| β Push β β (Docker) β β (HF/Vercel)β | |
| βββββββββββββββ βββββββββββββββ βββββββββββββββ | |
| β β β | |
| β β β | |
| βΌ βΌ βΌ | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β Branch: hf-minimal β | |
| β βββββββββββββββββββ β | |
| β β’ Backend β push to 'hf' remote β HF Spaces β | |
| β β’ Frontend β auto-deploy from GitHub β Vercel β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ``` | |
| ### Deploy Commands | |
| ```bash | |
| # Backend til HF Spaces | |
| git push hf hf-minimal:main | |
| # Frontend til Vercel (auto via GitHub) | |
| git push origin hf-minimal | |
| ``` | |
| --- | |
| ## 7. Sikkerhed | |
| ### CORS Configuration | |
| ```typescript | |
| app.use(cors({ | |
| origin: '*', // Γ ben for alle origins (kan strammes) | |
| methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], | |
| allowedHeaders: ['Content-Type', 'Authorization'] | |
| })); | |
| ``` | |
| ### Authentication | |
| - JWT-baseret authentication | |
| - Bearer tokens via `Authorization` header | |
| - Secret: `JWT_SECRET` environment variable | |
| ### GDPR Compliance | |
| - Data minimization i audit logs | |
| - Kun IDs/metadata logges | |
| - Retention policies implementeret | |
| --- | |
| ## 8. Monitorering | |
| ### Health Checks | |
| ```bash | |
| # Backend health | |
| curl https://kraft102-widgetdc-backend.hf.space/health | |
| # Graph stats | |
| curl https://kraft102-widgetdc-backend.hf.space/api/evolution/graph/stats | |
| # MCP tools count | |
| curl https://kraft102-widgetdc-backend.hf.space/api/mcp/tools | |
| ``` | |
| ### HF Spaces Docker Health | |
| ```dockerfile | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ | |
| CMD node -e "require('http').get('http://localhost:7860/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))" | |
| ``` | |
| --- | |
| ## 9. Live URLs | |
| | Komponent | URL | Status | | |
| |-----------|-----|--------| | |
| | Frontend | https://widge-tdc-matrix-frontend.vercel.app | β LIVE | | |
| | Backend | https://kraft102-widgetdc-backend.hf.space | β LIVE | | |
| | Health | https://kraft102-widgetdc-backend.hf.space/health | β OK | | |
| | API Docs | https://kraft102-widgetdc-backend.hf.space/api/mcp/tools | β 63 tools | | |
| --- | |
| ## 10. Teknologi Stack Oversigt | |
| ``` | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β WIDGETDC TECH STACK β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ | |
| β FRONTEND β React 19, Vite 5, Tailwind v4, Zustand β | |
| β BACKEND β Node.js 20, Express, TypeScript 5.8 β | |
| β DATABASES β PostgreSQL+pgvector, Neo4j 5, Redis 7 β | |
| β AI/LLM β Gemini, OpenAI, Claude, DeepSeek β | |
| β HOSTING β Vercel (FE), Hugging Face Spaces (BE) β | |
| β PROTOCOL β MCP (Model Context Protocol) β | |
| β ARCHITECTURE β Microservices, Event-Driven β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ``` | |
| --- | |
| *Genereret: 2025-12-13* | |
| *Operation Cloudborne v1.0* | |