Endpoints
EndpointsCopied!
Endpoints in Eden are powerful integration interfaces that establish secure, managed connections to external systems and data sources. Built on gRPC (Google Remote Procedure Call), endpoints provide high-performance, bidirectional streaming capabilities with strong typing and efficient serialization.
Understanding EndpointsCopied!
An endpoint represents a configured connection to an external system such as:
-
Databases (SQL, NoSQL, time-series)
-
Message queues (Kafka, RabbitMQ, MQTT)
-
APIs (REST, SOAP, GraphQL)
-
File systems (local, cloud storage)
-
IoT devices and industrial systems
-
Enterprise applications (CRM, ERP, SCM)
Each endpoint encapsulates the connection details, authentication credentials, and protocol specifications needed to communicate with the external system. This abstraction simplifies integration by providing a uniform interface for diverse systems.
Endpoints in Eden go beyond simple connection strings by including:
-
Connection pooling and management
-
Automatic reconnection capabilities
-
Protocol translation and adaptation
-
Performance monitoring and metrics
-
Security credentials management
-
Rate limiting and throttling capabilities
Managing EndpointsCopied!
-
Create an Endpoint:
POST /endpoints
-
Creates a new connection configuration to an external system
-
Requires specifying the endpoint type, connection parameters, and authentication details
-
Connection is validated during creation to ensure it functions correctly
-
Returns a unique identifier that represents this endpoint
-
-
Get Endpoint Details:
GET /endpoints/{endpoint}
-
Retrieves the current configuration and status of an endpoint
-
Includes connection status, last connection time, and usage metrics
-
Sensitive information like passwords may be redacted
-
Useful for troubleshooting connection issues
-
-
Delete an Endpoint:
DELETE /endpoints/{endpoint}
-
Permanently removes an endpoint configuration
-
Closes any active connections to the external system
-
Removes all associated credentials and configuration data
-
Does not affect the external system itself, only Eden's connection to it
-
Any workflows or templates referencing this endpoint will fail and need updating
-
Using Endpoints for Data ExchangeCopied!
Eden's endpoints provide a uniform interface for data exchange regardless of the underlying system, simplifying integration across diverse technologies.
-
Read Data:
POST /endpoints/{endpoint}/read
-
Retrieves data from the external system via the endpoint
-
Uses gRPC for efficient, typed data exchange
-
Supports both query-based retrieval and subscription-based streaming
-
Can transform data during retrieval to normalize formats
-
Applies access controls to limit data visibility
-
-
Write Data:
POST /endpoints/{endpoint}/write
-
Sends data to the external system via the endpoint
-
Supports transactions for ACID-compliant systems
-
Handles batch operations for improved performance
-
Validates data against schema before transmission
-
Provides detailed feedback on write operations
-
API ReferenceCopied!
Create Endpoint
-
URL:
/endpoints
-
Method:
POST
-
Headers Required: Authorization with JWT token
-
Request Body: Endpoint schema input
-
Success Response: 200 OK with endpoint details
Get Endpoint
-
URL:
/endpoints/{endpoint}
-
Method:
GET
-
Headers Required: Authorization with JWT token
-
URL Parameters:
-
endpoint
: The ID of the endpoint
-
-
Success Response: 200 OK with endpoint details
Delete Endpoint
-
URL:
/endpoints/{endpoint}
-
Method:
DELETE
-
Headers Required: Authorization with JWT token
-
URL Parameters:
-
endpoint
: The ID of the endpoint
-
-
Success Response: 200 OK with confirmation message
Read from Endpoint
-
URL:
/endpoints/{endpoint}/read
-
Method:
POST
-
Headers Required: Authorization with JWT token
-
URL Parameters:
-
endpoint
: The ID of the endpoint
-
-
Request Body: Endpoint API request
-
Success Response: 200 OK with read response
Write to Endpoint
-
URL:
/endpoints/{endpoint}/write
-
Method:
POST
-
Headers Required: Authorization with JWT token
-
URL Parameters:
-
endpoint
: The ID of the endpoint
-
-
Request Body: Endpoint API request
-
Success Response: 200 OK with write response
Endpoint Types and CapabilitiesCopied!
Eden supports a wide range of endpoint types, each with specialized capabilities:
-
Database Endpoints
-
Support for SQL, NoSQL, and time-series databases
-
Query execution with parameter binding
-
Transaction management
-
Schema introspection
-
Data migration capabilities
-
-
Messaging Endpoints
-
Publish/subscribe operations
-
Queue management
-
Message filtering and routing
-
Guaranteed delivery options
-
Dead-letter queue handling
-
-
API Endpoints
-
REST, SOAP, and GraphQL support
-
Authentication handling
-
Request/response mapping
-
Rate limiting
-
Circuit breaking for resilience
-
-
File System Endpoints
-
File reading and writing
-
Directory operations
-
Stream processing for large files
-
Event-based file monitoring
-
Compression and encryption options
-
-
IoT and Device Endpoints
-
Protocol adaptation (MQTT, CoAP, OPC-UA)
-
Device discovery
-
Telemetry collection
-
Command sending
-
Edge processing capabilities
-
Common Configuration PatternsCopied!
Database Connection with Connection Pooling
{
"name": "ProductionPostgreSQL",
"type": "postgresql",
"connection": {
"host": "db.example.com",
"port": 5432,
"database": "production"
},
"authentication": {
"type": "username_password",
"username": "${ENV_DB_USER}",
"password": "${ENV_DB_PASSWORD}"
},
"settings": {
"poolSize": 20,
"idleTimeout": 60,
"maxLifetime": 1800,
"ssl": true,
"sslMode": "verify-full",
"sslCert": "${ENV_SSL_CERT_PATH}"
},
"advanced": {
"statementTimeout": 30,
"queryLogging": true,
"preparedStatements": true
}
}
REST API with OAuth Authentication
{
"name": "CrmApiEndpoint",
"type": "rest",
"connection": {
"baseUrl": "https://api.crm.example.com/v2",
"defaultHeaders": {
"Accept": "application/json",
"User-Agent": "Eden Integration/1.0"
}
},
"authentication": {
"type": "oauth2",
"tokenUrl": "https://auth.crm.example.com/oauth/token",
"clientId": "${ENV_CRM_CLIENT_ID}",
"clientSecret": "${ENV_CRM_CLIENT_SECRET}",
"scopes": ["read:contacts", "write:contacts"]
},
"settings": {
"timeout": 30,
"retries": 3,
"retryDelay": 1000,
"rateLimiting": {
"enabled": true,
"requestsPerMinute": 100
}
},
"advanced": {
"circuitBreaker": {
"enabled": true,
"failureThreshold": 5,
"resetTimeout": 30
},
"caching": {
"enabled": true,
"ttl": 300,
"cacheableOperations": ["GET"]
}
}
}
Message Queue for Event Processing
{
"name": "OrderEventsQueue",
"type": "kafka",
"connection": {
"bootstrapServers": ["kafka-1.example.com:9092", "kafka-2.example.com:9092"],
"consumerGroup": "order-processing"
},
"authentication": {
"type": "sasl_scram",
"username": "${ENV_KAFKA_USER}",
"password": "${ENV_KAFKA_PASSWORD}"
},
"settings": {
"topics": {
"consume": ["orders.new", "orders.updated", "orders.cancelled"],
"produce": ["orders.processed", "orders.failed"]
},
"consumerSettings": {
"autoOffsetReset": "earliest",
"enableAutoCommit": false,
"maxPollRecords": 100
},
"producerSettings": {
"acks": "all",
"compressionType": "snappy",
"batchSize": 16384
}
},
"advanced": {
"schemaRegistry": {
"url": "https://schema-registry.example.com",
"auth": {
"username": "${ENV_SCHEMA_REG_USER}",
"password": "${ENV_SCHEMA_REG_PASSWORD}"
}
}
}
}
Best Practices for Endpoint ManagementCopied!
-
Security First
-
Use environment-specific credentials
-
Implement the principle of least privilege for service accounts
-
Regularly rotate credentials
-
Audit endpoint access regularly
-
-
Performance Optimization
-
Configure appropriate connection pool sizes
-
Set reasonable timeouts
-
Use batch operations when possible
-
Implement caching for frequently accessed data
-
-
Resilience Engineering
-
Configure retry policies
-
Implement circuit breakers for unstable systems
-
Set up alerting for endpoint failures
-
Create fallback mechanisms for critical operations
-
-
Monitoring and Maintenance
-
Track endpoint performance metrics
-
Set up alerting for anomalies
-
Regularly test endpoint connectivity
-
Document endpoint dependencies and owners
-