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

tableau / TabPy / 32305107728
66%

Build:
DEFAULT BRANCH: master
Ran 19 Aug 2026 09:47PM UTC
Jobs 1
Files 40
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 Aug 2026 09:40PM UTC coverage: 62.487% (+7.6%) from 54.917%
32305107728

push

github

web-flow
@W-23493263 Add JWT Bearer authentication to Arrow Flight (#665)

* Add JWT Bearer authentication to Arrow Flight.

* Send JSON Content-Type in max-request-size tests

Without it Tornado treats the 2MB body as form-urlencoded and newer
Python parse_qsl rejects it with 400 before TabPy's 413 check runs.

* Move Flight Authorization helper out of password util

Keep util.py unchanged so the pre-existing PBKDF2 hash stays out of
this diff. Flight header parsing now lives in flight_headers.py.

* Stop JWKS refreshes from blocking cached JWT validation

Hold a per-URI fetch lock only around forced JWKS refreshes so a
forged unknown kid cannot reject valid HTTP or Flight tokens. Flight
still follows TABPY_TRANSFER_PROTOCOL, including http, matching the
existing HTTP Basic/Bearer cleartext behavior.

* Single-flight cold JWKS fetches and recheck unknown-kid cooldown

* Make JWKS refresh outcomes atomic

Keep unknown-kid cooldown publication under refresh ownership and preserve opaque Flight sessions without cross-user capacity eviction.

* Pin the JWKS cache lifetime

Keep TabPy's parsed-key snapshot synchronized with PyJWT's cache and clarify the remaining cold-fetch availability tradeoff.

* Harden Flight authentication concurrency and token lifecycle

* Preserve JWKS single-flight availability

* Make Flight token overlap eviction deterministic

236 of 247 new or added lines in 6 files covered. (95.55%)

56 existing lines in 2 files now uncovered.

1774 of 2839 relevant lines covered (62.49%)

0.62 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
95.09
tabpy/tabpy_server/handlers/jwt_auth.py
2
96.67
64.23% tabpy/tabpy_server/handlers/basic_auth_server_middleware_factory.py
1
90.91
tabpy/tabpy_server/handlers/flight_headers.py

Coverage Regressions

Lines Coverage ∆ File
32
79.37
7.94% tabpy/tabpy_server/app/app.py
24
88.28
13.81% tabpy/tabpy_server/handlers/base_handler.py
Jobs
ID Job ID Ran Files Coverage
1 32305107728.1 19 Aug 2026 09:47PM UTC 40
62.49
GitHub Action Run
Source Files on build 32305107728
  • Tree
  • List 40
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 56e9f3b7 on github
  • Prev Build on master (#30585514946)
  • Next Build on master (#32920183531)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc