Skip to content

Client Info & Cookie Support #88

Open
0 of 7 issues completed
Open

Description

@aram356

Description

Complete portable client metadata and cookie helpers for handlers. Fastly request context exposes only Fastly client IP, Axum request context exposes the native peer, and Cloudflare request context contains Worker Env/Context. The core exports no shared ClientInfo or cookie API (exported core modules); preserving raw cookie headers is already supported and is not cookie parsing or generation.

Steps to reproduce

  1. Compare the adapter-specific request contexts with the core public modules and extractors.
  2. Look for provider-neutral client IP/geolocation/TLS access.
  3. Look for request-cookie parsing and a typed Set-Cookie helper.

Expected behavior

Handlers read available client metadata and manage cookies through portable APIs, with unavailable metadata represented explicitly.

Impact

Session, consent and geographic application features currently need provider-specific metadata access and manual cookie handling.

Proposed fix

Complete the metadata story and provider mappings in #89–#92, plus cookie helpers and tests in #93–#95. Reuse checked native ingress and Geo work without treating their open PRs as merged portable support.

Done when

  • A shared metadata API and Fastly/Cloudflare/Axum mappings are documented and tested.
  • Request cookies can be parsed and Set-Cookie headers built with the requested attributes.
  • Missing metadata, trusted provenance and repeated Set-Cookie behavior are covered.

Related

Children #89, #90, #91, #92, #93, #94, #95; TLS fingerprint scope #283; native checked metadata #397, #432, #438. PR #409, PR #439 and PR #453 are related open work; merged PR #306 and PR #379 supply raw hooks/header preservation only.

Activity

  1. changed the title [-]Client Info & Cookie Support[/-] [+]Dynamic Backend Abstraction[/+] on Feb 8, 2026
  2. changed the title [-]Dynamic Backend Abstraction[/-] [+]Client Info & Cookie Support[/+] on Feb 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions