STATE-WP-0069 T04: Sunset headers and POST /progress body metering
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

Add Sunset to legacy compat responses (Jun 2027 planning horizon).
Meter POST /progress/ bodies that use workstream_id; wire hub-core body
hook. Consolidate workstreams deprecation headers via legacy_compat.
This commit is contained in:
tegwick 2026-07-08 23:06:45 +02:00
parent 05a138bc1c
commit 6e5e150803
8 changed files with 126 additions and 14 deletions

View file

@ -23,6 +23,7 @@ from api.schemas.workplan import (
WorkplanUpdate,
)
from api.services.lifecycle import transition_workplan_status
from api.services.legacy_compat import mark_legacy_response
from api.services.legacy_meter import (
LegacyUsageIdentity,
identity_from_request,
@ -86,14 +87,6 @@ def _legacy_key(method: str, route: str) -> str:
return f"rest_api:{method} {route}"
def _mark_legacy_response(response: Response | None, replacement_ref: str) -> None:
if response is None:
return
response.headers["Deprecation"] = "true"
response.headers["X-StateHub-Replacement"] = replacement_ref
response.headers.append("Link", f"<{replacement_ref}>; rel=\"successor-version\"")
async def _meter_legacy_route(
*,
session: AsyncSession,
@ -102,7 +95,7 @@ async def _meter_legacy_route(
interface_key: str,
replacement_ref: str,
) -> None:
_mark_legacy_response(response, replacement_ref)
mark_legacy_response(response, replacement_ref)
try:
await record_legacy_usage(
session,