CluPilotCloud/database/migrations
nexxo eff8c08258 feat(admin): maintenance windows — schedule once, assign many hosts, notify
- maintenance_windows + host pivot + notification ledger; derived state (never
  stored); affected-customer + banner queries live off instances
- admin /maintenance: create draft/publish, multi-host select, impact counts,
  cancel; capability-gated (maintenance.manage)
- publish emails affected customers once (queued Mailable, ledger-idempotent)
- customer portal maintenance banner (upcoming <=72h + active) merged per window

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 15:53:50 +02:00
..
0001_01_01_000000_create_users_table.php chore: bootstrap CluPilot control-plane (Laravel 13, Docker stack) 2026-07-25 00:21:30 +02:00
0001_01_01_000001_create_cache_table.php chore: bootstrap CluPilot control-plane (Laravel 13, Docker stack) 2026-07-25 00:21:30 +02:00
0001_01_01_000002_create_jobs_table.php chore: bootstrap CluPilot control-plane (Laravel 13, Docker stack) 2026-07-25 00:21:30 +02:00
2026_07_24_224530_add_two_factor_columns_to_users_table.php feat(portal): Fortify auth + Login/2FA/Dashboard + component kit 2026-07-25 01:20:25 +02:00
2026_07_24_224531_create_passkeys_table.php feat(portal): Fortify auth + Login/2FA/Dashboard + component kit 2026-07-25 01:20:25 +02:00
2026_07_25_062321_add_is_admin_to_users_table.php feat(admin): dark Tactical-Terminal operator console 2026-07-25 08:35:03 +02:00
2026_07_25_070001_create_hosts_table.php feat(engine): core provisioning data model + hosts 2026-07-25 09:49:43 +02:00
2026_07_25_070002_create_provisioning_runs_table.php feat(engine): core provisioning data model + hosts 2026-07-25 09:49:43 +02:00
2026_07_25_070003_create_provisioning_step_events_table.php feat(engine): core provisioning data model + hosts 2026-07-25 09:49:43 +02:00
2026_07_25_070004_create_run_resources_table.php feat(engine): core provisioning data model + hosts 2026-07-25 09:49:43 +02:00
2026_07_25_070005_add_unique_wg_ip_to_hosts_table.php fix(engine): address Codex round 2 (poll budget, host error state, wg race) 2026-07-25 10:26:37 +02:00
2026_07_25_070006_add_unique_public_ip_to_hosts_table.php fix(engine): one host per public IP (unique constraint + validation) 2026-07-25 10:43:30 +02:00
2026_07_25_080001_create_customers_table.php feat(engine-b): customer domain models + migrations 2026-07-25 11:38:01 +02:00
2026_07_25_080002_create_orders_table.php feat(engine-b): customer domain models + migrations 2026-07-25 11:38:01 +02:00
2026_07_25_080003_create_instances_table.php feat(engine-b): customer domain models + migrations 2026-07-25 11:38:01 +02:00
2026_07_25_080004_create_dns_records_table.php feat(engine-b): customer domain models + migrations 2026-07-25 11:38:01 +02:00
2026_07_25_080005_create_backups_table.php feat(engine-b): customer domain models + migrations 2026-07-25 11:38:01 +02:00
2026_07_25_080006_create_monitoring_targets_table.php feat(engine-b): customer domain models + migrations 2026-07-25 11:38:01 +02:00
2026_07_25_080007_create_onboarding_tasks_table.php feat(engine-b): customer domain models + migrations 2026-07-25 11:38:01 +02:00
2026_07_25_080008_add_node_to_hosts_table.php feat(engine-b): 15-step customer pipeline + DNS/Traefik services 2026-07-25 11:50:26 +02:00
2026_07_25_080009_add_guest_ip_to_instances_table.php fix(engine-b): address Codex (paid-only stripe, guest routing, absolute disk) 2026-07-25 12:05:31 +02:00
2026_07_25_080010_add_unique_email_to_customers_table.php fix(engine-b): address Codex round 5 (capacity release, activate-last, guest-ip poll, email unique) 2026-07-25 12:19:31 +02:00
2026_07_25_090001_create_datacenters_table.php fix: backfill datacenters on migrate; resolve billing customer by user link 2026-07-25 13:53:06 +02:00
2026_07_25_090002_add_type_to_orders_table.php feat(portal): billing page — current plan, upgrades, extra storage, add-ons 2026-07-25 13:36:52 +02:00
2026_07_25_090003_add_user_id_to_customers_table.php feat(admin): impersonate customer portal — session login + return banner 2026-07-25 13:46:48 +02:00
2026_07_25_090004_make_customer_identity_unique.php fix: unique customer↔user link + reject inactive datacenters on host create 2026-07-25 13:56:07 +02:00
2026_07_25_090005_add_profile_and_branding_to_customers.php feat(portal): settings page — company profile, branding (logo+colors), cancel package, close account 2026-07-25 14:36:52 +02:00
2026_07_25_090006_add_cancellation_to_instances.php feat(portal): settings page — company profile, branding (logo+colors), cancel package, close account 2026-07-25 14:36:52 +02:00
2026_07_25_090007_create_seats_table.php feat(portal): settings page — company profile, branding (logo+colors), cancel package, close account 2026-07-25 14:36:52 +02:00
2026_07_25_090008_add_datacenter_fk_to_hosts.php fix(admin): enforce hosts.datacenter FK (restrictOnDelete) — no deactivation side-effect 2026-07-25 15:00:38 +02:00
2026_07_25_133845_create_permission_tables.php feat(admin): staff RBAC (spatie) + admin settings page 2026-07-25 15:47:42 +02:00
2026_07_25_133900_seed_roles_and_permissions.php feat(admin): staff RBAC (spatie) + admin settings page 2026-07-25 15:47:42 +02:00
2026_07_25_140001_create_maintenance_windows.php feat(admin): maintenance windows — schedule once, assign many hosts, notify 2026-07-25 15:53:50 +02:00