Skip to content

audit-log (C): retire export / import / permission_change from the sys_audit_log action enum and its in-repo consumer surfaces (ADR-0087 registration) #8147

Description

@hotlong

Sub-issue C of #7675, split by the triage seat (session session_01GiG1DfMysjbbFLZErAo93G, 2026-08-12) carrying the maintainer ruling of 2026-08-12 (comment 5261744983 on #7675). This is the retirement half, and it is the upstream of the ordering chain — the two consumer-shrink cards are Blocked-by: this one.

Ruling carried (verbatim, binding — not re-adjudicable)

退役(3 个):export / import(无此 feature)与 permission_change(权限对象的写入已以 create/update 行入账,语义重复行不再造)从 enum、两个 list view、两个 dashboard widget、console ACTION_OPTIONS 中一并摘除;按 ADR-0087 登记退役。
原则记录:空 widget + 永远查不到东西的过滤器是可见产品缺陷;审计面宁窄勿谎。

Routing correction, verified against origin/main (this supersedes the seat table on #7675)

The identity seat's split-request table placed the enum in packages/spec. Measured false: the action enum lives at packages/plugins/plugin-audit/src/objects/sys-audit-log.object.ts:101, and spec's own CHANGELOG records "the sys_audit_log object definition in plugin-audit is the row-shape source of truth". git grep over packages/spec finds no audit action enum. There is no domain:spec member in this split; this card routes domain:identity because plugin-audit is an identity-lane package.

Scope (this repo, this card)

  • Remove export, import, permission_change from the action enum (sys-audit-log.object.ts:101).
  • Narrow the auth_events list view filter (sys-audit-log.object.ts:65) from ['login','logout','permission_change'] to ['login','logout']. The config_changes view stays (it becomes truthful via sub-issue B).
  • Regenerate plugin-audit's generated translation artifacts (os-regen discipline — do not hand-edit).
  • ADR-0087 retirement registration for the three values.

Consumer-fixture flag (named, per the fixture-triage rule)

packages/services/service-analytics/src/__tests__/raw-sql-object-routing.test.ts:149,210 seeds rows with action: 'permission_change'. Run the service-analytics tests and update those fixtures in this PR — a seeded value the enum no longer accepts must not linger as a green-looking lie.

Downstream (⛔ not this card)

  • Widgets in packages/platform-objects → sub-issue D (domain:metadata), Blocked-by this card.
  • Console ACTION_OPTIONS + HistoryTimeline badge maps → objectui sub-issue, Blocked-by this card.
  • Note: sub-issue A may also touch plugin-audit — same-lane serialization; do not run A and C in flight together.

Size/model suggestion: M, opus.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions