Add TODO for Cove Data Protection integration
Created comprehensive TODO document for integrating Cove Data Protection (formerly N-able Backup) into Backupchecks. Key challenges: - Cove does not use email notifications like other backup systems - Need to research API availability and authentication methods - Must determine optimal integration strategy (polling vs webhooks) Document includes: - Research questions (API availability, data structure, multi-tenancy) - Three architecture options for integration - Implementation phases (research, database, import, scheduling, UI) - Success criteria and open questions - References section for documentation links Status: Research phase - waiting on API documentation investigation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
661a5783cf
commit
1de1b032e7
204
TODO-cove-data-protection.md
Normal file
204
TODO-cove-data-protection.md
Normal file
@ -0,0 +1,204 @@
|
||||
# TODO: Cove Data Protection Integration
|
||||
|
||||
**Datum:** 2026-02-10
|
||||
**Status:** Research fase
|
||||
**Prioriteit:** Medium
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Doel
|
||||
|
||||
Cove Data Protection (formerly N-able Backup / SolarWinds Backup) integreren in Backupchecks voor monitoring van backup status.
|
||||
|
||||
**Uitdaging:** Cove werkt NIET met email notificaties zoals andere backup systemen (Veeam, Synology, NAKIVO). We moeten een alternatieve methode vinden om backup status informatie binnen te halen.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Research Vragen
|
||||
|
||||
### 1. API Beschikbaarheid
|
||||
- [ ] Heeft Cove Data Protection een publieke API?
|
||||
- [ ] Welke authenticatie methode gebruikt de API? (API key, OAuth, basic auth?)
|
||||
- [ ] Welke endpoints zijn beschikbaar voor backup status?
|
||||
- [ ] Is er rate limiting op de API?
|
||||
- [ ] Documentatie URL: ?
|
||||
|
||||
### 2. Data Structuur
|
||||
- [ ] Welke informatie kunnen we ophalen per backup job?
|
||||
- Job naam
|
||||
- Status (success/warning/failed)
|
||||
- Start/eind tijd
|
||||
- Backup type
|
||||
- Client/device naam
|
||||
- Error messages
|
||||
- Objects/files backed up
|
||||
- [ ] Is er een webhook systeem beschikbaar?
|
||||
- [ ] Hoe vaak moet de API gepolld worden?
|
||||
|
||||
### 3. Multi-Tenancy
|
||||
- [ ] Ondersteunt Cove multi-tenant setups? (MSP use case)
|
||||
- [ ] Kunnen we meerdere customers/partners monitoren vanuit 1 account?
|
||||
- [ ] Hoe worden permissions/access geregeld?
|
||||
|
||||
### 4. Integratie Strategie
|
||||
- [ ] **Optie A: Scheduled Polling**
|
||||
- Cronjob die periodiek API aanroept
|
||||
- Parse resultaten naar JobRun records
|
||||
- Pro: Eenvoudig, consistent met huidige flow
|
||||
- Con: Delay tussen backup en registratie in systeem
|
||||
|
||||
- [ ] **Optie B: Webhook/Push**
|
||||
- Cove stuurt notificaties naar ons endpoint
|
||||
- Pro: Real-time updates
|
||||
- Con: Requires external endpoint, security considerations
|
||||
|
||||
- [ ] **Optie C: Email Forwarding**
|
||||
- Als Cove toch email support heeft (hidden setting?)
|
||||
- Pro: Hergebruikt bestaande email import flow
|
||||
- Con: Mogelijk niet beschikbaar
|
||||
|
||||
---
|
||||
|
||||
## 📋 Technische Overwegingen
|
||||
|
||||
### Database Model
|
||||
Huidige JobRun model verwacht:
|
||||
- `mail_message_id` (FK) - hoe gaan we dit aanpassen voor API-sourced runs?
|
||||
- Mogelijk nieuw veld: `source_type` ("email" vs "api")
|
||||
- Mogelijk nieuw veld: `external_id` (Cove job ID)
|
||||
|
||||
### Parser Systeem
|
||||
Huidige parser systeem werkt met email content. Voor API:
|
||||
- Nieuw "parser" concept voor API responses?
|
||||
- Of direct JobRun creatie zonder parser layer?
|
||||
|
||||
### Architecture Opties
|
||||
|
||||
**Optie 1: Extend Email Import System**
|
||||
```
|
||||
API Poller → Pseudo-MailMessage → Existing Parser → JobRun
|
||||
```
|
||||
- Pro: Hergebruik bestaande flow
|
||||
- Con: Hacky, email velden hebben geen betekenis
|
||||
|
||||
**Optie 2: Parallel Import System**
|
||||
```
|
||||
API Poller → API Parser → JobRun (direct)
|
||||
```
|
||||
- Pro: Clean separation, geen email dependency
|
||||
- Con: Duplicatie van logic
|
||||
|
||||
**Optie 3: Unified Import Layer**
|
||||
```
|
||||
→ Email Import →
|
||||
Unified → → Common Processor → JobRun
|
||||
→ API Import →
|
||||
```
|
||||
- Pro: Future-proof, schaalbaar
|
||||
- Con: Grotere refactor
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Implementatie Stappen (Na Research)
|
||||
|
||||
### Phase 1: API Research & POC
|
||||
1. [ ] Onderzoek Cove API documentatie
|
||||
2. [ ] Test API authenticatie
|
||||
3. [ ] Test data ophalen (1 backup job)
|
||||
4. [ ] Mapping van Cove data → Backupchecks model
|
||||
5. [ ] Proof of concept script (standalone)
|
||||
|
||||
### Phase 2: Database Aanpassingen
|
||||
1. [ ] Beslis: extend MailMessage model of nieuwe source type?
|
||||
2. [ ] Migratie: `source_type` veld toevoegen aan JobRun
|
||||
3. [ ] Migratie: `external_id` veld toevoegen aan JobRun
|
||||
4. [ ] Update constraints/validations
|
||||
|
||||
### Phase 3: Import Mechanisme
|
||||
1. [ ] Nieuw bestand: `containers/backupchecks/src/backend/app/cove_importer.py`
|
||||
2. [ ] API client voor Cove
|
||||
3. [ ] Data transformatie naar JobRun format
|
||||
4. [ ] Error handling & retry logic
|
||||
5. [ ] Logging & audit trail
|
||||
|
||||
### Phase 4: Scheduling
|
||||
1. [ ] Cronjob/scheduled task voor polling (elke 15 min?)
|
||||
2. [ ] Of: webhook endpoint als Cove dat ondersteunt
|
||||
3. [ ] Rate limiting & throttling
|
||||
4. [ ] Duplicate detection (niet dubbel importeren)
|
||||
|
||||
### Phase 5: UI Updates
|
||||
1. [ ] Job Details: indicatie dat job van API komt (niet email)
|
||||
2. [ ] No "Download EML" button voor API-sourced runs
|
||||
3. [ ] Mogelijk andere metadata weergave
|
||||
|
||||
---
|
||||
|
||||
## 📚 Referenties
|
||||
|
||||
### Cove Data Protection
|
||||
- **Product naam:** Cove Data Protection (formerly N-able Backup, SolarWinds Backup)
|
||||
- **Website:** https://www.n-able.com/products/cove-data-protection
|
||||
- **API Docs:** [TODO: link toevoegen na research]
|
||||
- **Support:** [TODO: contact info]
|
||||
|
||||
### Vergelijkbare Integraties
|
||||
Andere backup systemen die API gebruiken:
|
||||
- Veeam: Heeft zowel email als REST API
|
||||
- Acronis: REST API beschikbaar
|
||||
- MSP360: API voor management
|
||||
|
||||
### Resources
|
||||
- [ ] API documentation (nog te vinden)
|
||||
- [ ] SDK/Client libraries beschikbaar?
|
||||
- [ ] Community/forum voor integratie vragen?
|
||||
- [ ] Example code/integrations?
|
||||
|
||||
---
|
||||
|
||||
## ❓ Open Vragen
|
||||
|
||||
1. **Performance:** Hoeveel Cove jobs moeten we monitoren? (impact op polling frequency)
|
||||
2. **Historical Data:** Kunnen we oude backup runs ophalen, of alleen nieuwe?
|
||||
3. **Filtering:** Kunnen we filters toepassen (alleen failed jobs, specifieke clients)?
|
||||
4. **Authentication:** Waar bewaren we Cove API credentials? (SystemSettings?)
|
||||
5. **Multi-Account:** Ondersteunen we meerdere Cove accounts? (MSP scenario)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Success Criteria
|
||||
|
||||
### Minimum Viable Product (MVP)
|
||||
- [ ] Backup runs van Cove worden automatisch geïmporteerd
|
||||
- [ ] Status (success/warning/failed) correct weergegeven
|
||||
- [ ] Job naam en timestamp beschikbaar
|
||||
- [ ] Zichtbaar in Daily Jobs & Run Checks
|
||||
- [ ] Errors en warnings worden getoond
|
||||
|
||||
### Nice to Have
|
||||
- [ ] Real-time import (webhook ipv polling)
|
||||
- [ ] Backup object details (individuele files/folders)
|
||||
- [ ] Retry history
|
||||
- [ ] Storage usage metrics
|
||||
- [ ] Multi-tenant support
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Volgende Stappen
|
||||
|
||||
1. **Research eerst!** - Begin met API documentatie onderzoek
|
||||
2. Maak POC script (standalone, buiten Backupchecks)
|
||||
3. Documenteer bevindingen in dit bestand
|
||||
4. Beslis welke architecture optie (1, 2, of 3)
|
||||
5. Dan pas implementatie starten
|
||||
|
||||
**Status:** Wachten op API research completion.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notes
|
||||
|
||||
- Dit TODO document moet bijgewerkt worden na elke research stap
|
||||
- Voeg API voorbeelden toe zodra beschikbaar
|
||||
- Documenteer edge cases en beperkingen
|
||||
- Overweeg security implications (API keys opslag, rate limits, etc.)
|
||||
Loading…
Reference in New Issue
Block a user