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>
205 lines
6.1 KiB
Markdown
205 lines
6.1 KiB
Markdown
# 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.)
|