mirror of
https://github.com/warmbly/warmbly.git
synced 2026-08-23 00:00:26 +00:00
ba1c10fe19
Threat-level segregation, schema layer. Two new concepts:
workers.risk_pool ∈ {clean, risky, quarantine}
buckets shared workers by acceptable risk. Dedicated workers don't
use it (single tenant = no cross-contamination risk).
email_accounts.risk_band ∈ {clean, risky, quarantine}
per-mailbox classification, derived from warmup_health_state by the
rebalancer (next commit). Never set by user input.
The mapping is one-way and intentionally simple:
healthy → clean
watch, throttled → risky
quarantined, → quarantine
blocked
Rebalancer code lands in the next commit. This commit just adds:
- migration 000031 with enums + columns + filtered indexes
- WorkerRiskPool / EmailRiskBand types + RiskBandFromHealth helper
- WorkerRepository methods: SetWorkerRiskPool, SetEmailAccountRiskBand,
GetSharedWorkersByTierAndPool, ListRiskCandidates
- RiskCandidate result type joining email_accounts + warmup health
(picks WORST state across pools via CASE ranking) + worker columns
so the rebalancer can decide migrations in one scan
13 lines
339 B
SQL
13 lines
339 B
SQL
DROP INDEX IF EXISTS idx_email_accounts_risk_band;
|
|
DROP INDEX IF EXISTS idx_workers_risk_pool;
|
|
|
|
ALTER TABLE email_accounts
|
|
DROP COLUMN IF EXISTS risk_evaluated_at,
|
|
DROP COLUMN IF EXISTS risk_band;
|
|
|
|
ALTER TABLE workers
|
|
DROP COLUMN IF EXISTS risk_pool;
|
|
|
|
DROP TYPE IF EXISTS email_risk_band;
|
|
DROP TYPE IF EXISTS worker_risk_pool;
|