STATE-WP-0069 T04: Sunset headers and POST /progress body metering
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:
parent
05a138bc1c
commit
6e5e150803
8 changed files with 126 additions and 14 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue