wulf-pulse/migrations
lorentz a4242b81be feat: Duo Security integration — full data sync from Accounts + Admin API
Duo API Client (lib/services/duo-client.ts):
- HMAC-SHA1 request signing, GET/POST, automatic pagination
- Rate-limit handling (429 + Retry-After), configurable timeout
- Accounts API: listAccounts() via POST /accounts/v1/account/list
- Admin API: getUsers, getPhones, getGroups, getIntegrations, getAuthLogs
- Child account access: parent creds signed against child api_hostname + account_id
- Factory helpers: getDuoAccountsClient(), getDuoAdminClient()

Database (migration 058):
- 6 tables: duo_accounts, duo_users, duo_phones, duo_auth_logs, duo_groups, duo_integrations
- All with proper FKs, indexes, JSONB fields for capabilities/location/groups

Sync Service (lib/services/duo-sync-service.ts):
- syncAll(): accounts → per-child data + auth logs → parent account → company matching
- Sequential child processing to respect rate limits
- Incremental auth logs (mintime = last synced timestamp, default 30 days)
- Company matching: exact → case-insensitive containment (30/32 = 94% matched)
- Non-blocking with sync ID tracking

API Routes:
- POST/GET /api/duo/sync — trigger sync / check status
- GET /api/duo/accounts — list all accounts with stats + matched company
- GET /api/duo/accounts/[id]/users — users for a specific account
- POST /api/openclaw/sync/duo — OpenClaw trigger with API key auth

Results: 33 accounts, 832 users, 925 phones, 5927 auth logs, 46 groups, 78 integrations
2026-03-27 09:18:04 -04:00
..
001_initial_schema.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
002_add_indexes.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
002_relax_foreign_keys.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
003_fix_resource_type.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
004_fix_contacts_company_id.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
004_webhook_support.sql feat: add IP address logging to webhooks for whitelisting 2026-01-24 17:28:56 -05:00
005_add_webhook_ip_logging.sql feat: add IP address logging to webhooks for whitelisting 2026-01-24 17:28:56 -05:00
005_fix_tickets_company_id.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
006_add_time_entries_table.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
007_remove_time_entries_foreign_keys.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
008_relax_tickets_resource_constraints.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
009_create_auvik_tenant_mappings.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
009_relax_configuration_items_constraints.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
009_restore_deleted_tickets.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
010_create_rmm_site_mappings.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
011_create_addigy_org_mappings.sql Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
012_create_auth_tables.sql feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
013_create_role_tables.sql feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
014_create_admin_settings.sql feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
015_expand_resources_fields.sql feat: expand Resources entity to include all Autotask API fields 2026-01-26 14:28:51 -05:00
016_add_missing_tickets_fields.sql feat: add missing Tickets entity fields from Autotask API 2026-01-26 15:26:34 -05:00
017_create_auvik_tenants.sql feat: create auvik_tenants and rmm_sites tables for accurate dashboard stats 2026-02-02 23:01:54 -05:00
018_create_rmm_sites.sql feat: create auvik_tenants and rmm_sites tables for accurate dashboard stats 2026-02-02 23:01:54 -05:00
019_create_kiosk_settings.sql feat: add kiosk settings UI and co-managed client filtering 2026-02-03 08:32:42 -05:00
020_add_company_classification.sql feat: add classification-based filtering and fix company name display 2026-02-03 09:17:07 -05:00
021_create_company_classifications_table.sql feat: add classification icons sync from Autotask 2026-02-03 20:48:08 -05:00
022_populate_classifications.sql fix: pre-populate classifications instead of syncing from Autotask API 2026-02-03 20:54:35 -05:00
023_create_veeam_tables.sql feat: Veeam VSPC backup integration - sync, compliance, UI 2026-02-11 21:04:28 -05:00
024_add_backup_type_udf.sql feat: Veeam VSPC backup integration - sync, compliance, UI 2026-02-11 21:04:28 -05:00
025_create_ticket_notes.sql feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements 2026-02-20 10:28:15 -05:00
026_create_queues_table.sql feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements 2026-02-20 10:28:15 -05:00
027_create_datto_rmm_tables.sql feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements 2026-02-20 10:28:15 -05:00
028_create_device_lifecycle_policies.sql feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements 2026-02-20 10:28:15 -05:00
028_create_veeam_agents_alarms.sql feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements 2026-02-20 10:28:15 -05:00
029_create_priorities_ticket_categories.sql feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements 2026-02-20 10:28:15 -05:00
030_create_workflow_engine_tables.sql feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements 2026-02-20 10:28:15 -05:00
031_create_datto_rmm_webhook_logs.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
032_add_webhook_fields_to_datto_rmm_alerts.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
033_create_pipeline_engine_tables.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
034_seed_veeam_backup_failure_pipeline.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
035_update_veeam_pipeline_b2_fetch.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
036_create_ticket_workflow_tables.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
037_create_itglue_tables.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
038_create_sentinelone_tables.sql feat: Add SentinelOne integration 2026-02-27 05:31:31 -05:00
039_create_veeam_rpo_tickets_table.sql feat: IT Glue integration, workflow engine, pipelines, Zabbix WAN, notification channels, backup status UI improvements, nav alignment fixes 2026-02-27 14:52:14 -05:00
040_create_contract_services_table.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
041_create_engagement_tables.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
042_add_engagement_calendar_columns.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
043_add_hours_to_bill_to_time_entries.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
044_add_contract_id_to_time_entries.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
045_create_zoom_tables.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
046_create_teams_meetings_table.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
047_add_after_hours_messages.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
048_create_morning_summary_tables.sql feat: Morning NOC Summary adaptive card for Teams 2026-03-11 09:34:51 -04:00
049_create_ping_flap_suppressions.sql feat: QuickBooks Online integration 2026-03-17 07:39:55 -04:00
049_create_ticket_digest_tables.sql feat: QuickBooks Online integration 2026-03-17 07:39:55 -04:00
050_create_zabbix_wan_tables.sql feat: QuickBooks Online integration 2026-03-17 07:39:55 -04:00
051_create_qbo_tables.sql feat: QuickBooks Online integration 2026-03-17 07:39:55 -04:00
052_add_configuration_items_udfs_and_missing_fields.sql fix: configuration_items sync — correct camelCase field mapping, store all UDFs in udfs JSONB 2026-03-17 15:39:42 -04:00
053_widen_configuration_items_varchar_columns.sql fix: widen VARCHAR(50) columns in configuration_items that exceed limit 2026-03-17 15:48:35 -04:00
054_widen_configuration_items_to_text.sql fix: widen all VARCHAR columns in configuration_items to TEXT 2026-03-17 15:52:57 -04:00
055_create_mimecast_tables.sql feat: Mimecast email integration — message logs, threat events, 120d retention, admin UI 2026-03-17 16:23:47 -04:00
056_companies_udf_and_missing_fields.sql feat: companies sync — add UDFs and fix all field mappings 2026-03-17 23:56:40 -04:00
057_contacts_missing_fields.sql feat: contacts sync — add all missing fields + UDFs 2026-03-26 13:16:13 -04:00
057_create_autotask_tags_tables.sql feat: add Autotask tags sync (tag groups, tags, ticket tag associations) 2026-03-20 09:22:40 -04:00
058_create_duo_tables.sql feat: Duo Security integration — full data sync from Accounts + Admin API 2026-03-27 09:18:04 -04:00
058_create_repo_commit_tracking.sql feat: repo commit tracking and OpenClaw notification 2026-03-21 18:52:22 -04:00
059_create_project_phases_table.sql feat: add project_phases entity sync with task project_id backfill 2026-03-24 13:57:33 -04:00