GraphXR Database Proxy - Secure middleware for connecting GraphXR to databases
Project description
GraphXR Database Proxy
A secure middleware that connects GraphXR to various backend databases with zero trust architecture.
Features
- Zero Trust Security: Strict authentication and authorization at the proxy layer
- Direct Browser Connectivity: REST/GraphQL APIs for efficient data access
- Multi-Database Support: Spanner Graph, Neo4j, and more
- Open Source: Fully auditable and customizable
- Pure Python: Easy to deploy and maintain
⚡ Quick Start for Spanner Graph
git clone https://github.com/Kineviz/graphxr-database-proxy.git
cd graphxr-database-proxy
uv venv
source .venv/bin/activate # or .venv/bin/activate on Windows
uv pip install -e ".[ui]"
uv pip install -r requirements.txt
cd frontend && npm install && npm run build && cd -
graphxr-proxy --ui
- Visit http://localhost:9080/
- Click "Create New Project"
- Project Name: "Test"
- Database Type: "Google Cloud Spanner"
- Authentication Type: "Service Account"
- Upload the credential file you exported from GCP Console or gcloud CLI. Export Instructions
- Select "Instance ID" e.g. "demo"
- Select "Database ID" e.g. "cymbal"
- Select "Property Graph" e.g. "ECommerceGraph"
- Click "Create"
- For the new project, under Actions, copy the API URL. e.g. "http://localhost:9080/api/spanner/Test"
- Go back to GraphXR's Create Project wizard and paste the API URL into GraphXR for a project with a "Database Proxy" database type.
Other ways to start graphxr-database-proxy
Install
# Install from PyPI
pip install graphxr-database-proxy[ui]
# Or from source
git clone https://github.com/Kineviz/graphxr-database-proxy.git
cd graphxr-database-proxy
uv venv
source .venv/bin/activate # or .venv/bin/activate on Windows
uv pip install -e ".[ui]"
uv pip install -r requirements.txt
cd frontend && npm install && npm run build && cd -
pip install -e .[ui]
Configure & Run
Option 1: Web UI (Recommended)
graphxr-proxy --ui
Open http://localhost:9080/admin for configuration
Option 2: Python Code
from graphxr_database_proxy import DatabaseProxy
proxy = DatabaseProxy()
service_account_json = {
"type": "service_account",
"project_id": "your-gcp-project-id",
"private_key": "-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----\\n",
"client_email": "your-service-account@your-gcp-project-id.iam.gserviceaccount.com",
...
}
project_id = proxy.add_project(
project_name="project_name",
database_type="spanner",
project_id="gcp-project-id",
instance_id="spanner-instance-id",
database_id="spanner-database-id",
credentials=service_account_json,
graph_name="graph_name" # Optional
)
proxy.start(
host="0.0.0.0",
port=9080,
show_apis=True
)
🐳 Docker
docker run -d -p 9080:9080 \
--name graphxr-database-proxy \
-v ${HOME}/graphxr-database-proxy/config:/app/config \
kineviz/graphxr-database-proxy:latest
You can visit http://localhost:9080/admin for configuration after starting the container.
🤝 Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Support
- 🐛 Issue Tracker
- 📧 Email: support@kineviz.com
Built with ❤️ by Kineviz
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graphxr_database_proxy-1.0.0.tar.gz.
File metadata
- Download URL: graphxr_database_proxy-1.0.0.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9ea360d85f3b41f01e8eafb7c0bad8db96bd96f77493618ab1e17e26990ab9f
|
|
| MD5 |
1bcc28269a0d0e52d1064b35e0ae264f
|
|
| BLAKE2b-256 |
4e31f0072a8a355f07eab5ba40abfa36809ed21fe743fba7bc94c61b3624ac21
|
File details
Details for the file graphxr_database_proxy-1.0.0-py3-none-any.whl.
File metadata
- Download URL: graphxr_database_proxy-1.0.0-py3-none-any.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c22ff850321fad04257b710193dc4d4859731c8d5ec500119f69e5764c53b2e
|
|
| MD5 |
4ac37d597c39b7093923854fdb2ea665
|
|
| BLAKE2b-256 |
fa4c48657b2b571698abae5400b18d793a11be44a31fef19db8d3abf74df836a
|