Remove legacy site-psk-invalidation topic after one release; case-variant overrides silently dropped by the flattener (verify) #105

Open
opened 2026-11-09 16:11:43 -05:00 by dohertj2 · 2 comments
Owner

Follow-ups from #100 item 3 / #103:

  • Remove the legacy site-psk-invalidation compatibility publish/subscribe once every central node runs the build with the unified central-cache-invalidation topic (one release).
  • Suspected (unverified): ManagementActor single and bulk instance-override paths accept an override name that differs from the member only by case; the write succeeds but the flattener (exact match, see #103(c)) silently drops it as unresolved. Check, then reject the name or normalise it to the member's exact casing.
  • Direct SQL edits to role mappings, external definitions or API methods still converge only via TTLs (documented; no broadcast path).
Follow-ups from #100 item 3 / #103: - Remove the legacy `site-psk-invalidation` compatibility publish/subscribe once every central node runs the build with the unified `central-cache-invalidation` topic (one release). - Suspected (unverified): ManagementActor single and bulk instance-override paths accept an override name that differs from the member only by case; the write succeeds but the flattener (exact match, see #103(c)) silently drops it as unresolved. Check, then reject the name or normalise it to the member's exact casing. - Direct SQL edits to role mappings, external definitions or API methods still converge only via TTLs (documented; no broadcast path).
dohertj2 added the type:followuppriority:p3 labels 2026-11-09 16:11:43 -05:00
Author
Owner

Item 2 checked on main a2c3a2d2: the suspicion doesn't hold — HandleSetInstanceOverrides (bulk attribute) and the single + bulk native-alarm-source override paths already match exactly and reject a case-variant name, storing nothing (the single attribute path is InstanceService.SetAttributeOverrideAsync, also exact). Improved the error: new CaseMismatchHint adds '(names are case-sensitive; did you mean 'X'?)' when exactly one member matches case-insensitively (none when ambiguous). 3 tests (bulk attribute, single + bulk native) assert rejection + hint + nothing written; they fail without the hint. ManagementService 755/755; slnx 0 warnings. Items 1 (remove legacy site-psk-invalidation after one release) and 3 (direct-SQL edits converge by TTL — documented) remain.

Item 2 checked on main a2c3a2d2: the suspicion doesn't hold — HandleSetInstanceOverrides (bulk attribute) and the single + bulk native-alarm-source override paths already match exactly and **reject** a case-variant name, storing nothing (the single attribute path is InstanceService.SetAttributeOverrideAsync, also exact). Improved the error: new CaseMismatchHint adds '(names are case-sensitive; did you mean 'X'?)' when exactly one member matches case-insensitively (none when ambiguous). 3 tests (bulk attribute, single + bulk native) assert rejection + hint + nothing written; they fail without the hint. ManagementService 755/755; slnx 0 warnings. Items 1 (remove legacy site-psk-invalidation after one release) and 3 (direct-SQL edits converge by TTL — documented) remain.
Author
Owner

Status 2026-11-10: case-variant overrides are rejected with a 'names are case-sensitive; did you mean X?' hint (a2c3a2d2), never silently dropped — consistent with exact-match naming elsewhere. Remaining: remove the legacy site-psk-invalidation topic — the replacement central-cache-invalidation (153609ef, compat 3a31dd2d) is not deployed anywhere yet (last deploy records 2026-10-22). Remove it one release after a DEV/QA deploy that carries the replacement.

Status 2026-11-10: case-variant overrides are rejected with a 'names are case-sensitive; did you mean X?' hint (`a2c3a2d2`), never silently dropped — consistent with exact-match naming elsewhere. **Remaining: remove the legacy `site-psk-invalidation` topic** — the replacement `central-cache-invalidation` (`153609ef`, compat `3a31dd2d`) is not deployed anywhere yet (last deploy records 2026-10-22). Remove it one release after a DEV/QA deploy that carries the replacement.
dohertj2 added the blocked label 2026-11-10 08:43:36 -05:00
Sign in to join this conversation.