.avsc and .proto files whenever changes are pushed to your repository.
This workflow scans for schema files, extracts and combines their fields using the recap-core library, and publishes to Gable’s API as a DATA_STORE component.
For managing data store components in the UI, see Services & Data Components.
1. Set up your repo
This guide assumes the following repo structure. Add your schema files, publishing script, and GitHub Action using this layout (or adapt the guide to fit your repo structure if different).2. Add the scan + publish script
Createscripts/publish_schemas.py.
The script:
- Starts a run to track the relevant
gitinfo - Finds all
.avscand.protofiles underschemas/. - Converts each file to Recap schema format.
- Combines their fields into a single schema.
- Publishes the
DATA_STOREcomponent to Gable’s ingestion API.
3. Configure the API payload
The API expects one POST per schema with this shape:external_component_idis the UUID that the data store component will be stored under in Gable. It can be any stable UUID that uniquely identifies the data store component.run_ididentifies the run associated with the lineage version.external_table_ididentifies the specific schema or table.
4. Add the GitHub Action
Create.github/workflows/publish-schemas.yml:
5. Trigger publish of schemas
To publish schemas automatically, merge changes to.avsc or .proto files into main.
After the workflow runs, confirm that the data store schemas are visible in Gable and that the generated data store component reflects the expected fields.