feat: InCommon attribute annotations, Examples button, and Authorization header fix - #62
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
… attribute table - Add ATTRIBUTE_REGISTRY mapping 35 common OIDs (eduPerson, inetOrgPerson, SCHAC, Grouper) to friendly names and REFEDS R&S entity-category membership - Badge R&S attributes with a green tag (voluntary bilateral bundle; IdPs and SPs that have registered the R&S entity category in their metadata) - Badge eduPersonPrincipalName as eppn-scoped (purple) when the value contains @scope, eppn-unscoped (amber) when it does not - Fill friendly name column from the registry when the assertion omits FriendlyName - Fix OID column: remove max-w-xs constraint, use whitespace-nowrap so OIDs render on a single line without wrapping - Update saml.attributes tooltip to describe the badge semantics accurately
…payloads Attribute table: - Show R&S and eppn-scoped/unscoped badges below OID in the attribute name column - Fill friendly name from registry when assertion omits FriendlyName attribute Examples button (always visible, top-right of the decoder): - Dropdown grouped by input category: SAMLResponse, SAMLRequest, JWT, Authorization header, Query string, Full URL - Each example is generated fresh on click with live timestamps via pako deflateRaw (redirect binding) and btoa (POST binding), so relative time labels are always current - Click outside closes the dropdown; chevron rotates when open - Copy link appears alongside Examples when content is loaded
The page detected Authorization: Bearer input as JWT but decodeJwt only stripped the Bearer scheme prefix, leaving the Authorization: field name in the string — causing atob to throw on the first dot-segment. Strip the header field name before the scheme prefix so the full header line round-trips correctly.
Move InCommon attribute annotations from planned to shipped features. Document the Examples button, the attribute badge semantics (R&S, eppn-scoped/unscoped), the Authorization: Bearer header support in decodeJwt, and add attributes.ts and examples.ts to the project structure table.
kellenmurphy
force-pushed
the
feat/authn-context-and-xml-highlighting
branch
from
May 25, 2026 18:42
97e7df5 to
c0ff7a5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
decodeJwtnow correctly strips the fullAuthorization: BearerHTTP header line, not just theBearerscheme prefix. The input format was already detected as JWT but previously failed to decode.New files
src/lib/attributes.ts— attribute registry and badge logicsrc/lib/examples.ts— 10 example payload generators using pako + btoaTest plan
npx tsc --noEmitcleannpx eslint . --quietcleanAuthorization: Bearer <token>pastes decode correctly as JWT