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 |