Skip to main content

Exposure properties

Changelog

Related documentation#

Overview#

Exposures are defined in .yml files in your models directory (as defined by the source-paths config), nested under an exposures: key. You may define exposures in YAML files that also define define sources or models.

You can name these files whatever_you_want.yml, and nest them arbitrarily deeply in subfolders within the models/ directory.

models/<filename>.yml
version: 2
exposures:  - name: <string>    description: <markdown_string>    type: {dashboard, notebook, analysis, ml, application}    url: <string>    maturity: {high, medium, low}    tags: [<string>]    meta: {<dictionary>}    owner:      name: <string>      email: <string>        depends_on:      - ref('model')      - ref('seed')      - source('name', 'table')
  - name: ... # declare properties of additional exposures

Example#

models/jaffle/exposures.yml
exposures:    - name: weekly_jaffle_metrics    type: dashboard                         # required    maturity: high                          # optional    url: https://bi.tool/dashboards/1       # optional    description: >                          # optional      Did someone say "exponential growth"?        depends_on:                             # expected      - ref('fct_orders')      - ref('dim_customers')      - source('gsheets', 'goals')
    owner:      name: Claire from Data                # optional      email: data@jaffleshop.com            # required
        - name: jaffle_recommender    maturity: medium    type: ml    url: https://jupyter.org/mycoolalg    description: >      Deep learning to power personalized "Discover Sandwiches Weekly"        depends_on:      - ref('fct_orders')          owner:      name: Data Science Drew      email: data@jaffleshop.com
        - name: jaffle_wrapped    type: application    description: Tell users about their favorite jaffles of the year    depends_on: [ ref('fct_orders') ]    owner: { email: summer-intern@jaffleshop.com }