Implement the persistence layer changes following #19191. This PR handles writing and reading stats to the new stream stat_table and columns in the existing sync_stats table. At the same time we introduce upserts of stats records - i.e. merge updates into a single record - in preparation for real time stats updates vs the current approach where a new stat record is always written. There will be two remaining PRs after this: - First PR will be to fully wire up and test the API. - Second PR will be to actually save stats while jobs are running.
airbyte-api
Defines the OpenApi configuration for the Airbyte Configuration API. It also is responsible for generating the following from the API spec:
- Java API client
- Java API server - this generated code is used in
airbyte-serverto allow us to implement the Configuration API in a type safe way. SeeConfigurationApi.javainairbyte-server - API docs
Key Files
- src/openapi/config.yaml - Defines the config API interface using OpenApi3
- AirbyteApiClient.java - wraps all api clients so that they can be dependency injected together
- PatchedLogsApi.java - fixes generated code for log api.