Tags: andrcmdr/cdk-dev-stack
Tags
v0.8.0 - CDK chain SOA backend services toolkit/toolchain version 0.8.0. Summary: Implemented and added comprehensive AWS RDS support as an additional data availability layer with the following features: Key Features: 1. **Configuration-based enablement** - AWS RDS can be enabled/disabled via YAML config 2. **Non-blocking operation** - Local PostgreSQL remains primary; AWS RDS failures don't stop the service 3. **Connection pooling and timeouts** - Proper connection management for AWS RDS 4. **SSL support** - Configurable SSL modes for secure connections 5. **Deduplication** - AWS RDS schema includes unique constraints and upsert logic 6. **Comprehensive indexing** - Optimized indexes for efficient querying 7. **Error handling** - Robust error handling with fallback to local storage Configuration Options: - `enabled`: Enable/disable AWS RDS (0 or 1) - `endpoint`: RDS instance endpoint - `port`: Database port (default 5432) - `database_name`: Target database name - `username`/`password`: Authentication credentials - `region`: AWS region (optional) - `ssl_mode`: SSL configuration (disable, prefer, require, etc.) - `connection_timeout`: Connection timeout in seconds - `max_connections`: Maximum connection pool size - `schema`: Custom schema file for AWS RDS setup Benefits: 1. **High Availability** - Data replicated to cloud infrastructure 2. **Scalability** - AWS RDS can handle larger workloads 3. **Geographic Distribution** - Data can be stored in different AWS regions 4. **Backup and Recovery** - Leverages AWS RDS backup capabilities 5. **Monitoring** - Integrates with AWS CloudWatch for monitoring 6. **Compliance** - Meets enterprise compliance requirements
v0.7.0 - CDK chain SOA backend services toolkit/toolchain version 0.7.0. Events Monitor: Key Features of This Implementation: 1. **Proper Lifetime Management** - Uses `Arc` to share the `TaskManager` between web handlers - Each task gets its own `EventProcessor` instance with owned data - Shutdown channels for graceful task termination - Automatic cleanup of finished tasks 2. **Thread Safety** - `TaskManager` uses `Arc<RwLock<HashMap>>` for thread-safe task storage - Each task runs in its own `tokio::spawn` with proper error handling - Shutdown signals use `oneshot` channels for clean termination 3. **Robust Task Management** - Tasks have proper status tracking (Starting, Running, Stopping, Stopped, Failed) - UUID-based task IDs for uniqueness - Graceful shutdown handling with `tokio::select!` - Database and NATS connections are properly initialized per task 4. **Web API Features** - RESTful API with proper HTTP status codes - Multipart form support for configuration uploads - CORS and tracing middleware - Health check endpoint - Comprehensive error handling 5. **Configuration Flexibility** - Tasks can be created with YAML configurations via API - Optional task naming from config or API - Database schema can be provided via API or file - Environment variable support for server binding 6. **Database Connection Handling** - Since `tokio_postgres::Client` is not clonable, each task creates its own connection - Proper connection lifecycle management - Error handling for database connection failures
v0.6.0 - CDK SOA chain backend services toolkit/toolchain version 0.6… ….0.- Added `json-rpc-fetcher` for exhaustive requests of verfied and unverified contracts data. - Added pagination support to `json-rpc-fetcher` and exhaustive fetching for the whole set of verfied and unverified contracts data.
v0.5.0 - CDK SOA backend services toolkit/toolchain version 0.5.0.- A… …dded contract ABIs fetcher to bootstrap events monitoring and indexers. It form and provides ABIs, with event definitions and event signatues for various use cases. Imroves observability for contract deployments versioning, for security reasons. - Added Events Monitor (ex. Indexer service) for indexing contract events, and decoding all types of events, parameters/inputs, and data types from event logs according to ABI defenitions.
v0.4.0 - CDK Indexer version 0.4.0.- Added new data fields into types… …, and accordingly into DB and NATS modules, and DB schema - chain ID, with control of its correctness through configuration data field, transaction sender (from) and receiver (to), and log hash custom computation.- Added `build_providers()` function to set `RPCProvider` for HTTP and WS RPC, to make WS subscription with simultaneous requests of chain ID and transaction data by transaction hash via HTTP RPC.- Made NATS optionally enabled/disabled.- Pull DB schema `init.sql` script file path from configuration.
v0.3.0 - CDK Indexer version 0.3.0. Uses `Alloy` v1.0.x stack of libr… …aries/crates and addressable/replayable (by from..to block range set in an app configuration file) cursor logic for logs subscription stream. Posting parsed events (according to contract ABI JSON) from log stream to PostgreSQL DB and to NATS JetStream Object Storage. New version included the advanced event decoder from Indexer v0.2.0. Project codebase and libraries stack has been updated to the most recent Alloy 1.0.x versions.
v0.2.0 - CDK Indexer version 0.2.0. Uses `Alloy` library/crate and ad… …dressable/replayable (by from/to block range set in an app configuration) cursor logic for logs subscription stream. Posting parsed events (according to contract ABI JSON) from log stream to PostgreSQL DB and to NATS JetStream Object Storage. Developed a new exhaustive event decoder that can decode any events, including events with event signature in `topic0`, without event signature in `topic0`, i.e. anonymous events, decode indexed event parameters in log topics, and non-indexed event parameters in log data, decode dynamic Solidity types (strings, bytes, arrays) and fixed-size types for log topics (indexed parameters) and log data (non-indexed parameters) as well.
v0.1.0 - CDK Indexer MVP version 0.1.0. Uses `Ethers` library/crate a… …nd addressable/replayable (by from..to block number set in app configuration) cursor logic for logs subscription stream. Posting parsed event parameters (according to contract ABI JSON) from indexed log topics to PostgreSQL DB.