Repository navigation
v0.8.0 — Workflow Automation & External Sources
What's New
Auto-Archive Policy (#50)
- New Archived status for certificates
CertificateAutoArchiveNetBox Script with configurable threshold (default 90 days)- Archive pin to prevent auto-archival of specific certificates
- Dry-run mode and tenant filtering
Bulk Operations Extension (#48)
POST /bulk-status-update— update status for multiple certificates at oncePOST /bulk-assign— assign multiple certificates to a device/service in one call- Content type allowlist, duplicate detection, batch size limits
Certificate Lifecycle Tracking (#49)
CertificateLifecycleEventmodel with 9 event types- Automatic event creation on status transitions and assignment changes
- Timeline view tab on certificate detail page
GET /certificates/{id}/lifecycleAPI endpoint
Renewal Reminders & Runbooks (#47)
- Per-CA
renewal_instructionsfield (Markdown) - Per-certificate
renewal_noteoverride - Renewal instructions included in expiry event payloads
- Renewal Guide card on certificate detail page
External Source Framework (#62)
- Sync certificates from external systems (Lemur, generic REST APIs)
- LemurAdapter — Netflix Lemur integration (read-only, Bearer auth, pagination)
- GenericRESTAdapter — configurable field mapping for any REST API
- 4-phase sync engine: FETCH → DIFF → APPLY → LOG
- Janus renewal detection during sync
ExternalSourcemodel with CRUD views, API, and GraphQLExternalSourceSyncNetBox Script (scheduled or manual)- Credential resolver (
env:VAR_NAME— never plaintext in DB) - Dry-run mode, sync logging, source_removed tracking
Security
- 34 security/code review findings addressed
- SSRF prevention, private key guard, atomic transactions, error sanitization
Migrations
Run python manage.py migrate netbox_ssl after upgrading.
| # | Name | Feature |
|---|---|---|
| 0010 | certificate_archive_fields |
Auto-archive |
| 0011 | certificatelifecycleevent |
Lifecycle tracking |
| 0012 | renewal_instructions |
Renewal reminders |
| 0013 | external_source_framework |
External sources |
| 0014 | merge_v080 |
Merge migration |
New Plugin Settings
PLUGINS_CONFIG = {
"netbox_ssl": {
"auto_archive_enabled": False,
"auto_archive_after_days": 90,
"bulk_status_update_max_batch_size": 100,
"bulk_assign_max_batch_size": 100,
"external_source_sync_enabled": True,
"external_source_default_interval": 1440,
"external_source_never_fetch_keys": True,
}
}Compatibility
| NetBox | Plugin | Python |
|---|---|---|
| 4.5.x | v0.8.0 | 3.10–3.12 |
| 4.4.x | v0.8.0 | 3.10–3.12 |
Testing
199 new unit tests | CI verified on NetBox v4.4 + v4.5 | Playwright E2E passing
Full Changelog: v0.7.5...v0.8.0