# 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.
