Skip to content

chore(deps): move the API starters onto the adapters that forward the user agent - #88

Merged
Bccorb merged 1 commit into
mainfrom
chore/forward-user-agent-adapters
Sep 12, 2026
Merged

chore(deps): move the API starters onto the adapters that forward the user agent#88
Bccorb merged 1 commit into
mainfrom
chore/forward-user-agent-adapters

Conversation

@Bccorb

@Bccorb Bccorb commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Last link in the fells-code/seamless-auth-api#154 chain: the API starters move onto the adapter releases that forward the browser's user agent (fells-code/seamless-auth-server#161), so applications generated from the next templates tag write a device class on every audit row.

What changed

@seamless-auth/express ^0.14.0^0.15.0 and @seamless-auth/fastify ^0.5.0^0.6.0, with their lockfiles. Under 0.x a caret does not cross a minor, so an install alone would never have picked these up.

Both adapters now send the browser's User-Agent to the auth API as x-seamless-client-user-agent beside the client address they already forward, and pass GET /internal/metrics/sign-ins through. The auth API (0.13.0) records a device class from that header on every audit row and reports sign-in outcomes by it, which the admin console's Overview reads. A project on the older adapters has every row recorded as the adapter's own user agent, so its breakdown by device reads unknown for every sign-in; the other telemetry dimensions do not depend on the adapter.

The starters needed the version and nothing else. createSeamlessAuthServer, requireAuth, requireRole and SeamlessAuthUser are unchanged, and nothing forwards anything a browser did not already send. The React starters stay on @seamless-auth/react 0.12.0: the ephemeral token gained a jti the client never reads. The lockfiles also pick up a transitive zod 4.5.4 → 4.6.2 from @seamless-auth/core.

Verification

After this

Merging the version PR this produces cuts the tag seamless-cli pins and seamless-idea-api builds its runtime image from (SEAMLESS_TEMPLATES_REF), which is what actually puts the new adapter in front of the fleet.

… user agent

@seamless-auth/express 0.14.0 to 0.15.0 and @seamless-auth/fastify 0.5.0 to
0.6.0. Both now send the browser's User-Agent to the auth API as
x-seamless-client-user-agent beside the client address they already forward,
and pass GET /internal/metrics/sign-ins through.

The auth API records a device class on every audit row from that header. A
project on the older adapters has every row recorded as the adapter's own user
agent, so the breakdown by device reads "unknown" for every sign-in.

The starters needed the version and nothing else.
@Bccorb
Bccorb merged commit 1a2c294 into main Sep 12, 2026
3 checks passed
@Bccorb
Bccorb deleted the chore/forward-user-agent-adapters branch September 12, 2026 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant