Devlog
The latest product updates and changes to Apibara
Reload runtime configurations on changes to project files
When the apibara.config.ts file changes, the runtime configuration is reloaded and all indexers restarted.
Re-export `@apibara/indexer` in `apibara/indexer`
Users now need only to install the apibara
package to implement indexers. All previous exports from @apibara/indexer
are now available in apibara/indexer
.
Add option to override stream's gRPC options
Indexers can now override the default gRPC client options. This is useful for custom authentication schemes or to increase the maximum allowed message size.
Fix live-reload of indexers that exited with an error
We fixed an issue that caused indexers that crashed with an error to not reload correctly.
Add cli command to output machine-readable project information
The new apibara write-project-info
command outputs machine-readable project information in JSON. Use this to get a list of available indexers and presets.
Add source map support for better error reporting
We added source map support to the indexer, which will improve error reporting by showing the original source code instead of the compiled code.
Reconnect on DNA server errors
We changed the indexers to automatically reconnect on DNA server errors.
Fix Drizzle plugin support for TimescaleDB
We fixed an issue with the Drizzle plugin not correctly working with TimescaleDB. Now the reorg-related tables correctly deduce the user's table names.
Add support for 'enum' Starknet events
The Starknet event decoder now supports 'enum' events. This means it's now possible to parse a contract's root events.
Improve DNA message decoder performance
We switched the implementation of the DNA message decoder, resulting in 2x performance improvements. Users streaming large blocks will notice a significant speedup.
Add support for requests hash EVM data
The requests_hash
field (EIP-7685) is present on Ethereum Sepolia streams.
PGLite and pg packages are now a peer dependency
We changed the @apibara/plugin-drizzle
package to lazily load the Node Postgres and PGLite packages.
Quality of life improvements to the CLI
We improved the CLI tool to be more user friendly.
Quality of life improvements to the Drizzle plugin
The Drizzle plugin nows checks that the configuration is correct on startup.
Support more PostgreSQL connection strings
The Drizzle plugin now supports PostgreSQL connection strings starting with postgresql://
.
Add traces to EVM and Starknet streams
The EVM and Starknet streams now include traces. Request them by setting the includeTransactionTrace
filter option.
Fix persistence bug in the Drizzle plugin
We fixed a bug in the Drizzle's persistence plugin that caused the indexer to reconnect using a non-existent starting block, causing a crash loop.
Relax Drizzle's plugins peer dependencies
We relaxed the Drizzle's plugin peer dependencies versions to work in larger monorepo projects.
Fix MongoDB plugin issue on transaction error
We fixed an issue with the indexer crashing if the MongoDB plugin encountered a transaction error.
Move Drizzle plugin internal tables to a separate schema
We moved the Drizzle plugin's internal tables to a separate airfoil
schema, to avoid name collisions.
Show all errors in a stack trace
The CLI now shows all errors in a stack trace, improving debuggability.
Read authentication token from DNA_AUTH environment variable
The indexer now reads an authentication token from the DNA_AUTH
environment variable.
Export network-specific types
We fixed the @apibara/starknet
and @apibara/evm
packages to export some missing network-specific types.
Add instrumentation.ts
Users can now collect and export metrics and traces using OpenTelemetry.
Fix handling of pending blocks in Drizzle and MongoDB plugins
We fixed how pending blocks are handled by the Drizzle and MongoDB plugins. Now data is correctly invalidated between pending blocks.