Welcome to the bolt-proxy service repository. If you wish to support bolt protocol in your Kubernetes cluster and authenticate them via ingress service, this bolt-proxy helps you intercept those requests and delegate authentication. This project aims to help everyone using k8 clusters to use this bolt-proxy in order to implement cluster authentication inside of it.
You can set up these flags manually:
Usage of ./bolt-proxy:
-bind string
host:port to bind to (default "localhost:8888")
-cert string
x509 certificate
-debug
enable debug logging
-key string
x509 private key
-pass string
Memgraph password
-uri string
bolt uri for remote Memgraph (default "bolt://localhost:7687")
-user string
Memgraph username (default "")
or set up the env variables:
BOLT_PROXY_BIND
-- host:port to bind to (e.g. "0.0.0.0:8888")BOLT_PROXY_URI
-- bolt uri for backend system(s) (e.g. "bolt://host-1:7687")BOLT_PROXY_USER
-- memgraph user for the backend monitorBOLT_PROXY_PASSWORD
-- password for the backend memgraph user for use by the monitorBOLT_PROXY_CERT
-- path to the x509 certificate (.pem) fileBOLT_PROXY_KEY
-- path to the x509 private key fileBOLT_PROXY_DEBUG
-- set to any value to enable debug mode/logging
Currently, bolt-proxy supports BasicAuth on and AADToken authentication for
Azure. To enable it set the env variable AUTH _METHOD
to one of the possible
authentication methods.
AUTH_METHOD
-- currently onlyBASIC_AUTH
andAAD_TOKEN_AUTH
are supported
Depending on the chosen authentication methods, you will need to define specific environment variables:
BASIC_AUTH_URL
-- URL against which to authenticate clients credentialsAAD_TOKEN_CLIENT_ID
-- ClientID of the resource which you wish to authenticate againstAAD_TOKEN_PROVIDER
-- The Azure authentication provider (e.g. https://login.microsoftonline.com/{tenant_name})
The user should use any client application (mgconsole
, neo4j-client
,
pymgclient
...) to connect to Memgraph and send credentials via bolt protocol.
mgconsole -username user -password password
or mgconsole -username user -password JWT
Thanks to Dave Voutila and his work on bolt-proxy for Neo4js bolt-proxy and for providing a good base and inspiration for this bolt-proxy.
Project is licensed under Apache License 2.0.
The original project made by Dave Voutila is licensed under MIT License.
Copyright 2020 Dave Voutila ([email protected])
Copyright 2023 MEMGRAPH LTD