# Documentation Index ## Getting Started **New to the project?** Start here: 1. [README.md](../README.md) - Project Overview & Quick Start 2. [DEVELOPMENT.md](DEVELOPMENT.md) - Setup Development Environment 3. [CONFIGURATION.md](CONFIGURATION.md) - Configure Environment Variables ## Core Documentation ### For Developers - **[DEVELOPMENT.md](DEVELOPMENT.md)** - Complete development guide - Setup, Coding Standards, Testing, Debugging - **[ARCHITECTURE.md](ARCHITECTURE.md)** - System design and architecture - Components, Data Flow, Event-Driven Design - **[API.md](API.md)** - HTTP Endpoints and Event Topics - Proxy API, Calendar Sync API, Webhook Endpoints ### For Operations - **[DEPLOYMENT.md](DEPLOYMENT.md)** - Production deployment - Installation, systemd, nginx, Monitoring - **[CONFIGURATION.md](CONFIGURATION.md)** - Environment configuration - All environment variables, secrets management - **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)** - Problem solving - Common issues, debugging, log analysis ### Special Topics - **[GOOGLE_SETUP.md](GOOGLE_SETUP.md)** - Google Service Account setup - Step-by-step guide for Calendar API access ## Component Documentation ### Steps (Business Logic) **Advoware Proxy** ([Module README](../steps/advoware_proxy/README.md)): - [advoware_api_proxy_get_step.md](../steps/advoware_proxy/advoware_api_proxy_get_step.md) - [advoware_api_proxy_post_step.md](../steps/advoware_proxy/advoware_api_proxy_post_step.md) - [advoware_api_proxy_put_step.md](../steps/advoware_proxy/advoware_api_proxy_put_step.md) - [advoware_api_proxy_delete_step.md](../steps/advoware_proxy/advoware_api_proxy_delete_step.md) **Calendar Sync** ([Module README](../steps/advoware_cal_sync/README.md)): - [calendar_sync_cron_step.md](../steps/advoware_cal_sync/calendar_sync_cron_step.md) - Daily trigger - [calendar_sync_api_step.md](../steps/advoware_cal_sync/calendar_sync_api_step.md) - Manual trigger - [calendar_sync_all_step.md](../steps/advoware_cal_sync/calendar_sync_all_step.md) - Employee cascade - [calendar_sync_event_step.md](../steps/advoware_cal_sync/calendar_sync_event_step.md) - Per-employee sync (complex) **VMH Webhooks & Sync** ([Module README](../steps/vmh/README.md)): - **Beteiligte Sync** (Bidirectional EspoCRM ↔ Advoware) - [BETEILIGTE_SYNC.md](BETEILIGTE_SYNC.md) - Complete documentation - [README_SYNC.md](../steps/vmh/README_SYNC.md) - Event handler docs - [beteiligte_sync_event_step.py](../steps/vmh/beteiligte_sync_event_step.py) - Event handler - [beteiligte_sync_cron_step.py](../steps/vmh/beteiligte_sync_cron_step.py) - Cron job - **Webhooks** - [beteiligte_create_api_step.md](../steps/vmh/webhook/beteiligte_create_api_step.md) - Create webhook - [beteiligte_update_api_step.md](../steps/vmh/webhook/beteiligte_update_api_step.md) - Update webhook (similar) - [beteiligte_delete_api_step.md](../steps/vmh/webhook/beteiligte_delete_api_step.md) - Delete webhook (similar) - [beteiligte_sync_event_step.md](../steps/vmh/beteiligte_sync_event_step.md) - Sync handler (placeholder) ### Services - **Advoware Service** ([ADVOWARE_SERVICE.md](../services/ADVOWARE_SERVICE.md)) - API Client mit HMAC-512 Auth - **Advoware API Swagger** ([advoware_api_swagger.json](advoware/advoware_api_swagger.json)) - VollstΓ€ndige API-Dokumentation - **EspoCRM Service** ([espocrm.py](../services/espocrm.py)) - EspoCRM API Client mit X-Api-Key Auth - **Sync Services** - [beteiligte_sync_utils.py](../services/beteiligte_sync_utils.py) - Sync utilities (lock, timestamp, merge) - [espocrm_mapper.py](../services/espocrm_mapper.py) - Entity mapping EspoCRM ↔ Advoware ### Sync Documentation #### πŸ“š Main Documentation - **[SYNC_OVERVIEW.md](SYNC_OVERVIEW.md)** - ⭐ **START HERE** - Komplette Sync-Dokumentation - System-Architektur (Defense in Depth: Webhook + Cron) - Beteiligte Sync (Stammdaten): rowId-basierte Change Detection - Kommunikation Sync (Phone/Email/Fax): Hash-basierte Change Detection, 6 Varianten - Sync Status Management: 8 Status-Werte, Retry mit Exponential Backoff - Bekannte EinschrΓ€nkungen & Workarounds (Advoware API Limits) - Troubleshooting Guide (Duplikate, Lock-Issues, Konflikte) #### πŸ“ Archive - **[archive/](archive/)** - Historische Analysen & Detail-Dokumentationen - Original API-Analysen (Kommunikation, Adressen) - Code-Reviews & Bug-Analysen - Detail-Dokumentationen (vor Konsolidierung) ### Utility Scripts - [Calendar Sync Scripts](../scripts/calendar_sync/README.md) - Wartung und Debugging - `delete_employee_locks.py` - Redis Lock Cleanup - `delete_all_calendars.py` - Google Calendar Reset --- ## Documentation Structure ``` docs/ β”œβ”€β”€ INDEX.md # This file β”œβ”€β”€ ARCHITECTURE.md # System design β”œβ”€β”€ API.md # API reference β”œβ”€β”€ CONFIGURATION.md # Configuration β”œβ”€β”€ DEPLOYMENT.md # Deployment guide β”œβ”€β”€ DEVELOPMENT.md # Development guide β”œβ”€β”€ GOOGLE_SETUP.md # Google Calendar setup β”œβ”€β”€ TROUBLESHOOTING.md # Debugging guide β”œβ”€β”€ BETEILIGTE_SYNC.md # ⭐ Beteiligte sync docs β”œβ”€β”€ SYNC_TEMPLATE.md # ⭐ Template for new syncs β”œβ”€β”€ ENTITY_MAPPING_CBeteiligte_Advoware.md # Field mappings └── advoware/ └── advoware_api_swagger.json # Advoware API spec steps/{module}/ β”œβ”€β”€ README.md # Module overview β”œβ”€β”€ README_SYNC.md # ⭐ Sync handler docs (VMH) └── {step_name}.md # Step documentation services/ β”œβ”€β”€ {service_name}.md # Service documentation β”œβ”€β”€ beteiligte_sync_utils.py # ⭐ Sync utilities └── espocrm_mapper.py # ⭐ Entity mapper scripts/{category}/ β”œβ”€β”€ README.md # Script documentation └── *.py # Utility scripts ``` ## Documentation Standards ### YAML Frontmatter Each step documentation includes metadata: ```yaml --- type: step category: api|event|cron name: Step Name version: 1.0.0 status: active|deprecated|placeholder tags: [tag1, tag2] dependencies: [...] emits: [...] subscribes: [...] --- ``` ### Sections Standard sections in step documentation: 1. **Zweck** - Purpose (one sentence) 2. **Config** - Motia step configuration 3. **Input** - Request structure, parameters 4. **Output** - Response structure 5. **Verhalten** - Behavior, logic flow 6. **AbhΓ€ngigkeiten** - Dependencies (services, Redis, APIs) 7. **Testing** - Test examples 8. **KI Guidance** - Tips for AI assistants ### Cross-References - Use relative paths for links - Link related steps and services - Link to parent module READMEs ## Quick Reference ### Common Tasks | Task | Documentation | |------|---------------| | Setup development environment | [DEVELOPMENT.md](DEVELOPMENT.md#setup) | | Configure environment variables | [CONFIGURATION.md](CONFIGURATION.md) | | Deploy to production | [DEPLOYMENT.md](DEPLOYMENT.md#installation-steps) | | Setup Google Calendar | [GOOGLE_SETUP.md](GOOGLE_SETUP.md) | | Debug service issues | [TROUBLESHOOTING.md](TROUBLESHOOTING.md#service-issues) | | Understand architecture | [ARCHITECTURE.md](ARCHITECTURE.md) | | Test API endpoints | [API.md](API.md) | ### Code Locations | Component | Location | Documentation | |-----------|----------|---------------| | API Proxy Steps | `steps/advoware_proxy/` | [README](../steps/advoware_proxy/README.md) | | Calendar Sync Steps | `steps/advoware_cal_sync/` | [README](../steps/advoware_cal_sync/README.md) | | VMH Webhook Steps | `steps/vmh/` | [README](../steps/vmh/README.md) | | Advoware API Client | `services/advoware.py` | [DOC](../services/ADVOWARE_SERVICE.md) | | Configuration | `config.py` | [CONFIGURATION.md](CONFIGURATION.md) | ## Contributing to Documentation ### Adding New Step Documentation 1. Create `{step_name}.md` next to `.py` file 2. Use YAML frontmatter (see template) 3. Follow standard sections 4. Add to module README 5. Add to this INDEX ### Updating Documentation - Keep code and docs in sync - Update version history in step docs - Update INDEX when adding new files - Test all code examples ### Documentation Reviews - Verify all links work - Check code examples execute correctly - Ensure terminology is consistent - Validate configuration examples ## External Resources - [Motia Framework Docs](https://motia.dev) (if available) - [Advoware API](https://www2.advo-net.net:90/) (requires auth) - [Google Calendar API](https://developers.google.com/calendar) - [Redis Documentation](https://redis.io/documentation) ## Support - **Questions**: Check TROUBLESHOOTING.md first - **Bugs**: Document in logs (`journalctl -u motia.service`) - **Features**: Propose in team discussions - **Urgent**: Check systemd logs and Redis state