Endpoints
Endpoints in Eve are managed connections to external databases, services, and APIs. They provide a unified interface for interacting with various data sources while handling connection pooling, authentication, monitoring, and access control.
What Are Endpoints?
Endpoints are connection abstractions that:
- Establish and manage connections to external databases and services
- Provide unified read/write/transaction interfaces across different database types
- Handle connection pooling and health monitoring automatically
- Integrate with RBAC for fine-grained access control
- Support metadata collection and schema introspection
Endpoint Governance
Every endpoint participates in Eden's shared governance model:
| Layer | Behavior |
|---|---|
| Identity | Requests run under a resolved Eden user, agent, or external OIDC subject. |
| Control-plane RBAC | Endpoint configuration is gated by explicit control-plane permissions. |
| Data-plane RBAC | Runtime read/write/execute access is granted per endpoint or resource. |
| Credential isolation | Backend credentials stay in endpoint configuration or endpoint-level security assignments. |
| Templates, APIs, and workflows | Approved operations can be defined as templates, published as APIs, and orchestrated through workflows. |
| Eve native gateway and transport | Native protocol traffic can pass through Eve-managed listeners and VPN routes where supported. |
| Policy and masking | Endpoint-specific request controls can redact, block, mirror, or route traffic before backend egress. |
| Audit evidence | Eden records safe endpoint, subject, route, policy, and latency evidence. |
Some endpoint kinds add provider-specific connection and request behavior. See the provider page for the configuration and governance controls that apply to that endpoint kind.
Endpoint Categories
Databases
| Type | Endpoint kind | Description |
|---|---|---|
| PostgreSQL | postgres | PostgreSQL-compatible relational databases. |
| MySQL | mysql | MySQL and MariaDB relational databases. |
| SQL Server | mssql | Microsoft SQL Server databases. |
| Oracle | oracle | Oracle Database services. |
| Amazon RDS | rds | Managed AWS relational database endpoints, commonly PostgreSQL-compatible RDS or Aurora. |
| MongoDB | mongo | Document databases using MongoDB connection strings. |
| Redis | redis | Redis-compatible key-value stores and caches. |
| ElastiCache | elasticache | AWS managed Redis-compatible cache clusters. |
| Cassandra | cassandra | Distributed wide-column NoSQL databases. |
| ClickHouse | clickhouse | Columnar analytical databases. |
| Snowflake | snowflake | Snowflake cloud data warehouse access. |
Vector databases are also database endpoints: Pinecone, Weaviate, and the broader vector-store family support retrieval and similarity-search workloads.
LLMs
| Type | Endpoint kind | Description |
|---|---|---|
| LLM Providers | llm | Model providers such as OpenAI, Anthropic, OpenRouter, Ollama, and Azure OpenAI. |
Applications
| Type | Endpoint kind | Description |
|---|---|---|
| Google Workspace | google_workspace | Gmail, Drive, Calendar, Docs, Sheets, and related Workspace APIs. |
| GitHub | github | GitHub repositories, issues, pull requests, and automation APIs. |
| GitLab | gitlab | GitLab projects, repositories, issues, merge requests, and pipelines. |
| Datadog | datadog | Metrics, logs, monitors, dashboards, and observability APIs. |
| PostHog | posthog | Product analytics, events, insights, funnels, trends, and feature flags. |
| Tavily | tavily | Web search and research APIs. |
| Eraser | eraser | Diagram generation APIs. |
| Salesforce | salesforce | Salesforce CRM objects and SOQL workflows. |
Servers, Storage, And APIs
| Type | Endpoint kind | Description |
|---|---|---|
| HTTP Endpoints | http | REST and GraphQL APIs. |
| Amazon S3 | s3 | S3-compatible object storage. |
| AWS Lambda | function | Serverless function invocation. |
Platforms
| Type | Endpoint kind | Description |
|---|---|---|
| AWS | aws | AWS cloud infrastructure operations across services. |
| Azure | azure | Microsoft Azure resource operations. |
| Databricks | databricks | Databricks SQL warehouse and platform access. |
Agents
Agent runtimes consume Eve model endpoints and Adam gateway routes, but their identity and integration configuration lives under Authentication and Agents. This keeps endpoint configuration separate from the human, service, and runtime identities that use it.
Creating Endpoints
PostgreSQL
curl http://{host}:8000/api/v1/endpoints \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"endpoint": "main_postgres",
"kind": "Postgres",
"config": {
"write_conn": {
"url": "postgresql://user:password@host:5432/database"
}
}
}'Redis
curl http://{host}:8000/api/v1/endpoints \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"endpoint": "cache",
"kind": "Redis",
"config": {
"write_conn": {
"host": "host", "port": 6379
}
}
}'MongoDB
curl http://{host}:8000/api/v1/endpoints \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"endpoint": "documents",
"kind": "Mongo",
"config": {
"write_conn": {
"url": "mongodb://user:password@host:27017/database"
}
}
}'HTTP Endpoint
curl http://{host}:8000/api/v1/endpoints \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"endpoint": "external_api",
"kind": "Http",
"config": {
"base_url": "https://api.example.com",
"headers": {
"Authorization": "Bearer api_key",
"Content-Type": "application/json"
}
}
}'Response
{
"status": "success",
"data": {
"id": "main_postgres",
"uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}Database Operations
Reading Data
curl http://{host}:8000/api/v1/endpoints/main_postgres/read \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"query": "SELECT * FROM users WHERE status = $1 LIMIT $2",
"params": ["active", 10]
}'Response:
{
"status": "success",
"data": {
"rows": [
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"status": "active"
}
],
"row_count": 1
}
}Writing Data
curl http://{host}:8000/api/v1/endpoints/main_postgres/write \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"query": "INSERT INTO users (name, email, status) VALUES ($1, $2, $3) RETURNING id",
"params": ["Alice", "alice@example.com", "active"]
}'Response:
{
"status": "success",
"data": {
"rows": [{ "id": 3 }],
"rows_affected": 1
}
}Transaction Operations
curl http://{host}:8000/api/v1/endpoints/main_postgres/transaction \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"operations": [
{
"query": "UPDATE accounts SET balance = balance - $1 WHERE id = $2",
"params": [100.00, 1]
},
{
"query": "UPDATE accounts SET balance = balance + $1 WHERE id = $2",
"params": [100.00, 2]
},
{
"query": "INSERT INTO transactions (from_account, to_account, amount) VALUES ($1, $2, $3)",
"params": [1, 2, 100.00]
}
]
}'Database-Specific Operations
MongoDB
curl http://{host}:8000/api/v1/endpoints/documents/read \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"collection": "products",
"operation": "find",
"filter": {
"category": "electronics",
"price": {"$lt": 1000}
},
"options": {
"limit": 20,
"sort": {"price": 1}
}
}'Redis
# SET operation
curl http://{host}:8000/api/v1/endpoints/cache/write \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"command": "SET",
"args": ["user:123", "{\"name\": \"John\"}"]
}'
# GET operation
curl http://{host}:8000/api/v1/endpoints/cache/read \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"command": "GET",
"args": ["user:123"]
}'Retrieving Endpoint Information
Get Endpoint Details
curl http://{host}:8000/api/v1/endpoints/main_postgres \
-H "Authorization: Bearer $TOKEN"Response:
{
"status": "success",
"data": {
"id": "main_postgres",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"kind": "Postgres",
"config": {
"host": "localhost",
"port": 5432,
"database": "myapp"
},
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
}Note: Sensitive credentials like passwords are not returned in GET responses.
List All Endpoints
curl http://{host}:8000/api/v1/endpoints \
-H "Authorization: Bearer $TOKEN"Updating Endpoints
curl http://{host}:8000/api/v1/endpoints/main_postgres \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PATCH \
-d '{
"config": {
"pool_size": 20,
"connection_timeout": 45
}
}'Deleting Endpoints
curl http://{host}:8000/api/v1/endpoints/main_postgres \
-H "Authorization: Bearer $TOKEN" \
-X DELETEResponse:
{
"status": "success",
"data": {
"id": "main_postgres",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"kind": "Postgres",
"modified_objects": {
"objects": {
"deleted_from_cache": ["endpoint_cache_uuid"],
"deleted_from_postgres": ["endpoint_postgres_uuid"]
}
}
}
}Access Control
Endpoints integrate with Eden's RBAC system:
| Permission Bits | Permissions |
|---|---|
| Admin | Create, update, delete endpoints; full data access |
| Write | Read and write data operations |
| Read | Read-only data access |
Grant Access
curl http://{host}:8000/api/v1/iam/control/endpoints/my_database/subjects/user@company.com \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT \
-d '{"perms":"R"}'Error Handling
Connection Timeout
{
"error": "Connection timeout",
"details": "Failed to connect to database within 30 seconds",
"suggestion": "Check network connectivity and database availability"
}Invalid Query
{
"error": "SQL syntax error",
"details": "Syntax error at or near 'SELCT'"
}Insufficient Permissions
{
"error": "Access denied",
"details": "User does not have Write access to endpoint",
"perms": "R",
"required_level": "Write"
}Pool Exhaustion
{
"error": "Connection pool exhausted",
"details": "All connections in use",
"suggestion": "Increase pool_size or optimize query performance"
}Best Practices
Connection Configuration
- Pool Sizing: Start with 10-20 connections, monitor and adjust
- Timeouts: Set appropriate connection and query timeouts
- SSL/TLS: Always use encrypted connections in production
Query Optimization
- Parameterized Queries: Always use parameterized queries to prevent SQL injection
- Connection Reuse: Leverage connection pooling for better performance
- Transaction Scope: Keep transactions as short as possible
Security
- Least Privilege: Grant minimum necessary access levels
- Credential Rotation: Rotate database credentials regularly
- Audit Logging: Monitor all database operations
Monitoring
- Health Checks: Implement regular connection health checks
- Performance Metrics: Track query performance and connection usage
- Error Alerting: Set up alerts for connection failures
Related
- Organizations - Organization management
- Endpoint Governance - Shared endpoint policy model
- Role-Based Access Control - Access control for endpoints
- Workflows - Automating database operations
- Transactions - Cross-database transactions