{"id":39113757,"url":"https://github.com/wirepact/k8s-basic-auth-translator","last_synced_at":"2026-01-17T20:01:11.863Z","repository":{"id":37568701,"uuid":"420991681","full_name":"WirePact/k8s-basic-auth-translator","owner":"WirePact","description":"WirePact translator that handles HTTP Basic Auth (RFC7617) for the authentication mesh.","archived":false,"fork":false,"pushed_at":"2024-05-22T20:23:05.000Z","size":302,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-05-22T21:40:43.058Z","etag":null,"topics":["basic-authentication","translator","wirepact"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/WirePact.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}},"created_at":"2021-10-25T11:15:57.000Z","updated_at":"2024-07-27T20:40:45.727Z","dependencies_parsed_at":"2024-04-03T20:46:35.569Z","dependency_job_id":"95611fc6-0cfa-4e63-ab0d-d9bf2659ad18","html_url":"https://github.com/WirePact/k8s-basic-auth-translator","commit_stats":null,"previous_names":[],"tags_count":143,"template":false,"template_full_name":null,"purl":"pkg:github/WirePact/k8s-basic-auth-translator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WirePact%2Fk8s-basic-auth-translator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WirePact%2Fk8s-basic-auth-translator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WirePact%2Fk8s-basic-auth-translator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WirePact%2Fk8s-basic-auth-translator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WirePact","download_url":"https://codeload.github.com/WirePact/k8s-basic-auth-translator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WirePact%2Fk8s-basic-auth-translator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28517429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: 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":["basic-authentication","translator","wirepact"],"created_at":"2026-01-17T20:01:09.713Z","updated_at":"2026-01-17T20:01:11.803Z","avatar_url":"https://github.com/WirePact.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WirePact K8s Basic Auth Translator\n\nThis is a \"translator\" for the WirePact distributed authentication mesh system.\nIt converts HTTP Basic Auth credentials ([RFC7617](https://tools.ietf.org/html/rfc7617))\nto the WirePact common language format (signed JWT) and back.\n\nThe list of valid users must be in a CSV file with (at least) three columns or in a Kubernetes secret.\n\nThe first column must contain the user id (field name `id`), the second the\nusername and the last column must contain the\npassword for the user. With this CSV \"repository\", the translator is able\nto convert an outgoing communication (egress) to a signed JWT and the incoming communication\n(ingress) back to username/password combination. To see a demo CSV file, see the\n[example in the hack directory](./hack/test-repository.csv).\n\nAnother valid repository is a Kubernetes secret. The data in the secret must be in the form of:\n`userid` as key, and the encoded basic value (`username:password`) as value.\nAn example secret could look like:\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: api-credentials\ntype: Opaque\ndata:\n  123456789: YWRtaW46c3VwZXJzZWNyZXQ=\n```\n\nThe configuration is done via environmental variables or command line arguments:\n\n- `PKI_ADDRESS` (`-p --pki-address \u003cPKI_ADDRESS\u003e`): The address of the available WirePact PKI.\n- `NAME` (`-n --name \u003cEGRESS_PORT\u003e`): The common name for the translator that is used for certificates and\n  signing JWT tokens (default: `k8s basic auth translator`).\n- `INGRESS_PORT` (`-i --ingress-port \u003cINGRESS_PORT\u003e`): Ingress communication port (default: 50051).\n- `EGRESS_PORT` (`-e --egress-port \u003cEGRESS_PORT\u003e`): Egress communication port (default: 50052).\n- `MODE` (`-m --mode \u003cMODE\u003e`): The mode of the translator (possible values: `csv`, `kubernetes`; default: `csv`).\n- `CSV_PATH` (`-c --csv-path \u003cCSV_PATH\u003e`): The path to the CSV file. Required if `MODE` is set to `csv`.\n- `K8S_SECRET_NAME` (`-k --k8s-secret-name \u003cK8S_SECRET_NAME\u003e`): The name of the Kubernetes secret. \n  Required if `MODE` is set to `kubernetes`.\n- `DEBUG` (`-d --debug`): Enable debug logging.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwirepact%2Fk8s-basic-auth-translator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwirepact%2Fk8s-basic-auth-translator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwirepact%2Fk8s-basic-auth-translator/lists"}