Commit Graph

5 Commits

Author SHA1 Message Date
GitHub Actions
77a020b4db feat: registry-driven DNS provider type discovery
Phase 1 of Custom DNS Provider Plugin Support: the /api/v1/dns-providers/types
endpoint now returns types dynamically from the dnsprovider.Global() registry
instead of a hardcoded list.

Backend handler queries registry for all provider types, metadata, and fields
Response includes is_built_in flag to distinguish plugins from built-ins
Frontend types updated with DNSProviderField interface and new response shape
Fixed flaky WAF exclusion test (isolated file-based SQLite DB)
Updated operator docs for registry-driven discovery and plugin installation
Refs: #461
2026-01-14 18:05:46 +00:00
GitHub Actions
277b7b53ee test: boost backend coverage from 73% to 84.1% with 169 new tests
- Add comprehensive test suite for plugin_handler (25 tests)
- Expand credential_handler error path coverage (20 tests)
- Enhance caddy/config DNS challenge & security tests (23 tests)
- Improve hub_sync SSRF protection & backup tests (66 tests)
- Add encryption_handler, audit_log, manager tests (35+ tests)
- Fix DNS provider registry initialization in test files
- Configure encryption keys for credential rotation tests

Coverage improvements by file:
- plugin_handler: 0% → 75.67%
- credential_handler: 32.83% → 84.93%
- caddy/config: 79.82% → 94.5%
- hub_sync: 56.78% → 78%+
- encryption_handler: 78.29% → 94.29%
- manager: 76.13% → 96.46%
- audit_log_handler: 78.08% → 94.25%

Overall backend: 73% → 84.1% (+11.1%)

All 1400+ tests passing. Security scans clean (CodeQL, Go vuln).
2026-01-08 12:43:51 +00:00
GitHub Actions
b86aa3921b feat(dns): add custom DNS provider plugin system
- Add plugin interface with lifecycle hooks (Init/Cleanup)
- Implement thread-safe provider registry
- Add plugin loader with SHA-256 signature verification
- Migrate 10 built-in providers to registry pattern
- Add multi-credential support to plugin interface
- Create plugin management UI with enable/disable controls
- Add dynamic credential fields based on provider metadata
- Include PowerDNS example plugin
- Add comprehensive user & developer documentation
- Fix frontend test hang (33min → 1.5min, 22x faster)

Platform: Linux/macOS only (Go plugin limitation)
Security: Signature verification, directory permission checks

Backend coverage: 85.1%
Frontend coverage: 85.31%

Closes: DNS Challenge Future Features - Phase 5
2026-01-07 02:54:01 +00:00
GitHub Actions
697ef6d200 feat: implement comprehensive test optimization
- Add gotestsum for real-time test progress visibility
- Parallelize 174 tests across 14 files for faster execution
- Add -short mode support skipping 21 heavy integration tests
- Create testutil/db.go helper for future transaction rollbacks
- Fix data race in notification_service_test.go
- Fix 4 CrowdSec LAPI test failures with permissive validator

Performance improvements:
- Tests now run in parallel (174 tests with t.Parallel())
- Quick feedback loop via -short mode
- Zero race conditions detected
- Coverage maintained at 87.7%

Closes test optimization initiative
2026-01-03 19:42:53 +00:00
GitHub Actions
9a05e2f927 feat: add DNS provider management features
- Implement DNSProviderCard component for displaying individual DNS provider details.
- Create DNSProviderForm component for adding and editing DNS providers.
- Add DNSProviderSelector component for selecting DNS providers in forms.
- Introduce useDNSProviders hook for fetching and managing DNS provider data.
- Add DNSProviders page for listing and managing DNS providers.
- Update layout to include DNS Providers navigation.
- Enhance UI components with new badge styles and improved layouts.
- Add default provider schemas for various DNS providers.
- Integrate translation strings for DNS provider management.
- Update Vite configuration for improved chunking and performance.
2026-01-02 00:52:37 +00:00