ff05ef9a9f
Frontend admin-UI catalog list (`→` column) парсил schemaJson per-row
для подсчёта outgoing FK refs. Этот endpoint возвращает batch:
GET /api/v1/dictionaries/graph/outgoing?dicts=satellites,operators
→ { "outgoing": {
"satellites": { "fkCount": 3, "targets": ["launch_sites", "missions", "operators"] },
"operators": { "fkCount": 0, "targets": [] }
} }
Implementation:
- LineageIndexService.findOutgoingFkSummary — обходит DictionaryDefinitionRepo.findAll()
+ ScopeContext filter, парсит x-references через ReferenceValidator.parseRef,
dedup target dict names, sort alphabetically.
- LineageController новый endpoint + OutgoingGraphResponse wrapper record
(extensible — sibling fields в будущем без breaking).
Errors: scope hide (тихо skip — same pattern что и GET /dictionaries).
Malformed x-references логируются WARN + skip (не падают на одной плохой
schema).
Tests +6 cases: empty, basic counts, scope hide, whitelist filter, dedup
repeated target, malformed-not-fatal.