Skip to content

Server-side identity on every adapter #1558

Open
0 of 45 issues completed
Open

Description

@aram356

Overview

Make Trusted Server's server-side identity work on every adapter, and make Axum deployable. That covers the Edge Cookie (EC) and its KV record, server-side ID providers, SharedID handled the way Prebid defines it, and identity written back as first-party cookies on the HTML document response.

Goals

  1. Axum is deployable from main as a production service on AWS behind CloudFront and a load balancer.
  2. Server-side identity works on Fastly, Axum, Cloudflare and Spin.
  3. SharedID is read, stored and sent to bidders the way Prebid defines it, and shared state is passed through each adapter correctly.
  4. Identity is written back as first-party cookies on the HTML document response.

Where it stands

Read at main 598a85170 on 2026-11-11.

  • Only Fastly has server-side identity. Axum, Cloudflare and Spin build an EC context for consent only, with no record store.
  • The identity logic is shared in core (KvIdentityGraph). The record backend is per adapter because EdgeZero's KvStore has no conditional writes or strong reads.
  • Axum on main is a development server. The Axum RC tag v0.1.1-rc-axum.202611.2 runs the EC on DynamoDB for a demo, on an October base pinned to an EdgeZero RC tag.
  • On main, the sharedId cookie path reads SharedID only from a cookie named sharedId and stores it under sharedid.org, and every request builder sends EIDs only in user.ext.eids. No server code writes it back to the browser.

Approach

Related

Done when

  • Axum deploys from main with the EC, its record store, trusted client IP and geo, on released or explicitly approved EdgeZero revisions.
  • One EC lifecycle and one record backend run on all four adapters, or an adapter rejects identity configuration at startup with a clear error.
  • Server-side identity providers run on every adapter that has a record store.
  • SharedID uses the publisher's Prebid storage name and source pubcid.org with atype 1, and bidders never receive the same ID twice.
  • The SharedID and mirror cookies are written on the document response under the consent rules in the spec.
  • Settings, registries, store clients and HTTP clients are built once per process or isolate, per-request state lives in the request, and no block_on runs inside async code.
  • EIDs go out in OpenRTB 2.6 user.eids.
  • Identify and batch sync are answered locally on every adapter.
  • Provider lookups, batch sync, pull sync and record creation are rate limited, and record creation is refused for non-browser clients.
  • An identity-only page script mode exists.
  • The Axum production image is published and attested, and the reference infrastructure runs more than one task with dependency-aware readiness.

Activity

  1. self-assigned this
    on Nov 12, 2026
  2. added theissue type on Nov 12, 2026
  3. 17 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions