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: freshSee Helpers & the Run Context for more information on helper queries
See Data Freshness for more information on app freshness and how users can interact with it.
🚧 TODO (internal, needs eng confirmation): the Beta example above omits
versionandpublisher, but on current sbt versions (verified 1.0.13, Aug 2026)sbt build-appfails withValidationError ... config.publisher: Field requiredunless 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_testWhere 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.txtwith 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