{"id":21880761,"url":"https://github.com/maslick/covid-decoder","last_synced_at":"2026-04-02T18:51:56.672Z","repository":{"id":64303691,"uuid":"423940347","full_name":"maslick/covid-decoder","owner":"maslick","description":"COVID-19 certificate parser/validator API","archived":false,"fork":false,"pushed_at":"2021-11-04T13:20:02.000Z","size":155,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-07T08:41:17.347Z","etag":null,"topics":["aws","covid-19","decoder","golang","green-pass","raspberry-pi","rest-api","validator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maslick.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-02T17:36:08.000Z","updated_at":"2023-11-27T01:05:03.000Z","dependencies_parsed_at":"2023-01-15T10:00:26.896Z","dependency_job_id":null,"html_url":"https://github.com/maslick/covid-decoder","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/maslick/covid-decoder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maslick%2Fcovid-decoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maslick%2Fcovid-decoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maslick%2Fcovid-decoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maslick%2Fcovid-decoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maslick","download_url":"https://codeload.github.com/maslick/covid-decoder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maslick%2Fcovid-decoder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31313495,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["aws","covid-19","decoder","golang","green-pass","raspberry-pi","rest-api","validator"],"created_at":"2024-11-28T09:15:59.512Z","updated_at":"2026-04-02T18:51:56.648Z","avatar_url":"https://github.com/maslick.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# =covid-decoder=\nA simple REST API that parses COVID-19 certificates (provided in textual form)\n\n![overview](overview.png)\n\n## :rocket: Motivation\nThere are plenty of Green Pass (COVID-19 certificate) validators out there (Github) written in different languages - Golang, Node.js, Python. Some just parse the QR-code, some verify the signature. I thought it might be a good idea to create a REST API which you can feed a QR code (in textual format) and get all the info contained in it. \n\nThe server app can be compiled into a small binary (2-5 MB) and run on any server:\n* Locally \n* Docker, Kubernetes, etc.\n* Serverless on AWS\n* Raspberry PI, etc.\n\n## :white_check_mark: Installation\n```zsh\n# Locally\nmake serverfull \nmake run\n\n# Docker\nmake docker-build\n\ndocker images | grep covid-decoder\ncovid-decoder        latest    4806d6ec9fef   1 minute ago   5.47MB\n\nmake docker-run\n\n# AWS\naws configure\nmake deploy\n```\n\n## :bulb: Usage\n```zsh\nCODE=`cat my-covid-certificate.txt`\n\n# Locally\nURL=\"localhost:8080\"\n\n# Docker\nURL=\"localhost:8081\"\n\n# AWS \nURL=\"https://f00wc4ugz6.execute-api.eu-central-1.amazonaws.com\"\n\n# Scan QR code and decode using zbarimg\nCODE=`zbarimg --raw qr.jpeg 2\u003e\u00261 | head -n 1`\n```\n\n```zsh\ncurl -sX POST $URL/parse --data \"{\\\"code\\\": \\\"${CODE}\\\"}\" | jq\ncurl -sX POST $URL/validate --data \"{\\\"code\\\": \\\"${CODE}\\\"}\" | jq\n```\n\nOutput:\n```json\n{\n    \"dob\": \"2001-12-31\",\n    \"expires_on\": \"2023-10-14 00:00:00 CEST\",\n    \"issued_on\": \"2021-10-27 13:20:48 CEST\",\n    \"issued_by\": \"CN=CSCA-UA,O=Gouv,C=UA\",\n    \"kid\": \"53FOjX/4aJs=\",\n    \"name\": \"Iван Доу\",\n    \"std_name\": \"John Doe\",\n    \"signed_by\": \"CN=DSC_UA_023,OU=180035024,O=CNAM,C=UA\",\n    \"vaccinations\": [{\n        \"target\": \"840539006\",\n        \"vaccine\": \"1119349007\",\n        \"product\": \"EU/1/20/1528\",\n        \"manufacturer\": \"ORG-100030215\",\n        \"doses\": 1,\n        \"dose_series\": 2,\n        \"date\": \"2021-10-27\",\n        \"country\": \"UA\",\n        \"issuer\": \"CNAM\",\n        \"certificate_id\": \"URN:UVCI:01:UA:W7V2BE46QSBJ#L\"\n    }],\n    \"tests\": [{\n        \"target\": \"840539006\",\n        \"test_type\": \"LP217198-3\",\n        \"test_name\": \"\",\n        \"manufacturer\": \"1232\",\n        \"sample_datetime\": \"2021-07-12T07:38:33Z\",\n        \"test_result\": \"260415000\",\n        \"testing_centre\": \"Health Institute, Kyiv\",\n        \"country\": \"UA\",\n        \"issuer\": \"CNAM\",\n        \"certificate_id\": \"URN:UVCI:01:UA:W7V2BE46QSBJ#L\"\n        }],\n    \"recoveries\": [{\n        \"target\": \"840539006\",\n        \"country\": \"UA\",\n        \"issuer\": \"CNAM\",\n        \"first_positive_test\": \"2021-05-07\",\n        \"valid_from\": \"2021-10-27 13:20:48 CEST\",\n        \"valid_until\": \"2023-10-14 00:00:00 CEST\",\n        \"certificate_id\": \"URN:UVCI:01:UA:W7V2BE46QSBJ#L\"\n    }]\n}\n```\n\nFields description (see complete schema [here](https://github.com/ehn-dcc-development/ehn-dcc-schema/blob/release/1.3.0/DCC.Types.schema.json) and [here](https://github.com/ehn-dcc-development/ehn-dcc-schema/blob/release/1.3.0/DCC.Core.Types.schema.json)):\n```\ndob: Date of birth\nname: Certificate owner's full name\nstd_name: Certificate owner's full name, transliterated in complience with ICAO 9303\nkid: Public key identifier\n\ntarget: Disease or agent targeted\nvaccine: Vaccine/prophylaxis\nproduct: Vaccine medical product\nmanufacturer: Vaccine marketing authorization holder or manufacturer\ndoses: Number in a series of vaccinations/doses\ndose_series: Total number of vaccination per series\ndate: Date of vaccination, indicating the date of the latest dose recieved\ncountry: Member State or third country in which the vaccine was administered\nissuer: Certificate issuer\ncertificate_id: Unique certificate identifier\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaslick%2Fcovid-decoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaslick%2Fcovid-decoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaslick%2Fcovid-decoder/lists"}