Skip to main content

GATEWAY_API_KEY_REQUEST

Constant GATEWAY_API_KEY_REQUEST 

Source
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 HTTPRoute document’s per-rule timeouts.request: leaf (caixa-mesh/src/lib.rs — the gateway_routes per-Aplicacao HTTPRoute’s per-rule single_field_overlay(spec.politicas.timeout, …) call seeded from the Aplicacao’s :politicas :timeout overlay when the slot is set, emitting the typed K8s-duration string under this leaf key inside the sibling GATEWAY_API_KEY_TIMEOUTS container 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).