# Identity isolation register (doc/06 §2 红线) > **RED LINE (any phase, never crossed):** servers, domains, CDN, object > storage, payment, email and phone numbers MUST NOT share any linkable identity. > Each vendor uses an **independent account + independent email + crypto > payment**. This file is the authoritative register of which isolated identity > backs which asset. **It contains NO secrets** — only the isolation mapping. > Credentials live in independent secret stores (env / files), never here, never > in the database, never in git. ## How to use this register 1. Onboarding a new vendor/asset → add a row before provisioning anything. 2. Each row gets a distinct `identity-id` (an opaque internal label, e.g. `id-a7`). Never reuse an identity across rows. 3. Record the asset, pool, payment rail, and the **secret location** (where the credential is injected from), not the credential itself. ## Data-plane vendor pools (doc/04 §5.2) Consumed by `server/internal/provision`. The `providers` table stores only `name/api_kind/regions/pool/enabled`; the matching credential is injected from the secret location below as `PROVISION__*`. | identity-id | asset | pool | api_kind | payment | secret location (env) | notes | |-------------|-------|------|----------|---------|-----------------------|-------| | id-c1 | _vendor A_ | consumable | `vultr` | USDT/crypto | `PROVISION_VULTR_API_KEY` | small/cheap entry pool; ≥3 vendors target | | id-c2 | _vendor B_ | consumable | _tbd_ | crypto | `PROVISION__API_KEY` | second consumable vendor | | id-c3 | _vendor C_ | consumable | _tbd_ | crypto | `PROVISION__API_KEY` | third consumable vendor | | id-p1 | _vendor D_ | premium | `hetzner` | crypto | `PROVISION_HETZNER_API_TOKEN` | stable exit/pro entry; native IPs | > Consumable pool and premium pool MUST use **different vendor accounts** so a > mass-burn of the consumable pool never touches the premium pool (doc/04 §4.2). ## Management / baseline (Terraform) Managed by `infra/terraform`. Independent from all data-plane vendor identities. | identity-id | asset | purpose | payment | secret location | |-------------|-------|---------|---------|-----------------| | id-m1 | mgmt/probe cloud | probe machines + control-plane host | crypto | `TF_VAR_hcloud_token` (CI secret) | | id-m2 | control-plane DB/Redis | user DB, audit_log | — | server deploy secrets | ## Adjacent assets (registered elsewhere, listed for completeness) | identity-id | asset | owner doc | |-------------|-------|-----------| | id-d1 | domain registrar (WHOIS privacy) | doc/05 | | id-d2 | CDN account | doc/05 | | id-pay1 | payment / card store (USDT-TRC20) | doc/02 §4 | | id-tg1 | ops TG bot (anonymous) | doc/04 §5.3 | ## Audit checklist (run before each onboarding) - [ ] New identity-id is unique; no email/account reused from another row. - [ ] Payment is crypto / non-KYC; not bound to a real-name account. - [ ] Credential stored only in its secret location; absent from git & DB. - [ ] `ci/scan-redline.sh` and a repo/DB secret scan pass.