Development Release - dev
Pre-release
Pre-release
Bug Fixes
- Handled groupby with no dimensions fields (#68)
firstflag inCacheIteratorwas not set correctly (#101)CacheIteratordescending from past db end (#105)- Fix cache changes on update operation (#116)
- Benches report missing the comparison (#183)
- Fix schema validation when only some tables are used (#174)
- Wait until all schema initialized before start grpc server (#187)
- Secondary index key should never be empty (#200)
- Make dynamic server optional
- Redirect events to the right endpoint (#206)
- Db settings + schema checkpointing (#227)
- Remove
all featuresflag in coverage (#255) - Synchronize termination among multiple sources (#257)
- Remove array types (#259)
- Fix file path for snowflake benchmark (#297)
- Dont define snowflake as default feature for dozer-admin (#304)
- Rely on cache instead of events (#308)
- Use badge from main branch (#327)
- Simplify Aggregator test (#338)
- Update
serial_testto0.9.0because the old version depended (#344) - Use source based coverage and ignore
../*(#347) - Reduce schema update calls for snowflake ingestion (#358)
- Numbers were serialized as strings in REST API (#369)
- Fix config folder location for rustdoc (#372)
- Allow conversion from null when field is nullable (#371)
- Seconary index was not calculated properly during querying (#366)
- Add param experimental_allow_proto3_optional as default when compiling protoc (#342)
- Implement proper timeout handling in sql tests (#378)
- Single
order_byquery didn't work (#375) order_bywithout range filter didn't work (#382)- Handle NULL in cache (#391)
- Support for NULL and Decimal in SUM() aggregator (#394)
- Retrieve old record from db in sqlite tests (#392)
- Criterion build, remove build dependency (#356)
- Fix bench functions (#403)
- Implement NULL support for SQL expressions (#405)
- Reuse connection (#412)
- Update changes structure (#415)
- Fix coverage tests configs (#416)
- Remove conflicting parameters from tests sources config (#417)
- Bring back notifier which was wrongly removed in getdozer#407 (#424)
- Display error of dozer app (#429)
- Revert replication slots check query changes (#433)
- Readonly
LmdbCachedidn't open secondary index databases (#439) - Handle eth data conversion for longer strings and fix a few orchestrator errors (#446)
- Handle event name conflicts (#449)
- Fix RDS user validation for postgres replication (#454)
- Cache benchmark was panicking because duplicated insertion (#461)
- Unwrap errors from pipeline (#460)
- Synchronize commits across multiple sources (#471)
- Fix schema initiation and port mapping in new source builder (#486)
- Hanging dag tests (#494)
- Increase max readers on lmdb cache (#497)
- Improve errors (#498)
- Readme (#502)
- Broken link in readme (#504)
- Synchronize sources startup (to pre-populate
RecordReader) (#511) - Propagate errors from connector threads. (#517)
- Oapi schema was not generated correctly (#545)
- Propagate nullables along SQL schema (#546)
- Update samples with public ecr image (#551)
- Fix postgres replication messages handling on update (#550)
- Id in
LmdbCachecan be duplicated for different records (#568) - Remove duplicate dependencies and bump a few libs. (#571)
- Display user friendly postgres connection failure (#573)
dozer-testscould not be started due to last renaming refactor (#579)- Generate descriptor once per init (#591)
- Handle error return from thread when intialize grpc + rest (#581)
- Typos and links in proto files (#593)
- Fix eth e2e test. Update primary key mismatch error message. (#598)
- Examples and Readme (#617)
- Count APIs should default to no limit (#623)
- Discord notification blocked because PR is from public fork (#630)
- Dozer-api test utils was generating inconsistent schema and record (#635)
- Count API still used default limit when query string is empty (#634)
- Schema id was not copied to records before inserting (#636)
- Allow text fields being used in full text index (#639)
- Generate full text index for
Stringfields (#638) - Ignore unused sources for pipeline (#646)
- Copy schema id to records before letting cache handle it (#649)
- Fix sql parsing panic and statements being silently ignored (#642)
- Need
ignore_pipeline_branch_filtersto trigger when pushes are disabled (#662) - OnEvent is not propagating data in some scenarios with postgres (#637)
- Don't pass commit message to BuildKite. (#665)
- Update issue template config with parent item (#677)
- Change mapping of sqlite data type to dozer data type (#689)
CONCAT()to support multiple arguments (#690)- Unify typed service
queryandon_eventrecord representation (#647) - Implement record versioning in
RecordWriterandRecordReader(#682) - Fix minor snowflake connector issues (#681)
- Print unknown command error and continue (#671)
- Forbid duplicated cte names (#703)
- Use context to solve alias properly (#708)
- Fix snowflake connector (#745)
- Unable clean untagged images for now (#752)
- Fix source with empty columns list validation (#714)
serde_stris needed to bincode deserializeDecimal(#757)- Don't commit when no source produces new op (#669)
- Fix stream exist check for tables (#754)
- Architecture diagram (#758)
- Fix snowflake stream consumption (#765)
ApiEndpointis not serializing all fields (#776)- Ethereum end to end test (#779)
- Integration tests required
dozer-testsimage when using local runner (#778) - Clear PK from Projection output (#780)
- Fix record delete when duplicated words are in string field (#800)
- Fix usage of decimal with trailing zeros (#810)
- Fix e2e tests and hanging epoch manager test (#812)
- Rephrase error when primary key is missing (#813)
- Buildkite integration test for eth e2e case (#841)
- Datafusion connector compilation (#891)
TypedServicedidn't filter events based on endpoint (#899)- Fix connector ls command of object storage connector (#884)
- Use correct path builder for local storage (#924)
- Buildkite integration test didn't get
ETH_HTTPS_URLenv var (#945) - Fix
eth-tracese2e test and temporarily removeeth_unione2e test (#952) - Health check should not return
NotServingwhendynamicisfalse(#923) - Config in e2e test
flags_dynamic_false(#953) - Fix discord notifications. (#967)
- Variable usage in discord (#975)
- Fix
release.ymlidentation (#983) - Add epsilon to distance test case (#981)
- Don't create default connector config (#964)
- Discord notification on push to
main(#998) - Remove leaked in
eth_unione2e case (#997) - Eth blocks parse fails (#1004)
- Invalid column error (#1008)
- Remove schema unwrap (#1010)
- Fix snowflake table name validation (#1011)
- Fix snowflake schema helepr import (#1014)
- Fix replication slot check (#1031)
- Remove non-existent proto include, which made cargo always rerun (#1064)
- Record readers not inserted in release builds (#1068)
timestamp,point,decimalsupport for grpc (#1060)- Select * wildcard (#1080)
- Fix convert from jsonb to dozer type (#1086)
- Fix check of supported tables in postgres (#1075)
- Clean dozer on start because blue/green cache is not switched correctly (#1091)
- Fix order of columns in schema (#1090)
- Primary key field conversion from REST url (#1097)
- Sort schemas by sources order from dozer config (#1095)
- Use same progress bar style (expect for color) for source and sink (#1100)
- Updated download_binary (#1107)
- Sink should only be built after all source checkpoints are checked (#1112)
- Blue cache was counted with limit. Green cache didn't get picked up. (#1123)
- Define unique temp folder for aggregation tests (#1124)
- Groupby without measures were handled wrongly (#1127)
- Add postgres columns validations and connector test (#1035)
- Ingestion via Arrow (#1141)
load_multi_sourcestest was not implemented correctly (#1146)- Remove table name property usage in deltalake connector (#1155)
- Fix compilation error introduced in getdozer#1158 (#1183)
- Add sources names used in the query (#1190)
- PK was not automatically when
GROUP BYis used (#1193) - Fix publication slot creation (#1202)
- Lmdb environments should use the same map size (#1216)
- Restore Docker build (#1218)
- Broken e2e tests by various PRs (#1235)
- Fix postgres validation with schemas usage (#1243)
- Don't panic if operation cannot be read from indexing thread. (#1247)
- Broken link (#1268)
arrow::Invervalis not supported in data conversion but supported in type converion (#1295)- Derived builder (#1297)
- Fix data conversion issues in local storage (#1301)
- Use cdc type "nothing" when no PK defined (#1307)
- Postgres
BITis supported in type conversion but not value conversion (#1305) - Fix error handle in processor (#1325)
- Division by zero error handling (#1324)
- Update .deb url doc (#1333)
- Multimap single item removal (#1336)
- Api should use read only cache manager (#1346)
- Switch join order for empty cases (#1348)
- Openssl dependecies as features (#1358)
- README Ubuntu instructions (#1367)
- Fix web config usage in auth grpc service (#1380)
- Minor error while running with
duration(#1388) - Update resolution atomicity and stream operations. (#1390)
- Grpc error caused by duration (#1395)
- E2e tests write to directories that are not removed (#1407)
- Type validation (#1405)
- Use
tokio::time::sleepinstead ofstd::thread::sleep(#1413) - Api thread graceful shutdown (#1416)
- Use proper error message for postgres replication slot creation (#1422)
- Use rustls reqwest (#1443)
- Uuid postgres type support (#1458)
- Add Record missing fields (#1525)
- OpenTelemetry must be initialized in a tokio runtime (#1541)
- OpenTelemetry tracing not working because of Jaeger batch exporter. (#1549)
- Update style of progress bar (#1567)
- Map grpc call error to proper error (#1570)
- Numeric (10, 2) (#1583)
- Tests behind the feature flag "mongodb" didn't run on ci (#1593)
api_desiredandapi_availableshould be optional (#1602)- Fix file names sent to cloud (#1607)
- Log client didn't authenticate itself (#1620)
- Include progress printer only when cloud feature enabled (#1635)
ApiEndpoint::conflict_resolutionandApiEndpoint::versionwas not serialized (#1643)- Get a deterministic Processor id (#1665)
- Index in ui graph (#1671)
- Use
rustlsfor tls support when connecting to postgres (#1502) - Fix date conversion when date is more precise (#1682)
- Append only (#1673)
- Avoid include snapshot event in metrics count (#1686)
- Remove secrets value and add secrets support in deploy command (#1697)
- Show error when app id is not stored (#1699)
- Collide metric key, change to cache_operation_log for OperationLog feat (#1687)
- Ignore a failing test. Fix is in progress. (#1709)
- Write commit epoch to log (#1711)
- Handle rest path collision (#1693)
- Properly log error when internal pipeline server can't be started (#1715)
--config-overrideswas not exposed in cli (#1743)- Use different slot name everytime when dozer connects to postgres (#1742)
- Dont serialize app name if it is missing (#1746)
- Log reader was duplicating records that were persisted (#1750)
- Fix config generation and log output in init command (#1754)
- Replication log could panic if received request during persisting (#1759)
- Delete config file after delete of app (#1766)
- Add missing flags and comments in list and logs commands (#1767)
- Show warning when metadata collect failed (#1772)
- Fix config combination with separated sql scripts (#1773)
- Fix target url from cli args usage (#1774)
- Truncate credentials file when new profiles added or updated (#1783)
- Fix display of missing app error (#1784)
From<Record>ofProcessorRecorddidn't copy lifetime (#1789)- Temporary Remove python log s390x build (#1807)
- Custom enum row detection, support different type Coalesce (#1802)
- Fix inconsistent prost enum tag annotation (#1817)
- Don't hardcode s3 storage region (#1822)
- Should use tokio mutex in async context (#1842)
- Support uploading empty multipart file to s3 (#1846)
- Mark log creation to avoid writing to old log version (#1850)
- Don't start api until internal server is up (#1861)
- Should not panic if source sender errors out because of channel error (#1864)
- Start dozer live ui server (#1874)
Chore
- Add build folder to ignored list for coveralls (#296)
Documentation
- Add build dependences in README (#96)
- Update postgres requirements (#307)
- Include kill_cache=1 param (#370)
- Add gRPC proto file documentation (#477)
- Include contributing section (#609)
- Update logo (#633)
- Init connector README (#872)
- Add type conversion spec in API (#1313)
- Add react sample URL reference (#1491)
- Update sample table & other references (#1652)
Features
- Init ingestion postgres
- Reorganise into a mono repo (#6)
- Merge pipeline code (#7)
- Merge api (#8)
- Implement first version of storage (#17)
- Refactor connector * iterator behavior (#24)
- Update issue templates
- Implement type conversion for postgresql (#25)
- Implement basic cache operations (#48)
- Implement secondary indexes (#49)
- Implement query bench (#50)
- Implement proper schema id usage in snapshotter and refactor mapping (#51)
- Implement simple orchestrator (#61)
- Init dozer ci (#77)
- Include concurrency and multiple restore keys (#82)
- Implement multi ingestion sources (#78)
- Implement continue of replication messages stream handling (#94)
- Dozer-api REST (#86)
- Allows to specify state store options (#112)
- Add
FullTextIndexType(#121) - Multi-key indexer for state store (#127)
- Implement e2e tests (#130)
- Supports for transactions across multiple threads (#132)
- Implement auth module and middleware (#109)
- Implement the Aggregation Builder (#129)
- Remove schema registry (#138)
- Implement plan generation (#149)
- Write github action for Long running tests, Performance benchmarks, Code vulnerability, Code coverage etc (#146)
- Add import google libs when generate proto with special type (#165)
- Implement schema validator for postgresql (#128)
- Implement indexed record store (#181)
- Implement eth connector (#178)
- Implement cursor modify operations (#182)
- Introduce generic GRPC queries (#194)
- Support descending fields in sorted inverted index (#202)
- Implement release process (#204)
- Shareable transactions (#186)
- Validate postgres connection details and replication availability (#143)
- Implement stateful sources (#219)
- Improve cli and pipeline experience. (#226)
- Implement time threshold for checkpointing (#228)
- UCASE() support for scalar function (#218)
- Implement batched writer for cache (#230)
- Integrate odbc connector for snowflake (#191)
- Init test framework (#247)
- Implement checkpointing v1 (#254)
- Associate a unique integer id to every record. (#232)
- Use
Iteratorin cache query (#264) - Product Processor (#220)
- Notify processors and sinks before commit (#266)
- Implement prefix-aware transaction (#271)
- Implement debezium connector (#246)
- Implement build script for dozer-admin (#295)
- Support query using multiple index scans (#314)
- Support selective columns usage of source (#323)
- Support for key/value based aggregators (#340)
- AVG/MIN/MAX support for Float and Int (#341)
- Support filter in grpc event stream (#334)
- Decimal support for Aggregators (#348)
- Timestamp & Date support in MIN/MAX aggregator (#361)
- Implement schema mapping for snowflake (#364)
- Migrate to static schema
- Implement get_schema for debezium (#374)
- Implement Application to facilitate the binding of sources + pipelines (#383)
- Replace seqno with txid/seq_in_tx to support checkpoint recovery (#389)
- Resume execution for check-pointed state store (#390)
- Implement schema registry support for debezium (#386)
- Notify source_id, txid, seq_in_tx to processors and sinks (for cache commit propagation) (#400)
- Implement tracing (#351)
- Implement cli experience for dozer admin (#368)
- Implement validation for tables and columns names (#425)
- Add home_dir configuration in dozer config + api + pipeline + cache (#413)
- Parse abi and events and publish as tables (#440)
- Move streaming to pipeline server (#414)
- Pretty print schema (#452)
- Implement benchmarking for postgres (#458)
- Grpc authentication layer (#451)
- Implement eth sample and tests (#470)
- Add
prepare()method in Dag (#483) - Implement init cli command (#482)
- Make push events optional (#493)
- /health endpoint for rest and grpc (#495)
- Implement
RecordWritersupporting automatic rowkey generation (#530) - Support join operator (#476)
- Implement
TRIM()(#540) - Support for field aliases in SQL (#552)
- Implement interactive REPL for viewing sources and testing data (#558)
- Map replication types with output port types (#547)
- Implement continue for postgres ingestion (#515)
- Support LIKE operator (#582)
- Add
countAPI (#588) - Add validation step to init command (#578)
- Support CAST operator (#592)
- Support UInt in aggregation (#654)
- Implement ingestion continue for eth and fix minor issues (#661)
- Add and use table name from table info struct (#670)
- Implement nested queries and CTE. (#680)
- Support bpchar column type (#687)
- Atomatically trim record history in
RecordWriter(#699) - Add sql_date support to snowflake integration (#721)
- Implement direct insert to cache pipeline (#744)
- Select wildcard (#746)
- Implement stream creation on views in snowflake (#749)
- Change app config to support source name in api endpoints (#762)
- Implement multi-way JOIN (#729)
- Adding commit SHA for ECR image tag for release (#787)
- Adding commit SHA for ECR image tag for release (#789)
- Implement basic continue for ingestion in snowflake (#775)
- Support LEFT/RIGHT JOIN (#788)
- All nodes use the same instant for commit timeout (#807)
- Refactor sql to be common across sources (#803)
- Stateful pipeline for sources without PK (#817)
- Introduce DataFusion Connector (#808)
- Return record id in common grpc query (#879)
- Add record version to push and pull query results (#896)
- Return id and version in gRPC query. Include version in push events. (#900)
- Return record id and version in REST API (#898)
- Support $after expression for pagination (#908)
LmdbCacheManagerand endpoint as an alias (#919)- Generate graph (#911)
- Integrate dashboard (#917)
- Support python udf (#927)
- Add geo point and coord type support (#912)
- Include id in grpc event stream (#963)
- Expose Pipeline config (#946)
- Math support for UInt (#933)
- Set operator lmdb support (#961)
decimalandbinarysupport for grpc (#1015)- Parse yaml (#996)
- Implement start from in postgres connector (#994)
- Add
RoCacheEndpoint::redirect_cache. (#1027) - Enhance python udf (#984)
- Support timestamp diff (#1074)
- Blue green cache (#1061)
- DAY_OF_WEEK() + SQL extensive type support for operations (#1076)
- Implement progress for sources (#1079)
- Read data from postgres snapshot in parallel (#1094)
- Switch to new cache if it processed enought number of operations (#1092)
- Implement arrow format for grpc ingestion (#1087)
- Add
LmdbMap(#1151) - Add
LmdbMultimap(#1153) - Support deltalake connector (#1067)
SEToperatorsrecord_mapintoCountingBloomFilter(#1168)- Window processor (#1175)
- Add operation log to cache (never cleaned up now) (#1172)
- Implement date extract (#1178)
- Implement tracing using open telemetry (#1176)
- Separate cache operation log environment and index environments (#1199)
- Asynchoronous indexing (#1206)
- Implement schema support for postgres (#1070)
- Add object store validation (#1140)
- Resolve sink and processor errors (#1267)
- Handle grpc API errors gracefully (#1289)
- Make sources optional (#1318)
- COALESCE() support (#1342)
- Implement ExecutionLog on
fs🚀 (#1356) - Implement authorization in gRPC methods (#1375)
- U128 and i128 Field and FieldType (#1315)
- Add snapshotting started message to ingestion process (#1377)
- Read object store files in parallel (#1381)
DurationField&FieldTypesupport (#1374)Durationfor sql representation + aggregation support (#1384)- SQL Logic Test Framework (#1326)
- Implement APIs for monitoring and status updates (#1329)
- Use record hash as key when schema has no primary index (#1399)
- Implement js log bindings (#1424)
- Implement python log bindings (#1426)
- Support loading dozer config from an url. (#1440)
- Switch to postgres for admin database (#1444)
dozer deploycommand (#1435)- Make secondary index configurable (#1461)
- Allow disabling of grpc & rest apis via config (#1441)
- Now() (#1467)
- Add support for cloud list and status methods (#1507)
json&jsonband their array type support (#1200)- Last version check (#1518)
- Count(*) sql support (#1520)
- Send files list with contents in cloud deploy call (#1523)
- Add Record lifetime (#1453)
- Run migration only when necessary (#1515)
- Allow starting API on selected migration number (#1530)
- Add expression support in TTL (#1529)
JSON_VALUE()&JSON_QUERY()sql support (#1526)- Api server can continue cache building from checkpoint (#1538)
- Add update and delete for cloud APIs (#1544)
- Add metrics for cache (#1551)
- Add public service provide metadata for cli - dozer cloud login (#1553)
- Implement monitoring command (#1559)
- Display progress of cloud deployment (#1566)
- Add stop app in cloud call (#1572)
- Add filters and pagination to command (#1573)
- Show revision and version information in
cloud status(#1574) - Support version management (#1575)
- Update cloud proto to create connection and source manually (#1584)
- Add phase endpoint (#1585)
- Return endpoint paths at REST API root (#1587)
- Add
cloudconfiguration to Dozer config (#1586) - Add
dozer cloud version status {version}command (#1588) - Update
LogMessageRequestandLogMessageto include follow option and the log source (#1590) - Create empty directories for lambdas and queries during init (#1591)
- Add
cloud deploy -nanddozer cloud update -n(#1597) - Add
cloud api set-num-replicas(#1598) - Implement error threshold for processor and sink errors (#1596)
- Add deployment number to get status proto file (#1600)
- Implement
logs -fandlogs -d deployment(#1605) - Dozer cloud login (#1604)
- Emit metrics of source operations and pipeline latency (#1610)
- Emit Product processor metrics (#1611)
- Refactor kafka connector to use schema registry (#1622)
- Add more cache metrics (#1627)
- Implement progress printer and disable time display (#1630)
- Implement cache dump and restore (#1637)
- Switch to rdkafka (#1636)
- Add api latency metric (#1642)
- Allow use kafka without schema registry (#1626)
- _text (#1645)
- Add data latency metrics. (#1650)
- CASE statement (#1656)
- Support generate UI graph from dozer config (#1661)
- Implement append-last watcher (#1562)
- Pg tls config connectivity (#1672)
- Add cloud secrets API interfaces to cloud.proto (#1689)
- Qualified wildcard (#1674)
- Store app id to context file (#1691)
- Implement secrets commands (#1695)
- Implement log replication server core (#1710)
- Support json files for cloud deployments (#1714)
- Support InList clause in streaming SQL (#1694)
- Support read of configs from multiple files (#1718)
- Show deployment logs from deploy API (#1731)
- Implement config override (#1736)
- MAX_VALUE(expr1, expr2) (#1733)
- Serve replication log on internal grpc server (#1722)
MIN_VALUE()implementation + unit tests (#1740)- Show correct error when organisation doesnt exist (#1756)
- Use config argument in deploy command (#1758)
- Emit sql graph (#1765)
- Add new label
snapshottingtocache_operationmetric (#1737) - Register errors from error manager in jaeger (#1753)
- Refactor records (#1781)
- Marker file detection for object storage (#1790)
- Allow to use client properties in login command (#1813)
- Synchronize GrpcConfig with proto and add phase in AppResponse (#1830)
- Implement live code reload experience. (#1826)
- Udf onnx config placeholder (#1831)
- Add
list_endpointsto internal server (#1823) - Publish DAG to JSON (#1824)
- Dowload and use dozer-live ui (#1848)
- Replace jaeger with xray (#1862)
- Implement graph on live ui (#1847)
- Introduce MySQL Connector (#1829)
Fix
Miscellaneous Tasks
- Include lock file
- Refactor name and minor changes (#16)
- Convert REST to GRPC (#20)
- Fix warnings (#63)
- Fix schema insert and warnings (#72)
- Remove sql scripts (#76)
- Run on every branch
- Use slices instead (#79)
- Fix dozer.yaml (#84)
- Restore branch after refactor (#81)
- Switch error management to anyhow (#85)
- Fix clippy warnings (#88)
- Add log4rs file + logging for processors (#90)
- Improve ci build time (#89)
- Generate schema_id in Sink (#98)
- Make clippy mandatory (#99)
- Refactor cache params (#104)
- Use
unwrapinstead of?in tests. - Record.get_value() returning Result (#115)
- Moved files (#122)
- Inject pipeline_details (#123)
- Make minor improvements to CLI experience. (#135)
- Remove debug messages (#141)
- Make run the default command (#142)
- Refactor indexes into multiple dbs (#167)
- Use 1.64.0 (#177)
- Introduce array types, uint and remove record type (#175)
- Refactor ingestion to connectors & ingestor (#179)
- Introduce a few orchestrator improvements (#184)
- Switch to stable (#188)
- Remove duplicate
get_keymethod (#195) - Remove an unnecessary unwrap (#196)
- Fix channel & safe generation (#198)
- Bulid secondary index key only from values. (#197)
- Use ipv4 address as default for grpc (#203)
- Update nightly benches script (#201)
- Re-export get_connector (#208)
- Reorganize files (#261)
- Add license (#262)
- Remove
secondary_indexesfromSchema(#263) - Fix snowflake test (#303)
- Add openssl install instruction to README (#312)
- Delete secondary indexes on record deletion (#315)
- Fetch query results chunk by chunk when calculating intersection (#321)
- Get rid of prost-wkt (#333)
- Add timeout limit for github actions (#329)
- Serialize
order_byto an object (#360) - Add gRPC and REST load testing script (#355)
- Remove unnecessary PortHandle argument from sink set_input_schema() (#373)
- Use same
Fieldserialization across modules (#363) - Implement tests in dozer admin (#328)
- Restructure dozer config yaml (#352)
- Use custom composite key serialization instead of bincode (#381)
- Modify CI tasks on main (#402)
- Check download script exit status (#408)
- Remove
valuesfield ofSchema(#409) - Fix new clippy lints in rust 1.66 (#411)
- Remove
FieldType::Null(#410) - Remove spurious sort options test case (#419)
- Remove
SortDirectionfromSortedInvertedindex definition (#421) - Add test for
CommonService(#426) - Add cache e2e tests (#418)
- Run test that depends on mongodb behind a feature flag (#428)
- Remove dozer-admin config in root folder (#430)
- Use mongodb as optional dependency instead of dev dependency (#432)
- Move
EventTypetodozer.types(#444) - Remove
Nullfrom field type proto (#443) - Remove unused import (#442)
- Propagate error to process exit status (#448)
- Make executor core traits
Debug(#480) - Remove dag executor termination barrier (#481)
- Improve configuration experience (#472)
- Template update and fix readme (#457)
- Check home_dir in init and clean (#489)
- Update sample to use init command (#491)
- Refactor
RecordWriterto support multiple strategies (#505) - Disable e2e tests (#512)
- Bundle script setup dozer-admin + ui (#485)
- Disable e2e tests (#520)
- Remove unused fields in
StateWriter(#519) - Handle internal server error gracefully (#525)
- Refactor scalar functions error reporting and validation + LENGTH() / CONCAT() / TRIM() implementation (#523)
- Test both single process and separate process use scenario of dozer (#526)
- Implement separate
to_[type]()forField(#531) - Add
Field::as_*andField::to_*unit tests (#533) - Publish docker images and upload to s3 (#528)
- Don't build dozer in test execution. Use env var for finding binary. (#544)
- Include general workflow for discord (#559)
- Noify discord (#563)
- Check for duplicate connection name in
AppSourceManager(#564) - Change some
unwraps toexpects to explain why it's safe (#574) - Ignore
dozer-tests/*when counting coverage (#575) - Enable building pre-release on main (#577)
- Add description for docs generated (#594)
- Remove some
Pathtostrconversion (#596) - Remove some unnecessary clones (#605)
- Delete unused source file (#606)
- Rename
dozer inittodozer migrate(#595) - Add
authenticate_server_reflectionflag (#597) - Improve progress bar experience and error messaging (#615)
- Fix primary key logic (#618)
- Fixed v1 to original link (#629)
- Update proto file as matching update from dozer-types (#631)
- Update inline documentation (#645)
- Check name only contract is to be decoded (#652)
- Tag preleases as
devand releases aslatest(#659) - Add pipeline and container for building and running
dozer-testson Buildkite (#643) - Include tag in Discord release notification (#660)
- Enable coverage on PR (#663)
- Download prebuilt grcov from public S3 bucket and enable cache (#666)
- Bump sqlparser to v0.30.0 (#686)
- Fix typo query_sqllite to query_sqlite (#693)
- Support for generic schema context in
Sink,ProcessorandSourcefactories (#705) - Expand sql tests (#706)
- Replace
field_extract_*macros withField.to_*in aggregators (#732) - Delete useless code in planner (#735)
- Fix formatting issues (#743)
- Add release script copy for snowflake (#747)
- Don't cancel jobs on
mainto avoid red crosses (#777) - Prepare release v0.1.6 (#796)
- Restore examples (#797)
- Remove duplicate schema and context in
DagSchemas(#804) - Panic hooks prints backtrace when it's enabled (#819)
- Fix dag issues (#818)
- Update docs (#822)
- Update
dozer-tests/README.md(#827) - Update with reformatted config (#823)
- Integrating sql planner (#811)
- Add debug assertion for empty primary index (#820)
- Include github token when installing protoc on ci (#835)
- Improve Join processor errors (#831)
- Include health in reflection (#828)
- Move
SourceStatestodozer-types(#871) - Remove unused connector function (#852)
- Make lmdb cache query module private (#878)
- Change diagram (#885)
- Remove redundant para (#886)
- Remove unused struct
OperationEvent(#832) - Add github star line (#892)
- Don't hold
AccessFilterinCacheReader. Don't holdCacheReaderorApiEndpointinApiHelper(#894) - Fix get of table info (#901)
- Remove unused dependency that caused a cargo warning (#915)
- Refactor orchestrator and implement new connectors (#932)
- Add
Source::can_start_fromwith placeholder implementation (#929) - Use pull_request_target instead (#977)
- Remove review comment (#978)
- Introduce python feature flag (#982)
- Remove python udf e2e test (#987)
- Update connectors readme table layout (#943)
- Fix proto definitions (#991)
- Update discord notification format of pull requests. Also notify issue comments. (#1003)
- Include source error in
ListingPathParsingError(#1005) - Print sink processing speed, in number of operations per sec (#1006)
- Remove
cargo test connector_e2e_because there's no test. (#1007) - Don't fail discord notification when PR has no comment (#1026)
- Refactor grpc types (#1036)
- Timestamp difference (#1096)
- Add authors to packages (#1102)
- Move
SnapshottingDoneout ofOperationso processors don't have to know it.(#1103) - Don't create default eth provider (#1108)
- Remove an unused
Arc<RwLock>(#1106) - Provide context to
ApiErrors (#1109) - Add installation to and remove docker instructions from README (#1110)
- Add remove unnecessary libraries remove (#1113)
- Don't run coverage on
pull_request_target(#1116) - Use 16 cores runner for coverage and release, 4 cores runner for lint (#1118)
- Use correct proto include path to avoid rebuilding every time (#1115)
- Fix docker image publishing steps in release workflow (#1120)
- Remove some unnecessary
clones (#1131) - Fix clippy (#1138)
- Add missing ignore flags (#1144)
- Remove
TableInfo::table_nameandTableInfo::id. Remove parameter ofConnector::get_tables. (#1145) - Include security (#650)
- Bump sqlparser v0.31.0 (#1137)
- Use
LmdbMapandLmdbMultimapinstead of raw database in cache (#1156) - Remove checkpoint from
Sink(#1171) - Remove
Record::get_hashed_primary_keyand use primary key instead (#1191) - Bring back debug schema consistency check. Remove complex type used in test (#1187)
- Introduce another e2e test (#1194)
- Update readme (#1222)
- Remove unnecessary debug statements (#1232)
- Inlcude context in
ListingPathParsingError(#1186) - Include links to samples (#1241)
- Rename
TableInfotoListOrFilterColumnsand move to connector module (#1246) - Include links to samples (#1241) (#1214)
- Use full commit sha as docker image tag (#1238)
- Add specification for connectors (#1251)
- Rename admin types (#1276)
- Hint
cache_max_map_sizeconfig in error message (#1275) - Handle errors properly (#1279)
- Log datafusion read error (#1293)
- Remove unused
idinPostgresConnector(#1298) - Refactor SQL operations unit tests with proptest (#1287)
- Print field name on schema mismatch (#1300)
- Check map size before creating lmdb environment (#1303)
- Ignore sql join sample integration test because of lmdb crash (#1308)
- Remove
dozer-storagedependency fromdozer-core(#1319) - Enable sql join e2e test (#1339)
- Add deb name to orchestrator cargo.toml (#1338)
- Remove unused spin loop in
run_all. Sleep in spin loop of api thread. (#1341) - Round
cache_max_map_sizeto multiple of page size (#1347) - Change an error log to debug log (#1343)
- Include env variables in cache benchmark (#1350)
- Fix duplicate sources (#1353)
- Run integration test in Github instead of buildkite (#1372)
- Remove protobuf dependency from deb (#1383)
- Don't cancel e2e runs on
main(#1391) - Use
CacheWriteOptionsinstead ofConflictResolution(#1393) - Use a single tokio runtime for everything (#1417)
- Use correct runtime for internal pipeline thread (#1418)
- Refactor as dozer-log crate (#1420)
- Add deb generation to release process (#1432)
- Remove unnecessary
workspace.exludeinCargo.toml(#1430) - Make
AccessFilter::fieldsoptional (#1436) - Only build
dozerbinary in release workflow (#1447) - Remove dozer-admin package (#1448)
- Reexport two actix crates from
dozer-api(#1451) - Add get status method to admin proto service (#1450)
- Change error message for
CustomTypeNotSupported(#1459) - Remove DCO (#1470)
- Add
dozer-log-pythonREADME and CI (#1471) - Move log related code to
dozer-typesanddozer-log. (#1474) - Fix dozer-log-python cross compilation (#1475)
- Don't run dozer-log-python workflow on PR and pushes to
main(#1478) - Rename admin to cloud (#1477)
- Remove outdated example (#1481)
- Add CI for publishing
doer-log-js(#1476) - Rename
dozer_logtopydozer_log(#1482) - Remove unused dependency
fp_rust(#1486) - Mention Dozer Log bindings in README (#1487)
- Rename pyproject name from
dozer-log-pythontopydozer_log(#1485) - Change cloud command and make minor changes in cloud proto (#1489)
- Remove
FieldBorrow(#1501) - Let actix web handle json deserialization (#1504)
- Put the table prints behind "info" (#1509)
- Add cloud feature flag (#1513)
- Recover
update_record_when_primary_changestest (#1517) - Upgrade deltalake to
0.8.0(#1531) - Create documentation_improvement.md issue template (#1542)
- Don't write ansi color to file (#1545)
- Add a missing cloud feature gate (#1552)
- Add
HomeDir::list_endpoints(#1554) - Remove status update method from internal pipeline server (#1560)
- Json arrow conversion support (#1514)
- Update proto model matching dozer types (#1563)
- Call
start_dozerondozer cloud update(#1556) - Add grpc endpoint for cloud to support develop ui (#1565)
- Remove unused
optionalincloud.proto(#1576) - Add delete files (#1577)
- Rename "revision" to "deployment" (#1579)
- Don't show progress bar or log color when not outputting to tty (#1580)
- Use dev environment endpoint as the default cloud target url (#1581)
- Remove logging to file (#1589)
- Rename dozer-orchestrator to dozer-cli (#1592)
- Add repository url to cloud proto and rename id to app_id (#1594)
- Include "x-dozer-server-name" in response header (#1599)
- Update Company Response metadata (#1603)
- Show status of all api servers (#1601)
- Add token param incase access config endpoint by Rest URL at server 8082 (#1615)
- Emit special error message for
MapFull(#1618) - Remove maturin sccache because it keeps failing (#1623)
- Cloud api endpoint now includes protocol (#1614)
- Remove extra
http://before cloud deployment endpoint (#1625) - Add instance type to cloud config (#1629)
- Rollback changes for kafka connector feature flag (#1639)
- Read metadata during cache dump transaction creation (#1641)
- Add kafka to docker image (#1644)
- Enhance response for UI render (#1648)
- Add name fn for ProcessorFactory for UIDag in Cloud (#1658)
- Update default cloud target url (#1667)
- Send CI env to metadata (#1669)
- Add error message for wrong !Table config format for Parquet and CSV (#1675)
- Run CI scripts on merge groups instead of on pushes to main (#1683)
- Group CUD operation in cache/source as single metric and differentiate by label instead of 6 separate metric (#1684)
- Add id in processor factory to support query metric on UI (#1685)
- Fix typo in source manager app test (#1700)
- Use
Utf8PathinHomeDir(#1702) - Login to aws when running coverage job (#1708)
- Add more context for metric api-latency (#1713)
- Print in the schema if a field is primary key (#1717)
- Set bucket for histogram (#1723)
- Rename num replicas to num api instances (#1725)
- Edit kafka feature with snowflake docker image release flow (#1730)
- Remove outdated file (#1741)
- Update commands descriptions (#1739)
- Synchronize schema change (#1744)
- Added toolchain toml to pin version (#1749)
- Enhance label metrics for api_count and api_requests (#1752)
- Rename more
migratetobuild(#1755) - Remove deprecated command line arguments (#1757)
- Bump semver from 6.3.0 to 6.3.1 in /dozer-log-js (#1735)
- Remove
Schema::identifier(#1776) - Update geo to use latest stable Rust (#1785)
- Remove unused trait
ExpressionExecutor. (#1787) - Include column name in
InvalidColumnerror (#1791) - Update arrow version and its ecosystem to 42 (#1793)
- Remove unused function
ProcessorRecord::extend_referenced_fields(#1788) - Change
make_from!infrom_arrowto func to improve readability (#1792) - Remove unused
Orchstratortrait (#1797) - Split
ApiInitErrorout fromApiError(#1798) - Remove
AppSourceIdwhich is no longer used (#1803) - LogClient automatically retries on network error (#1811)
- Add
SourceFactory::get_output_port_nameto simplify ui graph generation (#1812) - Add
phaseandlast_errortoDeploymentStatus(#1818) - Start 0.1.33 dev (#1828)
- Add autdit field created_at updated_at (#1836)
- Rename
err_thresholdtoerror_threshold. Remove unused parameter. (#1837) - Add "persist" message to pipeline (#1841)
- Move
Epochfromdozer-typestodozer-core(#1843) - Start v0.1.34 dev (#1845)
- Remove dead code (#1853)
- Start v0.1.35 dev (#1870)
- Remove short form of
enable_progressbecause it's conflicting withdozer cloud(#1876) - Enable
push_eventsby default (#1877) - Add
Accessdeserialization test forAllvariant (#1878) - Add flag to disable live ui for local development (#1880)
Performance
- Don't use bincode comparator for single field sorted inverted index (#233)
- Remove unnecessary clones in gRPC service (#353)
- Only consult epoch manager when commit is needed (#508)
- Remove
RwCache::insert_schemaso we don't read the db on every insert (#947) - Remove usage of nested lmdb transaction (#1084)
- Optimize cache insertion and query when schema is append only (#1192)
- Put indexing thread pool to idle if indexes are up to date (#1320)
- Use
MDB_APPENDwhen possible (#1362) - Replace
Vec<u8>withu64in join lookup table to save memory (#1795) - Optimize memory usage for
Lifetime(#1796)
Refactor
- Refactor e2e (#64)
- Improve cache interface (#83)
- Build Processing logic on Schema update (#92)
- Dynamic schema support for groupby (#95)
- Remove references to lmdb::Database (#100)
- Use dynamic query value instead of field (#117)
- Migrated to thiserror for dozer-sql and dozer-core (#124)
- Introduce typed errors (#125)
- Refactor errors and reuse exported libs (#126)
- Encapsulate arc in lmdb-sys and tests cleanup (#134)
- Change
IndexDefinitionfromstructtoenum(#147) - Remove state store (#180)
- Unify the Expression builders (#160)
- Change reader and writer intialization. (#212)
- Remove rocksdb and global counter (#235)
- SUM, COUNT Aggregator like scalar function (#245)
- Use a single tokio runtime for apis (#260)
- Implement explicit type conversion for gRPC methods. (#302)
- Sum aggregator (#300)
- Refactor features usage in tests (#306)
- MIN/MAX aggregator (#346)
- Aggregator tests (#376)
- Aggregation execution (#384)
- Use static schema (#385)
CacheSinkrespectscommit(#407)- README + Examples (#345)
- Minor fix with folder structure (#427)
- Remove lmdb abstraction in
dozer-core(#456) - Use Pipeline builder (#469)
- Move dag executor implementation to separate files (#490)
- Remove out-of-context arguments in
Sink::prepare()(#492) - Added error msg for primary key missing/mismatching (#513)
- Readme with banners + remove unused readmes (#610)
- Discord notification (#694)
- Put
pipeline_mapintoQueryContext(#731) - Clean untagged ECR Images (#727)
- Expression parsing refactor to support nested aggregations (#715)
- Only persist checkpoint states of relevant sources. (#774)
- Use
daggyfor the underlying data structure ofDag(#790) - Simplify
Daginterface and moveNodeHandleinsideNodeType(#798) - Don't try to get schema of unconnected ports (#801)
- Make
LmdbRoCacheandLmdbRwCacheSendandSync(#821) - Split execution dag construction and execution (#842)
- Move metadata to DAG node. Don't create new node storage until execution (#846)
- Remove unused struct
PipelineDetails(#883) - Rename data fusion connector to object store (#881)
- Parse generated proto file on
TypedServiceconstruction (#895) - Refactor admin models (#888)
- Cleanup
runningflag and excessiveIngestorcloning (#916) - Reduce duplication of code & more clone prevention (#922)
- Make tables vector required for connector start (#1058)
- Simplify schemas fetch query (#1114)
- Pipeline memory storage (#1135)
- Comparison errors (#1163)
- Drop multi schema support (was not correct anyway) in cache (#1159)
- Finalize
Connectorinterface (#1233) - Average (#1262)
- Product Processor parallel join execution (#1180)
- Stop using lmdb
NO_LOCKflag. (#1337) - Remove
Record::version. AddversiontoCacheRecord. (#1392) - Asyncify connectors (#1409)
- Store schema of sinks separately (#1423)
- Don't check for insert conflict when schema has no primary index (#1452)
- Create an api directory for every endpoint (#1497)
- Start a new migration when dozer restarts (#1503)
- Arrow conversion function (#1532)
- Remove raw config from cloud deploy API payload (#1533)
- Change errors structure for cloud (#1568)
- Add proper error handling for cloud service grpc errors (#1569)
- Traits in
dozer-corereturnBoxedErrorinstead ofExecutionError(#1595) - Improve CLI experience (#1703)
- Show more information when configuration not found (#1734)
- Make config helper public (#1775)
- Remove nested record ref. Add
ProcessorRecordStore(#1835)
Testing
- Fix snowflake test case (#258)
- Implement basic tests for postgres ingestion (#343)
- Disable snowflake tests (#506)
- Add basic e2e test framework (#522)
- Check gRPC health in e2e test (#527)
- E2e: Add endpoint and schema expectation (#529)
- E2e: Validate REST schema (#569)
- E2e: Rewrite framework to use prebuilt docker container (#567)
- Run all integration tests instead of only postgres (#782)
- Integrate docker containers to connectors unit tests (#980)
- Add tests for snowflake (#1016)
- Add tests for local storage (#1030)
- Run postgres tests on github actions and add snowflake support (#1037)
- Run e2e test locally on PR (#1239)
- Add ny taxi sample to e2e tests (#1263)
LocalStoragebasic test (#1290)- Add
DataReadyConnectorTestand implementLocalStorage(#1296) - Add sql integration tests (#1282)
- Add postgres connector sample to e2e tests (#1278)
- Add postgres data type test (#1299)
- Add cud test suite and implement for postgres (#1309)
- Add integration test on Github runner (#1371)
- Implement integration test on Github runner (#1378)
- Add flights e2e scenario (#1425)
- Test dozer-log-python CI (#1473)
- Removed duplicate types (#1780)
- Provide a MySQL service for CI coverage tests (#1879)
Ci
- Introduce labeler workflow
- Introduce labeler workflow.v1
Deps
- Upgrade rustyline to 11.0.0 (#1613)
Dozer-admin
- Adapt new ui structure (#211)
Ref
- Groupby refactor + processor impl (#56)
Support
Contact us at https://getdozer.io