DJ server v0.0.1a44
- Handle Http Get
- Handle Http Post
- List Catalogs
- Add A Catalog
- Get A Catalog
- Add Engines To A Catalog
- List Engines
- Add An Engine
- Get An Engine
- List Metrics
- List Metric Metadata
- Get A Metric
- Get Common Dimensions
- Get Data For Djsql
- Get Data Stream For Djsql
- Validate Node
- Revalidate
- Set Column Attributes
- List Nodes
- List All Nodes With Details
- Get Node
- Delete Node
- Update Node
- Hard Delete A Dj Node
- Restore Node
- List Node Revisions
- Create A Source Node
- Create A Metric Node
- Create A Dimension Node
- Create A Transform Node
- Create A Cube
- Register Table
- Link Dimension
- Delete Dimension Link
- Add Complex Dimension Link
- Remove Complex Dimension Link
- Migrate Dimension Link
- Update Tags On Node
- Refresh Source Node
- Calculate Node Similarity
- List Downstream Nodes For A Node
- List Upstream Nodes For A Node
- List All Connected Nodes (Upstreams + Downstreams)
- List All Dimension Attributes
- List Column Level Lineage Of Node
- Set Column Display Name
- Set Node Column As Partition
- Copy A Node
- List Nodes In Namespace
- Create Node Namespace
- Deactivate A Namespace
- List Namespaces
- Restore A Namespace
- Hard Delete A Dj Namespace
- Export A Namespace As A Single Project’S Metadata
- Materialization Jobs Info
- Insert Or Update A Materialization For A Node
- List Materializations For A Node
- Deactivate A Materialization For A Node
- Kick Off A Backfill Run For A Configured Materialization
- List Measures
- Add A Measure
- Get Measure
- Edit A Measure
- Add Availability State To Node
- Get Data For A Node
- Get Data For Query Id
- Get Data For Metrics
- Get Data Stream For Metrics
- Health Check
- List History
- List History By Node Context
- Get A Cube
- Dimensions Sql For Cube
- Dimensions Values For Cube
- List Tags
- Create A Tag
- Get A Tag
- Update A Tag
- List Nodes For A Tag
- List Attributes
- Add An Attribute Type
- Get Measures Sql
- Get Sql For A Node
- Get Sql For Metrics
- Client Code For Creating Node
- Client Code For Adding Materialization
- Client Code For Linking Dimension To Node
- List Dimensions
- Find Nodes With Dimension
- Find Nodes With Common Dimensions
- Get User
- Get Short Lived Token
- Create A User
- Login
- Logout
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
On this page
- Handle Http Get
- Handle Http Post
- List Catalogs
- Add A Catalog
- Get A Catalog
- Add Engines To A Catalog
- List Engines
- Add An Engine
- Get An Engine
- List Metrics
- List Metric Metadata
- Get A Metric
- Get Common Dimensions
- Get Data For Djsql
- Get Data Stream For Djsql
- Validate Node
- Revalidate
- Set Column Attributes
- List Nodes
- List All Nodes With Details
- Get Node
- Delete Node
- Update Node
- Hard Delete A Dj Node
- Restore Node
- List Node Revisions
- Create A Source Node
- Create A Metric Node
- Create A Dimension Node
- Create A Transform Node
- Create A Cube
- Register Table
- Link Dimension
- Delete Dimension Link
- Add Complex Dimension Link
- Remove Complex Dimension Link
- Migrate Dimension Link
- Update Tags On Node
- Refresh Source Node
- Calculate Node Similarity
- List Downstream Nodes For A Node
- List Upstream Nodes For A Node
- List All Connected Nodes (Upstreams + Downstreams)
- List All Dimension Attributes
- List Column Level Lineage Of Node
- Set Column Display Name
- Set Node Column As Partition
- Copy A Node
- List Nodes In Namespace
- Create Node Namespace
- Deactivate A Namespace
- List Namespaces
- Restore A Namespace
- Hard Delete A Dj Namespace
- Export A Namespace As A Single Project’S Metadata
- Materialization Jobs Info
- Insert Or Update A Materialization For A Node
- List Materializations For A Node
- Deactivate A Materialization For A Node
- Kick Off A Backfill Run For A Configured Materialization
- List Measures
- Add A Measure
- Get Measure
- Edit A Measure
- Add Availability State To Node
- Get Data For A Node
- Get Data For Query Id
- Get Data For Metrics
- Get Data Stream For Metrics
- Health Check
- List History
- List History By Node Context
- Get A Cube
- Dimensions Sql For Cube
- Dimensions Values For Cube
- List Tags
- Create A Tag
- Get A Tag
- Update A Tag
- List Nodes For A Tag
- List Attributes
- Add An Attribute Type
- Get Measures Sql
- Get Sql For A Node
- Get Sql For Metrics
- Client Code For Creating Node
- Client Code For Adding Materialization
- Client Code For Linking Dimension To Node
- List Dimensions
- Find Nodes With Dimension
- Find Nodes With Common Dimensions
- Get User
- Get Short Lived Token
- Create A User
- Login
- Logout
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
- Properties
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
A DataJunction metrics layer
License: MIT License
Authentication
- HTTP Authentication, scheme: bearer
Handle Http Get
GET /graphql
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | The GraphiQL integrated development environment. | Inline |
| 404 | Not Found | Not found if GraphiQL or query via GET are not enabled. | None |
Handle Http Post
POST /graphql
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
List Catalogs
GET /catalogs
List all available catalogs
Example responses
200 Response
[
{
"name": "string",
"engines": []
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Status Code 200
Response List Catalogs Catalogs Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Catalogs Catalogs Get | [CatalogInfo] | false | none | [Class for catalog creation] |
| » CatalogInfo | CatalogInfo | false | none | Class for catalog creation |
| »» name | string | true | none | none |
| »» engines | [EngineInfo] | false | none | [Class for engine creation] |
| »»» EngineInfo | EngineInfo | false | none | Class for engine creation |
| »»»» name | string | true | none | none |
| »»»» version | string | true | none | none |
| »»»» uri | string | false | none | none |
| »»»» dialect | Dialect | false | none | SQL dialect |
Enumerated Values
| Property | Value |
|---|---|
| dialect | spark |
| dialect | trino |
| dialect | druid |
Add A Catalog
POST /catalogs
Add a Catalog
Body parameter
{
"name": "string",
"engines": []
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CatalogInfo | true | none |
Example responses
201 Response
{
"name": "string",
"engines": []
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | CatalogInfo |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get A Catalog
GET /catalogs/{name}
Return a catalog by name
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
{
"name": "string",
"engines": []
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | CatalogInfo |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Add Engines To A Catalog
POST /catalogs/{name}/engines
Attach one or more engines to a catalog
Body parameter
[
{
"name": "string",
"version": "string",
"uri": "string",
"dialect": "spark"
}
]
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
201 Response
{
"name": "string",
"engines": []
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | CatalogInfo |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Engines
GET /engines
List all available engines
Example responses
200 Response
[
{
"name": "string",
"version": "string",
"uri": "string",
"dialect": "spark"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Status Code 200
Response List Engines Engines Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Engines Engines Get | [EngineInfo] | false | none | [Class for engine creation] |
| » EngineInfo | EngineInfo | false | none | Class for engine creation |
| »» name | string | true | none | none |
| »» version | string | true | none | none |
| »» uri | string | false | none | none |
| »» dialect | Dialect | false | none | SQL dialect |
Enumerated Values
| Property | Value |
|---|---|
| dialect | spark |
| dialect | trino |
| dialect | druid |
Add An Engine
POST /engines
Add a new engine
Body parameter
{
"name": "string",
"version": "string",
"uri": "string",
"dialect": "spark"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | EngineInfo | true | none |
Example responses
201 Response
{
"name": "string",
"version": "string",
"uri": "string",
"dialect": "spark"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | EngineInfo |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get An Engine
GET /engines/{name}/{version}
Return an engine by name and version
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| version | path | string | true | none |
Example responses
200 Response
{
"name": "string",
"version": "string",
"uri": "string",
"dialect": "spark"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | EngineInfo |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Metrics
GET /metrics
List all available metrics.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| prefix | query | string | false | none |
Example responses
200 Response
[
"string"
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Metrics Metrics Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Metrics Metrics Get | [string] | false | none | none |
List Metric Metadata
GET /metrics/metadata
Return available metric metadata attributes
Example responses
200 Response
{
"directions": [
"higher_is_better"
],
"units": [
{
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | MetricMetadataOptions |
Get A Metric
GET /metrics/{name}
Return a metric by name.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
{
"id": 0,
"name": "string",
"display_name": "string",
"current_version": "string",
"description": "",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"query": "string",
"upstream_node": "string",
"expression": "string",
"dimensions": [
{
"name": "string",
"node_name": "string",
"node_display_name": "string",
"is_primary_key": true,
"type": "string",
"path": [
"string"
]
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"required_dimensions": [
"string"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Metric |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Common Dimensions
GET /metrics/common/dimensions
Return common dimensions for a set of metrics.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| metric | query | array[string] | false | none |
Example responses
200 Response
[
{
"name": "string",
"node_name": "string",
"node_display_name": "string",
"is_primary_key": true,
"type": "string",
"path": [
"string"
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response Get Common Dimensions Metrics Common Dimensions Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response Get Common Dimensions Metrics Common Dimensions Get | [DimensionAttributeOutput] | false | none | [Dimension attribute output should include the name and type] |
| » DimensionAttributeOutput | DimensionAttributeOutput | false | none | Dimension attribute output should include the name and type |
| »» name | string | true | none | none |
| »» node_name | string | false | none | none |
| »» node_display_name | string | false | none | none |
| »» is_primary_key | boolean | true | none | none |
| »» type | string | true | none | none |
| »» path | [string] | true | none | none |
Get Data For Djsql
GET /djsql/data
Return data for a DJ SQL query
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query | query | string | true | none |
| async_ | query | boolean | false | none |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"id": "string",
"engine_name": "string",
"engine_version": "string",
"submitted_query": "string",
"executed_query": "string",
"scheduled": "2019-08-24T14:15:22Z",
"started": "2019-08-24T14:15:22Z",
"finished": "2019-08-24T14:15:22Z",
"state": "UNKNOWN",
"progress": 0,
"output_table": {
"catalog": "string",
"schema": "string",
"table": "string"
},
"results": [
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
],
"next": "http://example.com",
"previous": "http://example.com",
"errors": [
"string"
],
"links": [
"http://example.com"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | QueryWithResults |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Data Stream For Djsql
GET /djsql/stream
Return data for a DJ SQL query using server side events
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query | query | string | true | none |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"id": "string",
"engine_name": "string",
"engine_version": "string",
"submitted_query": "string",
"executed_query": "string",
"scheduled": "2019-08-24T14:15:22Z",
"started": "2019-08-24T14:15:22Z",
"finished": "2019-08-24T14:15:22Z",
"state": "UNKNOWN",
"progress": 0,
"output_table": {
"catalog": "string",
"schema": "string",
"table": "string"
},
"results": [
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
],
"next": "http://example.com",
"previous": "http://example.com",
"errors": [
"string"
],
"links": [
"http://example.com"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | QueryWithResults |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Validate Node
POST /nodes/validate
Determines whether the provided node is valid and returns metadata from node validation.
Body parameter
{
"name": "string",
"display_name": "string",
"type": "source",
"description": "",
"query": "string",
"mode": "published"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | NodeRevisionBase | true | none |
Example responses
200 Response
{
"message": "string",
"status": "valid",
"dependencies": [
{
"id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
]
}
],
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"errors": [
{
"code": 0,
"message": "string",
"debug": {},
"context": ""
}
],
"missing_parents": [
"string"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | NodeValidation |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Revalidate
POST /nodes/{name}/validate
Revalidate a single existing node and update its status appropriately
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
{
"message": "string",
"status": "valid",
"dependencies": [
{
"id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
]
}
],
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"errors": [
{
"code": 0,
"message": "string",
"debug": {},
"context": ""
}
],
"missing_parents": [
"string"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | NodeValidation |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Set Column Attributes
POST /nodes/{node_name}/columns/{column_name}/attributes
Set column attributes for the node.
Body parameter
[
{
"namespace": "system",
"name": "string"
}
]
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| column_name | path | string | true | none |
Example responses
201 Response
[
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 201
Response Set Column Attributes Nodes Node Name Columns Column Name Attributes Post
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response Set Column Attributes Nodes Node Name Columns Column Name Attributes Post | [datajunction_server__models__node__ColumnOutput] | false | none | [A simplified column schema, without ID or dimensions.] |
| » ColumnOutput | datajunction_server__models__node__ColumnOutput | false | none | A simplified column schema, without ID or dimensions. |
| »» name | string | true | none | none |
| »» display_name | string | false | none | none |
| »» type | string | true | none | none |
| »» attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| »»» AttributeOutput | AttributeOutput | false | none | Column attribute output. |
| »»»» attribute_type | AttributeTypeName | true | none | Attribute type name. |
| »»»»» namespace | string | true | none | none |
| »»»»» name | string | true | none | none |
| »» dimension | NodeNameOutput | false | none | Node name only |
| »»» name | string | true | none | none |
| »» partition | PartitionOutput | false | none | Output for partition |
| »»» type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| »»» format | string | false | none | none |
| »»» granularity | string | false | none | none |
| »»» expression | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type_ | temporal |
| type_ | categorical |
List Nodes
GET /nodes
List the available nodes.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_type | query | NodeType | false | none |
| prefix | query | string | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| node_type | source |
| node_type | transform |
| node_type | metric |
| node_type | dimension |
| node_type | cube |
Example responses
200 Response
[
"string"
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Nodes Nodes Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Nodes Nodes Get | [string] | false | none | none |
List All Nodes With Details
GET /nodes/details
List the available nodes.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_type | query | NodeType | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| node_type | source |
| node_type | transform |
| node_type | metric |
| node_type | dimension |
| node_type | cube |
Example responses
200 Response
[
{
"name": "string",
"display_name": "string",
"description": "string",
"type": "source"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List All Nodes With Details Nodes Details Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List All Nodes With Details Nodes Details Get | [NodeIndexItem] | false | none | [Node details used for indexing purposes] |
| » NodeIndexItem | NodeIndexItem | false | none | Node details used for indexing purposes |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» description | string | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
Get Node
GET /nodes/{name}
Show the active version of the specified node.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Delete Node
DELETE /nodes/{name}
Delete (aka deactivate) the specified node.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update Node
PATCH /nodes/{name}
Update a node.
Body parameter
{
"metrics": [
"string"
],
"dimensions": [
"string"
],
"filters": [
"string"
],
"orderby": [
"string"
],
"limit": 0,
"description": "string",
"mode": "published",
"required_dimensions": [
"string"
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": "string"
},
"query": "string",
"catalog": "string",
"schema_": "string",
"table": "string",
"columns": [
{
"name": "string",
"type": {},
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": "string"
}
],
"missing_table": true,
"display_name": "string",
"primary_key": [
"string"
]
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| body | body | UpdateNode | true | none |
Example responses
200 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Hard Delete A Dj Node
DELETE /nodes/{name}/hard
Hard delete a node, destroying all links and invalidating all downstream nodes. This should be used with caution, deactivating a node is preferred.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Restore Node
POST /nodes/{name}/restore
Restore (aka re-activate) the specified node.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Node Revisions
GET /nodes/{name}/revisions
List all revisions for the node.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
[
{
"id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Node Revisions Nodes Name Revisions Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Node Revisions Nodes Name Revisions Get | [NodeRevisionOutput] | false | none | [Output for a node revision with information about columns and if it is a metric.] |
| » NodeRevisionOutput | NodeRevisionOutput | false | none | Output for a node revision with information about columns and if it is a metric. |
| »» id | integer | true | none | none |
| »» node_id | integer | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» version | string | true | none | none |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» catalog | CatalogInfo | false | none | Class for catalog creation |
| »»» name | string | true | none | none |
| »»» engines | [EngineInfo] | false | none | [Class for engine creation] |
| »»»» EngineInfo | EngineInfo | false | none | Class for engine creation |
| »»»»» name | string | true | none | none |
| »»»»» version | string | true | none | none |
| »»»»» uri | string | false | none | none |
| »»»»» dialect | Dialect | false | none | SQL dialect |
| »» schema_ | string | false | none | none |
| »» table | string | false | none | none |
| »» description | string | false | none | none |
| »» query | string | false | none | none |
| »» availability | AvailabilityStateBase | false | none | An availability state base |
| »»» min_temporal_partition | [string] | false | none | none |
| »»» max_temporal_partition | [string] | false | none | none |
| »»» catalog | string | true | none | none |
| »»» schema_ | string | false | none | none |
| »»» table | string | true | none | none |
| »»» valid_through_ts | integer | true | none | none |
| »»» url | string | false | none | none |
| »»» categorical_partitions | [string] | false | none | none |
| »»» temporal_partitions | [string] | false | none | none |
| »»» partitions | [PartitionAvailability] | false | none | [Partition-level availability] |
| »»»» PartitionAvailability | PartitionAvailability | false | none | Partition-level availability |
| »»»»» min_temporal_partition | [string] | false | none | none |
| »»»»» max_temporal_partition | [string] | false | none | none |
| »»»»» value | [string] | true | none | none |
| »»»»» valid_through_ts | integer | false | none | none |
| »» columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| »»» ColumnOutput | datajunction_server__models__node__ColumnOutput | false | none | A simplified column schema, without ID or dimensions. |
| »»»» name | string | true | none | none |
| »»»» display_name | string | false | none | none |
| »»»» type | string | true | none | none |
| »»»» attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| »»»»» AttributeOutput | AttributeOutput | false | none | Column attribute output. |
| »»»»»» attribute_type | AttributeTypeName | true | none | Attribute type name. |
| »»»»»»» namespace | string | true | none | none |
| »»»»»»» name | string | true | none | none |
| »»»» dimension | NodeNameOutput | false | none | Node name only |
| »»»»» name | string | true | none | none |
| »»»» partition | PartitionOutput | false | none | Output for partition |
| »»»»» type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| »»»»» format | string | false | none | none |
| »»»»» granularity | string | false | none | none |
| »»»»» expression | string | false | none | none |
| »» updated_at | string(date-time) | true | none | none |
| »» materializations | [MaterializationConfigOutput] | true | none | [Output for materialization config.] |
| »»» MaterializationConfigOutput | MaterializationConfigOutput | false | none | Output for materialization config. |
| »»»» name | string | false | none | none |
| »»»» config | object | true | none | none |
| »»»» schedule | string | true | none | none |
| »»»» job | string | false | none | none |
| »»»» backfills | [BackfillOutput] | true | none | [Output model for backfills] |
| »»»»» BackfillOutput | BackfillOutput | false | none | Output model for backfills |
| »»»»»» spec | PartitionBackfill | false | none | Used for setting backfilled values |
| »»»»»»» column_name | string | true | none | none |
| »»»»»»» values | [any] | false | none | none |
| »»»»»»» range | [any] | false | none | none |
| »»»»»» urls | [string] | false | none | none |
| »»»» strategy | string | false | none | none |
| »» parents | [NodeNameOutput] | true | none | [Node name only] |
| »»» NodeNameOutput | NodeNameOutput | false | none | Node name only |
| »» metric_metadata | MetricMetadataOutput | false | none | Metric metadata output |
| »»» direction | MetricDirection | false | none | The direction of the metric that’s considered good, i.e., higher is better |
| »»» unit | Unit | false | none | Metric unit |
| »»»» name | string | true | none | none |
| »»»» label | string | false | none | none |
| »»»» category | string | false | none | none |
| »»»» abbreviation | string | false | none | none |
| »»»» description | string | false | none | none |
| »» dimension_links | [LinkDimensionOutput] | false | none | [Input for linking a dimension to a node] |
| »»» LinkDimensionOutput | LinkDimensionOutput | false | none | Input for linking a dimension to a node |
| »»»» dimension | NodeNameOutput | true | none | Node name only |
| »»»» join_type | JoinType | true | none | Join type |
| »»»» join_sql | string | true | none | none |
| »»»» join_cardinality | JoinCardinality | false | none | The version upgrade type |
| »»»» role | string | false | none | none |
| »»»» foreign_keys | object | true | none | none |
| »»»»» additionalProperties | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
| dialect | spark |
| dialect | trino |
| dialect | druid |
| type_ | temporal |
| type_ | categorical |
| direction | higher_is_better |
| direction | lower_is_better |
| direction | neutral |
| join_type | left |
| join_type | right |
| join_type | inner |
| join_type | full |
| join_type | cross |
| join_cardinality | one_to_one |
| join_cardinality | one_to_many |
| join_cardinality | many_to_one |
| join_cardinality | many_to_many |
Create A Source Node
POST /nodes/source
Create a source node. If columns are not provided, the source node’s schema will be inferred using the configured query service.
Body parameter
{
"catalog": "string",
"schema_": "string",
"table": "string",
"columns": [
{
"name": "string",
"type": {},
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": "string"
}
],
"missing_table": false,
"display_name": "string",
"description": "string",
"mode": "published",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateSourceNode | true | none |
Example responses
200 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create A Metric Node
POST /nodes/metric
Create a node.
Body parameter
{
"required_dimensions": [
"string"
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": "string"
},
"query": "string",
"display_name": "string",
"description": "string",
"mode": "published",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateNode | true | none |
Example responses
201 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create A Dimension Node
POST /nodes/dimension
Create a node.
Body parameter
{
"required_dimensions": [
"string"
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": "string"
},
"query": "string",
"display_name": "string",
"description": "string",
"mode": "published",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateNode | true | none |
Example responses
201 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create A Transform Node
POST /nodes/transform
Create a node.
Body parameter
{
"required_dimensions": [
"string"
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": "string"
},
"query": "string",
"display_name": "string",
"description": "string",
"mode": "published",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateNode | true | none |
Example responses
201 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create A Cube
POST /nodes/cube
Create a cube node.
Body parameter
{
"metrics": [
"string"
],
"dimensions": [
"string"
],
"filters": [
"string"
],
"orderby": [
"string"
],
"limit": 0,
"description": "string",
"mode": "published",
"display_name": "string",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateCubeNode | true | none |
Example responses
201 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Register Table
POST /register/table/{catalog}/{schema_}/{table}
Register a table. This creates a source node in the SOURCE_NODE_NAMESPACE and the source node’s schema will be inferred using the configured query service.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| catalog | path | string | true | none |
| schema_ | path | string | true | none |
| table | path | string | true | none |
Example responses
201 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Link Dimension
POST /nodes/{name}/columns/{column}
Add information to a node column
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| column | path | string | true | none |
| dimension | query | string | true | none |
| dimension_column | query | string | false | none |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Delete Dimension Link
DELETE /nodes/{name}/columns/{column}
Remove the link between a node column and a dimension node
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| column | path | string | true | none |
| dimension | query | string | true | none |
| dimension_column | query | string | false | none |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Add Complex Dimension Link
POST /nodes/{node_name}/link
Links a source, dimension, or transform node to a dimension with a custom join query. If a link already exists, updates the link definition.
Body parameter
{
"dimension_node": "string",
"join_type": "left",
"join_on": "string",
"join_cardinality": "many_to_one",
"role": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| body | body | LinkDimensionInput | true | none |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Remove Complex Dimension Link
DELETE /nodes/{node_name}/link
Removes a complex dimension link based on the dimension node and its role (if any).
Body parameter
{
"dimension_node": "string",
"role": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| body | body | LinkDimensionIdentifier | true | none |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Migrate Dimension Link
POST /nodes/{name}/migrate_dim_link
Migrate dimension link from column-level to node-level
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update Tags On Node
POST /nodes/{name}/tags
Add a tag to a node
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| tag_names | query | array[string] | false | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Refresh Source Node
POST /nodes/{name}/refresh
Refresh a source node with the latest columns from the query service.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
201 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | NodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Calculate Node Similarity
GET /nodes/similarity/{node1_name}/{node2_name}
Compare two nodes by how similar their queries are
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node1_name | path | string | true | none |
| node2_name | path | string | true | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Downstream Nodes For A Node
GET /nodes/{name}/downstream
List all nodes that are downstream from the given node, filterable by type.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| node_type | query | NodeType | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| node_type | source |
| node_type | transform |
| node_type | metric |
| node_type | dimension |
| node_type | cube |
Example responses
200 Response
[
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"parents": [
{
"name": "string"
}
],
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Downstream Nodes For A Node Nodes Name Downstream Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Downstream Nodes For A Node Nodes Name Downstream Get | [DAGNodeOutput] | false | none | [Output for a node in another node’s DAG] |
| » DAGNodeOutput | DAGNodeOutput | false | none | Output for a node in another node’s DAG |
| »» namespace | string | true | none | none |
| »» node_revision_id | integer | true | none | none |
| »» node_id | integer | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» version | string | true | none | none |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» catalog | CatalogInfo | false | none | Class for catalog creation |
| »»» name | string | true | none | none |
| »»» engines | [EngineInfo] | false | none | [Class for engine creation] |
| »»»» EngineInfo | EngineInfo | false | none | Class for engine creation |
| »»»»» name | string | true | none | none |
| »»»»» version | string | true | none | none |
| »»»»» uri | string | false | none | none |
| »»»»» dialect | Dialect | false | none | SQL dialect |
| »» schema_ | string | false | none | none |
| »» table | string | false | none | none |
| »» description | string | false | none | none |
| »» columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| »»» ColumnOutput | datajunction_server__models__node__ColumnOutput | false | none | A simplified column schema, without ID or dimensions. |
| »»»» name | string | true | none | none |
| »»»» display_name | string | false | none | none |
| »»»» type | string | true | none | none |
| »»»» attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| »»»»» AttributeOutput | AttributeOutput | false | none | Column attribute output. |
| »»»»»» attribute_type | AttributeTypeName | true | none | Attribute type name. |
| »»»»»»» namespace | string | true | none | none |
| »»»»»»» name | string | true | none | none |
| »»»» dimension | NodeNameOutput | false | none | Node name only |
| »»»»» name | string | true | none | none |
| »»»» partition | PartitionOutput | false | none | Output for partition |
| »»»»» type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| »»»»» format | string | false | none | none |
| »»»»» granularity | string | false | none | none |
| »»»»» expression | string | false | none | none |
| »» updated_at | string(date-time) | true | none | none |
| »» parents | [NodeNameOutput] | true | none | [Node name only] |
| »»» NodeNameOutput | NodeNameOutput | false | none | Node name only |
| »» dimension_links | [LinkDimensionOutput] | true | none | [Input for linking a dimension to a node] |
| »»» LinkDimensionOutput | LinkDimensionOutput | false | none | Input for linking a dimension to a node |
| »»»» dimension | NodeNameOutput | true | none | Node name only |
| »»»» join_type | JoinType | true | none | Join type |
| »»»» join_sql | string | true | none | none |
| »»»» join_cardinality | JoinCardinality | false | none | The version upgrade type |
| »»»» role | string | false | none | none |
| »»»» foreign_keys | object | true | none | none |
| »»»»» additionalProperties | string | false | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» tags | [TagOutput] | false | none | [Output tag model.] |
| »»» TagOutput | TagOutput | false | none | Output tag model. |
| »»»» description | string | false | none | none |
| »»»» display_name | string | false | none | none |
| »»»» tag_metadata | object | false | none | none |
| »»»» name | string | true | none | none |
| »»»» tag_type | string | true | none | none |
| »» current_version | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
| dialect | spark |
| dialect | trino |
| dialect | druid |
| type_ | temporal |
| type_ | categorical |
| join_type | left |
| join_type | right |
| join_type | inner |
| join_type | full |
| join_type | cross |
| join_cardinality | one_to_one |
| join_cardinality | one_to_many |
| join_cardinality | many_to_one |
| join_cardinality | many_to_many |
List Upstream Nodes For A Node
GET /nodes/{name}/upstream
List all nodes that are upstream from the given node, filterable by type.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| node_type | query | NodeType | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| node_type | source |
| node_type | transform |
| node_type | metric |
| node_type | dimension |
| node_type | cube |
Example responses
200 Response
[
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"parents": [
{
"name": "string"
}
],
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Upstream Nodes For A Node Nodes Name Upstream Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Upstream Nodes For A Node Nodes Name Upstream Get | [DAGNodeOutput] | false | none | [Output for a node in another node’s DAG] |
| » DAGNodeOutput | DAGNodeOutput | false | none | Output for a node in another node’s DAG |
| »» namespace | string | true | none | none |
| »» node_revision_id | integer | true | none | none |
| »» node_id | integer | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» version | string | true | none | none |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» catalog | CatalogInfo | false | none | Class for catalog creation |
| »»» name | string | true | none | none |
| »»» engines | [EngineInfo] | false | none | [Class for engine creation] |
| »»»» EngineInfo | EngineInfo | false | none | Class for engine creation |
| »»»»» name | string | true | none | none |
| »»»»» version | string | true | none | none |
| »»»»» uri | string | false | none | none |
| »»»»» dialect | Dialect | false | none | SQL dialect |
| »» schema_ | string | false | none | none |
| »» table | string | false | none | none |
| »» description | string | false | none | none |
| »» columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| »»» ColumnOutput | datajunction_server__models__node__ColumnOutput | false | none | A simplified column schema, without ID or dimensions. |
| »»»» name | string | true | none | none |
| »»»» display_name | string | false | none | none |
| »»»» type | string | true | none | none |
| »»»» attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| »»»»» AttributeOutput | AttributeOutput | false | none | Column attribute output. |
| »»»»»» attribute_type | AttributeTypeName | true | none | Attribute type name. |
| »»»»»»» namespace | string | true | none | none |
| »»»»»»» name | string | true | none | none |
| »»»» dimension | NodeNameOutput | false | none | Node name only |
| »»»»» name | string | true | none | none |
| »»»» partition | PartitionOutput | false | none | Output for partition |
| »»»»» type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| »»»»» format | string | false | none | none |
| »»»»» granularity | string | false | none | none |
| »»»»» expression | string | false | none | none |
| »» updated_at | string(date-time) | true | none | none |
| »» parents | [NodeNameOutput] | true | none | [Node name only] |
| »»» NodeNameOutput | NodeNameOutput | false | none | Node name only |
| »» dimension_links | [LinkDimensionOutput] | true | none | [Input for linking a dimension to a node] |
| »»» LinkDimensionOutput | LinkDimensionOutput | false | none | Input for linking a dimension to a node |
| »»»» dimension | NodeNameOutput | true | none | Node name only |
| »»»» join_type | JoinType | true | none | Join type |
| »»»» join_sql | string | true | none | none |
| »»»» join_cardinality | JoinCardinality | false | none | The version upgrade type |
| »»»» role | string | false | none | none |
| »»»» foreign_keys | object | true | none | none |
| »»»»» additionalProperties | string | false | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» tags | [TagOutput] | false | none | [Output tag model.] |
| »»» TagOutput | TagOutput | false | none | Output tag model. |
| »»»» description | string | false | none | none |
| »»»» display_name | string | false | none | none |
| »»»» tag_metadata | object | false | none | none |
| »»»» name | string | true | none | none |
| »»»» tag_type | string | true | none | none |
| »» current_version | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
| dialect | spark |
| dialect | trino |
| dialect | druid |
| type_ | temporal |
| type_ | categorical |
| join_type | left |
| join_type | right |
| join_type | inner |
| join_type | full |
| join_type | cross |
| join_cardinality | one_to_one |
| join_cardinality | one_to_many |
| join_cardinality | many_to_one |
| join_cardinality | many_to_many |
List All Connected Nodes (Upstreams + Downstreams)
GET /nodes/{name}/dag
List all nodes that are part of the DAG of the given node. This means getting all upstreams, downstreams, and linked dimension nodes.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
[
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"parents": [
{
"name": "string"
}
],
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List All Connected Nodes Upstreams Downstreams Nodes Name Dag Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List All Connected Nodes Upstreams Downstreams Nodes Name Dag Get | [DAGNodeOutput] | false | none | [Output for a node in another node’s DAG] |
| » DAGNodeOutput | DAGNodeOutput | false | none | Output for a node in another node’s DAG |
| »» namespace | string | true | none | none |
| »» node_revision_id | integer | true | none | none |
| »» node_id | integer | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» version | string | true | none | none |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» catalog | CatalogInfo | false | none | Class for catalog creation |
| »»» name | string | true | none | none |
| »»» engines | [EngineInfo] | false | none | [Class for engine creation] |
| »»»» EngineInfo | EngineInfo | false | none | Class for engine creation |
| »»»»» name | string | true | none | none |
| »»»»» version | string | true | none | none |
| »»»»» uri | string | false | none | none |
| »»»»» dialect | Dialect | false | none | SQL dialect |
| »» schema_ | string | false | none | none |
| »» table | string | false | none | none |
| »» description | string | false | none | none |
| »» columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| »»» ColumnOutput | datajunction_server__models__node__ColumnOutput | false | none | A simplified column schema, without ID or dimensions. |
| »»»» name | string | true | none | none |
| »»»» display_name | string | false | none | none |
| »»»» type | string | true | none | none |
| »»»» attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| »»»»» AttributeOutput | AttributeOutput | false | none | Column attribute output. |
| »»»»»» attribute_type | AttributeTypeName | true | none | Attribute type name. |
| »»»»»»» namespace | string | true | none | none |
| »»»»»»» name | string | true | none | none |
| »»»» dimension | NodeNameOutput | false | none | Node name only |
| »»»»» name | string | true | none | none |
| »»»» partition | PartitionOutput | false | none | Output for partition |
| »»»»» type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| »»»»» format | string | false | none | none |
| »»»»» granularity | string | false | none | none |
| »»»»» expression | string | false | none | none |
| »» updated_at | string(date-time) | true | none | none |
| »» parents | [NodeNameOutput] | true | none | [Node name only] |
| »»» NodeNameOutput | NodeNameOutput | false | none | Node name only |
| »» dimension_links | [LinkDimensionOutput] | true | none | [Input for linking a dimension to a node] |
| »»» LinkDimensionOutput | LinkDimensionOutput | false | none | Input for linking a dimension to a node |
| »»»» dimension | NodeNameOutput | true | none | Node name only |
| »»»» join_type | JoinType | true | none | Join type |
| »»»» join_sql | string | true | none | none |
| »»»» join_cardinality | JoinCardinality | false | none | The version upgrade type |
| »»»» role | string | false | none | none |
| »»»» foreign_keys | object | true | none | none |
| »»»»» additionalProperties | string | false | none | none |
| »» created_at | string(date-time) | true | none | none |
| »» tags | [TagOutput] | false | none | [Output tag model.] |
| »»» TagOutput | TagOutput | false | none | Output tag model. |
| »»»» description | string | false | none | none |
| »»»» display_name | string | false | none | none |
| »»»» tag_metadata | object | false | none | none |
| »»»» name | string | true | none | none |
| »»»» tag_type | string | true | none | none |
| »» current_version | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
| dialect | spark |
| dialect | trino |
| dialect | druid |
| type_ | temporal |
| type_ | categorical |
| join_type | left |
| join_type | right |
| join_type | inner |
| join_type | full |
| join_type | cross |
| join_cardinality | one_to_one |
| join_cardinality | one_to_many |
| join_cardinality | many_to_one |
| join_cardinality | many_to_many |
List All Dimension Attributes
GET /nodes/{name}/dimensions
List all available dimension attributes for the given node.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
[
{
"name": "string",
"node_name": "string",
"node_display_name": "string",
"is_primary_key": true,
"type": "string",
"path": [
"string"
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List All Dimension Attributes Nodes Name Dimensions Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List All Dimension Attributes Nodes Name Dimensions Get | [DimensionAttributeOutput] | false | none | [Dimension attribute output should include the name and type] |
| » DimensionAttributeOutput | DimensionAttributeOutput | false | none | Dimension attribute output should include the name and type |
| »» name | string | true | none | none |
| »» node_name | string | false | none | none |
| »» node_display_name | string | false | none | none |
| »» is_primary_key | boolean | true | none | none |
| »» type | string | true | none | none |
| »» path | [string] | true | none | none |
List Column Level Lineage Of Node
GET /nodes/{name}/lineage
List column-level lineage of a node in a graph
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
[
{
"column_name": "string",
"node_name": "string",
"node_type": "string",
"display_name": "string",
"lineage": [
{}
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Column Level Lineage Of Node Nodes Name Lineage Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Column Level Lineage Of Node Nodes Name Lineage Get | [LineageColumn] | false | none | [Column in lineage graph] |
| » LineageColumn | LineageColumn | false | none | Column in lineage graph |
| »» column_name | string | true | none | none |
| »» node_name | string | false | none | none |
| »» node_type | string | false | none | none |
| »» display_name | string | false | none | none |
| »» lineage | [LineageColumn] | false | none | Column in lineage graph |
| »»» LineageColumn | LineageColumn | false | none | Column in lineage graph |
Set Column Display Name
PATCH /nodes/{node_name}/columns/{column_name}
Set column name for the node
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| column_name | path | string | true | none |
| display_name | query | string | true | none |
Example responses
201 Response
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | datajunction_server__models__node__ColumnOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Set Node Column As Partition
POST /nodes/{node_name}/columns/{column_name}/partition
Add or update partition columns for the specified node.
Body parameter
{
"type_": "temporal",
"granularity": "second",
"format": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| column_name | path | string | true | none |
| body | body | PartitionInput | true | none |
Example responses
201 Response
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | datajunction_server__models__node__ColumnOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Copy A Node
POST /nodes/{node_name}/copy
Copy this node to a new name.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| new_name | query | string | true | none |
Example responses
200 Response
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"parents": [
{
"name": "string"
}
],
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | DAGNodeOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Nodes In Namespace
GET /namespaces/{namespace}
List node names in namespace, filterable to a given type if desired.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| namespace | path | string | true | none |
| type_ | query | any | false | Filter the list of nodes to this type |
Example responses
200 Response
[
{
"name": "string",
"display_name": "string",
"description": "string",
"version": "string",
"type": "source",
"status": "valid",
"mode": "published",
"updated_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Nodes In Namespace Namespaces Namespace Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Nodes In Namespace Namespaces Namespace Get | [NodeMinimumDetail] | false | none | [List of high level node details] |
| » NodeMinimumDetail | NodeMinimumDetail | false | none | List of high level node details |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» description | string | true | none | none |
| »» version | string | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» updated_at | string(date-time) | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
Create Node Namespace
POST /namespaces/{namespace}
Create a node namespace
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| namespace | path | string | true | none |
| include_parents | query | boolean | false | none |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Deactivate A Namespace
DELETE /namespaces/{namespace}
Deactivates a node namespace
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| namespace | path | string | true | none |
| cascade | query | boolean | false | Cascade the deletion down to the nodes in the namespace |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Namespaces
GET /namespaces
List namespaces with the number of nodes contained in them
Example responses
200 Response
[
{
"namespace": "string",
"num_nodes": 0
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Status Code 200
Response List Namespaces Namespaces Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Namespaces Namespaces Get | [NamespaceOutput] | false | none | [Output for a namespace that includes the number of nodes] |
| » NamespaceOutput | NamespaceOutput | false | none | Output for a namespace that includes the number of nodes |
| »» namespace | string | true | none | none |
| »» num_nodes | integer | true | none | none |
Restore A Namespace
POST /namespaces/{namespace}/restore
Restores a node namespace
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| namespace | path | string | true | none |
| cascade | query | boolean | false | Cascade the restore down to the nodes in the namespace |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Hard Delete A Dj Namespace
DELETE /namespaces/{namespace}/hard
Hard delete a namespace, which will completely remove the namespace. Additionally, if any nodes are saved under this namespace, we’ll hard delete the nodes if cascade is set to true. If cascade is set to false, we’ll raise an error. This should be used with caution, as the impact may be large.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| namespace | path | string | true | none |
| cascade | query | boolean | false | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Export A Namespace As A Single Project’S Metadata
GET /namespaces/{namespace}/export
Generates a zip of YAML files for the contents of the given namespace as well as a project definition file.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| namespace | path | string | true | none |
Example responses
200 Response
[
{}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response Export A Namespace As A Single Project S Metadata Namespaces Namespace Export Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response Export A Namespace As A Single Project S Metadata Namespaces Namespace Export Get | [object] | false | none | none |
Materialization Jobs Info
GET /materialization/info
Materialization job types and strategies
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Insert Or Update A Materialization For A Node
POST /nodes/{node_name}/materialization
Add or update a materialization of the specified node. If a node_name is specified for the materialization config, it will always update that named config.
Body parameter
{
"name": "string",
"job": {
"name": "spark_sql",
"label": "Spark SQL",
"description": "Spark SQL materialization job",
"allowed_node_types": [
"transform",
"dimension",
"cube"
],
"job_class": "SparkSqlMaterializationJob"
},
"config": {
"spark": {},
"lookback_window": "string",
"dimensions": [
"string"
],
"measures": {
"property1": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
},
"property2": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
}
},
"metrics": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"prefix": "",
"suffix": "",
"druid": {
"granularity": "string",
"intervals": [
"string"
],
"timestamp_column": "string",
"timestamp_format": "string",
"parse_spec_format": "string"
}
},
"schedule": "string",
"strategy": "full"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| body | body | UpsertMaterialization | true | none |
Example responses
201 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Materializations For A Node
GET /nodes/{node_name}/materializations
Show all materializations configured for the node, with any associated metadata like urls from the materialization service, if available.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| show_deleted | query | boolean | false | none |
Example responses
200 Response
[
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string",
"output_tables": [
"string"
],
"urls": [
"http://example.com"
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Materializations For A Node Nodes Node Name Materializations Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Materializations For A Node Nodes Node Name Materializations Get | [MaterializationConfigInfoUnified] | false | none | [Materialization config + info] |
| » MaterializationConfigInfoUnified | MaterializationConfigInfoUnified | false | none | Materialization config + info |
| »» name | string | false | none | none |
| »» config | object | true | none | none |
| »» schedule | string | true | none | none |
| »» job | string | false | none | none |
| »» backfills | [BackfillOutput] | true | none | [Output model for backfills] |
| »»» BackfillOutput | BackfillOutput | false | none | Output model for backfills |
| »»»» spec | PartitionBackfill | false | none | Used for setting backfilled values |
| »»»»» column_name | string | true | none | none |
| »»»»» values | [any] | false | none | none |
| »»»»» range | [any] | false | none | none |
| »»»» urls | [string] | false | none | none |
| »» strategy | string | false | none | none |
| »» output_tables | [string] | true | none | none |
| »» urls | [string] | true | none | none |
Deactivate A Materialization For A Node
DELETE /nodes/{node_name}/materializations
Deactivate the node materialization with the provided name. Also calls the query service to deactivate the associated scheduled jobs.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| materialization_name | query | string | true | none |
Example responses
200 Response
[
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string",
"output_tables": [
"string"
],
"urls": [
"http://example.com"
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response Deactivate A Materialization For A Node Nodes Node Name Materializations Delete
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response Deactivate A Materialization For A Node Nodes Node Name Materializations Delete | [MaterializationConfigInfoUnified] | false | none | [Materialization config + info] |
| » MaterializationConfigInfoUnified | MaterializationConfigInfoUnified | false | none | Materialization config + info |
| »» name | string | false | none | none |
| »» config | object | true | none | none |
| »» schedule | string | true | none | none |
| »» job | string | false | none | none |
| »» backfills | [BackfillOutput] | true | none | [Output model for backfills] |
| »»» BackfillOutput | BackfillOutput | false | none | Output model for backfills |
| »»»» spec | PartitionBackfill | false | none | Used for setting backfilled values |
| »»»»» column_name | string | true | none | none |
| »»»»» values | [any] | false | none | none |
| »»»»» range | [any] | false | none | none |
| »»»» urls | [string] | false | none | none |
| »» strategy | string | false | none | none |
| »» output_tables | [string] | true | none | none |
| »» urls | [string] | true | none | none |
Kick Off A Backfill Run For A Configured Materialization
POST /nodes/{node_name}/materializations/{materialization_name}/backfill
Start a backfill for a configured materialization.
Body parameter
{
"column_name": "string",
"values": [
null
],
"range": [
null
]
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| materialization_name | path | string | true | none |
| body | body | PartitionBackfill | true | none |
Example responses
201 Response
{
"output_tables": [
"string"
],
"urls": [
"http://example.com"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | MaterializationInfo |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Measures
GET /measures
List all measures.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| prefix | query | string | false | none |
Example responses
200 Response
[
"string"
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Measures Measures Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Measures Measures Get | [string] | false | none | none |
Add A Measure
POST /measures
Add a measure
Body parameter
{
"name": "string",
"display_name": "string",
"description": "string",
"columns": [
{
"node": "string",
"column": "string"
}
],
"additive": "non-additive"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateMeasure | true | none |
Example responses
201 Response
{
"name": "string",
"display_name": "string",
"description": "string",
"columns": [
{
"name": "string",
"type": "string",
"node": "string"
}
],
"additive": "additive"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | MeasureOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Measure
GET /measures/{measure_name}
Get info on a measure.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| measure_name | path | string | true | none |
Example responses
200 Response
{
"name": "string",
"display_name": "string",
"description": "string",
"columns": [
{
"name": "string",
"type": "string",
"node": "string"
}
],
"additive": "additive"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | MeasureOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Edit A Measure
PATCH /measures/{measure_name}
Edit a measure
Body parameter
{
"display_name": "string",
"description": "string",
"columns": [
{
"node": "string",
"column": "string"
}
],
"additive": "additive"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| measure_name | path | string | true | none |
| body | body | EditMeasure | true | none |
Example responses
201 Response
{
"name": "string",
"display_name": "string",
"description": "string",
"columns": [
{
"name": "string",
"type": "string",
"node": "string"
}
],
"additive": "additive"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | MeasureOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Add Availability State To Node
POST /data/{node_name}/availability
Add an availability state to a node.
Body parameter
{
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| body | body | AvailabilityStateBase | true | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Data For A Node
GET /data/{node_name}
Gets data for a node
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| dimensions | query | array[string] | false | Dimensional attributes to group by |
| filters | query | array[string] | false | Filters on dimensional attributes |
| orderby | query | array[string] | false | Expression to order by |
| limit | query | integer | false | Number of rows to limit the data retrieved to |
| async_ | query | boolean | false | Whether to run the query async or wait for results from the query engine |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"id": "string",
"engine_name": "string",
"engine_version": "string",
"submitted_query": "string",
"executed_query": "string",
"scheduled": "2019-08-24T14:15:22Z",
"started": "2019-08-24T14:15:22Z",
"finished": "2019-08-24T14:15:22Z",
"state": "UNKNOWN",
"progress": 0,
"output_table": {
"catalog": "string",
"schema": "string",
"table": "string"
},
"results": [
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
],
"next": "http://example.com",
"previous": "http://example.com",
"errors": [
"string"
],
"links": [
"http://example.com"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | QueryWithResults |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Data For Query Id
GET /data/query/{query_id}
Return data for a specific query ID.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query_id | path | string | true | none |
Example responses
200 Response
{
"id": "string",
"engine_name": "string",
"engine_version": "string",
"submitted_query": "string",
"executed_query": "string",
"scheduled": "2019-08-24T14:15:22Z",
"started": "2019-08-24T14:15:22Z",
"finished": "2019-08-24T14:15:22Z",
"state": "UNKNOWN",
"progress": 0,
"output_table": {
"catalog": "string",
"schema": "string",
"table": "string"
},
"results": [
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
],
"next": "http://example.com",
"previous": "http://example.com",
"errors": [
"string"
],
"links": [
"http://example.com"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | QueryWithResults |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Data For Metrics
GET /data
Return data for a set of metrics with dimensions and filters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| metrics | query | array[string] | false | none |
| dimensions | query | array[string] | false | none |
| filters | query | array[string] | false | none |
| orderby | query | array[string] | false | none |
| limit | query | integer | false | none |
| async_ | query | boolean | false | none |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"id": "string",
"engine_name": "string",
"engine_version": "string",
"submitted_query": "string",
"executed_query": "string",
"scheduled": "2019-08-24T14:15:22Z",
"started": "2019-08-24T14:15:22Z",
"finished": "2019-08-24T14:15:22Z",
"state": "UNKNOWN",
"progress": 0,
"output_table": {
"catalog": "string",
"schema": "string",
"table": "string"
},
"results": [
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
],
"next": "http://example.com",
"previous": "http://example.com",
"errors": [
"string"
],
"links": [
"http://example.com"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | QueryWithResults |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Data Stream For Metrics
GET /stream
Return data for a set of metrics with dimensions and filters using server side events
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| metrics | query | array[string] | false | none |
| dimensions | query | array[string] | false | none |
| filters | query | array[string] | false | none |
| orderby | query | array[string] | false | none |
| limit | query | integer | false | none |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"id": "string",
"engine_name": "string",
"engine_version": "string",
"submitted_query": "string",
"executed_query": "string",
"scheduled": "2019-08-24T14:15:22Z",
"started": "2019-08-24T14:15:22Z",
"finished": "2019-08-24T14:15:22Z",
"state": "UNKNOWN",
"progress": 0,
"output_table": {
"catalog": "string",
"schema": "string",
"table": "string"
},
"results": [
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
],
"next": "http://example.com",
"previous": "http://example.com",
"errors": [
"string"
],
"links": [
"http://example.com"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | QueryWithResults |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Health Check
GET /health/
Healthcheck for services.
Example responses
200 Response
[
{
"name": "string",
"status": "ok"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Status Code 200
Response Health Check Health Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response Health Check Health Get | [HealthCheck] | false | none | [A healthcheck response.] |
| » HealthCheck | HealthCheck | false | none | A healthcheck response. |
| »» name | string | true | none | none |
| »» status | HealthcheckStatus | true | none | Possible health statuses. |
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
| status | failed |
List History
GET /history/{entity_type}/{entity_name}
List history for an entity type (i.e. Node) and entity name
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| entity_type | path | EntityType | true | none |
| entity_name | path | string | true | none |
| offset | query | integer | false | none |
| limit | query | integer | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| entity_type | attribute |
| entity_type | availability |
| entity_type | backfill |
| entity_type | catalog |
| entity_type | column_attribute |
| entity_type | dependency |
| entity_type | engine |
| entity_type | link |
| entity_type | materialization |
| entity_type | namespace |
| entity_type | node |
| entity_type | partition |
| entity_type | query |
| entity_type | tag |
Example responses
200 Response
[
{
"id": 0,
"entity_type": "attribute",
"entity_name": "string",
"node": "string",
"activity_type": "create",
"user": "string",
"pre": {},
"post": {},
"details": {},
"created_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List History History Entity Type Entity Name Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List History History Entity Type Entity Name Get | [HistoryOutput] | false | none | [Output history event] |
| » HistoryOutput | HistoryOutput | false | none | Output history event |
| »» id | integer | true | none | none |
| »» entity_type | EntityType | false | none | An entity type for which activity can occur |
| »» entity_name | string | false | none | none |
| »» node | string | false | none | none |
| »» activity_type | ActivityType | false | none | An activity type |
| »» user | string | false | none | none |
| »» pre | object | true | none | none |
| »» post | object | true | none | none |
| »» details | object | true | none | none |
| »» created_at | string(date-time) | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| entity_type | attribute |
| entity_type | availability |
| entity_type | backfill |
| entity_type | catalog |
| entity_type | column_attribute |
| entity_type | dependency |
| entity_type | engine |
| entity_type | link |
| entity_type | materialization |
| entity_type | namespace |
| entity_type | node |
| entity_type | partition |
| entity_type | query |
| entity_type | tag |
| activity_type | create |
| activity_type | delete |
| activity_type | restore |
| activity_type | update |
| activity_type | refresh |
| activity_type | tag |
| activity_type | set_attribute |
| activity_type | status_change |
List History By Node Context
GET /history
List all activity history for a node context
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node | query | string | true | none |
| offset | query | integer | false | none |
| limit | query | integer | false | none |
Example responses
200 Response
[
{
"id": 0,
"entity_type": "attribute",
"entity_name": "string",
"node": "string",
"activity_type": "create",
"user": "string",
"pre": {},
"post": {},
"details": {},
"created_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List History By Node Context History Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List History By Node Context History Get | [HistoryOutput] | false | none | [Output history event] |
| » HistoryOutput | HistoryOutput | false | none | Output history event |
| »» id | integer | true | none | none |
| »» entity_type | EntityType | false | none | An entity type for which activity can occur |
| »» entity_name | string | false | none | none |
| »» node | string | false | none | none |
| »» activity_type | ActivityType | false | none | An activity type |
| »» user | string | false | none | none |
| »» pre | object | true | none | none |
| »» post | object | true | none | none |
| »» details | object | true | none | none |
| »» created_at | string(date-time) | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| entity_type | attribute |
| entity_type | availability |
| entity_type | backfill |
| entity_type | catalog |
| entity_type | column_attribute |
| entity_type | dependency |
| entity_type | engine |
| entity_type | link |
| entity_type | materialization |
| entity_type | namespace |
| entity_type | node |
| entity_type | partition |
| entity_type | query |
| entity_type | tag |
| activity_type | create |
| activity_type | delete |
| activity_type | restore |
| activity_type | update |
| activity_type | refresh |
| activity_type | tag |
| activity_type | set_attribute |
| activity_type | status_change |
Get A Cube
GET /cubes/{name}
Get information on a cube
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
{
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"description": "",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"cube_elements": [
{
"name": "string",
"display_name": "string",
"node_name": "string",
"type": "string",
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"cube_node_metrics": [
"string"
],
"cube_node_dimensions": [
"string"
],
"query": "string",
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"tags": [
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | CubeRevisionMetadata |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Dimensions Sql For Cube
GET /cubes/{name}/dimensions/sql
Generates SQL to retrieve all unique values of a dimension for the cube
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| dimensions | query | array[string] | false | Dimensions to get values for |
| filters | query | string | false | Filters on dimensional attributes |
| limit | query | integer | false | Number of rows to limit the data retrieved to |
| include_counts | query | boolean | false | none |
Example responses
200 Response
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"dialect": "spark",
"upstream_tables": [
"string"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | TranslatedSQL |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Dimensions Values For Cube
GET /cubes/{name}/dimensions/data
All unique values of a dimension from the cube
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| dimensions | query | array[string] | false | Dimensions to get values for |
| filters | query | string | false | Filters on dimensional attributes |
| limit | query | integer | false | Number of rows to limit the data retrieved to |
| include_counts | query | boolean | false | none |
| async_ | query | boolean | false | none |
Example responses
200 Response
{
"dimensions": [
"string"
],
"values": [
{
"value": [
"string"
],
"count": 0
}
],
"cardinality": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | DimensionValues |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Tags
GET /tags
List all available tags.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| tag_type | query | string | false | none |
Example responses
200 Response
[
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Tags Tags Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Tags Tags Get | [TagOutput] | false | none | [Output tag model.] |
| » TagOutput | TagOutput | false | none | Output tag model. |
| »» description | string | false | none | none |
| »» display_name | string | false | none | none |
| »» tag_metadata | object | false | none | none |
| »» name | string | true | none | none |
| »» tag_type | string | true | none | none |
Create A Tag
POST /tags
Create a tag.
Body parameter
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateTag | true | none |
Example responses
201 Response
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | TagOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get A Tag
GET /tags/{name}
Return a tag by name.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
Example responses
200 Response
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | TagOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update A Tag
PATCH /tags/{name}
Update a tag.
Body parameter
{
"description": "string",
"display_name": "string",
"tag_metadata": {}
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| body | body | UpdateTag | true | none |
Example responses
200 Response
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | TagOutput |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Nodes For A Tag
GET /tags/{name}/nodes
Find nodes tagged with the tag, filterable by node type.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| node_type | query | NodeType | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| node_type | source |
| node_type | transform |
| node_type | metric |
| node_type | dimension |
| node_type | cube |
Example responses
200 Response
[
{
"name": "string",
"display_name": "string",
"description": "string",
"version": "string",
"type": "source",
"status": "valid",
"mode": "published",
"updated_at": "2019-08-24T14:15:22Z"
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Nodes For A Tag Tags Name Nodes Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Nodes For A Tag Tags Name Nodes Get | [NodeMinimumDetail] | false | none | [List of high level node details] |
| » NodeMinimumDetail | NodeMinimumDetail | false | none | List of high level node details |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» description | string | true | none | none |
| »» version | string | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» updated_at | string(date-time) | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
List Attributes
GET /attributes
List all available attribute types.
Example responses
200 Response
[
{
"namespace": "system",
"name": "string",
"description": "string",
"allowed_node_types": [
"source"
],
"uniqueness_scope": [
"node"
],
"id": 0
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Status Code 200
Response List Attributes Attributes Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Attributes Attributes Get | [AttributeTypeBase] | false | none | [Base attribute type.] |
| » AttributeTypeBase | AttributeTypeBase | false | none | Base attribute type. |
| »» namespace | string | false | none | none |
| »» name | string | true | none | none |
| »» description | string | true | none | none |
| »» allowed_node_types | [NodeType] | true | none | [Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS.] |
| »»» NodeType | NodeType | false | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» uniqueness_scope | [UniquenessScope] | false | none | [The scope at which this attribute needs to be unique.] |
| »»» UniquenessScope | UniquenessScope | false | none | The scope at which this attribute needs to be unique. |
| »» id | integer | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| NodeType | source |
| NodeType | transform |
| NodeType | metric |
| NodeType | dimension |
| NodeType | cube |
| UniquenessScope | node |
| UniquenessScope | column_type |
Add An Attribute Type
POST /attributes
Add a new attribute type
Body parameter
{
"namespace": "system",
"name": "string",
"description": "string",
"allowed_node_types": [
"source"
],
"uniqueness_scope": [
"node"
]
}
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | MutableAttributeTypeFields | true | none |
Example responses
201 Response
{
"namespace": "system",
"name": "string",
"description": "string",
"allowed_node_types": [
"source"
],
"uniqueness_scope": [
"node"
],
"id": 0
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | AttributeTypeBase |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Measures Sql
GET /sql/measures
Return the measures SQL for a set of metrics with dimensions and filters. This SQL can be used to produce an intermediate table with all the measures and dimensions needed for an analytics database (e.g., Druid).
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| metrics | query | array[string] | false | none |
| dimensions | query | array[string] | false | none |
| filters | query | array[string] | false | none |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"dialect": "spark",
"upstream_tables": [
"string"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | TranslatedSQL |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Sql For A Node
GET /sql/{node_name}
Return SQL for a node.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| dimensions | query | array[string] | false | none |
| filters | query | array[string] | false | none |
| orderby | query | array[string] | false | none |
| limit | query | integer | false | none |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"dialect": "spark",
"upstream_tables": [
"string"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | TranslatedSQL |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Sql For Metrics
GET /sql
Return SQL for a set of metrics with dimensions and filters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| metrics | query | array[string] | false | none |
| dimensions | query | array[string] | false | none |
| filters | query | array[string] | false | none |
| orderby | query | array[string] | false | none |
| limit | query | integer | false | none |
| engine_name | query | string | false | none |
| engine_version | query | string | false | none |
Example responses
200 Response
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"dialect": "spark",
"upstream_tables": [
"string"
]
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | TranslatedSQL |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Client Code For Creating Node
GET /datajunction-clients/python/new_node/{node_name}
Generate the Python client code used for creating this node
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
Example responses
200 Response
"string"
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | string |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Client Code For Adding Materialization
GET /datajunction-clients/python/add_materialization/{node_name}/{materialization_name}
Generate the Python client code used for adding this materialization
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| materialization_name | path | string | true | none |
Example responses
200 Response
"string"
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | string |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Client Code For Linking Dimension To Node
GET /datajunction-clients/python/link_dimension/{node_name}/{column}/{dimension}
Generate the Python client code used for linking this node’s column to a dimension
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| node_name | path | string | true | none |
| column | path | string | true | none |
| dimension | path | string | true | none |
Example responses
200 Response
"string"
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | string |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
List Dimensions
GET /dimensions
List all available dimensions.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| prefix | query | string | false | none |
Example responses
200 Response
[
"string"
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response List Dimensions Dimensions Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response List Dimensions Dimensions Get | [string] | false | none | none |
Find Nodes With Dimension
GET /dimensions/{name}/nodes
List all nodes that have the specified dimension
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | path | string | true | none |
| node_type | query | array[string] | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| node_type | source |
| node_type | transform |
| node_type | metric |
| node_type | dimension |
| node_type | cube |
Example responses
200 Response
[
{
"id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response Find Nodes With Dimension Dimensions Name Nodes Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response Find Nodes With Dimension Dimensions Name Nodes Get | [NodeRevisionOutput] | false | none | [Output for a node revision with information about columns and if it is a metric.] |
| » NodeRevisionOutput | NodeRevisionOutput | false | none | Output for a node revision with information about columns and if it is a metric. |
| »» id | integer | true | none | none |
| »» node_id | integer | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» version | string | true | none | none |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» catalog | CatalogInfo | false | none | Class for catalog creation |
| »»» name | string | true | none | none |
| »»» engines | [EngineInfo] | false | none | [Class for engine creation] |
| »»»» EngineInfo | EngineInfo | false | none | Class for engine creation |
| »»»»» name | string | true | none | none |
| »»»»» version | string | true | none | none |
| »»»»» uri | string | false | none | none |
| »»»»» dialect | Dialect | false | none | SQL dialect |
| »» schema_ | string | false | none | none |
| »» table | string | false | none | none |
| »» description | string | false | none | none |
| »» query | string | false | none | none |
| »» availability | AvailabilityStateBase | false | none | An availability state base |
| »»» min_temporal_partition | [string] | false | none | none |
| »»» max_temporal_partition | [string] | false | none | none |
| »»» catalog | string | true | none | none |
| »»» schema_ | string | false | none | none |
| »»» table | string | true | none | none |
| »»» valid_through_ts | integer | true | none | none |
| »»» url | string | false | none | none |
| »»» categorical_partitions | [string] | false | none | none |
| »»» temporal_partitions | [string] | false | none | none |
| »»» partitions | [PartitionAvailability] | false | none | [Partition-level availability] |
| »»»» PartitionAvailability | PartitionAvailability | false | none | Partition-level availability |
| »»»»» min_temporal_partition | [string] | false | none | none |
| »»»»» max_temporal_partition | [string] | false | none | none |
| »»»»» value | [string] | true | none | none |
| »»»»» valid_through_ts | integer | false | none | none |
| »» columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| »»» ColumnOutput | datajunction_server__models__node__ColumnOutput | false | none | A simplified column schema, without ID or dimensions. |
| »»»» name | string | true | none | none |
| »»»» display_name | string | false | none | none |
| »»»» type | string | true | none | none |
| »»»» attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| »»»»» AttributeOutput | AttributeOutput | false | none | Column attribute output. |
| »»»»»» attribute_type | AttributeTypeName | true | none | Attribute type name. |
| »»»»»»» namespace | string | true | none | none |
| »»»»»»» name | string | true | none | none |
| »»»» dimension | NodeNameOutput | false | none | Node name only |
| »»»»» name | string | true | none | none |
| »»»» partition | PartitionOutput | false | none | Output for partition |
| »»»»» type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| »»»»» format | string | false | none | none |
| »»»»» granularity | string | false | none | none |
| »»»»» expression | string | false | none | none |
| »» updated_at | string(date-time) | true | none | none |
| »» materializations | [MaterializationConfigOutput] | true | none | [Output for materialization config.] |
| »»» MaterializationConfigOutput | MaterializationConfigOutput | false | none | Output for materialization config. |
| »»»» name | string | false | none | none |
| »»»» config | object | true | none | none |
| »»»» schedule | string | true | none | none |
| »»»» job | string | false | none | none |
| »»»» backfills | [BackfillOutput] | true | none | [Output model for backfills] |
| »»»»» BackfillOutput | BackfillOutput | false | none | Output model for backfills |
| »»»»»» spec | PartitionBackfill | false | none | Used for setting backfilled values |
| »»»»»»» column_name | string | true | none | none |
| »»»»»»» values | [any] | false | none | none |
| »»»»»»» range | [any] | false | none | none |
| »»»»»» urls | [string] | false | none | none |
| »»»» strategy | string | false | none | none |
| »» parents | [NodeNameOutput] | true | none | [Node name only] |
| »»» NodeNameOutput | NodeNameOutput | false | none | Node name only |
| »» metric_metadata | MetricMetadataOutput | false | none | Metric metadata output |
| »»» direction | MetricDirection | false | none | The direction of the metric that’s considered good, i.e., higher is better |
| »»» unit | Unit | false | none | Metric unit |
| »»»» name | string | true | none | none |
| »»»» label | string | false | none | none |
| »»»» category | string | false | none | none |
| »»»» abbreviation | string | false | none | none |
| »»»» description | string | false | none | none |
| »» dimension_links | [LinkDimensionOutput] | false | none | [Input for linking a dimension to a node] |
| »»» LinkDimensionOutput | LinkDimensionOutput | false | none | Input for linking a dimension to a node |
| »»»» dimension | NodeNameOutput | true | none | Node name only |
| »»»» join_type | JoinType | true | none | Join type |
| »»»» join_sql | string | true | none | none |
| »»»» join_cardinality | JoinCardinality | false | none | The version upgrade type |
| »»»» role | string | false | none | none |
| »»»» foreign_keys | object | true | none | none |
| »»»»» additionalProperties | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
| dialect | spark |
| dialect | trino |
| dialect | druid |
| type_ | temporal |
| type_ | categorical |
| direction | higher_is_better |
| direction | lower_is_better |
| direction | neutral |
| join_type | left |
| join_type | right |
| join_type | inner |
| join_type | full |
| join_type | cross |
| join_cardinality | one_to_one |
| join_cardinality | one_to_many |
| join_cardinality | many_to_one |
| join_cardinality | many_to_many |
Find Nodes With Common Dimensions
GET /dimensions/common
Find all nodes that have the list of common dimensions
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| dimension | query | array[string] | false | none |
| node_type | query | array[string] | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| node_type | source |
| node_type | transform |
| node_type | metric |
| node_type | dimension |
| node_type | cube |
Example responses
200 Response
[
{
"id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
]
}
]
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Status Code 200
Response Find Nodes With Common Dimensions Dimensions Common Get
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Response Find Nodes With Common Dimensions Dimensions Common Get | [NodeRevisionOutput] | false | none | [Output for a node revision with information about columns and if it is a metric.] |
| » NodeRevisionOutput | NodeRevisionOutput | false | none | Output for a node revision with information about columns and if it is a metric. |
| »» id | integer | true | none | none |
| »» node_id | integer | true | none | none |
| »» type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| »» name | string | true | none | none |
| »» display_name | string | true | none | none |
| »» version | string | true | none | none |
| »» status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| »» mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| »» catalog | CatalogInfo | false | none | Class for catalog creation |
| »»» name | string | true | none | none |
| »»» engines | [EngineInfo] | false | none | [Class for engine creation] |
| »»»» EngineInfo | EngineInfo | false | none | Class for engine creation |
| »»»»» name | string | true | none | none |
| »»»»» version | string | true | none | none |
| »»»»» uri | string | false | none | none |
| »»»»» dialect | Dialect | false | none | SQL dialect |
| »» schema_ | string | false | none | none |
| »» table | string | false | none | none |
| »» description | string | false | none | none |
| »» query | string | false | none | none |
| »» availability | AvailabilityStateBase | false | none | An availability state base |
| »»» min_temporal_partition | [string] | false | none | none |
| »»» max_temporal_partition | [string] | false | none | none |
| »»» catalog | string | true | none | none |
| »»» schema_ | string | false | none | none |
| »»» table | string | true | none | none |
| »»» valid_through_ts | integer | true | none | none |
| »»» url | string | false | none | none |
| »»» categorical_partitions | [string] | false | none | none |
| »»» temporal_partitions | [string] | false | none | none |
| »»» partitions | [PartitionAvailability] | false | none | [Partition-level availability] |
| »»»» PartitionAvailability | PartitionAvailability | false | none | Partition-level availability |
| »»»»» min_temporal_partition | [string] | false | none | none |
| »»»»» max_temporal_partition | [string] | false | none | none |
| »»»»» value | [string] | true | none | none |
| »»»»» valid_through_ts | integer | false | none | none |
| »» columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| »»» ColumnOutput | datajunction_server__models__node__ColumnOutput | false | none | A simplified column schema, without ID or dimensions. |
| »»»» name | string | true | none | none |
| »»»» display_name | string | false | none | none |
| »»»» type | string | true | none | none |
| »»»» attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| »»»»» AttributeOutput | AttributeOutput | false | none | Column attribute output. |
| »»»»»» attribute_type | AttributeTypeName | true | none | Attribute type name. |
| »»»»»»» namespace | string | true | none | none |
| »»»»»»» name | string | true | none | none |
| »»»» dimension | NodeNameOutput | false | none | Node name only |
| »»»»» name | string | true | none | none |
| »»»» partition | PartitionOutput | false | none | Output for partition |
| »»»»» type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| »»»»» format | string | false | none | none |
| »»»»» granularity | string | false | none | none |
| »»»»» expression | string | false | none | none |
| »» updated_at | string(date-time) | true | none | none |
| »» materializations | [MaterializationConfigOutput] | true | none | [Output for materialization config.] |
| »»» MaterializationConfigOutput | MaterializationConfigOutput | false | none | Output for materialization config. |
| »»»» name | string | false | none | none |
| »»»» config | object | true | none | none |
| »»»» schedule | string | true | none | none |
| »»»» job | string | false | none | none |
| »»»» backfills | [BackfillOutput] | true | none | [Output model for backfills] |
| »»»»» BackfillOutput | BackfillOutput | false | none | Output model for backfills |
| »»»»»» spec | PartitionBackfill | false | none | Used for setting backfilled values |
| »»»»»»» column_name | string | true | none | none |
| »»»»»»» values | [any] | false | none | none |
| »»»»»»» range | [any] | false | none | none |
| »»»»»» urls | [string] | false | none | none |
| »»»» strategy | string | false | none | none |
| »» parents | [NodeNameOutput] | true | none | [Node name only] |
| »»» NodeNameOutput | NodeNameOutput | false | none | Node name only |
| »» metric_metadata | MetricMetadataOutput | false | none | Metric metadata output |
| »»» direction | MetricDirection | false | none | The direction of the metric that’s considered good, i.e., higher is better |
| »»» unit | Unit | false | none | Metric unit |
| »»»» name | string | true | none | none |
| »»»» label | string | false | none | none |
| »»»» category | string | false | none | none |
| »»»» abbreviation | string | false | none | none |
| »»»» description | string | false | none | none |
| »» dimension_links | [LinkDimensionOutput] | false | none | [Input for linking a dimension to a node] |
| »»» LinkDimensionOutput | LinkDimensionOutput | false | none | Input for linking a dimension to a node |
| »»»» dimension | NodeNameOutput | true | none | Node name only |
| »»»» join_type | JoinType | true | none | Join type |
| »»»» join_sql | string | true | none | none |
| »»»» join_cardinality | JoinCardinality | false | none | The version upgrade type |
| »»»» role | string | false | none | none |
| »»»» foreign_keys | object | true | none | none |
| »»»»» additionalProperties | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | source |
| type | transform |
| type | metric |
| type | dimension |
| type | cube |
| status | valid |
| status | invalid |
| mode | published |
| mode | draft |
| dialect | spark |
| dialect | trino |
| dialect | druid |
| type_ | temporal |
| type_ | categorical |
| direction | higher_is_better |
| direction | lower_is_better |
| direction | neutral |
| join_type | left |
| join_type | right |
| join_type | inner |
| join_type | full |
| join_type | cross |
| join_cardinality | one_to_one |
| join_cardinality | one_to_many |
| join_cardinality | many_to_one |
| join_cardinality | many_to_many |
Get User
GET /whoami
Returns the current authenticated user
Example responses
200 Response
{
"id": 0,
"username": "string",
"email": "string",
"name": "string",
"oauth_provider": "basic",
"is_admin": false
}
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | UserOutput |
Get Short Lived Token
GET /token
Returns a token that expires in 24 hours
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Create A User
POST /basic/user/
Create a new user
Body parameter
email: string
username: string
password: string
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Body_create_a_user_basic_user__post | true | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Login
POST /basic/login/
Get a JWT token and set it as an HTTP only cookie
Body parameter
grant_type: string
username: string
password: string
scope: ""
client_id: string
client_secret: string
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Body_login_basic_login__post | true | none |
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Logout
POST /logout/
Logout a user by deleting the auth cookie
Example responses
200 Response
null
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | Inline |
Schemas
"create"
ActivityType
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ActivityType | string | false | none | An activity type |
Enumerated Values
| Property | Value |
|---|---|
| ActivityType | create |
| ActivityType | delete |
| ActivityType | restore |
| ActivityType | update |
| ActivityType | refresh |
| ActivityType | tag |
| ActivityType | set_attribute |
| ActivityType | status_change |
"additive"
AggregationRule
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| AggregationRule | string | false | none | Type of allowed aggregation for a given measure. |
Enumerated Values
| Property | Value |
|---|---|
| AggregationRule | additive |
| AggregationRule | non-additive |
| AggregationRule | semi-additive |
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
AttributeOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| attribute_type | AttributeTypeName | true | none | Attribute type name. |
{
"namespace": "system",
"name": "string",
"description": "string",
"allowed_node_types": [
"source"
],
"uniqueness_scope": [
"node"
],
"id": 0
}
AttributeTypeBase
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| namespace | string | false | none | none |
| name | string | true | none | none |
| description | string | true | none | none |
| allowed_node_types | [NodeType] | true | none | [Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS.] |
| uniqueness_scope | [UniquenessScope] | false | none | [The scope at which this attribute needs to be unique.] |
| id | integer | true | none | none |
{
"namespace": "system",
"name": "string"
}
AttributeTypeIdentifier
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| namespace | string | false | none | none |
| name | string | true | none | none |
{
"namespace": "string",
"name": "string"
}
AttributeTypeName
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| namespace | string | true | none | none |
| name | string | true | none | none |
{
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
}
AvailabilityStateBase
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| min_temporal_partition | [string] | false | none | none |
| max_temporal_partition | [string] | false | none | none |
| catalog | string | true | none | none |
| schema_ | string | false | none | none |
| table | string | true | none | none |
| valid_through_ts | integer | true | none | none |
| url | string | false | none | none |
| categorical_partitions | [string] | false | none | none |
| temporal_partitions | [string] | false | none | none |
| partitions | [PartitionAvailability] | false | none | [Partition-level availability] |
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
BackfillOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| spec | PartitionBackfill | false | none | Used for setting backfilled values |
| urls | [string] | false | none | none |
{
"email": "string",
"username": "string",
"password": "string"
}
Body_create_a_user_basic_user__post
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string | true | none | none | |
| username | string | true | none | none |
| password | string | true | none | none |
{
"grant_type": "string",
"username": "string",
"password": "string",
"scope": "",
"client_id": "string",
"client_secret": "string"
}
Body_login_basic_login__post
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| grant_type | string | false | none | none |
| username | string | true | none | none |
| password | string | true | none | none |
| scope | string | false | none | none |
| client_id | string | false | none | none |
| client_secret | string | false | none | none |
{
"name": "string",
"engines": []
}
CatalogInfo
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| engines | [EngineInfo] | false | none | [Class for engine creation] |
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
ColumnMetadata
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| type | string | true | none | none |
| column | string | false | none | none |
| node | string | false | none | none |
| semantic_entity | string | false | none | none |
| semantic_type | string | false | none | none |
{}
ColumnType
Properties
None
{
"metrics": [
"string"
],
"dimensions": [
"string"
],
"filters": [
"string"
],
"orderby": [
"string"
],
"limit": 0,
"description": "string",
"mode": "published",
"display_name": "string",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
CreateCubeNode
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| metrics | [string] | true | none | none |
| dimensions | [string] | true | none | none |
| filters | [string] | false | none | none |
| orderby | [string] | false | none | none |
| limit | integer | false | none | none |
| description | string | true | none | none |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| display_name | string | false | none | none |
| primary_key | [string] | false | none | none |
| name | string | true | none | none |
| namespace | string | false | none | none |
{
"name": "string",
"display_name": "string",
"description": "string",
"columns": [
{
"node": "string",
"column": "string"
}
],
"additive": "non-additive"
}
CreateMeasure
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| display_name | string | false | none | none |
| description | string | false | none | none |
| columns | [NodeColumn] | true | none | [Defines a column on a node] |
| additive | AggregationRule | false | none | Type of allowed aggregation for a given measure. |
{
"required_dimensions": [
"string"
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": "string"
},
"query": "string",
"display_name": "string",
"description": "string",
"mode": "published",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
CreateNode
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| required_dimensions | [string] | false | none | none |
| metric_metadata | MetricMetadataInput | false | none | Metric metadata output |
| query | string | true | none | none |
| display_name | string | false | none | none |
| description | string | true | none | none |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| primary_key | [string] | false | none | none |
| name | string | true | none | none |
| namespace | string | false | none | none |
{
"catalog": "string",
"schema_": "string",
"table": "string",
"columns": [
{
"name": "string",
"type": {},
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": "string"
}
],
"missing_table": false,
"display_name": "string",
"description": "string",
"mode": "published",
"primary_key": [
"string"
],
"name": "string",
"namespace": "default"
}
CreateSourceNode
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| catalog | string | true | none | none |
| schema_ | string | true | none | none |
| table | string | true | none | none |
| columns | [SourceColumnOutput] | true | none | [A column used in creation of a source node] |
| missing_table | boolean | false | none | none |
| display_name | string | false | none | none |
| description | string | true | none | none |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| primary_key | [string] | false | none | none |
| name | string | true | none | none |
| namespace | string | false | none | none |
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
CreateTag
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | false | none | none |
| display_name | string | false | none | none |
| tag_metadata | object | false | none | none |
| name | string | true | none | none |
| tag_type | string | true | none | none |
{
"name": "string",
"display_name": "string",
"node_name": "string",
"type": "string",
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
CubeElementMetadata
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| display_name | string | true | none | none |
| node_name | string | true | none | none |
| type | string | true | none | none |
| partition | PartitionOutput | false | none | Output for partition |
{
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"description": "",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"cube_elements": [
{
"name": "string",
"display_name": "string",
"node_name": "string",
"type": "string",
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"cube_node_metrics": [
"string"
],
"cube_node_dimensions": [
"string"
],
"query": "string",
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"tags": [
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
]
}
CubeRevisionMetadata
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| node_revision_id | integer | true | none | none |
| node_id | integer | true | none | none |
| type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| name | string | true | none | none |
| display_name | string | true | none | none |
| version | string | true | none | none |
| status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| description | string | false | none | none |
| availability | AvailabilityStateBase | false | none | An availability state base |
| cube_elements | [CubeElementMetadata] | true | none | [Metadata for an element in a cube] |
| cube_node_metrics | [string] | true | none | none |
| cube_node_dimensions | [string] | true | none | none |
| query | string | false | none | none |
| columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| updated_at | string(date-time) | true | none | none |
| materializations | [MaterializationConfigOutput] | true | none | [Output for materialization config.] |
| tags | [TagOutput] | false | none | [Output tag model.] |
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"parents": [
{
"name": "string"
}
],
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string"
}
DAGNodeOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| namespace | string | true | none | none |
| node_revision_id | integer | true | none | none |
| node_id | integer | true | none | none |
| type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| name | string | true | none | none |
| display_name | string | true | none | none |
| version | string | true | none | none |
| status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| catalog | CatalogInfo | false | none | Class for catalog creation |
| schema_ | string | false | none | none |
| table | string | false | none | none |
| description | string | false | none | none |
| columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| updated_at | string(date-time) | true | none | none |
| parents | [NodeNameOutput] | true | none | [Node name only] |
| dimension_links | [LinkDimensionOutput] | true | none | [Input for linking a dimension to a node] |
| created_at | string(date-time) | true | none | none |
| tags | [TagOutput] | false | none | [Output tag model.] |
| current_version | string | true | none | none |
{
"code": 0,
"message": "string",
"debug": {},
"context": ""
}
DJError
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | ErrorCode | true | none | Error codes. |
| message | string | true | none | none |
| debug | object | false | none | none |
| context | string | false | none | none |
"spark"
Dialect
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Dialect | string | false | none | SQL dialect |
Enumerated Values
| Property | Value |
|---|---|
| Dialect | spark |
| Dialect | trino |
| Dialect | druid |
{
"name": "string",
"node_name": "string",
"node_display_name": "string",
"is_primary_key": true,
"type": "string",
"path": [
"string"
]
}
DimensionAttributeOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| node_name | string | false | none | none |
| node_display_name | string | false | none | none |
| is_primary_key | boolean | true | none | none |
| type | string | true | none | none |
| path | [string] | true | none | none |
{
"value": [
"string"
],
"count": 0
}
DimensionValue
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| value | [string] | true | none | none |
| count | integer | false | none | none |
{
"dimensions": [
"string"
],
"values": [
{
"value": [
"string"
],
"count": 0
}
],
"cardinality": 0
}
DimensionValues
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dimensions | [string] | true | none | none |
| values | [DimensionValue] | true | none | [Dimension value and count] |
| cardinality | integer | true | none | none |
{
"granularity": "string",
"intervals": [
"string"
],
"timestamp_column": "string",
"timestamp_format": "string",
"parse_spec_format": "string"
}
DruidConf
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| granularity | string | false | none | none |
| intervals | [string] | false | none | none |
| timestamp_column | string | false | none | none |
| timestamp_format | string | false | none | none |
| parse_spec_format | string | false | none | none |
{
"spark": {},
"lookback_window": "string",
"dimensions": [
"string"
],
"measures": {
"property1": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
},
"property2": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
}
},
"metrics": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"prefix": "",
"suffix": "",
"druid": {
"granularity": "string",
"intervals": [
"string"
],
"timestamp_column": "string",
"timestamp_format": "string",
"parse_spec_format": "string"
}
}
DruidCubeConfigInput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| spark | SparkConf | false | none | Spark configuration |
| lookback_window | string | false | none | none |
| dimensions | [string] | false | none | none |
| measures | object | false | none | none |
| » additionalProperties | MetricMeasures | false | none | Represent a metric as a set of measures, along with the expression forcombining the measures to make the metric. |
| metrics | [ColumnMetadata] | false | none | [A simple model for column metadata.] |
| prefix | string | false | none | none |
| suffix | string | false | none | none |
| druid | DruidConf | false | none | Druid configuration |
{
"display_name": "string",
"description": "string",
"columns": [
{
"node": "string",
"column": "string"
}
],
"additive": "additive"
}
EditMeasure
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| display_name | string | false | none | none |
| description | string | false | none | none |
| columns | [NodeColumn] | false | none | [Defines a column on a node] |
| additive | AggregationRule | false | none | Type of allowed aggregation for a given measure. |
{
"name": "string",
"version": "string",
"uri": "string",
"dialect": "spark"
}
EngineInfo
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| version | string | true | none | none |
| uri | string | false | none | none |
| dialect | Dialect | false | none | SQL dialect |
"attribute"
EntityType
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| EntityType | string | false | none | An entity type for which activity can occur |
Enumerated Values
| Property | Value |
|---|---|
| EntityType | attribute |
| EntityType | availability |
| EntityType | backfill |
| EntityType | catalog |
| EntityType | column_attribute |
| EntityType | dependency |
| EntityType | engine |
| EntityType | link |
| EntityType | materialization |
| EntityType | namespace |
| EntityType | node |
| EntityType | partition |
| EntityType | query |
| EntityType | tag |
0
ErrorCode
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ErrorCode | integer | false | none | Error codes. |
Enumerated Values
| Property | Value |
|---|---|
| ErrorCode | 0 |
| ErrorCode | 1 |
| ErrorCode | 2 |
| ErrorCode | 100 |
| ErrorCode | 101 |
| ErrorCode | 102 |
| ErrorCode | 200 |
| ErrorCode | 201 |
| ErrorCode | 202 |
| ErrorCode | 203 |
| ErrorCode | 204 |
| ErrorCode | 205 |
| ErrorCode | 206 |
| ErrorCode | 300 |
| ErrorCode | 301 |
| ErrorCode | 302 |
| ErrorCode | 400 |
| ErrorCode | 401 |
| ErrorCode | 402 |
| ErrorCode | 403 |
| ErrorCode | 500 |
| ErrorCode | 501 |
{
"spark": {},
"lookback_window": "string",
"dimensions": [
"string"
],
"measures": {
"property1": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
},
"property2": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
}
},
"metrics": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
]
}
GenericCubeConfigInput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| spark | SparkConf | false | none | Spark configuration |
| lookback_window | string | false | none | none |
| dimensions | [string] | false | none | none |
| measures | object | false | none | none |
| » additionalProperties | MetricMeasures | false | none | Represent a metric as a set of measures, along with the expression forcombining the measures to make the metric. |
| metrics | [ColumnMetadata] | false | none | [A simple model for column metadata.] |
{
"spark": {},
"lookback_window": "string"
}
GenericMaterializationConfigInput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| spark | SparkConf | false | none | Spark configuration |
| lookback_window | string | false | none | none |
"second"
Granularity
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Granularity | string | false | none | Time dimension granularity. |
Enumerated Values
| Property | Value |
|---|---|
| Granularity | second |
| Granularity | minute |
| Granularity | hour |
| Granularity | day |
| Granularity | week |
| Granularity | month |
| Granularity | quarter |
| Granularity | year |
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
HTTPValidationError
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| detail | [ValidationError] | false | none | none |
{
"name": "string",
"status": "ok"
}
HealthCheck
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| status | HealthcheckStatus | true | none | Possible health statuses. |
"ok"
HealthcheckStatus
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| HealthcheckStatus | string | false | none | Possible health statuses. |
Enumerated Values
| Property | Value |
|---|---|
| HealthcheckStatus | ok |
| HealthcheckStatus | failed |
{
"id": 0,
"entity_type": "attribute",
"entity_name": "string",
"node": "string",
"activity_type": "create",
"user": "string",
"pre": {},
"post": {},
"details": {},
"created_at": "2019-08-24T14:15:22Z"
}
HistoryOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| entity_type | EntityType | false | none | An entity type for which activity can occur |
| entity_name | string | false | none | none |
| node | string | false | none | none |
| activity_type | ActivityType | false | none | An activity type |
| user | string | false | none | none |
| pre | object | true | none | none |
| post | object | true | none | none |
| details | object | true | none | none |
| created_at | string(date-time) | true | none | none |
"one_to_one"
JoinCardinality
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| JoinCardinality | string | false | none | The version upgrade type |
Enumerated Values
| Property | Value |
|---|---|
| JoinCardinality | one_to_one |
| JoinCardinality | one_to_many |
| JoinCardinality | many_to_one |
| JoinCardinality | many_to_many |
"left"
JoinType
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| JoinType | string | false | none | Join type |
Enumerated Values
| Property | Value |
|---|---|
| JoinType | left |
| JoinType | right |
| JoinType | inner |
| JoinType | full |
| JoinType | cross |
{
"column_name": "string",
"node_name": "string",
"node_type": "string",
"display_name": "string",
"lineage": [
{
"column_name": "string",
"node_name": "string",
"node_type": "string",
"display_name": "string",
"lineage": []
}
]
}
LineageColumn
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| column_name | string | true | none | none |
| node_name | string | false | none | none |
| node_type | string | false | none | none |
| display_name | string | false | none | none |
| lineage | [LineageColumn] | false | none | [Column in lineage graph] |
{
"dimension_node": "string",
"role": "string"
}
LinkDimensionIdentifier
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dimension_node | string | true | none | none |
| role | string | false | none | none |
{
"dimension_node": "string",
"join_type": "left",
"join_on": "string",
"join_cardinality": "many_to_one",
"role": "string"
}
LinkDimensionInput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dimension_node | string | true | none | none |
| join_type | JoinType | false | none | Join type |
| join_on | string | true | none | none |
| join_cardinality | JoinCardinality | false | none | The version upgrade type |
| role | string | false | none | none |
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
LinkDimensionOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dimension | NodeNameOutput | true | none | Node name only |
| join_type | JoinType | true | none | Join type |
| join_sql | string | true | none | none |
| join_cardinality | JoinCardinality | false | none | The version upgrade type |
| role | string | false | none | none |
| foreign_keys | object | true | none | none |
| » additionalProperties | string | false | none | none |
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string",
"output_tables": [
"string"
],
"urls": [
"http://example.com"
]
}
MaterializationConfigInfoUnified
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| config | object | true | none | none |
| schedule | string | true | none | none |
| job | string | false | none | none |
| backfills | [BackfillOutput] | true | none | [Output model for backfills] |
| strategy | string | false | none | none |
| output_tables | [string] | true | none | none |
| urls | [string] | true | none | none |
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
MaterializationConfigOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| config | object | true | none | none |
| schedule | string | true | none | none |
| job | string | false | none | none |
| backfills | [BackfillOutput] | true | none | [Output model for backfills] |
| strategy | string | false | none | none |
{
"output_tables": [
"string"
],
"urls": [
"http://example.com"
]
}
MaterializationInfo
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| output_tables | [string] | true | none | none |
| urls | [string] | true | none | none |
{
"name": "spark_sql",
"label": "Spark SQL",
"description": "Spark SQL materialization job",
"allowed_node_types": [
"transform",
"dimension",
"cube"
],
"job_class": "SparkSqlMaterializationJob"
}
MaterializationJobTypeEnum
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| MaterializationJobTypeEnum | any | false | none | Available materialization job types |
Enumerated Values
| Property | Value |
|---|---|
| MaterializationJobTypeEnum | {“name”:“spark_sql”,“label”:“Spark SQL”,“description”:“Spark SQL materialization job”,“allowed_node_types”:[“transform”,“dimension”,“cube”],“job_class”:“SparkSqlMaterializationJob”} |
| MaterializationJobTypeEnum | {“name”:“druid_measures_cube”,“label”:“Druid Measures Cube (Pre-Agg Cube)”,“description”:“Used to materialize a cube’s measures to Druid for low-latency access to a set of metrics and dimensions. While the logical cube definition is at the level of metrics and dimensions, this materialized Druid cube will contain measures and dimensions, with rollup configured on the measures where appropriate.”,“allowed_node_types”:[“cube”],“job_class”:“DruidMeasuresCubeMaterializationJob”} |
| MaterializationJobTypeEnum | {“name”:“druid_metrics_cube”,“label”:“Druid Metrics Cube (Post-Agg Cube)”,“description”:“Used to materialize a cube of metrics and dimensions to Druid for low-latency access. The materialized cube is at the metric level, meaning that all metrics will be aggregated to the level of the cube’s dimensions.”,“allowed_node_types”:[“cube”],“job_class”:“DruidMetricsCubeMaterializationJob”} |
"full"
MaterializationStrategy
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| MaterializationStrategy | string | false | none | Materialization strategies |
Enumerated Values
| Property | Value |
|---|---|
| MaterializationStrategy | full |
| MaterializationStrategy | snapshot |
| MaterializationStrategy | snapshot_partition |
| MaterializationStrategy | incremental_time |
| MaterializationStrategy | view |
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
Measure
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| field_name | string | true | none | none |
| agg | string | true | none | none |
| type | string | true | none | none |
{
"name": "string",
"display_name": "string",
"description": "string",
"columns": [
{
"name": "string",
"type": "string",
"node": "string"
}
],
"additive": "additive"
}
MeasureOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| display_name | string | false | none | none |
| description | string | false | none | none |
| columns | [datajunction_server__models__measure__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| additive | AggregationRule | true | none | Type of allowed aggregation for a given measure. |
{
"id": 0,
"name": "string",
"display_name": "string",
"current_version": "string",
"description": "",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"query": "string",
"upstream_node": "string",
"expression": "string",
"dimensions": [
{
"name": "string",
"node_name": "string",
"node_display_name": "string",
"is_primary_key": true,
"type": "string",
"path": [
"string"
]
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"required_dimensions": [
"string"
]
}
Metric
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| name | string | true | none | none |
| display_name | string | true | none | none |
| current_version | string | true | none | none |
| description | string | false | none | none |
| created_at | string(date-time) | true | none | none |
| updated_at | string(date-time) | true | none | none |
| query | string | true | none | none |
| upstream_node | string | true | none | none |
| expression | string | true | none | none |
| dimensions | [DimensionAttributeOutput] | true | none | [Dimension attribute output should include the name and type] |
| metric_metadata | MetricMetadataOutput | false | none | Metric metadata output |
| required_dimensions | [string] | true | none | none |
"higher_is_better"
MetricDirection
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| MetricDirection | string | false | none | The direction of the metric that’s considered good, i.e., higher is better |
Enumerated Values
| Property | Value |
|---|---|
| MetricDirection | higher_is_better |
| MetricDirection | lower_is_better |
| MetricDirection | neutral |
{
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
}
MetricMeasures
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| metric | string | true | none | none |
| measures | [Measure] | true | none | [A measure with a simple aggregation] |
| combiner | string | true | none | none |
{
"direction": "higher_is_better",
"unit": "string"
}
MetricMetadataInput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| direction | MetricDirection | false | none | The direction of the metric that’s considered good, i.e., higher is better |
| unit | string | false | none | none |
{
"directions": [
"higher_is_better"
],
"units": [
{
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
]
}
MetricMetadataOptions
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| directions | [MetricDirection] | true | none | [The direction of the metric that’s considered good, i.e., higher is better] |
| units | [Unit] | true | none | [Metric unit] |
{
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
}
MetricMetadataOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| direction | MetricDirection | false | none | The direction of the metric that’s considered good, i.e., higher is better |
| unit | Unit | false | none | Metric unit |
{
"namespace": "system",
"name": "string",
"description": "string",
"allowed_node_types": [
"source"
],
"uniqueness_scope": [
"node"
]
}
MutableAttributeTypeFields
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| namespace | string | false | none | none |
| name | string | true | none | none |
| description | string | true | none | none |
| allowed_node_types | [NodeType] | true | none | [Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS.] |
| uniqueness_scope | [UniquenessScope] | false | none | [The scope at which this attribute needs to be unique.] |
{
"namespace": "string",
"num_nodes": 0
}
NamespaceOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| namespace | string | true | none | none |
| num_nodes | integer | true | none | none |
{
"node": "string",
"column": "string"
}
NodeColumn
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| node | string | true | none | none |
| column | string | true | none | none |
{
"name": "string",
"display_name": "string",
"description": "string",
"type": "source"
}
NodeIndexItem
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| display_name | string | true | none | none |
| description | string | true | none | none |
| type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
{
"name": "string",
"display_name": "string",
"description": "string",
"version": "string",
"type": "source",
"status": "valid",
"mode": "published",
"updated_at": "2019-08-24T14:15:22Z"
}
NodeMinimumDetail
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| display_name | string | true | none | none |
| description | string | true | none | none |
| version | string | true | none | none |
| type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| updated_at | string(date-time) | true | none | none |
"published"
NodeMode
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| NodeMode | string | false | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
Enumerated Values
| Property | Value |
|---|---|
| NodeMode | published |
| NodeMode | draft |
{
"name": "string"
}
NodeNameOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
{
"namespace": "string",
"node_revision_id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
],
"created_at": "2019-08-24T14:15:22Z",
"tags": [],
"current_version": "string",
"missing_table": false
}
NodeOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| namespace | string | true | none | none |
| node_revision_id | integer | true | none | none |
| node_id | integer | true | none | none |
| type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| name | string | true | none | none |
| display_name | string | true | none | none |
| version | string | true | none | none |
| status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| catalog | CatalogInfo | false | none | Class for catalog creation |
| schema_ | string | false | none | none |
| table | string | false | none | none |
| description | string | false | none | none |
| query | string | false | none | none |
| availability | AvailabilityStateBase | false | none | An availability state base |
| columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| updated_at | string(date-time) | true | none | none |
| materializations | [MaterializationConfigOutput] | true | none | [Output for materialization config.] |
| parents | [NodeNameOutput] | true | none | [Node name only] |
| metric_metadata | MetricMetadataOutput | false | none | Metric metadata output |
| dimension_links | [LinkDimensionOutput] | false | none | [Input for linking a dimension to a node] |
| created_at | string(date-time) | true | none | none |
| tags | [TagOutput] | false | none | [Output tag model.] |
| current_version | string | true | none | none |
| missing_table | boolean | false | none | none |
{
"name": "string",
"display_name": "string",
"type": "source",
"description": "",
"query": "string",
"mode": "published"
}
NodeRevisionBase
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| display_name | string | false | none | none |
| type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| description | string | false | none | none |
| query | string | false | none | none |
| mode | NodeMode | false | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
{
"id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
]
}
NodeRevisionOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| node_id | integer | true | none | none |
| type | NodeType | true | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
| name | string | true | none | none |
| display_name | string | true | none | none |
| version | string | true | none | none |
| status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| mode | NodeMode | true | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| catalog | CatalogInfo | false | none | Class for catalog creation |
| schema_ | string | false | none | none |
| table | string | false | none | none |
| description | string | false | none | none |
| query | string | false | none | none |
| availability | AvailabilityStateBase | false | none | An availability state base |
| columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| updated_at | string(date-time) | true | none | none |
| materializations | [MaterializationConfigOutput] | true | none | [Output for materialization config.] |
| parents | [NodeNameOutput] | true | none | [Node name only] |
| metric_metadata | MetricMetadataOutput | false | none | Metric metadata output |
| dimension_links | [LinkDimensionOutput] | false | none | [Input for linking a dimension to a node] |
"valid"
NodeStatus
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| NodeStatus | string | false | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
Enumerated Values
| Property | Value |
|---|---|
| NodeStatus | valid |
| NodeStatus | invalid |
"source"
NodeType
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| NodeType | string | false | none | Node type.A node can have 4 types, currently:1. SOURCE nodes are root nodes in the DAG, and point to tables or views in a DB.2. TRANSFORM nodes are SQL transformations, reading from SOURCE/TRANSFORM nodes.3. METRIC nodes are leaves in the DAG, and have a single aggregation query.4. DIMENSION nodes are special SOURCE nodes that can be auto-joined with METRICS.5. CUBE nodes contain a reference to a set of METRICS and a set of DIMENSIONS. |
Enumerated Values
| Property | Value |
|---|---|
| NodeType | source |
| NodeType | transform |
| NodeType | metric |
| NodeType | dimension |
| NodeType | cube |
{
"message": "string",
"status": "valid",
"dependencies": [
{
"id": 0,
"node_id": 0,
"type": "source",
"name": "string",
"display_name": "string",
"version": "string",
"status": "valid",
"mode": "published",
"catalog": {
"name": "string",
"engines": []
},
"schema_": "string",
"table": "string",
"description": "",
"query": "string",
"availability": {
"min_temporal_partition": [],
"max_temporal_partition": [],
"catalog": "string",
"schema_": "string",
"table": "string",
"valid_through_ts": 0,
"url": "string",
"categorical_partitions": [],
"temporal_partitions": [],
"partitions": []
},
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"updated_at": "2019-08-24T14:15:22Z",
"materializations": [
{
"name": "string",
"config": {},
"schedule": "string",
"job": "string",
"backfills": [
{
"spec": {
"column_name": "string",
"values": [
null
],
"range": [
null
]
},
"urls": [
"string"
]
}
],
"strategy": "string"
}
],
"parents": [
{
"name": "string"
}
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": {
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
},
"dimension_links": [
{
"dimension": {
"name": "string"
},
"join_type": "left",
"join_sql": "string",
"join_cardinality": "one_to_one",
"role": "string",
"foreign_keys": {
"property1": "string",
"property2": "string"
}
}
]
}
],
"columns": [
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
],
"errors": [
{
"code": 0,
"message": "string",
"debug": {},
"context": ""
}
],
"missing_parents": [
"string"
]
}
NodeValidation
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| message | string | true | none | none |
| status | NodeStatus | true | none | Node status.A node can have one of the following statuses:1. VALID - All references to other nodes and node columns are valid2. INVALID - One or more parent nodes are incompatible or do not exist |
| dependencies | [NodeRevisionOutput] | true | none | [Output for a node revision with information about columns and if it is a metric.] |
| columns | [datajunction_server__models__node__ColumnOutput] | true | none | [A simplified column schema, without ID or dimensions.] |
| errors | [DJError] | true | none | [An error.] |
| missing_parents | [string] | true | none | none |
"basic"
OAuthProvider
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| OAuthProvider | string | false | none | Support oauth providers |
Enumerated Values
| Property | Value |
|---|---|
| OAuthProvider | basic |
| OAuthProvider | github |
| OAuthProvider |
{
"min_temporal_partition": [
"string"
],
"max_temporal_partition": [
"string"
],
"value": [
"string"
],
"valid_through_ts": 0
}
PartitionAvailability
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| min_temporal_partition | [string] | false | none | none |
| max_temporal_partition | [string] | false | none | none |
| value | [string] | true | none | none |
| valid_through_ts | integer | false | none | none |
{
"column_name": "string",
"values": [
null
],
"range": [
null
]
}
PartitionBackfill
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| column_name | string | true | none | none |
| values | [any] | false | none | none |
| range | [any] | false | none | none |
{
"type_": "temporal",
"granularity": "second",
"format": "string"
}
PartitionInput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| granularity | Granularity | false | none | Time dimension granularity. |
| format | string | false | none | none |
{
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
PartitionOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| type_ | PartitionType | true | none | Partition type.A partition can be temporal or categorical |
| format | string | false | none | none |
| granularity | string | false | none | none |
| expression | string | false | none | none |
"temporal"
PartitionType
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| PartitionType | string | false | none | Partition type.A partition can be temporal or categorical |
Enumerated Values
| Property | Value |
|---|---|
| PartitionType | temporal |
| PartitionType | categorical |
[
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
]
QueryResults
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| QueryResults | [StatementResults] | false | none | Results for a given query. |
"UNKNOWN"
QueryState
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| QueryState | string | false | none | Different states of a query. |
Enumerated Values
| Property | Value |
|---|---|
| QueryState | UNKNOWN |
| QueryState | ACCEPTED |
| QueryState | SCHEDULED |
| QueryState | RUNNING |
| QueryState | FINISHED |
| QueryState | CANCELED |
| QueryState | FAILED |
{
"id": "string",
"engine_name": "string",
"engine_version": "string",
"submitted_query": "string",
"executed_query": "string",
"scheduled": "2019-08-24T14:15:22Z",
"started": "2019-08-24T14:15:22Z",
"finished": "2019-08-24T14:15:22Z",
"state": "UNKNOWN",
"progress": 0,
"output_table": {
"catalog": "string",
"schema": "string",
"table": "string"
},
"results": [
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
],
"next": "http://example.com",
"previous": "http://example.com",
"errors": [
"string"
],
"links": [
"http://example.com"
]
}
QueryWithResults
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| engine_name | string | false | none | none |
| engine_version | string | false | none | none |
| submitted_query | string | true | none | none |
| executed_query | string | false | none | none |
| scheduled | string(date-time) | false | none | none |
| started | string(date-time) | false | none | none |
| finished | string(date-time) | false | none | none |
| state | QueryState | false | none | Different states of a query. |
| progress | number | false | none | none |
| output_table | TableRef | false | none | Table reference |
| results | QueryResults | true | none | Results for a given query. |
| next | string(uri) | false | none | none |
| previous | string(uri) | false | none | none |
| errors | [string] | true | none | none |
| links | [string] | false | none | none |
{
"name": "string",
"type": {},
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": "string"
}
SourceColumnOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| type | ColumnType | true | none | Base type for all Column Types |
| attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| dimension | string | false | none | none |
{}
SparkConf
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| additionalProperties | string | false | none | none |
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"rows": [
[
null
]
],
"row_count": 0
}
StatementResults
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| sql | string | true | none | none |
| columns | [ColumnMetadata] | true | none | [A simple model for column metadata.] |
| rows | [array] | true | none | none |
| row_count | integer | false | none | none |
{
"catalog": "string",
"schema": "string",
"table": "string"
}
TableRef
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| catalog | string | true | none | none |
| schema | string | true | none | none |
| table | string | true | none | none |
{
"description": "string",
"display_name": "string",
"tag_metadata": {},
"name": "string",
"tag_type": "string"
}
TagOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | false | none | none |
| display_name | string | false | none | none |
| tag_metadata | object | false | none | none |
| name | string | true | none | none |
| tag_type | string | true | none | none |
{
"sql": "string",
"columns": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"dialect": "spark",
"upstream_tables": [
"string"
]
}
TranslatedSQL
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| sql | string | true | none | none |
| columns | [ColumnMetadata] | false | none | [A simple model for column metadata.] |
| dialect | Dialect | false | none | SQL dialect |
| upstream_tables | [string] | false | none | none |
"node"
UniquenessScope
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| UniquenessScope | string | false | none | The scope at which this attribute needs to be unique. |
Enumerated Values
| Property | Value |
|---|---|
| UniquenessScope | node |
| UniquenessScope | column_type |
{
"name": "string",
"label": "string",
"category": "string",
"abbreviation": "string",
"description": "string"
}
Unit
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| label | string | false | none | none |
| category | string | false | none | none |
| abbreviation | string | false | none | none |
| description | string | false | none | none |
{
"metrics": [
"string"
],
"dimensions": [
"string"
],
"filters": [
"string"
],
"orderby": [
"string"
],
"limit": 0,
"description": "string",
"mode": "published",
"required_dimensions": [
"string"
],
"metric_metadata": {
"direction": "higher_is_better",
"unit": "string"
},
"query": "string",
"catalog": "string",
"schema_": "string",
"table": "string",
"columns": [
{
"name": "string",
"type": {},
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": "string"
}
],
"missing_table": true,
"display_name": "string",
"primary_key": [
"string"
]
}
UpdateNode
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| metrics | [string] | false | none | none |
| dimensions | [string] | false | none | none |
| filters | [string] | false | none | none |
| orderby | [string] | false | none | none |
| limit | integer | false | none | none |
| description | string | false | none | none |
| mode | NodeMode | false | none | Node mode.A node can be in one of the following modes:1. PUBLISHED - Must be valid and not cause any child nodes to be invalid2. DRAFT - Can be invalid, have invalid parents, and include dangling references |
| required_dimensions | [string] | false | none | none |
| metric_metadata | MetricMetadataInput | false | none | Metric metadata output |
| query | string | false | none | none |
| catalog | string | false | none | none |
| schema_ | string | false | none | none |
| table | string | false | none | none |
| columns | [SourceColumnOutput] | false | none | [A column used in creation of a source node] |
| missing_table | boolean | false | none | none |
| display_name | string | false | none | none |
| primary_key | [string] | false | none | none |
{
"description": "string",
"display_name": "string",
"tag_metadata": {}
}
UpdateTag
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | false | none | none |
| display_name | string | false | none | none |
| tag_metadata | object | false | none | none |
{
"name": "string",
"job": {
"name": "spark_sql",
"label": "Spark SQL",
"description": "Spark SQL materialization job",
"allowed_node_types": [
"transform",
"dimension",
"cube"
],
"job_class": "SparkSqlMaterializationJob"
},
"config": {
"spark": {},
"lookback_window": "string",
"dimensions": [
"string"
],
"measures": {
"property1": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
},
"property2": {
"metric": "string",
"measures": [
{
"name": "string",
"field_name": "string",
"agg": "string",
"type": "string"
}
],
"combiner": "string"
}
},
"metrics": [
{
"name": "string",
"type": "string",
"column": "string",
"node": "string",
"semantic_entity": "string",
"semantic_type": "string"
}
],
"prefix": "",
"suffix": "",
"druid": {
"granularity": "string",
"intervals": [
"string"
],
"timestamp_column": "string",
"timestamp_format": "string",
"parse_spec_format": "string"
}
},
"schedule": "string",
"strategy": "full"
}
UpsertMaterialization
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| job | MaterializationJobTypeEnum | true | none | Available materialization job types |
| config | any | true | none | none |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | DruidCubeConfigInput | false | none | Specific Druid cube materialization fields that require user input |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | GenericCubeConfigInput | false | none | Generic cube materialization config fields that require user input |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | GenericMaterializationConfigInput | false | none | User-input portions of the materialization config |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| schedule | string | true | none | none |
| strategy | MaterializationStrategy | true | none | Materialization strategies |
{
"id": 0,
"username": "string",
"email": "string",
"name": "string",
"oauth_provider": "basic",
"is_admin": false
}
UserOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | integer | true | none | none |
| username | string | true | none | none |
| string | false | none | none | |
| name | string | false | none | none |
| oauth_provider | OAuthProvider | true | none | Support oauth providers |
| is_admin | boolean | false | none | none |
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
ValidationError
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| loc | [anyOf] | true | none | none |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | integer | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| msg | string | true | none | none |
| type | string | true | none | none |
{
"name": "string",
"type": "string",
"node": "string"
}
ColumnOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| type | string | true | none | none |
| node | string | true | none | none |
{
"name": "string",
"display_name": "string",
"type": "string",
"attributes": [
{
"attribute_type": {
"namespace": "string",
"name": "string"
}
}
],
"dimension": {
"name": "string"
},
"partition": {
"type_": "temporal",
"format": "string",
"granularity": "string",
"expression": "string"
}
}
ColumnOutput
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| display_name | string | false | none | none |
| type | string | true | none | none |
| attributes | [AttributeOutput] | false | none | [Column attribute output.] |
| dimension | NodeNameOutput | false | none | Node name only |
| partition | PartitionOutput | false | none | Output for partition |