{"id":34527592,"url":"https://github.com/eclipse-xfsc/statuslist-service","last_synced_at":"2026-06-01T11:32:12.705Z","repository":{"id":289365722,"uuid":"963959985","full_name":"eclipse-xfsc/statuslist-service","owner":"eclipse-xfsc","description":"The status list service implements the basis for realizing the basic concept of a bit string  lists for OCM W-Stack.","archived":false,"fork":false,"pushed_at":"2026-05-29T14:40:07.000Z","size":144,"stargazers_count":0,"open_issues_count":5,"forks_count":1,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-05-29T16:18:11.917Z","etag":null,"topics":["bitstring","golang","jwt-statuslist","ocm-w-stack","open-wallet-foundation","revocation","statuslist-2021"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-xfsc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-10T13:28:16.000Z","updated_at":"2026-05-29T14:40:15.000Z","dependencies_parsed_at":"2025-04-22T23:20:30.088Z","dependency_job_id":"6322be3c-c4e7-483a-bd4a-28d09fac5ba7","html_url":"https://github.com/eclipse-xfsc/statuslist-service","commit_stats":null,"previous_names":["eclipse-xfsc/statuslist-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eclipse-xfsc/statuslist-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fstatuslist-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fstatuslist-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fstatuslist-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fstatuslist-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-xfsc","download_url":"https://codeload.github.com/eclipse-xfsc/statuslist-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fstatuslist-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33773771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitstring","golang","jwt-statuslist","ocm-w-stack","open-wallet-foundation","revocation","statuslist-2021"],"created_at":"2025-12-24T05:24:10.109Z","updated_at":"2026-06-01T11:32:12.700Z","avatar_url":"https://github.com/eclipse-xfsc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Status List Service\n\n## Introduction\n\nThe status list service implements the basis for realizing the basic concept of a bit string: \n\n![Bit String](https://www.w3.org/TR/vc-bitstring-status-list/diagrams/BitstringStatusListConcept.svg)\n\nThis service can be used generically for expressing status lists with or without credentials with for kind of purpose. \n\nIn the moment are various implementations out there: \n\n- [Bit String Status List](https://www.w3.org/TR/vc-bitstring-status-list)\n- [JWT Status List](https://www.ietf.org/archive/id/draft-looker-oauth-jwt-cwt-status-list-01.txt) (Default)\n- [VS Status List 2021](https://www.w3.org/TR/2023/WD-vc-status-list-20230427/)\n- [Token Status List](https://www.ietf.org/id/draft-ietf-oauth-status-list-02.html)\n\nIn general all of them using the same basic concept of a single bit in a stream, so therefore the service it no adjusted to a special concept in the moment. This needs to be finally discussed and elected by the XFSC community.  \n\n## Flow\n\n### List Creation\n\n```mermaid\nsequenceDiagram\n    Internal Application-\u003e\u003eStatusListService: Request Status List Entry for Origin=https://exampledomain and tenantId=xy\n    StatusListService-\u003e\u003eDatabase: Create List/Insert Entry in List\n    StatusListService-\u003e\u003eInternal Application: Returns List Link\n    Internal Application-\u003e\u003eInternal Application: Use Link in Credential, JWT, something else\n```\n\n### List Usage\n\n```mermaid\nsequenceDiagram\n    External Application -\u003e\u003e StatusListService: Request List with id X\n    StatusListService-\u003e\u003eExternal Application: Replies List in requested format \n    External Application-\u003e\u003eExternal Application: Unzip and check for Bit Y\n```\n\n## Dependencies\n\nMandatory: Postgres and Nats.\n\nSee [Docker Compose File](https://github.com/eclipse-xfsc/statuslist-service/-/raw/main/deployment/docker/docker-compose.yml?ref_type=heads)\n\nOptional: Signer Service (in case for signed results)\n\n\n## Bootstrap\n\n1. Move to the compose file and start docker-compose up\n2. Pull image from Habor\n    ```\n    docker pull node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm-wstack/status-list-service:main\n    ```\n3. Start docker image with the following environment parameters:\n    -  STATUSLISTSERVICE_DATABASE_PARAMS: \"sslmode:disable\"\n\nDatabase defaults are postgres:postgres (user:pw), and the standard ports.\n\nEnvironment Variables:\n\n|Variable|Purpose|Default|\n|--------|-------|-------|\n|STATUSLIST_SIGNER_URL| Defines the signer url |signer|\n|STATUSLIST_SIGNER_TOPIC| Defines the signer messaging topic|signer|\n|STATUSLIST_LISTSIZEINBYTES| Defines the size of the list|1024|\n|STATUSLIST_NATS_URL|Nats Host|nats://localhost:4222|\n|STATUSLIST_NATS_QUEUE_GROUP|Nats Queue Group|-|\n|STATUSLIST_NATS_REQUEST_TIMEOUT|Request Timeout|-|\n|STATUSLIST_DATABASE_HOST|Postgres Host|localhost|\n|STATUSLIST_DATABASE_PORT|Postgres Port|5432|\n|STATUSLIST_DATABASE_DATABASE|Postgres DB|postgres|\n|STATUSLIST_DATABASE_USER|Postgres User|postgres|\n|STATUSLIST_DATABASE_PASSWORD|Postgres PW|postgres|\n|STATUSLIST_DATABASE_PARAMS|Postgres Params|postgres|\n\n\n## Usage\n\nSee [Insomnia Collection](https://github.com/eclipse-xfsc/statuslist-service/-/raw/main/docs/insomnia.json?ref_type=heads)\n\nIn the call for Get Status List is the content type selecteable. Options: \n\n### Json Status List (statuslist+jwt)\n\nHeaders must be presented in call: X-KEY,X-DID, X-NAMESPACE.\n\nJWT Token with Content (https://www.ietf.org/archive/id/draft-looker-oauth-jwt-cwt-status-list-01.html#section-4.2): \n```\n{\n  \"typ\": \"statuslist+jwt\",\n  \"alg\": \"ES256\",\n  \"kid\": \"11\"\n},\n{\n  \"iss\": \"https://example.com\",\n  \"sub\": \"https://example.com/statuslists/1\",\n  \"iat\": 1683560915,\n  \"exp\": 1686232115,\n  \"status_list\": {\n    \"bits\": 1,\n    \"lst\": \"H4sIAMo_jGQC_9u5GABc9QE7AgAAAA\"\n  }\n}\n\n```\n\n### JSON (application/json)\n\n```\n{\n\t\"list\": \"H4sIAAAAAAAA//o/CkbBKBixABAAAP//9P86uAAEAAA\",\n\t\"listId\": 1,\n\t\"tenantId\": \"123\"\n}\n```\n\n\n## Deployment\n\nThe postgres and nats must be deployed beforehand.\n\nOverride the settings under nginx.ingress.kubernetes.io/configuration-snippet according to your needs in the values yaml.\n\n## Developer Information\n\nBy using this service the proper format of the final statuslist format must be choosen and properly signed (default is jwt). The service it self should not be directly public. The process of revoking is part of the business application.\n\n### Nats Interface\n\nThe service listens on a Nats for [Statuslist Creation Requests](https://github.com/eclipse-xfsc/nats-message-library/-/raw/main/status.go?ref_type=heads) and returns with a reply of the statuslink which can be embedded in JWTs or credentials. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-xfsc%2Fstatuslist-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-xfsc%2Fstatuslist-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-xfsc%2Fstatuslist-service/lists"}