This page covers both frameworks. The YAML below is the original (SBT Beta) app format; SBT 1.0 additions are described at the end of the page.

Apps are the final publishable product of the SBT workflow. They are a bundle of dependent models that are run together to produce a final set of output tables. Apps are defined in a yaml file under a apps key. The structure of the yaml file is as follows:

apps:
  - name: sql_test_app
    requires:
      - sql_test
      - data_model_test
    config:
      sigma_workbook_id: your_sigma_workbook_id
      sigma_db_attribute: test_db
      freshness_query: fresh

Field

Description

name

The name of the app, must be unique. Used as unique identifier in the Seek platform.

requires

A list of model names that are required for this app. The system will automatically pull all descendent dependencies of these models, so you only need to specify multiple models here if they don't have a dependency between each other.

config.sigma_workbook_id

The id of the Sigma workbook to be used for embedded analytics of this app

config.sigma_db_attribute

The name of the user attribute used in sigma to determine which database to use

freshness_query

The name of the helper query to use to determine the freshness of the app

SBT 1.0 (AppSpec) additions

Apps built on the SBT 1.0 framework add two fields to the app YAML:

apps:
  - name: sql_test_app
    version: 1.0.0
    publisher: your_publisher_key
    requires:
      - sql_test
  • Locked versions. A published version never changes. The latest published version becomes the default for new installs.

  • requirements.txt. Ship a pinned requirements.txt with your app. It is uploaded with the app and built into the app's runtime image. The earlier compute profile concept no longer exists.

  • Python modules folder. Shared Python code lives in a modules folder in your project and is frozen with each app version. No separate package needed.

App-level freshness (SBT 1.0)

An optional max_age setting on the app configuration skips runs whose outputs are still current. See Model Reuse: Freshness and Shared Models.

Related articles