{"id":29016524,"url":"https://github.com/memgraph/bolt-proxy","last_synced_at":"2025-06-25T22:30:34.317Z","repository":{"id":65331661,"uuid":"379856885","full_name":"memgraph/bolt-proxy","owner":"memgraph","description":"Bolt protocol support for a Kubernetes cluster with authentication via Ingress","archived":false,"fork":false,"pushed_at":"2023-03-03T13:57:09.000Z","size":78,"stargazers_count":24,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-06-20T03:34:50.475Z","etag":null,"topics":["bolt","bolt-protocol","hacktoberfest","hacktoberfest2021","kubernetes","kubernetes-deployment","memgraph","proxy"],"latest_commit_sha":null,"homepage":"","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/memgraph.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-06-24T08:30:10.000Z","updated_at":"2024-03-05T22:42:32.000Z","dependencies_parsed_at":"2024-06-20T03:20:57.434Z","dependency_job_id":null,"html_url":"https://github.com/memgraph/bolt-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/memgraph/bolt-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fbolt-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fbolt-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fbolt-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fbolt-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memgraph","download_url":"https://codeload.github.com/memgraph/bolt-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fbolt-proxy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261962055,"owners_count":23236861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bolt","bolt-protocol","hacktoberfest","hacktoberfest2021","kubernetes","kubernetes-deployment","memgraph","proxy"],"created_at":"2025-06-25T22:30:33.520Z","updated_at":"2025-06-25T22:30:34.271Z","avatar_url":"https://github.com/memgraph.png","language":"Go","readme":"\u003ch1 align=\"center\"\u003e\n   Bolt-proxy\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/memgraph/bolt-proxy/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/memgraph/bolt-proxy\" alt=\"license\" title=\"license\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memgraph/bolt-proxy/actions/workflows/build-and-test.yml\"\u003e\n    \u003cimg src=\"https://github.com/memgraph/bolt-proxy/actions/workflows/build-and-test.yml/badge.svg\" alt=\"build\" title=\"build\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memgraph/bolt-proxy\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg\" alt=\"build\" title=\"build\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?screen_name=memgraphdb\"\u003e\u003cimg\n    src=\"https://img.shields.io/twitter/follow/memgraphdb.svg?label=Follow%20@memgraphdb\"\n    alt=\"Follow @memgraphdb\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nWelcome to the **bolt-proxy** service repository.\nIf you wish to support bolt protocol in your Kubernetes cluster and authenticate\nthem via ingress service, this bolt-proxy helps you intercept those requests and\ndelegate authentication. This project aims to help everyone using k8 clusters to\nuse this bolt-proxy in order to implement cluster authentication inside of it.\n\n## 📋 How to use?\n\nYou can set up these flags manually:\n```\nUsage of ./bolt-proxy:\n  -bind string\n        host:port to bind to (default \"localhost:8888\")\n  -cert string\n        x509 certificate\n  -debug\n        enable debug logging\n  -key string\n        x509 private key\n  -pass string\n        Memgraph password\n  -uri string\n        bolt uri for remote Memgraph (default \"bolt://localhost:7687\")\n  -user string\n        Memgraph username (default \"\")\n```\n\nor set up the env variables:\n\n- `BOLT_PROXY_BIND` -- host:port to bind to (e.g. \"0.0.0.0:8888\")\n- `BOLT_PROXY_URI` -- bolt uri for backend system(s) (e.g. \"bolt://host-1:7687\")\n- `BOLT_PROXY_USER` -- memgraph user for the backend monitor\n- `BOLT_PROXY_PASSWORD` -- password for the backend memgraph user for use by the\n  monitor\n- `BOLT_PROXY_CERT` -- path to the x509 certificate (.pem) file\n- `BOLT_PROXY_KEY` -- path to the x509 private key file\n- `BOLT_PROXY_DEBUG` -- set to any value to enable debug mode/logging\n\n## 🔎 Authentication \u0026 Authorization\n\nCurrently, bolt-proxy supports BasicAuth on and AADToken authentication for\nAzure. To enable it set the env variable `AUTH _METHOD` to one of the possible\nauthentication methods.\n\n - `AUTH_METHOD` -- currently only `BASIC_AUTH` and `AAD_TOKEN_AUTH` are\n   supported\n\n Depending on the chosen authentication methods, you will need to define specific\n environment variables:\n\n - `BASIC_AUTH_URL` -- URL against which to authenticate clients credentials\n - `AAD_TOKEN_CLIENT_ID` -- ClientID of the resource which you wish to\n   authenticate against\n - `AAD_TOKEN_PROVIDER` -- The Azure authentication provider (e.g.\n   https://login.microsoftonline.com/{tenant_name})\n\nThe user should use any client application (`mgconsole`, `neo4j-client`,\n`pymgclient`...) to connect to Memgraph and send credentials via bolt protocol.\n`mgconsole -username user -password password` or `mgconsole -username user\n-password JWT`\n\n## Acknowledgments\n\nThanks to [Dave Voutila](https://github.com/voutilad) and his work on bolt-proxy\nfor Neo4js [bolt-proxy](https://github.com/voutilad/bolt-proxy) and for\nproviding a good base and inspiration for this bolt-proxy.\n\n## License\nProject is licensed under [Apache License 2.0](https://github.com/memgraph/bolt-proxy/blob/main/LICENSE).\n\nThe original project made by Dave Voutila is licensed under [MIT](https://github.com/memgraph/bolt-proxy/blob/main/MIT.license)\nLicense.\n\n```\nCopyright 2020 Dave Voutila (dave@sisu.io)\nCopyright 2023 MEMGRAPH LTD\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Fbolt-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemgraph%2Fbolt-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Fbolt-proxy/lists"}