{"ref":"artifact:marcellourbani-decodesapsso2","page":"/artifacts/marcellourbani-decodesapsso2","json":"/artifacts/marcellourbani-decodesapsso2.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"marcellourbani-decodesapsso2","name":"decodesapsso2","artifact_type":"package","ecosystem":"abap","domain":"security-and-compliance","origin_ring":"independent","description":{"one_line":"A TypeScript library that decodes a MYSAPSSO2 logon ticket into its user, client, system and validity fields, and returns the signature without validating it, so it never shows a ticket is genuine.","short":"TypeScript decoder for MYSAPSSO2 logon tickets","what_it_solves":"A MYSAPSSO2 cookie taken from a browser session is base64 and unreadable as it stands. `decodeSAPSSO2` returns the ticket's version, id, username, client, system, issue time and validity hours; `tryDecodeSAPSSO2` returns an error instead of throwing, and `startTime` and `expirationTime` turn the last two fields into dates. The signature comes back as a base64 string the package states it does not validate, so decoding a ticket says who it was issued for and when it runs out, never that it is genuine. It is a library installed from npm, with no command line or interface of its own."},"links":{"npm":"https://www.npmjs.com/package/decodesapsso2","repo":"https://github.com/marcellourbani/decodesapsso2"},"identity":{"license":"MIT"},"source_available":true,"provides":[{"capability":"capability:authentication","what_it_does":"Reads the user, client, system and validity window out of a MYSAPSSO2 ticket, so a caller holding one can see who it was issued for and when it expires. It states that it does not validate the ticket, and returns the signature untouched.","sources":[{"url":"https://github.com/marcellourbani/decodesapsso2","title":"marcellourbani/decodesapsso2 — README","checked":"2026-09-18","quote":"This decodes MYSAPSSO2 tickets, does not validate them or attempt"},{"url":"https://github.com/marcellourbani/decodesapsso2","title":"marcellourbani/decodesapsso2 — README","checked":"2026-09-18","quote":"The signature is not validated, just exposed as a base64 encoded string"}]}],"maintainers":["actor:marcellourbani"],"provenance":{"discovered_via":[{"source":"source:github-orgs","channel":"marcellourbani"}],"first_seen":"2026-09-18"},"drafted_with_ai":true,"contributors":["actor:marcellourbani"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"poor","evidence":"20 months since release"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"poor","evidence":"pushed 2025-03, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"2 test files, npm test"},{"label":"Docs","tier":"fair","evidence":"README 1 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":3,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","latest_version":"1.0.0","majors":{"1":{"version":"1.0.0","date":"2025-03-02"}},"license":"MIT","first_release":"2025-03-02","last_release":"2025-03-02","releases":1,"cadence_days":null,"maintainers":1,"repository":null,"repository_directory":null,"peer_cds":null,"dependencies":3,"node_engine":null,"test_script":true,"types":true,"downloads_weekly":3,"downloads_monthly":7,"stars":0,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2025-03-02","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2025-03-02T10:22:07Z","open_prs":0,"tree_truncated":false,"test_files":2,"workflows":0,"other_ci":false,"readme_bytes":1071,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2025-02-18","last_commit":"2025-03-02","commits":1,"contributors":1,"readme_path":"README.md","readme_sha":"a209d0e2b38e063c238c3563cbc3cbc1db40b169","months_since_release":20,"dormant":true,"repo_read":"2026-10-25"},"release_notes":{"license":"MIT","quotable":true,"versions":[{"version":"1.0.0","date":"2025-03-02"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:marcellourbani","name":"Marcello Urbani","json":"/actors/marcellourbani.json"}],"contributors":[{"ref":"actor:marcellourbani","name":"Marcello Urbani","json":"/actors/marcellourbani.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}