Eden-MDBS (Multiple Database Management System) is a unified API platform for managing and interacting with multiple database types and external services. It provides a single interface for querying databases, managing access control, and automating operations across your data infrastructure.
Eden supports:
Relational Databases:
NoSQL Databases:
External Services:
An organization is the top-level container that provides multi-tenant isolation. Each organization has its own set of users, endpoints, templates, and workflows. Organizations are completely isolated from each other.
Eden uses JWT (JSON Web Token) authentication:
Authorization: Bearer header for all API requestsToken expiration is configured by your Eden administrator. You can check the exp claim in your JWT token to see when it expires. Use the /api/v1/auth/refresh endpoint to get a new token before expiration.
Yes. Eden automatically detects whether you're logging in with a string username or a UUID. Both work with the same login endpoint.
An endpoint is Eden's abstraction for a database connection. It wraps the connection configuration, handles pooling, and integrates with RBAC. A database is the actual data store that the endpoint connects to.
Yes. You might want separate endpoints with different connection pool sizes, timeouts, or access control configurations.
Eden separates read and write connections to support read replicas. For simple setups, you only need write_conn. For read-heavy workloads, you can configure separate read replicas.
Eden has four hierarchical access levels:
| Level | Permissions |
|---|---|
| Read | View resources and execute read-only operations |
| Write | Read + execute write operations |
| Admin | Write + manage users, endpoints, templates |
| SuperAdmin | Admin + manage other admins, organization config |
Yes. RBAC permissions can be set per-resource. A user might have Read access to one endpoint and Write access to another.
Resource-specific permissions override organization-level permissions. If a user has organization-level Write access but Read access on a specific endpoint, they'll only have Read access to that endpoint.
Always use parameterized queries:
# Safe - use parameters
curl http://{host}:8000/api/v1/endpoints/mydb/read \
-H "Authorization: Bearer $TOKEN" \
-d '{"query": "SELECT * FROM users WHERE id = $1", "params": [123]}'Never concatenate user input into queries.
/read - For SELECT queries and other read-only operations/write - For INSERT, UPDATE, DELETE, and other data-modifying operationsUsing the correct endpoint helps with connection routing (if you have read replicas) and RBAC enforcement.
Yes. Use the /transaction endpoint to execute multiple operations atomically:
curl http://{host}:8000/api/v1/endpoints/mydb/transaction \
-H "Authorization: Bearer $TOKEN" \
-d '{
"operations": [
{"query": "UPDATE accounts SET balance = balance - 100 WHERE id = 1"},
{"query": "UPDATE accounts SET balance = balance + 100 WHERE id = 2"}
]
}'All operations succeed or all are rolled back.
Templates provide:
A single template targets one endpoint. For multi-endpoint operations, use workflows to orchestrate multiple templates.
Eden uses Handlebars syntax for parameter substitution:
SELECT * FROM users WHERE status = '{{status}}'
{{#if limit}}LIMIT {{limit}}{{/if}}Check that:
Bearer This means your token is valid but you don't have permission for the requested operation. Contact your administrator to request appropriate access.
Try:
This means all connections in the pool are in use. Options:
All responses are JSON. Successful responses include:
{
"status": "success",
"data": { ... }
}Error responses include:
{
"error": "Error Type",
"message": "Detailed error message"
}Rate limiting is configurable by your Eden administrator. When enabled, you'll receive 429 Too Many Requests responses if you exceed the limit. Check the X-RateLimit-* headers for current limits.
http://{host}:8000/swagger-ui/http://{host}:8000/api-docs/openapi.jsonContact your Eden administrator for support with your specific deployment.
Report issues through your organization's support channels. Include: