# Data Model: 103 — IA Semantics: Scope vs Filter vs Targeting **Status**: No schema changes required. ## Summary This spec is a copy/label/bugfix change only. No new tables, columns, indexes, or migrations. ## Existing Entities (unchanged) ### AlertRule | Field | Type | Notes | |---|---|---| | tenant_scope_mode | string | Values: `all`, `allowlist`. DB values unchanged. | | tenant_allowlist | json | Array of tenant UUIDs. Structure unchanged. | **Constants**: `AlertRule::TENANT_SCOPE_ALL`, `AlertRule::TENANT_SCOPE_ALLOWLIST` — unchanged. ### Tenant Referenced by `OperateHubShell::activeEntitledTenant()` for indicator display. No changes. ## UI-Only Changes (no persistence impact) | Current Label | New Label | Location | |---|---|---| | `Scope: Tenant — {name}` | `Filtered by tenant: {name}` | `OperateHubShell::scopeLabel()` | | `Scope: Workspace — all tenants` | `All tenants` | `OperateHubShell::scopeLabel()` | | Tenant scope mode → "All tenants" | "All tenants" | `AlertRuleResource::form()` option | | Tenant scope mode → "Allowlist" | "Selected tenants" | `AlertRuleResource::form()` option | | "Tenant allowlist" label | "Selected tenants" | `AlertRuleResource::form()` field label | ## State Transitions N/A — no state machine changes.