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).

  1. Get access to the Seek GitLab SBT repository with at least Guest access

  2. Create a GitLab Personal Access Token (PAT) with read_api and read_registry scopes (the permissions the token grants)

  3. Install Python 3.11. New to Python tooling? uv is 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.

  4. 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/simple

Run 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 GUID

Run sbt check-conn to validate your configuration before deploying.

Related articles