Logical local repair analysis

GET /api/v1/topology/local-repair?area_id=<uuid>&source=<uuid>&destination=<uuid>&failed_link_id=<uuid>

Use failed_node_id instead of failed_link_id for a local neighbor failure. Exactly one failure is required. The route accepts one live IS-IS area, up to 1000 devices/8000 links; no historical at. Invalid/nonlocal requests return 400, missing topology/devices 404, size excess 422, and database errors 500.

The result carries model: igp_logical_repair, area_id, device names, and repair (status, cost, ordered node/link IDs, logical node/adjacency segments and LFA neighbors). installed_protection: not_observed and sid_resolution (resolved, unresolved, not_applicable) separate advertised SID binding from programmed TI-LFA. Additive srv6 contains MTID/algorithm, ordered bindings (node/link, status/reason, SID/behavior/locator/observed_at), a separate destination End candidate, msd_status, msd_checks and scope note. Only MTID 0 / algorithm 0 are modeled; explicit other values return 400. MSD checks expose type, node, minimum required, optional advertised value and within/exceeded/unknown status. node_limits_match_minimum is conditional: link overrides and the original packet are unobserved. Missing values stay unknown. A resolved destination candidate does not replace an active service SID. The active destination segment follows the returned repair instructions. Authenticated application API only; no public OpenAPI/restricted-key expansion.