๐๏ธ Apps
Apps are packages of Python code, shell scripts, requirements.txt and other config files that you deploy to and manage with Tower. You describe how to package and invoke your app to Tower using a Towerfile.
๐๏ธ Environments
An environment is the context in which your app will be running. It includes the secrets that the app uses to connect to datasets, and the Iceberg catalogs it uses to access Iceberg tables. In Tower, you will always have at least one environment called default. As your data platform grows, you will potentially add environments for integration testing, for production etc.
๐๏ธ Runs
Runs are executions of a particular app version inside a chosen environment.
๐๏ธ Tables
Tower Tables make it easy for users to onboard to Apache Iceberg. They provide methods for accessing and processing tabular and semi-structured data (e.g. tables with nested fields, via the VARIANT data type).
๐๏ธ Models
Tower Models provide easy access to Large Language Models (LLMs) through a unified interface. They abstract away the complexity of different inference providers and model APIs, allowing you to work with local and remote models seamlessly.
๐๏ธ Teams
Teams are shared workspaces that enable groups of users to collaboratively develop and run apps in Tower. By creating a team, you establish a common context where multiple people can access the same Apps, Secrets, and resources.
๐๏ธ Data Agents
A Data Agent is a Tower app that runs a reasoning loop powered by a language model. Based on a user prompt and the results of previous tool calls, the agent decides which tools to invoke next. The "Data" in Data Agent refers to the agent's use of business data - stored in databases like Iceberg - to inform its decisions.