Setting Up SBT
Install SBT, then configure your project with sbtconf.toml: connections, API tokens, and runtime overrides.
SBT is a Python package stored in the GitLab Package Registry. To install it you need a GitLab Personal Access Token (PAT).
Get access to the Seek GitLab SBT repository with at least Guest access
Create a GitLab Personal Access Token (PAT) with
read_apiandread_registryscopes (the permissions the token grants)Install Python 3.11. New to Python tooling?
uvis a tool that installs Python and manages packages for you. We recommend it. Follow the official uv installation guide. Python's built-in installer, pip, also works.Run the install command below with your PAT replacing the
<your_personal_token>placeholder
pip install sbt==1.0.10 --index-url https://__token__:<your_personal_token>@gitlab.com/api/v4/projects/54902832/packages/pypi/simpleRun sbt --help in your terminal to confirm the install and see available commands.
Pin a specific version
"Pinning" means installing one exact version. That is what the ==1.0.10 part of the install command does. SBT never updates itself, so your tools stay exactly the same until you deliberately upgrade by rerunning the install command with a new version number. Feature minimums: SBT 1.0.7+ for bundled sources and row-level security parameters, SBT 1.0.10+ for model visibility. After a platform release, check announcements for the recommended SBT version, then uninstall and reinstall with the new pinned version.
Included tooling (SBT 1.0)
SBT 1.0 installs the AWS command line tool as a dependency. It syncs your app files to cloud storage during builds. No separate setup is needed.
Configuring your project
SBT commands look for a configuration file named sbtconf.toml in the root of your project. (TOML is a simple text format for settings files. You edit it with any text editor.) Run sbt init-config to create one. It walks you through setting up one block of configs, and you can customize the file afterward to support multiple configurations.
TOML file structure
The config file has two types of blocks: dbcon blocks hold Snowflake connection parameters, and seek blocks hold a Seek API host and token.
Switching between configurations
SBT uses the default property to pick a configuration. For database commands, pass --dbcon <name> (like --dbcon dev). For Seek API commands, pass --environment <name>.
Seek API token
Commands that talk to the Seek API need an API key in your sbtconf.toml. To create one, see API Keys.
Sample TOML structure
default="dev" # The default configuration to use
[dbcon.dev] # SF connection called dev
use_sso=true
seek_sf_account=
seek_sf_user=
seek_sf_wh=
seek_sf_db=
seek_sf_schema=
seek_sf_role=
[dbcon.stg] # SF connection called stg
use_sso=false
seek_sf_account=
seek_sf_user=
seef_sf_pass=
seek_sf_wh=
seek_sf_db=
seek_sf_schema=
seek_sf_role=
[seek.dev] # Seek API connection called dev
seek_api_host=https://cloud-api-dev.seekinsights.com
seek_api_token=
default_org= # org GUID
[seek.stg] # Seek API connection called stg
seek_api_host=https://cloud-api-stg.seekinsights.com
seek_api_token=
default_org= # org GUIDRun sbt check-conn to validate your configuration before deploying.