pub const GATEWAY_API_KEY_REQUEST: &'static str;Expand description
Canonical K8s Gateway API HTTPRoute per-rule request-timeout-policy
request leaf scalar-key. Re-export of the canonical
caixa_core::GATEWAY_API_KEY_REQUEST so the per-rule request-
deadline leaf key lives in exactly one place across every caixa
renderer — this crate’s one production emitter site
(gateway_routes’s per-HTTPRoute per-rule
single_field_overlay(spec.politicas.timeout, …) call that seeds
the typed Duration request-deadline string into the sibling
GATEWAY_API_KEY_TIMEOUTS container axis under
spec.rules[].timeouts.request, the leaf the Gateway API v1 CRD
schema pins as HTTPRouteTimeouts.request and whose scalar value
the Gateway-API-implementation-side per-rule request-dispatch loop
commits to as the per-request wall-clock deadline every inbound
request is bounded against before the resolved backend even sees
the call) and this crate’s five test-side per-rule request-
deadline traversal sites (the
httproute_carries_politicas_timeout_on_every_rule typed-&str-
value pin, the httproute_timeout_renders_every_rule_independently
per-rule fan-out request-deadline pin under multi-:entrada :paths,
the httproute_timeout_uses_canonical_kube_duration_format typed-
Duration-round-trip pin, the
httproute_timeout_renders_minute_window_canonically canonical-
minute-form pin, and the timeout-only arm of
httproute_timeouts_and_retry_coexist_independently pinning the
leaf request-deadline survives when only the sibling :timeout
slot is set) now consult the same &'static str as the peer
caixa-core-side const definition.
The prior inline "request" literals at the one production emitter
site + five test-side retrieval sites in this crate would have let a
typo on any one site (e.g. "deadline" / "requestTimeout" /
"timeout" / "upstreamRequest") silently drop the per-rule
request deadline or emit a malformed HTTPRoute whose per-rule
request-deadline leaf the apiserver-side Gateway API CRD schema
validator drops as unrecognized at apply time — the Gateway API
implementation’s per-rule request-dispatch loop would silently parse
the timeouts sub-shape as an empty HTTPRouteTimeouts with the
typed Duration request-deadline discarded (the “no infinite
blocking” guarantee MESH-COMPOSITION.md §V mandates for every
rendered per-:politicas mesh-composition edge silently regresses
to the pre-overlay unbounded-blocking semantic, and every external
:entrada flow the route was authored to cap by the typed
:politicas :timeout slot runs to whatever request-deadline the
resolved backend’s downstream infrastructure picks with no field
naming the per-rule-request-deadline-leaf-key-drift root cause),
and the test-side navigators’ .and_then(|t| t.get("request"))
chains would silently unwrap to None under the drifted retrieval.
The lift routes every per-rule request-deadline-leaf retrieval +
emission through the same &'static str so drift between any two
sites becomes a single-edit fix at the caixa-core const definition.
Same shape as the GATEWAY_API_KEY_ATTEMPTS /
GATEWAY_API_KEY_RETRY / GATEWAY_API_KEY_TIMEOUTS /
GATEWAY_API_KEY_HOSTNAMES / GATEWAY_API_KEY_HOSTNAME /
GATEWAY_API_KEY_LISTENERS / GATEWAY_API_KEY_PARENT_REFS /
GATEWAY_API_KEY_BACKEND_REFS re-exports on the sibling per-
Gateway-API-CRD-body-axis surface — closes the second parent-leaf
axis pair (timeouts container + request leaf) the K8s Gateway
API v1 HTTPRouteTimeouts sub-shape pins under
HTTPRoute.spec.rules[].timeouts.request, sibling to the parent-
leaf pair (retry container + attempts leaf) closed in the
immediately-preceding GATEWAY_API_KEY_ATTEMPTS lift (e2e136b).
Both MESH-COMPOSITION.md §V “no infinite blocking / no infinite
retrying” guarantees now rest on typed lifts at both container-axis
and leaf-scalar-axis nesting levels. Peer to the sibling load-
bearing K8s-CR-schema-axis re-exports every downstream apiserver-
side CRD-schema-validator navigates the same per-rule request-
deadline leaf on (the gateway-class-controller’s per-HTTPRoute
per-rule request-dispatch pass under
spec.rules[].timeouts.request).
Canonical K8s Gateway API HTTPRoute per-rule request-timeout-policy
request leaf scalar-key every gateway_routes-emitted HTTPRoute
document mounts its per-rule :politicas :timeout typed K8s-duration
string under (spec.rules[].timeouts.request). Leaf peer to the
container-axis parent GATEWAY_API_KEY_TIMEOUTS (db31108) — the
sibling per-rule request-timeout-policy body-axis — and to the peer
retry-container leaf GATEWAY_API_KEY_ATTEMPTS (e2e136b) landed
on the parallel retry.attempts nesting; this closes the parent-leaf
axis pair (timeouts container + request leaf) the K8s Gateway API
v1 HTTPRouteTimeouts sub-shape pins under
HTTPRoute.spec.rules[].timeouts.request.
The Gateway API v1 CRD schema pins the per-rule request-deadline
through the HTTPRouteTimeouts.request scalar (peer to
HTTPRouteTimeouts.backendRequest per-attempt backend-call deadline
scalar) the Gateway-API-implementation-side per-rule request-dispatch
loop keys off before it commits to a per-request wall-clock deadline.
Drift on this leaf key is exactly as load-bearing as drift on the
parent per-rule request-timeout-policy container axis (timeouts):
the K8s apiserver-side Gateway API CRD schema validator drops any
per-rule timeouts: entry whose leaf request-deadline key carries an
unrecognized name — a "deadline" / "requestTimeout" /
"timeout" / "upstreamRequest" typo silently emits an HTTPRoute
whose per-rule request-deadline the Gateway-API-implementation-side
per-rule request-dispatch loop no-ops entirely (the sub-shape is
parsed as an empty HTTPRouteTimeouts with the typed duration
silently discarded, the route accepts every inbound request with no
per-rule request wall-clock deadline — the “no infinite blocking”
guarantee MESH-COMPOSITION.md §V mandates for every rendered
per-:politicas mesh-composition edge silently regresses to the
pre-overlay unbounded-blocking semantic, and every external
:entrada flow the route was authored to cap by the typed
:politicas :timeout slot runs to whatever request-deadline the
resolved backend’s downstream infrastructure — Envoy default
route-timeout, client SDK deadline, node-local conntrack idle-close
— picks with no field naming the per-rule-request-timeout-leaf-key
drift root cause).
The single source of truth the rendered Aplicacao Gateway-API-side
ingress bundle’s per-HTTPRoute per-rule request-deadline-leaf-key-
naming reaches for:
- the rendered
HTTPRoutedocument’s per-ruletimeouts.request:leaf (caixa-mesh/src/lib.rs — thegateway_routesper-AplicacaoHTTPRoute’s per-rulesingle_field_overlay(spec.politicas.timeout, …)call seeded from the Aplicacao’s:politicas :timeoutoverlay when the slot is set, emitting the typed K8s-duration string under this leaf key inside the siblingGATEWAY_API_KEY_TIMEOUTScontainer axis).
The per-rule request-deadline leaf key names the same
Gateway-API-implementation-side per-rule request-dispatch wall-clock
deadline scalar as the sibling parent GATEWAY_API_KEY_TIMEOUTS
container axis it sits nested inside under
spec.rules[].timeouts.request, and must move together with the
parent on any future Gateway API rebrand (an upstream SIG-Network
Gateway API v2 rename of the per-rule request-deadline leaf key from
request to deadline / requestTimeout / timeout /
upstreamRequest, coordinated with the Gateway API deprecation
cycle). Until this lift landed the leaf key carried an inline
request literal at six physical code sites in
caixa-mesh/src/lib.rs (one production emitter at the
gateway_routes per-rule
single_field_overlay(spec.politicas.timeout, "request", …) call
plus five test-side navigators pinning the overlay’s leaf-value
presence, the canonical duration_codec::render round-trip of a
30s / 90s / 1m typed duration, per-rule fan-out under
multi-:entrada :paths, and independent-axis coexistence with the
sibling retry per-rule retry-policy axis).
The PRIME DIRECTIVE duplication-budget rule (THEORY.md §I.3.5,
“every recurring shape becomes a generator before it becomes a
pattern; every pattern becomes a library before it becomes
duplicated code. The duplication budget is zero.”) promotes the
constant to a typed substrate-side &'static str on the same
trajectory the GATEWAY_API_KEY_ATTEMPTS (e2e136b) /
GATEWAY_API_KEY_RETRY (231bbf5) /
GATEWAY_API_KEY_TIMEOUTS (db31108) /
GATEWAY_API_KEY_HOSTNAMES (b77f744) /
GATEWAY_API_KEY_HOSTNAME (c96fa22) /
GATEWAY_API_KEY_LISTENERS (29f2415) /
GATEWAY_API_KEY_PARENT_REFS (f44e823) /
GATEWAY_API_KEY_BACKEND_REFS (a6c5679) lifts established on the
sibling canonical-Gateway-API-CRD-body-axis surface — closes the
second parent-leaf axis pair (timeouts container + request leaf)
the K8s Gateway API v1 HTTPRouteTimeouts sub-shape pins under
HTTPRoute.spec.rules[].timeouts.request, sibling to the parent-
leaf pair (retry container + attempts leaf) closed in the
immediately-preceding GATEWAY_API_KEY_ATTEMPTS lift. Both
MESH-COMPOSITION.md §V “no infinite blocking / no infinite retrying”
guarantees now rest on typed lifts at both container-axis and leaf-
scalar-axis nesting levels of the two per-:politicas overlays.
The render-side consumer now threads the same &'static str
through its single_field_overlay call and every test-side
navigator’s .get(…) retrieval so a future Gateway API rebrand on
the per-rule request-deadline leaf lands in one place; every future
renderer that reaches for the canonical per-rule request-deadline
leaf (the future M4 mesh.pleme.io/v1alpha1/Aplicacao CR
materializer’s per-Aplicacao per-rule request-deadline fan-out, a
future per-edge backendRequest per-attempt backend-call deadline
emitter) inherits the same value by construction with no opportunity
for per-renderer drift.
Same “the typed constant lives in one place” discipline the
GATEWAY_API_KEY_ATTEMPTS (e2e136b) /
GATEWAY_API_KEY_RETRY (231bbf5) /
GATEWAY_API_KEY_TIMEOUTS (db31108) lifts apply on the peer
canonical-Gateway-API-HTTPRoute-per-rule-body-axis surface, now
extended to the second per-rule container-leaf scalar (parallel to
the sibling retry.attempts container-leaf pair).