We have a handful of custom scripts that build various artifacts required by different components of the various data pipeline components. These should all be handled by the CI/CD pipeline and added to the release's Assets list.
- The SQL Alchemy model is available directly from the assets list as a whl file and can be added to your python distribution using @git+{url} syntax.
- The all artifacts generated by the just site recipe can be found inside the release assets' project_artifacts.zip file.
To trigger the production of these assets, a new release should be created with a semantic version based tag that starts with v: v1.0.0, etc.
A dumb wrapper recipe has been created with dependencies to trigger the production of each of those dbt related artifacts.
This recipe has been added as a dependency of the standard recipe, site.
just dbtExample command to add the model to your uv based python project:
uv add common_access_model@https://github.com/include-dcc/common-access-model/releases/download/0.0.1/common_access_model-0.0.0.post89.dev0+d378cee-py3-none-any.whlPlease note the releases/download/0.0.1 portion of the url. That is to a specific version of the model itself, which is by design. You will need to update your project each time you want to update to a new model.
In a similar fashion, you can install it via pip or add it to your pyproject.toml file using a similar pattern.
Many of our tools rely on the SQL Alchemy models produced using LinkML's SQL Alchemy generator. We've added just recipe's to run build these:
just sqlaThe resulting file is found inside project/sqlalchemy/{model_name}.py
The pipeline utitilies created by the FTD team rely on csv data dictionaries to the target .sql files.
just _gen_ftdddResulting csv files can be found inside: project/data-dictionary/*.csv
Each class from the model and any of the SQL specific join tables will be found in their own file, conforming to the FTD DD Format.
This is a CSV file that contains each enumeration and it's home within the datamodel. It is used by the dbt pipeline utitilies. This is a secondary artifact from the _gen_ftddd recipe.
The resulting file is found inside project/enumerations/model_enums.csv
A complete model that can be immediately dropped into your dbt pipeline can be generated that features various dbt tests based on the model's definition including:
- valid_uri_format
- foreign key target must exist
- uri-or-curie
- multi-column keys
- not null
- unique
- allowable values
The resulting file is found inside project/dbt/src_dev_include_access.yml
The filename is purely a placeholder and should be renamed to whatever makes sense for your needs.