{ "system": "AAMOS/quiXzoom", "version": "2026-06-30", "last_updated": "2026-06-30T18:47:46.152Z", "update_source": "auto_updater", "nodes": [ { "id": "zoomer", "type": "actor", "label": "Zoomer (fotograf)", "capabilities": [ "register", "verify_identity", "claim_mission", "submit_photo", "receive_payment" ] }, { "id": "customer", "type": "actor", "label": "Kund (beställare)", "capabilities": [ "register", "create_mission", "review_submissions", "pay" ] }, { "id": "admin", "type": "actor", "label": "Admin/Landvex", "capabilities": [ "manage_all", "view_analytics", "configure_system" ] }, { "id": "app", "type": "frontend", "label": "quiXzoom App", "tech": "React/Vite/TypeScript", "host": "S3+CloudFront", "repo": "quixzoom.com", "build_output": "dist/", "critical": true }, { "id": "api", "type": "gateway", "label": "API Gateway", "host": "nginx/AWS", "routes": [ "/api/qz/*" ], "critical": true }, { "id": "auth", "type": "service", "label": "Auth Service", "port": 3207, "tech": "Rust/axum", "repo": "ouroboros-identity", "endpoints": [ "/auth/register", "/auth/login", "/auth/me", "/auth/logout" ], "critical": true, "owner": "backend-team" }, { "id": "ledger", "type": "service", "label": "Ledger Service", "port": 3250, "tech": "Rust", "status": "Etapp 1 pågår", "critical": false, "owner": "agent" }, { "id": "mission", "type": "service", "label": "Mission Service", "tech": "Node.js/Express", "host": "EC2", "endpoints": [ "/missions", "/missions/:id", "/missions/claims", "/missions/leaderboard" ], "critical": true, "owner": "backend-team" }, { "id": "wallet", "type": "service", "label": "Wallet Service", "tech": "Node.js", "endpoints": [ "/auth/wallet", "/auth/wallet/transactions", "/payouts/request" ], "critical": true, "owner": "backend-team" }, { "id": "kyc", "type": "service", "label": "KYC Service", "tech": "Node.js", "endpoints": [ "/identity/session", "/identity/consent", "/kyc/challenge", "/kyc/upload/:type", "/kyc/verify", "/kyc/verify-doc" ], "critical": true, "owner": "backend-team" }, { "id": "notification", "type": "service", "label": "Notification Service", "tech": "Node.js", "endpoints": [ "/notifications" ], "critical": false, "owner": "backend-team" }, { "id": "db", "type": "database", "label": "PostgreSQL", "host": "RDS", "critical": true, "tables": [ "users", "missions", "claims", "submissions", "wallets", "transactions", "password_reset_tokens", "kyc_sessions", "identity_consents" ], "backup_strategy": "unknown", "owner": "ops-team" }, { "id": "s3", "type": "storage", "label": "S3", "buckets": [ "quixzoom-app-prod", "quixzoom-assets" ], "critical": true }, { "id": "cloudfront", "type": "cdn", "label": "CloudFront", "distribution": "E2QUO7HIHWWP18", "critical": false }, { "id": "stripe", "type": "external", "label": "Stripe Connect", "purpose": "Betalningar till Zoomers + kundbetalningar", "critical": true, "sla": "99.99%", "owner": "stripe" }, { "id": "ses", "type": "external", "label": "AWS SES", "purpose": "E-post (lösenordsåterställning, notiser)", "critical": false, "owner": "aws" }, { "id": "lambda", "type": "external", "label": "AWS Lambda", "purpose": "Lösenordsåterställning", "function": "quixzoom-forgot-password", "critical": false, "owner": "bernt" }, { "id": "bernt", "type": "agent", "label": "Bernt (AI-agent)", "role": "Systemadministration, utveckling, deployment", "tools": [ "file_access", "shell", "aws_cli", "git" ], "critical": false }, { "id": "zoomer_onboarding", "type": "business_process", "label": "Zoomer Onboarding", "steps": [ "register", "email_verify", "kyc_start", "document_photo", "selfie", "kyc_verify", "approved" ], "owner": "product-team" }, { "id": "mission_flow", "type": "business_process", "label": "Mission Flow", "steps": [ "customer_creates", "zoomer_claims", "zoomer_submits", "ai_review", "approval", "payout" ], "owner": "product-team" }, { "id": "password_reset", "type": "business_process", "label": "Password Reset", "steps": [ "request", "email_sent", "click_link", "new_password", "updated" ], "owner": "security-team" }, { "id": "user_table", "type": "domain", "label": "users", "db": "db", "used_by": [ "auth", "kyc", "wallet" ], "sensitive": true }, { "id": "mission_table", "type": "domain", "label": "missions", "db": "db", "used_by": [ "mission", "app" ], "sensitive": false }, { "id": "claim_table", "type": "domain", "label": "claims", "db": "db", "used_by": [ "mission", "app" ], "sensitive": false }, { "id": "submission_table", "type": "domain", "label": "submissions", "db": "db", "used_by": [ "mission", "wallet" ], "sensitive": true }, { "id": "wallet_table", "type": "domain", "label": "wallets", "db": "db", "used_by": [ "wallet" ], "sensitive": true }, { "id": "transaction_table", "type": "domain", "label": "transactions", "db": "db", "used_by": [ "wallet", "ledger" ], "sensitive": true }, { "id": "slo_auth", "type": "slo", "label": "Auth Availability", "target": "99.9%", "measured_by": "unknown" }, { "id": "slo_mission", "type": "slo", "label": "Mission API Latency", "target": "p95 < 200ms", "measured_by": "unknown" }, { "id": "slo_payout", "type": "slo", "label": "Payout Processing", "target": "< 24h", "measured_by": "unknown" }, { "id": "risk_stripe_down", "type": "risk", "label": "Stripe Outage", "impact": "high", "probability": "low", "mitigation": "manual_retry" }, { "id": "risk_db_down", "type": "risk", "label": "Database Failure", "impact": "critical", "probability": "low", "mitigation": "none_documented" }, { "id": "risk_kyc_fraud", "type": "risk", "label": "KYC Fraud", "impact": "high", "probability": "medium", "mitigation": "ai_review+manual" } ], "edges": [ { "from": "zoomer", "to": "app", "relation": "uses", "protocol": "HTTPS" }, { "from": "customer", "to": "app", "relation": "uses", "protocol": "HTTPS" }, { "from": "admin", "to": "bernt", "relation": "directs" }, { "from": "app", "to": "api", "relation": "calls", "protocol": "HTTPS/REST" }, { "from": "api", "to": "auth", "relation": "routes", "paths": [ "/auth/*" ] }, { "from": "api", "to": "mission", "relation": "routes", "paths": [ "/missions/*", "/claims/*", "/submissions/*" ] }, { "from": "api", "to": "wallet", "relation": "routes", "paths": [ "/wallet/*", "/payouts/*" ] }, { "from": "api", "to": "kyc", "relation": "routes", "paths": [ "/identity/*", "/kyc/*" ] }, { "from": "api", "to": "notification", "relation": "routes", "paths": [ "/notifications/*" ] }, { "from": "auth", "to": "user_table", "relation": "reads_writes" }, { "from": "auth", "to": "db", "relation": "connects", "protocol": "PostgreSQL" }, { "from": "mission", "to": "mission_table", "relation": "reads_writes" }, { "from": "mission", "to": "claim_table", "relation": "reads_writes" }, { "from": "mission", "to": "submission_table", "relation": "reads_writes" }, { "from": "mission", "to": "db", "relation": "connects", "protocol": "PostgreSQL" }, { "from": "wallet", "to": "wallet_table", "relation": "reads_writes" }, { "from": "wallet", "to": "transaction_table", "relation": "reads_writes" }, { "from": "wallet", "to": "db", "relation": "connects", "protocol": "PostgreSQL" }, { "from": "wallet", "to": "stripe", "relation": "calls", "protocol": "HTTPS/REST", "purpose": "process_payments" }, { "from": "kyc", "to": "user_table", "relation": "reads_writes" }, { "from": "kyc", "to": "db", "relation": "connects", "protocol": "PostgreSQL" }, { "from": "kyc", "to": "s3", "relation": "writes", "purpose": "store_id_documents" }, { "from": "notification", "to": "ses", "relation": "calls", "protocol": "HTTPS/REST", "purpose": "send_emails" }, { "from": "app", "to": "cloudfront", "relation": "served_by" }, { "from": "cloudfront", "to": "s3", "relation": "fetches_from" }, { "from": "auth", "to": "lambda", "relation": "calls", "protocol": "HTTPS/REST", "purpose": "forgot_password" }, { "from": "lambda", "to": "ses", "relation": "calls", "protocol": "HTTPS/REST", "purpose": "send_reset_email" }, { "from": "lambda", "to": "db", "relation": "connects", "protocol": "PostgreSQL" }, { "from": "lambda", "to": "user_table", "relation": "reads_writes" }, { "from": "zoomer_onboarding", "to": "app", "relation": "executed_via" }, { "from": "zoomer_onboarding", "to": "auth", "relation": "uses" }, { "from": "zoomer_onboarding", "to": "kyc", "relation": "uses" }, { "from": "zoomer_onboarding", "to": "user_table", "relation": "modifies" }, { "from": "mission_flow", "to": "app", "relation": "executed_via" }, { "from": "mission_flow", "to": "mission", "relation": "uses" }, { "from": "mission_flow", "to": "wallet", "relation": "uses" }, { "from": "mission_flow", "to": "stripe", "relation": "uses" }, { "from": "mission_flow", "to": "mission_table", "relation": "modifies" }, { "from": "mission_flow", "to": "claim_table", "relation": "modifies" }, { "from": "mission_flow", "to": "submission_table", "relation": "modifies" }, { "from": "mission_flow", "to": "wallet_table", "relation": "modifies" }, { "from": "mission_flow", "to": "transaction_table", "relation": "modifies" }, { "from": "password_reset", "to": "app", "relation": "executed_via" }, { "from": "password_reset", "to": "lambda", "relation": "uses" }, { "from": "password_reset", "to": "ses", "relation": "uses" }, { "from": "password_reset", "to": "user_table", "relation": "modifies" }, { "from": "risk_stripe_down", "to": "stripe", "relation": "threatens" }, { "from": "risk_stripe_down", "to": "wallet", "relation": "impacts" }, { "from": "risk_stripe_down", "to": "mission_flow", "relation": "disrupts" }, { "from": "risk_db_down", "to": "db", "relation": "threatens" }, { "from": "risk_db_down", "to": "auth", "relation": "impacts" }, { "from": "risk_db_down", "to": "mission", "relation": "impacts" }, { "from": "risk_db_down", "to": "wallet", "relation": "impacts" }, { "from": "risk_db_down", "to": "kyc", "relation": "impacts" }, { "from": "risk_db_down", "to": "zoomer_onboarding", "relation": "disrupts" }, { "from": "risk_db_down", "to": "mission_flow", "relation": "disrupts" }, { "from": "risk_db_down", "to": "password_reset", "relation": "disrupts" }, { "from": "risk_kyc_fraud", "to": "kyc", "relation": "threatens" }, { "from": "risk_kyc_fraud", "to": "user_table", "relation": "impacts" } ], "queries": { "impact_analysis": { "description": "Given a component change, what is affected?", "example": "wallet", "algorithm": "traverse_edges_from_node", "depth": "unlimited", "include_indirect": true }, "failure_analysis": { "description": "Given a component failure, what breaks?", "example": "stripe", "algorithm": "find_nodes_without_alternative_path", "include_business_processes": true }, "blast_radius": { "description": "Given a database table, what uses it?", "example": "missions", "algorithm": "reverse_traverse_from_domain_node" } } }