TenantAtlas/specs/103-ia-scope-filter-semantics/data-model.md
Ahmed Darrazi 8b13d6f55f feat: refine tenant scope semantics
- Update OperateHub scope label copy (All tenants / Filtered by tenant)

- Fix Alerts KPI tenant resolution via activeEntitledTenant()

- Remove tenant indicator from manage lists

- Improve AlertRule form labels + sections

- UI polish: resource sections + tenant view widget layout + RBAC progressive disclosure

- Add/adjust Pest coverage
2026-02-21 01:00:31 +01:00

1.3 KiB

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.