Jinjat uses dbt Core under the hood. It uses FastAPI as web framework in backend and support Streamlit and Refine as front-end. The Refine integration generates a Refine project (which can be backed by Remix, Next.js as well) and uses JsonForm to generate the layout. Jinjat relies on your OpenAPI spec defined in dbt resources files for each operation.
When you send a request to Jinjat, it will:
- Validate the request with your OpenAPI spec.
a. Jinjat returns exception with
400status code in case the request is not valid.
- Apply pre-hook tranformations if defined.
- Compile Jinja in your dbt analysis.
jinjat.request()macro will return the validated request properties such as
- Execute the SQL query in your dbt target.
- Validate the response with your OpenAPI spec.
- Apply post-hook tranformations if defined.
- Return the result back to the user in JSON format.