In schema.py, _apply_property_defaults resolves $ref URIs via a hardcoded _REF_MAP dict. If a $ref isn't in the map, it's silently skipped — no log, no warning.
Today there's only one entry (upjack-entity.schema.json), so this isn't a problem yet. But as schemas grow and new $ref targets appear, a missing entry would cause hydrate_defaults to silently skip fields, which is hard to debug.
What to do:
- Add a
logger.debug() call when a $ref is encountered but not found in _REF_MAP
- Consider whether
_REF_MAP should be auto-populated from the schema registry instead of hardcoded
Found during QA review of feat/schema-evolution.
In
schema.py,_apply_property_defaultsresolves$refURIs via a hardcoded_REF_MAPdict. If a$refisn't in the map, it's silently skipped — no log, no warning.Today there's only one entry (
upjack-entity.schema.json), so this isn't a problem yet. But as schemas grow and new$reftargets appear, a missing entry would causehydrate_defaultsto silently skip fields, which is hard to debug.What to do:
logger.debug()call when a$refis encountered but not found in_REF_MAP_REF_MAPshould be auto-populated from the schema registry instead of hardcodedFound during QA review of
feat/schema-evolution.