Skip to main content

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 namespace
  • clickhouse 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.