Connections
Configure REST and SMTP connections to integrate Sevro with external services.
What are connections?
Connections are reusable integrations with external services. A workflow node can reference a connection to make HTTP requests, send emails, or call external APIs without hardcoding credentials.
Supported providers
| Provider | Type | Use case |
|---|---|---|
| REST | HTTP | Call any REST API (GET, POST, PUT, PATCH, DELETE) |
| SMTP | Send transactional emails |
Postgres (planned)
Postgres connections are declared in the schema but not yet implemented. They will allow direct SQL queries from workflow nodes.
Creating a connection
Via the CLI
sevro connection create \
--name stripe-api \
--provider rest \
--auth-type bearer \
--config '{"base_url":"https://api.stripe.com/v1"}' \
--credentials '{"token":"sk_live_..."}'Via the API
curl -X POST http://localhost:8080/platform.v1.PlatformService/CreateConnection \
-H "Authorization: Bearer $SEVRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "stripe-api",
"provider": "rest",
"auth_type": "bearer",
"config": {"base_url": "https://api.stripe.com/v1"},
"credentials": {"token": "sk_live_..."}
}'Connection configuration
REST connections
| Field | Description |
|---|---|
base_url | The base URL for all requests (e.g. https://api.stripe.com/v1) |
auth_type | bearer, basic, api_key, or none |
credentials | Auth credentials (token, username/password, API key) |
SMTP connections
| Field | Description |
|---|---|
host | SMTP server hostname (e.g. smtp.gmail.com) |
port | SMTP port (usually 587 for TLS, 465 for SSL) |
auth_type | plain or none |
credentials | Username and password |
sevro connection create \
--name email \
--provider smtp \
--auth-type plain \
--config '{"host":"smtp.gmail.com","port":587}' \
--credentials '{"username":"jack@sevro.dev","password":"app-password"}'Using connections in workflows
Reference a connection by name in a workflow node:
nodes:
- id: charge-card
type: http_request
connection: stripe-api
config:
method: POST
path: /charges
body: |
{
"amount": {{ record.amount * 100 }},
"currency": "gbp",
"customer": "{{ record.customer_id }}"
}
- id: send-receipt
type: send_email
connection: email
config:
to: "{{ record.customer_email }}"
subject: "Receipt for your order"
body: "Thank you for your payment of £{{ record.amount }}."Managing connections
# List all connections
sevro connection list
# Get a specific connection
sevro connection get <connection-id>
# Test a connection (sends a test request/email)
sevro connection test <connection-id>
# Delete a connection
sevro connection delete <connection-id>Security
Connection credentials are encrypted at rest using AES-256-GCM. The encryption key is set via the SEVRO_ENCRYPTION_KEY environment variable. If not set, a dev key is auto-generated (not suitable for production).
Credentials are never returned in API responses — only the connection metadata (name, provider, auth type, config) is visible.
Next steps
- Workflows — use connections in workflow nodes
- Triggers — start workflows on events
- Self-hosting — configure the encryption key in production