Resource
Every entity defined in Tangram OS can be considered a resource—such as a database table, a workflow, an application, or a storage bucket.
Resource Type
Each resource is associated with a Resource Type, which defines its classification and behavior within the system.
A Resource Type in Tangram OS is composed of an application identifier and a resource type name.
The application identifier follows the format:
<application namespace>/<application name>
For example: com.clickhouse/clickhouse, where:
com.clickhouse
is the application namespaceclickhouse
is the application name
The resource type name defines the specific kind of resource, such as Table
.
Putting it all together, the fully qualified Resource Type for a ClickHouse table in Tangram OS is:
com.clickhouse/clickhouse/Table
Resource Type Scope
In Tangram OS, a Resource Type can be defined within the scope of a parent Resource Type. This hierarchical structure provides contextual containment for resources.
For example:
- A ClickHouse table (
com.clickhouse/clickhouse/Table
) is defined within a ClickHouse schema (com.clickhouse/clickhouse/Schema
). - A ClickHouse schema is further defined within a Tangram OS workspace (
ai.tangram-os/core/Workspace
).
Resource Name
To uniquely identify a resource instance in Tangram OS, a Resource Name (RN) URI format is used. This format captures the resource type along with its hierarchical location.
Example:
rn://com.clickhouse/clickhouse/Table/finance/finance_db/yearly_revenue
In this example:
com.clickhouse/clickhouse/Table
is the resource type.
finance → finance_db → yearly_revenue
represents the hierarchical path workspace → clickhouse db → table
to the specific table.
Resource Id
In Tangram OS, each resource also has a unique id, it's a sha1 hash randomly generated every time a resource is defined or imported into the OS.