|
|
ed6c4a8b65
|
feat: Add SentinelOne integration
- Add SentinelOne API client (lib/services/sentinelone-client.ts)
- Paginated fetching for sites, agents, threats
- JWT token auth via S1_API_URL / S1_API_TOKEN env vars
- Add SentinelOne sync service (lib/services/sentinelone-sync-service.ts)
- Full sync: sites, agents, threats into s1_* tables
- Sync history tracking with per-entity results
- Add DB migration 038: s1_sites, s1_agents, s1_threats,
s1_company_mappings, s1_sync_history tables
- Add API routes:
- POST/GET /api/sentinelone/sync
- GET/POST/DELETE /api/sentinelone/company-mappings
- GET /api/sentinelone/coverage (fixed Cartesian product bug)
- Add UI pages:
- /admin/sync/sentinelone — sync admin with history + stats
- /sentinelone/coverage — AV coverage report per site
- /sentinelone/mappings — map S1 sites to Autotask companies
- Wire SentinelOne into admin sync overview card grid
- Add SentinelOne Sync to app navigation
- Fix docker-compose: remove explicit S1 env var entries that
were overwriting env_file values with empty strings
|
2026-02-27 05:31:31 -05:00 |
|