Apps

The app yaml reference: bundling models into an app, required fields, and SBT 1.0 additions.

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

🚧 TODO (internal, needs eng confirmation): the Beta example above omits version and publisher, but on current sbt versions (verified 1.0.13, Aug 2026) sbt build-app fails with ValidationError ... config.publisher: Field required unless both are present — even for Beta apps. Confirm with the Creator team whether these are now required across both frameworks, then fold them into the example above and remove this note.

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

Where the publisher key comes from. The publisher value is your organization's publisher key. It is created when the Publisher Portal add-on is enabled for your org: Org Management > General > Platform Addons. The key is not currently visible in the UI — it is retrievable via the API. Ask your org admin or your product contact for the value if you don't have API access.

  • 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

⏭️ Next: Sources