All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Email notification feature for event alerts with batching (one email per minute maximum)
- Email configuration via
EMAIL_SMTP_HOST,EMAIL_SMTP_PORT,EMAIL_SMTP_USER,EMAIL_SMTP_PASSWORD,EMAIL_FROM,EMAIL_TO, andEMAIL_CONTRACT_FILTERenvironment variables - Email notifications can be filtered by contract ID using
EMAIL_CONTRACT_FILTER - Prometheus metric
soroban_pulse_email_failures_totalfor monitoring email delivery failures - Documentation for email notifications in
docs/email-notifications.md - Contract ID format validation for SSE stream endpoint (
/v1/events/stream) - Database pool metrics to Prometheus endpoint (
soroban_pulse_db_pool_size,soroban_pulse_db_pool_idle,soroban_pulse_db_pool_max) - Separate CI job for integration tests with real PostgreSQL
- CHANGELOG.md and release process documentation
- Server-Sent Events (SSE) streaming with keep-alive pings and automatic reconnection support
- OpenTelemetry distributed tracing support (optional
otelfeature) - Multi-replica advisory lock for leader election and standby failover
- Approximate event count via PostgreSQL statistics for low-latency responses
- Event filtering by type (
contract,diagnostic,system) - Event filtering by ledger range (
from_ledger,to_ledger) - Lua script transformation for event data (optional
luafeature) - Rate limiting per IP address with configurable threshold
- Structured JSON logging support
- Removed
--skip handlers::testsflag from CI test job to run all tests including handler integration tests
- Unversioned routes (
/events,/events/{contract_id},/events/tx/{tx_hash},/events/stream) will be removed in v2.0.0. Use/v1/prefixed routes instead.
- API key authentication support via
Authorization: BearerorX-Api-Keyheaders (optionalAPI_KEYenvironment variable)
0.1.0 - 2026-04-21
- Initial release of Soroban Pulse
- Event indexing from Soroban RPC
- REST API for querying indexed events
- Server-Sent Events (SSE) stream for real-time event notifications
- Prometheus metrics endpoint
- Health check endpoints (
/health,/healthz/live,/healthz/ready) - OpenAPI documentation with Swagger UI
- Database connection pooling with configurable min/max connections
- Rate limiting per IP address
- CORS support
- Structured logging with JSON output option
- OpenTelemetry distributed tracing support (optional feature)
- Docker and Kubernetes deployment configurations
- Comprehensive test suite with integration tests