• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 23318573663
64%

Build:
DEFAULT BRANCH: main
Ran 19 Mar 2026 09:54PM UTC
Jobs 1
Files 568
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Mar 2026 09:49PM UTC coverage: 64.111% (-0.5%) from 64.641%
23318573663

push

github

web-flow
Key authserver's upstream token storage on (sessionID, providerName) (#4198)

* Key upstream token storage on (sessionID, providerName)

Restructure UpstreamTokenStorage so tokens are keyed by
(sessionID, providerName) instead of just sessionID, enabling
multiple upstream providers' tokens to coexist per session.
This is the foundation for multi-upstream IDP support (RFC-0052).

Storage layer:
- UpstreamTokenStorage interface gains providerName param on
  Store/Get and new GetAllUpstreamTokens bulk-read method
- Memory backend uses nested map (sessionID -> providerName -> entry)
  with empty inner map cleanup during eviction
- Redis backend uses per-provider keys (upstream:{sid}:{provider})
  with a session index SET for enumeration and atomic deletion
- PendingAuthorization gains UpstreamProviderName and SessionID
  fields for future multi-leg authorization chains

Service + middleware:
- upstreamtoken.Service.GetValidTokens takes providerName
- upstreamswap.Config gains required ProviderName field
- runner/middleware derives ProviderName from upstream config

Bug fixes from review:
- Fix provider name key mismatch: callback handler now uses the
  upstream's logical name (UpstreamConfig.Name) instead of the
  protocol type (upstream.Type()) for both ProviderID and the
  storage key, matching what the middleware uses to retrieve tokens
- Fix singleflight key collision: include providerName in the
  singleflight dedup key to prevent cross-provider result leaking
- Fix Redis GetAllUpstreamTokens excluding expired tokens (violates
  interface contract that includes expired tokens at bulk-read level)
- Add warn logging for corrupt entries in Redis GetAllUpstreamTokens
- Defensive slice clone in Redis DeleteUpstreamTokens to prevent
  append mutation of the original providerKeys slice
- Add sessionID validation in GetUpstreamTokens for consistency
  with StoreUpstreamTokens
- Populate PendingAuthorization.UpstreamProviderName in authorize
  handler for mul... (continued)

322 of 512 new or added lines in 13 files covered. (62.89%)

594 existing lines in 17 files now uncovered.

49993 of 77979 relevant lines covered (64.11%)

92.76 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
3
68.48
-12.59% pkg/authserver/server/handlers/callback.go
4
71.43
-28.57% pkg/authserver/server/handlers/handler.go
5
74.89
-2.89% pkg/runner/middleware.go
7
75.14
-14.93% pkg/authserver/server_impl.go
17
73.68
-23.1% pkg/authserver/storage/memory.go
26
47.89
-10.4% pkg/authserver/storage/mocks/mock_storage.go
64
70.99
-12.27% pkg/authserver/storage/redis.go
64
69.67
pkg/authserver/storage/redis_migrate.go

Uncovered Existing Lines

Lines Coverage ∆ File
1
75.0
-25.0% pkg/authserver/storage/types.go
2
79.22
-1.86% pkg/authserver/server/handlers/authorize.go
2
82.98
-0.26% pkg/vmcp/composer/workflow_engine.go
3
50.0
0.0% docs/server/docs.go
5
74.89
-2.89% pkg/runner/middleware.go
6
87.5
-9.05% pkg/auth/upstreamtoken/service.go
7
68.18
-31.82% pkg/authserver/storage/redis_keys.go
8
71.43
-28.57% pkg/authserver/server/handlers/handler.go
8
23.56
-4.6% pkg/client/manager.go
11
68.42
-14.47% pkg/client/discovery.go
14
74.44
-5.19% pkg/client/config.go
22
75.14
-14.93% pkg/authserver/server_impl.go
33
76.62
-20.83% pkg/auth/upstreamswap/middleware.go
39
68.48
-12.59% pkg/authserver/server/handlers/callback.go
105
47.89
-10.4% pkg/authserver/storage/mocks/mock_storage.go
118
70.99
-12.27% pkg/authserver/storage/redis.go
210
73.68
-23.1% pkg/authserver/storage/memory.go
Jobs
ID Job ID Ran Files Coverage
1 23318573663.1 19 Mar 2026 09:54PM UTC 568
64.11
GitHub Action Run
Source Files on build 23318573663
  • Tree
  • List 568
  • Changed 20
  • Source Changed 15
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23318573663
  • f52b6d07 on github
  • Prev Build on main (#23306958825)
  • Next Build on main (#23334526557)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc