rakam_project.yml Properties

rakam_project.yml file is an optional config file that allows you to customize the dbt projects. You can parameterize your dbt projects and let other users install dbt projects on their data warehouse using rakam_project.yml file. Your recipe will look like this if you publish it to rakam-recipes


Here is the full list of properties that you can use:

label (2)

By default, the label is the name of dbt_project.yml, if you specify a value here, it will be shown as the label of the recipe.

label: Firebase Analytics

description (3)

description: Analytics models for Firebase BigQuery Export.

image (1)

It's an external URL of an image of the recipe. It's usually convenient to store the image in the GIT repository and use the public URL as follows:

image: https://github.com/rakam-io/recipes/raw/master/firebase/logo.png

tags (4)

If you want to list the recipe under different categories such as Marketing or Product Analytics, you can add tags to your recipe. Here is an example value:

tags: [event-analytics]

Note that the tags must be lowercase, only dash (-) and alphanumeric characters are allowed as tags.


The variables let you to create parameterized dbt projects. The end-users interact with the user interface in order to specify the dbt project variables and you can access them using the var function just like the usual dbt configs. Here is an example:

    label: DataVault Schema
    type: schema
      schema: tenjin
      The Tenjin DataVault Schema that you ingest the data. The schema must have tables such as apps, campaign_buckets, events etc.

It compiles to the following user interface that lets the end-users to select the schema using a dropdown.


The following properties can be defined under variables:


The UI element that will be used. Here are the allowed values for the type of variables:

Type namesDescriptionOptions
numeric, string, booleanprimitive values
dropdown, choicebeing used for allowing the user to select one or more items.options:
multiple: true
choices: []
model, dimension, measurecan be used if you need extra model definitions in your recipe.
table, schema, and table-columncan be used if you want to use it to provide database relations.
targetcan be used if you want the user to select the target a materialized SQL model.
sql: select 1


label: My variable label


label: My variable description


An optional default value for the variable.


If your variable depends on another variable, you can specify the parent as follows:

    label: Event Schema
    type: schema
    type: table
    parent: schema

Once the user select the schema, the tables under the schema will be listed in table variable.


If restricts the recipe to be installed only in specified databases. If your dbt project is uses database-specific syntax, you should specify the databases that supports the syntax that you use as follows:

databases: [postgresql]

You need to use the slug of the database listed in Supported Warehouses page.