managarten/docs/ENV_AUDIT_SUMMARY.md
Wuesteon ad495b2044 📝 docs: restructure CLAUDE.md and documentation (74% reduction)
Optimize CLAUDE.md based on industry best practices from HN and HumanLayer:

Changes:
- Trim CLAUDE.md from 678 to 176 lines (74% reduction, 5.7KB)
- Add "Critical Gotchas" section for common AI mistakes
- Add verification signature (🏗️ ManaCore Monorepo)
- Create docs/README.md navigation hub with "I want to..." index
- Delete 5 outdated audit files (ENV_AUDIT_*, DEPENDENCY_ALIGNMENT)
- Archive 7 analysis/historical docs to docs/archive/
- Keep authentication docs separate per request (.claude/guidelines/)

Benefits:
- Better AI instruction adherence (within ~150-200 line budget)
- Progressive disclosure via signposting to detailed docs
- Cleaner navigation with topic-based organization
- Reduced maintenance burden (stale docs archived)

Backup: CLAUDE.md.backup preserves original 678-line version
Change log: docs/archive/RESTRUCTURE_2025-12-16.md
2025-12-16 17:37:19 +01:00

4.8 KiB

Environment Audit - Quick Summary

Issues Found: 8 Critical/Major Items

BLOCKING (Fix immediately - prevent simultaneous backend execution)

Port Conflicts:

Port 3002: Chat (3002) ← → Nutriphi (3002)  [CONFLICT]
Port 3003: Picture (3003) ← → Maerchenzauber (3003)  [CONFLICT]

Hardcoded Values:

  • Chat backend hardcodes DEV_USER_ID instead of reading from env

MAJOR (Inconsistencies across codebase)

Auth URL Variable Names (Choose One):

  • Chat: MANA_CORE_AUTH_URL ✓
  • Picture: MANA_CORE_AUTH_URL ✓
  • Zitare: MANA_CORE_AUTH_URL ✓
  • Presi: MANA_CORE_AUTH_URL ✓
  • Manadeck: MANA_SERVICE_URL ← Should standardize
  • Nutriphi: MANACORE_AUTH_URL ← Should standardize

CORS Origins:

  • Hardcoded in 4 backends (Chat, Picture, Zitare, Presi)
  • Should use CORS_ORIGINS from environment

Missing Documentation:

  • No .env.example for Zitare backend
  • No .env.example for Presi backend

MEDIUM (Code quality)

Validation Schemas:

  • Chat: Missing
  • Picture: Missing
  • Zitare: Missing
  • Presi: Missing
  • Manadeck: ✓ Has validation schema
  • Mana-Core-Auth: ✓ Has validation config

Quick Fix Checklist

Phase 1: Critical (1-2 hours)

  • Reassign Picture from port 3003 → 3005
  • Reassign Nutriphi from port 3002 → 3006
  • Add DEV_USER_ID to .env.development
  • Update Chat to load DEV_USER_ID from ConfigService

Phase 2: Major (2-3 hours)

  • Rename MANA_SERVICE_URL to MANA_CORE_AUTH_URL in Manadeck
  • Rename MANACORE_AUTH_URL to MANA_CORE_AUTH_URL in Nutriphi
  • Create .env.example for Zitare
  • Create .env.example for Presi

Phase 3: Quality (3-4 hours)

  • Add validation schemas to Chat, Picture, Zitare, Presi
  • Extract CORS origins to environment variables
  • Update all backends to read CORS_ORIGINS from env

Current:                          Recommended:
3001 ← Mana Core Auth    →    3001 ← Mana Core Auth
3002 ← Chat              →    3002 ← Chat
3002 ← Nutriphi [X]      →    3006 ← Nutriphi [FIXED]
3003 ← Maerchenzauber    →    3003 ← Maerchenzauber
3003 ← Picture [X]       →    3005 ← Picture [FIXED]
3004 ← Manadeck          →    3004 ← Manadeck
3007 ← Zitare            →    3007 ← Zitare
3008 ← Presi             →    3008 ← Presi
3010 ← Voxel Lava        →    3010 ← Voxel Lava
3011 ← Mana Games        →    3011 ← Mana Games

Environment Variables Status

Well-Configured

  • MANA_CORE_AUTH_URL (central + mapped)
  • JWT keys (central)
  • API keys (central)
  • Database URLs (individual + mapped)

Needs Work

  • DEV_USER_ID (hardcoded, not in env)
  • DEV_BYPASS_AUTH (partial, only Chat)
  • CORS_ORIGINS (hardcoded, not used by all)
  • Auth URL naming (3 different conventions)

Files to Modify

.env.development

  • Add DEV_USER_ID line
  • Fix PICTURE_BACKEND_PORT (3003 → 3005)
  • Fix NUTRIPHI_BACKEND_PORT (3002 → 3006)

scripts/generate-env.mjs

  • Line 205: MANA_SERVICE_URL → MANA_CORE_AUTH_URL (Manadeck)
  • Line 272: MANACORE_AUTH_URL → MANA_CORE_AUTH_URL (Nutriphi)

Backend Apps (4 files each)

  • apps/chat/apps/backend/src/config/validation.schema.ts (create)
  • apps/picture/apps/backend/src/config/validation.schema.ts (create)
  • apps/zitare/apps/backend/src/config/validation.schema.ts (create)
  • apps/presi/apps/backend/src/config/validation.schema.ts (create)

Backend Main Files (4 files)

  • apps/chat/apps/backend/src/main.ts (extract CORS)
  • apps/picture/apps/backend/src/main.ts (extract CORS)
  • apps/zitare/apps/backend/src/main.ts (extract CORS)
  • apps/presi/apps/backend/src/main.ts (extract CORS)

Backend Examples (2 files)

  • apps/zitare/apps/backend/.env.example (create)
  • apps/presi/apps/backend/.env.example (create)

Chat Guard

  • apps/chat/apps/backend/src/common/guards/jwt-auth.guard.ts
    • Remove hardcoded DEV_USER_ID
    • Read from configService instead

Testing After Fixes

# Test all 10 backends can start simultaneously
pnpm dev:auth &
pnpm dev:chat:backend &
pnpm dev:manadeck:backend &
pnpm dev:picture:backend &
pnpm dev:zitare:backend &
pnpm dev:presi:backend &

# Verify each responds
curl http://localhost:3001/health
curl http://localhost:3002/api/health
curl http://localhost:3003/api/health  # Maerchenzauber
curl http://localhost:3004/v1/health   # Manadeck
curl http://localhost:3005/api/health  # Picture (new port)
curl http://localhost:3007/api/health  # Zitare
curl http://localhost:3008/api/health  # Presi

Additional Docs

See full audit report: /docs/ENV_CONFIGURATION_AUDIT.md

Key sections:

  • Environment Variable Mapping (section 3)
  • Hardcoded Values & Security (section 4)
  • Configuration Best Practices (section 5)
  • Implementation Checklist (section 10)