Observed since 20 Oct, 17:58 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A secure and flexible database management system
A secure and flexible database management system that provides both SDK and API access to multiple database types.
AccessNode serves as a unified interface for database operations across PostgreSQL, MySQL, MongoDB, and SQLite, offering both direct Python integration and REST API access.
pip install accessnode-db-manager
# Clone and install with dev dependencies
git clone <repository-url>
cd AccessNode
pip install -e ".[dev]"
from accessnode import AccessNode
# Initialize database connection
db = AccessNode(
db_type="postgres",
database_name="your_db",
host="localhost",
port=5432,
username="user",
password="pass"
)
# Initialize the connection
await db.initialize()
# Execute raw queries
results = await db.raw_query("SELECT * FROM your_table")
# Use built-in operations
user_data = await db.get("users", {"id": 1})
new_id = await db.insert("users", {"name": "John", "email": "john@example.com"})
uvicorn main:app --reload
# Register a user
curl -X POST "http://localhost:8000/user/register" \
-H "Content-Type: application/json" \
-d '{"username": "testuser", "password": "testpass"}'
# Get access token
curl -X POST "http://localhost:8000/user/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=testuser&password=testpass"
curl -X POST "http://localhost:8000/user/databases/setup" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my_postgres_db",
"db_type": "postgres",
"host": "localhost",
"port": 5432,
"database_name": "mydb",
"username": "user",
"password": "pass"
}'
# Enable schema enforcement
db = AccessNode(
db_type="postgres",
database_name="mydb",
enforce_schemas=True,
auto_sync=True
)
# Schema will be automatically managed
await db.initialize()
from accessnode.caching.redis_cache import RedisCache
# Initialize with Redis caching
cache = RedisCache(host="localhost", port=6379)
db = AccessNode(
db_type="postgres",
database_name="mydb",
cache=cache
)
# PostgreSQL
pg_db = AccessNode(db_type="postgres", database_name="pg_db", ...)
# MongoDB
mongo_db = AccessNode(db_type="mongodb", database_name="mongo_db", ...)
# MySQL
mysql_db = AccessNode(db_type="mysql", database_name="mysql_db", ...)
POST /user/register - Register a new userPOST /user/token - Login and get access tokenPOST /user/databases/setup - Configure a new database connectionGET /user/databases - List user's database connectionsDELETE /user/databases/{db_id} - Remove a database connectionPOST /user/database/{db_id}/query - Execute database queriesGET /user/database/{db_id}/tables - List tables in databaseVisit /docs after starting the server for interactive API documentation.
# Install dependencies
pip install -e ".[dev]"
# Set up environment variables
export POSTGRES_USER=your_user
export POSTGRES_PASSWORD=your_password
export POSTGRES_HOST=localhost
export POSTGRES_DB=accessnode_main
# Run all tests
pytest
# Run with coverage
pytest --cov=accessnode
# Run specific test file
pytest tests/test_accessnode.py -v
# Format code
black .
# Sort imports
isort .
# Lint code
ruff check .
# Type checking
mypy accessnode/
AccessNode follows a modular architecture:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
/docs endpoint when running the APIDownload counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.1 | 19 Sept 2025 | 22 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:58 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:5beea4cf7e1ab64c7893a89d808c510a50dae4013317f238eb0fadf7cafee1f6