Skip to content

GH Issue 1589: Add general metric for all illegal field and domain names - #8239

Open
XingY wants to merge 5 commits into
developfrom
fb_issue1589
Open

XingY wants to merge 5 commits into
developfrom
fb_issue1589

Conversation

@XingY

@XingY XingY commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Rationale

GH Issue 1589. Adds a usage metric reporting how many stored domains carry field names, import aliases, or labels that a current naming rule would reject, so we can tell whether a rule can be tightened retroactively or would strand existing customer configurations.

Naming rules have accumulated in the domain designer over several releases and each applies only at save time, so a domain saved before a rule existed keeps violating it indefinitely and nothing today reports how often that happens. The metric reports per rule and per domain kind, and names no containers.

Related Pull Requests

Changes

  • A nightly maintenance task scans every stored domain and reports, per naming rule and per domain kind, how many fields break a rule that is enforced at save time today. Counts are a floor rather than a total, because kinds that derive their reserved names from a domain are not fully resolved by the scan.
  • The naming rules can now be applied without constructing a domain, so the scan runs the rules the designer runs rather than a second copy of them.
  • Label collisions are counted but not rejected, since a label that ties with a field name or another field's import alias silently takes or loses the import token.
  • For sample types, "Parent" is now reserved as a field name in addition to being blocked as a parent alias header, since a field by that name is ambiguous for lineage import.
  • Sample types no longer fold their stored parent alias headers into their reserved field names. That set is only consulted where it would reject a type's own aliases, and the designer does not send the row id needed to reach it, so this removes an unreachable trap rather than changing behavior.
  • Removed a field name check that could never fire and two unused protocol constants.
  • Integration tests cover field name, field import alias, and parent alias collisions on create and update, shared between sample types and data classes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant