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

ilpanich / axiam-rust-sdk / 31609138005
94%

Build:
DEFAULT BRANCH: main
Ran 12 Aug 2026 02:56PM UTC
Jobs 1
Files 31
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

12 Aug 2026 02:51PM UTC coverage: 94.733%. Remained the same
31609138005

push

github

web-flow
fix(examples): never print the raw UMA challenge header (#53)

* fix(examples): never print the raw UMA challenge header

CodeQL flagged the equivalent line in the Python SDK's client example, and the
finding applies here too: printing the whole WWW-Authenticate value prints
`ticket="..."` — a live credential.

That is exactly the §20.6 rule the example exists to teach: the ticket's
60-second life does not make it harmless, because for those 60 seconds it IS the
credential that converts into an RPT, so a header in a log line is a live
credential in a log line. An example that breaks the rule it is demonstrating is
worse than no example.

Prints the parsed realm and as_uri instead, with the ticket shown as
[REDACTED] — those are the two fields a reader actually needs, and §20.6
enumerates neither as sensitive.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015P5QahkVjqoBqz83H2Gqvc

* fix(examples): stop echoing remote-chosen values from the UMA challenge

Extends this branch's fix, mirroring the Python and TypeScript SDKs.

`realm` and `as_uri` are strings a *remote* server chose. They are not secrets —
§20.6 enumerates what is, and neither is on the list — but echoing
attacker-controlled text straight into a terminal or a log file is its own small
hazard: terminal escape sequences, log forging. An example is the last place to
teach that habit, since readers copy the shape of example code far more readily
than they read the comment above it.

The challenge output now reports the *shape* of what was parsed rather than its
contents, and the refusal names our own issuer — ours to print, and the half a
reader needs to debug a mismatch — without echoing the value that failed to
match.

The lesson of §20.3 survives intact: there is a decision here, it turns on the
host the challenge nominates, and this program refuses when that host is not one
it already trusts.

Co-Authored-By: Claude Opus 5 <noreply@an... (continued)

5270 of 5563 relevant lines covered (94.73%)

31.23 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31609138005.1 12 Aug 2026 02:56PM UTC 31
94.73
GitHub Action Run
Source Files on build 31609138005
  • Tree
  • List 31
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31609138005
  • ee9a0288 on github
  • Prev Build on main (#31607011223)
  • Next Build on main (#31738654246)
  • Delete
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