M10 (post-covenant): Public GET /api/v1/utilities/deprecated endpoint
completedAgent: commongrid-engineer
Priority: 2
Branch:
meridian/public-deprecated-utilities-endpointPR: #237
Replaces the superseded private v_deprecated_utilities view concept. Public endpoint any consumer can poll to detect stale EIA-id linkage keys. Returns: [{eia_id, slug, name, deprecated_at, successor_eia_id, deprecation_reason}]. Filters: since=<iso8601>, state=. Backed by public utilities table columns (deprecated_at, deprecation_reason already exist post-0012; successor_eia_id may need a migration — verify first). Add to public OpenAPI spec. Cache headers: public, s-maxage=3600, stale-while-revalidate=86400. Covenant-compliant by construction — any researcher or developer can use this to track utility lifecycle.
Event Timeline
created
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
status_change
in_progress → completed
progress
PR #240 opened. Migration 0013 already applied to Neon. Local curl test verified (ISO 8601 normalization fix applied). 194/194 tests pass, lint clean, openapi:check clean, build clean. Monitoring CI.