Skip to content

ClientInfo contract: portable client IP and TLS metadata #475

Description

@aram356

Summary

ClientInfo contract: portable client IP and TLS metadata with explicit absence, the contract part of #89.

Behavior

One accessor returns the trusted client IP, and one the JA4 fingerprint where a trusted provider supplies it (#283), on every adapter, Fastly and Axum first. JA4 is an EdgeZero abstraction, ctx.ja4(), that each adapter fills from its own source: Fastly from runtime TLS, Cloudflare from Bot Management, Axum from a trusted proxy header such as CloudFront's CloudFront-Viewer-JA4-Fingerprint set by a hop EdgeZero's checked ingress trusts, and Spin never (NotExposed). Trusted Server reads JA4 only through it.

Acceptance criteria

  • The same accessors work on each adapter as its part lands, and a JA4 header from an untrusted peer reads as absent

Dependencies

Blocked by:

Blocks:

Related

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions