DJ server v0.0.1a44

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
StatusMeaningDescriptionSchema
200OKThe GraphiQL integrated development environment.Inline
404Not FoundNot found if GraphiQL or query via GET are not enabled.None

Handle Http Post

POST /graphql

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

List Catalogs

GET /catalogs

List all available catalogs

Example responses

200 Response

[
  {
    "name": "string",
    "engines": []
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

Status Code 200

Response List Catalogs Catalogs Get

NameTypeRequiredRestrictionsDescription
Response List Catalogs Catalogs Get[CatalogInfo]falsenone[Class for catalog creation]
» CatalogInfoCatalogInfofalsenoneClass for catalog creation
»» namestringtruenonenone
»» engines[EngineInfo]falsenone[Class for engine creation]
»»» EngineInfoEngineInfofalsenoneClass for engine creation
»»»» namestringtruenonenone
»»»» versionstringtruenonenone
»»»» uristringfalsenonenone
»»»» dialectDialectfalsenoneSQL dialect

Enumerated Values

PropertyValue
dialectspark
dialecttrino
dialectdruid

Add A Catalog

POST /catalogs

Add a Catalog

Body parameter

{
  "name": "string",
  "engines": []
}
NameInTypeRequiredDescription
bodybodyCatalogInfotruenone

Example responses

201 Response

{
  "name": "string",
  "engines": []
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseCatalogInfo
422Unprocessable EntityValidation ErrorHTTPValidationError

Get A Catalog

GET /catalogs/{name}

Return a catalog by name

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

200 Response

{
  "name": "string",
  "engines": []
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseCatalogInfo
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
  }
]
NameInTypeRequiredDescription
namepathstringtruenone

Example responses

201 Response

{
  "name": "string",
  "engines": []
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseCatalogInfo
422Unprocessable EntityValidation ErrorHTTPValidationError

List Engines

GET /engines

List all available engines

Example responses

200 Response

[
  {
    "name": "string",
    "version": "string",
    "uri": "string",
    "dialect": "spark"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

Status Code 200

Response List Engines Engines Get

NameTypeRequiredRestrictionsDescription
Response List Engines Engines Get[EngineInfo]falsenone[Class for engine creation]
» EngineInfoEngineInfofalsenoneClass for engine creation
»» namestringtruenonenone
»» versionstringtruenonenone
»» uristringfalsenonenone
»» dialectDialectfalsenoneSQL dialect

Enumerated Values

PropertyValue
dialectspark
dialecttrino
dialectdruid

Add An Engine

POST /engines

Add a new engine

Body parameter

{
  "name": "string",
  "version": "string",
  "uri": "string",
  "dialect": "spark"
}
NameInTypeRequiredDescription
bodybodyEngineInfotruenone

Example responses

201 Response

{
  "name": "string",
  "version": "string",
  "uri": "string",
  "dialect": "spark"
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseEngineInfo
422Unprocessable EntityValidation ErrorHTTPValidationError

Get An Engine

GET /engines/{name}/{version}

Return an engine by name and version

NameInTypeRequiredDescription
namepathstringtruenone
versionpathstringtruenone

Example responses

200 Response

{
  "name": "string",
  "version": "string",
  "uri": "string",
  "dialect": "spark"
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseEngineInfo
422Unprocessable EntityValidation ErrorHTTPValidationError

List Metrics

GET /metrics

List all available metrics.

NameInTypeRequiredDescription
prefixquerystringfalsenone

Example responses

200 Response

[
  "string"
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Metrics Metrics Get

NameTypeRequiredRestrictionsDescription
Response List Metrics Metrics Get[string]falsenonenone

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"
    }
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseMetricMetadataOptions

Get A Metric

GET /metrics/{name}

Return a metric by name.

NameInTypeRequiredDescription
namepathstringtruenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseMetric
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Common Dimensions

GET /metrics/common/dimensions

Return common dimensions for a set of metrics.

NameInTypeRequiredDescription
metricqueryarray[string]falsenone

Example responses

200 Response

[
  {
    "name": "string",
    "node_name": "string",
    "node_display_name": "string",
    "is_primary_key": true,
    "type": "string",
    "path": [
      "string"
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response Get Common Dimensions Metrics Common Dimensions Get

NameTypeRequiredRestrictionsDescription
Response Get Common Dimensions Metrics Common Dimensions Get[DimensionAttributeOutput]falsenone[Dimension attribute output should include the name and type]
» DimensionAttributeOutputDimensionAttributeOutputfalsenoneDimension attribute output should include the name and type
»» namestringtruenonenone
»» node_namestringfalsenonenone
»» node_display_namestringfalsenonenone
»» is_primary_keybooleantruenonenone
»» typestringtruenonenone
»» path[string]truenonenone

Get Data For Djsql

GET /djsql/data

Return data for a DJ SQL query

NameInTypeRequiredDescription
queryquerystringtruenone
async_querybooleanfalsenone
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseQueryWithResults
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Data Stream For Djsql

GET /djsql/stream

Return data for a DJ SQL query using server side events

NameInTypeRequiredDescription
queryquerystringtruenone
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseQueryWithResults
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
bodybodyNodeRevisionBasetruenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseNodeValidation
422Unprocessable EntityValidation ErrorHTTPValidationError

Revalidate

POST /nodes/{name}/validate

Revalidate a single existing node and update its status appropriately

NameInTypeRequiredDescription
namepathstringtruenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseNodeValidation
422Unprocessable EntityValidation ErrorHTTPValidationError

Set Column Attributes

POST /nodes/{node_name}/columns/{column_name}/attributes

Set column attributes for the node.

Body parameter

[
  {
    "namespace": "system",
    "name": "string"
  }
]
NameInTypeRequiredDescription
node_namepathstringtruenone
column_namepathstringtruenone

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"
    }
  }
]
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 201

Response Set Column Attributes Nodes Node Name Columns Column Name Attributes Post

NameTypeRequiredRestrictionsDescription
Response Set Column Attributes Nodes Node Name Columns Column Name Attributes Post[datajunction_server__models__node__ColumnOutput]falsenone[A simplified column schema, without ID or dimensions.]
» ColumnOutputdatajunction_server__models__node__ColumnOutputfalsenoneA simplified column schema, without ID or dimensions.
»» namestringtruenonenone
»» display_namestringfalsenonenone
»» typestringtruenonenone
»» attributes[AttributeOutput]falsenone[Column attribute output.]
»»» AttributeOutputAttributeOutputfalsenoneColumn attribute output.
»»»» attribute_typeAttributeTypeNametruenoneAttribute type name.
»»»»» namespacestringtruenonenone
»»»»» namestringtruenonenone
»» dimensionNodeNameOutputfalsenoneNode name only
»»» namestringtruenonenone
»» partitionPartitionOutputfalsenoneOutput for partition
»»» type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
»»» formatstringfalsenonenone
»»» granularitystringfalsenonenone
»»» expressionstringfalsenonenone

Enumerated Values

PropertyValue
type_temporal
type_categorical

List Nodes

GET /nodes

List the available nodes.

NameInTypeRequiredDescription
node_typequeryNodeTypefalsenone
prefixquerystringfalsenone

Enumerated Values

ParameterValue
node_typesource
node_typetransform
node_typemetric
node_typedimension
node_typecube

Example responses

200 Response

[
  "string"
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Nodes Nodes Get

NameTypeRequiredRestrictionsDescription
Response List Nodes Nodes Get[string]falsenonenone

List All Nodes With Details

GET /nodes/details

List the available nodes.

NameInTypeRequiredDescription
node_typequeryNodeTypefalsenone

Enumerated Values

ParameterValue
node_typesource
node_typetransform
node_typemetric
node_typedimension
node_typecube

Example responses

200 Response

[
  {
    "name": "string",
    "display_name": "string",
    "description": "string",
    "type": "source"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List All Nodes With Details Nodes Details Get

NameTypeRequiredRestrictionsDescription
Response List All Nodes With Details Nodes Details Get[NodeIndexItem]falsenone[Node details used for indexing purposes]
» NodeIndexItemNodeIndexItemfalsenoneNode details used for indexing purposes
»» namestringtruenonenone
»» display_namestringtruenonenone
»» descriptionstringtruenonenone
»» typeNodeTypetruenoneNode 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

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube

Get Node

GET /nodes/{name}

Show the active version of the specified node.

NameInTypeRequiredDescription
namepathstringtruenone

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
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

Delete Node

DELETE /nodes/{name}

Delete (aka deactivate) the specified node.

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
  ]
}
NameInTypeRequiredDescription
namepathstringtruenone
bodybodyUpdateNodetruenone

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
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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.

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Restore Node

POST /nodes/{name}/restore

Restore (aka re-activate) the specified node.

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

List Node Revisions

GET /nodes/{name}/revisions

List all revisions for the node.

NameInTypeRequiredDescription
namepathstringtruenone

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"
        }
      }
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Node Revisions Nodes Name Revisions Get

NameTypeRequiredRestrictionsDescription
Response List Node Revisions Nodes Name Revisions Get[NodeRevisionOutput]falsenone[Output for a node revision with information about columns and if it is a metric.]
» NodeRevisionOutputNodeRevisionOutputfalsenoneOutput for a node revision with information about columns and if it is a metric.
»» idintegertruenonenone
»» node_idintegertruenonenone
»» typeNodeTypetruenoneNode 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.
»» namestringtruenonenone
»» display_namestringtruenonenone
»» versionstringtruenonenone
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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
»» catalogCatalogInfofalsenoneClass for catalog creation
»»» namestringtruenonenone
»»» engines[EngineInfo]falsenone[Class for engine creation]
»»»» EngineInfoEngineInfofalsenoneClass for engine creation
»»»»» namestringtruenonenone
»»»»» versionstringtruenonenone
»»»»» uristringfalsenonenone
»»»»» dialectDialectfalsenoneSQL dialect
»» schema_stringfalsenonenone
»» tablestringfalsenonenone
»» descriptionstringfalsenonenone
»» querystringfalsenonenone
»» availabilityAvailabilityStateBasefalsenoneAn availability state base
»»» min_temporal_partition[string]falsenonenone
»»» max_temporal_partition[string]falsenonenone
»»» catalogstringtruenonenone
»»» schema_stringfalsenonenone
»»» tablestringtruenonenone
»»» valid_through_tsintegertruenonenone
»»» urlstringfalsenonenone
»»» categorical_partitions[string]falsenonenone
»»» temporal_partitions[string]falsenonenone
»»» partitions[PartitionAvailability]falsenone[Partition-level availability]
»»»» PartitionAvailabilityPartitionAvailabilityfalsenonePartition-level availability
»»»»» min_temporal_partition[string]falsenonenone
»»»»» max_temporal_partition[string]falsenonenone
»»»»» value[string]truenonenone
»»»»» valid_through_tsintegerfalsenonenone
»» columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
»»» ColumnOutputdatajunction_server__models__node__ColumnOutputfalsenoneA simplified column schema, without ID or dimensions.
»»»» namestringtruenonenone
»»»» display_namestringfalsenonenone
»»»» typestringtruenonenone
»»»» attributes[AttributeOutput]falsenone[Column attribute output.]
»»»»» AttributeOutputAttributeOutputfalsenoneColumn attribute output.
»»»»»» attribute_typeAttributeTypeNametruenoneAttribute type name.
»»»»»»» namespacestringtruenonenone
»»»»»»» namestringtruenonenone
»»»» dimensionNodeNameOutputfalsenoneNode name only
»»»»» namestringtruenonenone
»»»» partitionPartitionOutputfalsenoneOutput for partition
»»»»» type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
»»»»» formatstringfalsenonenone
»»»»» granularitystringfalsenonenone
»»»»» expressionstringfalsenonenone
»» updated_atstring(date-time)truenonenone
»» materializations[MaterializationConfigOutput]truenone[Output for materialization config.]
»»» MaterializationConfigOutputMaterializationConfigOutputfalsenoneOutput for materialization config.
»»»» namestringfalsenonenone
»»»» configobjecttruenonenone
»»»» schedulestringtruenonenone
»»»» jobstringfalsenonenone
»»»» backfills[BackfillOutput]truenone[Output model for backfills]
»»»»» BackfillOutputBackfillOutputfalsenoneOutput model for backfills
»»»»»» specPartitionBackfillfalsenoneUsed for setting backfilled values
»»»»»»» column_namestringtruenonenone
»»»»»»» values[any]falsenonenone
»»»»»»» range[any]falsenonenone
»»»»»» urls[string]falsenonenone
»»»» strategystringfalsenonenone
»» parents[NodeNameOutput]truenone[Node name only]
»»» NodeNameOutputNodeNameOutputfalsenoneNode name only
»» metric_metadataMetricMetadataOutputfalsenoneMetric metadata output
»»» directionMetricDirectionfalsenoneThe direction of the metric that’s considered good, i.e., higher is better
»»» unitUnitfalsenoneMetric unit
»»»» namestringtruenonenone
»»»» labelstringfalsenonenone
»»»» categorystringfalsenonenone
»»»» abbreviationstringfalsenonenone
»»»» descriptionstringfalsenonenone
»» dimension_links[LinkDimensionOutput]falsenone[Input for linking a dimension to a node]
»»» LinkDimensionOutputLinkDimensionOutputfalsenoneInput for linking a dimension to a node
»»»» dimensionNodeNameOutputtruenoneNode name only
»»»» join_typeJoinTypetruenoneJoin type
»»»» join_sqlstringtruenonenone
»»»» join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
»»»» rolestringfalsenonenone
»»»» foreign_keysobjecttruenonenone
»»»»» additionalPropertiesstringfalsenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft
dialectspark
dialecttrino
dialectdruid
type_temporal
type_categorical
directionhigher_is_better
directionlower_is_better
directionneutral
join_typeleft
join_typeright
join_typeinner
join_typefull
join_typecross
join_cardinalityone_to_one
join_cardinalityone_to_many
join_cardinalitymany_to_one
join_cardinalitymany_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"
}
NameInTypeRequiredDescription
bodybodyCreateSourceNodetruenone

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
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
bodybodyCreateNodetruenone

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
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
bodybodyCreateNodetruenone

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
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
bodybodyCreateNodetruenone

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
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
bodybodyCreateCubeNodetruenone

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
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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.

NameInTypeRequiredDescription
catalogpathstringtruenone
schema_pathstringtruenone
tablepathstringtruenone

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
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

POST /nodes/{name}/columns/{column}

Add information to a node column

NameInTypeRequiredDescription
namepathstringtruenone
columnpathstringtruenone
dimensionquerystringtruenone
dimension_columnquerystringfalsenone

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

DELETE /nodes/{name}/columns/{column}

Remove the link between a node column and a dimension node

NameInTypeRequiredDescription
namepathstringtruenone
columnpathstringtruenone
dimensionquerystringtruenone
dimension_columnquerystringfalsenone

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
node_namepathstringtruenone
bodybodyLinkDimensionInputtruenone

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
node_namepathstringtruenone
bodybodyLinkDimensionIdentifiertruenone

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

POST /nodes/{name}/migrate_dim_link

Migrate dimension link from column-level to node-level

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Update Tags On Node

POST /nodes/{name}/tags

Add a tag to a node

NameInTypeRequiredDescription
namepathstringtruenone
tag_namesqueryarray[string]falsenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Refresh Source Node

POST /nodes/{name}/refresh

Refresh a source node with the latest columns from the query service.

NameInTypeRequiredDescription
namepathstringtruenone

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
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

Calculate Node Similarity

GET /nodes/similarity/{node1_name}/{node2_name}

Compare two nodes by how similar their queries are

NameInTypeRequiredDescription
node1_namepathstringtruenone
node2_namepathstringtruenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

List Downstream Nodes For A Node

GET /nodes/{name}/downstream

List all nodes that are downstream from the given node, filterable by type.

NameInTypeRequiredDescription
namepathstringtruenone
node_typequeryNodeTypefalsenone

Enumerated Values

ParameterValue
node_typesource
node_typetransform
node_typemetric
node_typedimension
node_typecube

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"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Downstream Nodes For A Node Nodes Name Downstream Get

NameTypeRequiredRestrictionsDescription
Response List Downstream Nodes For A Node Nodes Name Downstream Get[DAGNodeOutput]falsenone[Output for a node in another node’s DAG]
» DAGNodeOutputDAGNodeOutputfalsenoneOutput for a node in another node’s DAG
»» namespacestringtruenonenone
»» node_revision_idintegertruenonenone
»» node_idintegertruenonenone
»» typeNodeTypetruenoneNode 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.
»» namestringtruenonenone
»» display_namestringtruenonenone
»» versionstringtruenonenone
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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
»» catalogCatalogInfofalsenoneClass for catalog creation
»»» namestringtruenonenone
»»» engines[EngineInfo]falsenone[Class for engine creation]
»»»» EngineInfoEngineInfofalsenoneClass for engine creation
»»»»» namestringtruenonenone
»»»»» versionstringtruenonenone
»»»»» uristringfalsenonenone
»»»»» dialectDialectfalsenoneSQL dialect
»» schema_stringfalsenonenone
»» tablestringfalsenonenone
»» descriptionstringfalsenonenone
»» columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
»»» ColumnOutputdatajunction_server__models__node__ColumnOutputfalsenoneA simplified column schema, without ID or dimensions.
»»»» namestringtruenonenone
»»»» display_namestringfalsenonenone
»»»» typestringtruenonenone
»»»» attributes[AttributeOutput]falsenone[Column attribute output.]
»»»»» AttributeOutputAttributeOutputfalsenoneColumn attribute output.
»»»»»» attribute_typeAttributeTypeNametruenoneAttribute type name.
»»»»»»» namespacestringtruenonenone
»»»»»»» namestringtruenonenone
»»»» dimensionNodeNameOutputfalsenoneNode name only
»»»»» namestringtruenonenone
»»»» partitionPartitionOutputfalsenoneOutput for partition
»»»»» type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
»»»»» formatstringfalsenonenone
»»»»» granularitystringfalsenonenone
»»»»» expressionstringfalsenonenone
»» updated_atstring(date-time)truenonenone
»» parents[NodeNameOutput]truenone[Node name only]
»»» NodeNameOutputNodeNameOutputfalsenoneNode name only
»» dimension_links[LinkDimensionOutput]truenone[Input for linking a dimension to a node]
»»» LinkDimensionOutputLinkDimensionOutputfalsenoneInput for linking a dimension to a node
»»»» dimensionNodeNameOutputtruenoneNode name only
»»»» join_typeJoinTypetruenoneJoin type
»»»» join_sqlstringtruenonenone
»»»» join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
»»»» rolestringfalsenonenone
»»»» foreign_keysobjecttruenonenone
»»»»» additionalPropertiesstringfalsenonenone
»» created_atstring(date-time)truenonenone
»» tags[TagOutput]falsenone[Output tag model.]
»»» TagOutputTagOutputfalsenoneOutput tag model.
»»»» descriptionstringfalsenonenone
»»»» display_namestringfalsenonenone
»»»» tag_metadataobjectfalsenonenone
»»»» namestringtruenonenone
»»»» tag_typestringtruenonenone
»» current_versionstringtruenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft
dialectspark
dialecttrino
dialectdruid
type_temporal
type_categorical
join_typeleft
join_typeright
join_typeinner
join_typefull
join_typecross
join_cardinalityone_to_one
join_cardinalityone_to_many
join_cardinalitymany_to_one
join_cardinalitymany_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.

NameInTypeRequiredDescription
namepathstringtruenone
node_typequeryNodeTypefalsenone

Enumerated Values

ParameterValue
node_typesource
node_typetransform
node_typemetric
node_typedimension
node_typecube

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"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Upstream Nodes For A Node Nodes Name Upstream Get

NameTypeRequiredRestrictionsDescription
Response List Upstream Nodes For A Node Nodes Name Upstream Get[DAGNodeOutput]falsenone[Output for a node in another node’s DAG]
» DAGNodeOutputDAGNodeOutputfalsenoneOutput for a node in another node’s DAG
»» namespacestringtruenonenone
»» node_revision_idintegertruenonenone
»» node_idintegertruenonenone
»» typeNodeTypetruenoneNode 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.
»» namestringtruenonenone
»» display_namestringtruenonenone
»» versionstringtruenonenone
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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
»» catalogCatalogInfofalsenoneClass for catalog creation
»»» namestringtruenonenone
»»» engines[EngineInfo]falsenone[Class for engine creation]
»»»» EngineInfoEngineInfofalsenoneClass for engine creation
»»»»» namestringtruenonenone
»»»»» versionstringtruenonenone
»»»»» uristringfalsenonenone
»»»»» dialectDialectfalsenoneSQL dialect
»» schema_stringfalsenonenone
»» tablestringfalsenonenone
»» descriptionstringfalsenonenone
»» columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
»»» ColumnOutputdatajunction_server__models__node__ColumnOutputfalsenoneA simplified column schema, without ID or dimensions.
»»»» namestringtruenonenone
»»»» display_namestringfalsenonenone
»»»» typestringtruenonenone
»»»» attributes[AttributeOutput]falsenone[Column attribute output.]
»»»»» AttributeOutputAttributeOutputfalsenoneColumn attribute output.
»»»»»» attribute_typeAttributeTypeNametruenoneAttribute type name.
»»»»»»» namespacestringtruenonenone
»»»»»»» namestringtruenonenone
»»»» dimensionNodeNameOutputfalsenoneNode name only
»»»»» namestringtruenonenone
»»»» partitionPartitionOutputfalsenoneOutput for partition
»»»»» type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
»»»»» formatstringfalsenonenone
»»»»» granularitystringfalsenonenone
»»»»» expressionstringfalsenonenone
»» updated_atstring(date-time)truenonenone
»» parents[NodeNameOutput]truenone[Node name only]
»»» NodeNameOutputNodeNameOutputfalsenoneNode name only
»» dimension_links[LinkDimensionOutput]truenone[Input for linking a dimension to a node]
»»» LinkDimensionOutputLinkDimensionOutputfalsenoneInput for linking a dimension to a node
»»»» dimensionNodeNameOutputtruenoneNode name only
»»»» join_typeJoinTypetruenoneJoin type
»»»» join_sqlstringtruenonenone
»»»» join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
»»»» rolestringfalsenonenone
»»»» foreign_keysobjecttruenonenone
»»»»» additionalPropertiesstringfalsenonenone
»» created_atstring(date-time)truenonenone
»» tags[TagOutput]falsenone[Output tag model.]
»»» TagOutputTagOutputfalsenoneOutput tag model.
»»»» descriptionstringfalsenonenone
»»»» display_namestringfalsenonenone
»»»» tag_metadataobjectfalsenonenone
»»»» namestringtruenonenone
»»»» tag_typestringtruenonenone
»» current_versionstringtruenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft
dialectspark
dialecttrino
dialectdruid
type_temporal
type_categorical
join_typeleft
join_typeright
join_typeinner
join_typefull
join_typecross
join_cardinalityone_to_one
join_cardinalityone_to_many
join_cardinalitymany_to_one
join_cardinalitymany_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.

NameInTypeRequiredDescription
namepathstringtruenone

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"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List All Connected Nodes Upstreams Downstreams Nodes Name Dag Get

NameTypeRequiredRestrictionsDescription
Response List All Connected Nodes Upstreams Downstreams Nodes Name Dag Get[DAGNodeOutput]falsenone[Output for a node in another node’s DAG]
» DAGNodeOutputDAGNodeOutputfalsenoneOutput for a node in another node’s DAG
»» namespacestringtruenonenone
»» node_revision_idintegertruenonenone
»» node_idintegertruenonenone
»» typeNodeTypetruenoneNode 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.
»» namestringtruenonenone
»» display_namestringtruenonenone
»» versionstringtruenonenone
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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
»» catalogCatalogInfofalsenoneClass for catalog creation
»»» namestringtruenonenone
»»» engines[EngineInfo]falsenone[Class for engine creation]
»»»» EngineInfoEngineInfofalsenoneClass for engine creation
»»»»» namestringtruenonenone
»»»»» versionstringtruenonenone
»»»»» uristringfalsenonenone
»»»»» dialectDialectfalsenoneSQL dialect
»» schema_stringfalsenonenone
»» tablestringfalsenonenone
»» descriptionstringfalsenonenone
»» columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
»»» ColumnOutputdatajunction_server__models__node__ColumnOutputfalsenoneA simplified column schema, without ID or dimensions.
»»»» namestringtruenonenone
»»»» display_namestringfalsenonenone
»»»» typestringtruenonenone
»»»» attributes[AttributeOutput]falsenone[Column attribute output.]
»»»»» AttributeOutputAttributeOutputfalsenoneColumn attribute output.
»»»»»» attribute_typeAttributeTypeNametruenoneAttribute type name.
»»»»»»» namespacestringtruenonenone
»»»»»»» namestringtruenonenone
»»»» dimensionNodeNameOutputfalsenoneNode name only
»»»»» namestringtruenonenone
»»»» partitionPartitionOutputfalsenoneOutput for partition
»»»»» type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
»»»»» formatstringfalsenonenone
»»»»» granularitystringfalsenonenone
»»»»» expressionstringfalsenonenone
»» updated_atstring(date-time)truenonenone
»» parents[NodeNameOutput]truenone[Node name only]
»»» NodeNameOutputNodeNameOutputfalsenoneNode name only
»» dimension_links[LinkDimensionOutput]truenone[Input for linking a dimension to a node]
»»» LinkDimensionOutputLinkDimensionOutputfalsenoneInput for linking a dimension to a node
»»»» dimensionNodeNameOutputtruenoneNode name only
»»»» join_typeJoinTypetruenoneJoin type
»»»» join_sqlstringtruenonenone
»»»» join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
»»»» rolestringfalsenonenone
»»»» foreign_keysobjecttruenonenone
»»»»» additionalPropertiesstringfalsenonenone
»» created_atstring(date-time)truenonenone
»» tags[TagOutput]falsenone[Output tag model.]
»»» TagOutputTagOutputfalsenoneOutput tag model.
»»»» descriptionstringfalsenonenone
»»»» display_namestringfalsenonenone
»»»» tag_metadataobjectfalsenonenone
»»»» namestringtruenonenone
»»»» tag_typestringtruenonenone
»» current_versionstringtruenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft
dialectspark
dialecttrino
dialectdruid
type_temporal
type_categorical
join_typeleft
join_typeright
join_typeinner
join_typefull
join_typecross
join_cardinalityone_to_one
join_cardinalityone_to_many
join_cardinalitymany_to_one
join_cardinalitymany_to_many

List All Dimension Attributes

GET /nodes/{name}/dimensions

List all available dimension attributes for the given node.

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

200 Response

[
  {
    "name": "string",
    "node_name": "string",
    "node_display_name": "string",
    "is_primary_key": true,
    "type": "string",
    "path": [
      "string"
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List All Dimension Attributes Nodes Name Dimensions Get

NameTypeRequiredRestrictionsDescription
Response List All Dimension Attributes Nodes Name Dimensions Get[DimensionAttributeOutput]falsenone[Dimension attribute output should include the name and type]
» DimensionAttributeOutputDimensionAttributeOutputfalsenoneDimension attribute output should include the name and type
»» namestringtruenonenone
»» node_namestringfalsenonenone
»» node_display_namestringfalsenonenone
»» is_primary_keybooleantruenonenone
»» typestringtruenonenone
»» path[string]truenonenone

List Column Level Lineage Of Node

GET /nodes/{name}/lineage

List column-level lineage of a node in a graph

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

200 Response

[
  {
    "column_name": "string",
    "node_name": "string",
    "node_type": "string",
    "display_name": "string",
    "lineage": [
      {}
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Column Level Lineage Of Node Nodes Name Lineage Get

NameTypeRequiredRestrictionsDescription
Response List Column Level Lineage Of Node Nodes Name Lineage Get[LineageColumn]falsenone[Column in lineage graph]
» LineageColumnLineageColumnfalsenoneColumn in lineage graph
»» column_namestringtruenonenone
»» node_namestringfalsenonenone
»» node_typestringfalsenonenone
»» display_namestringfalsenonenone
»» lineage[LineageColumn]falsenoneColumn in lineage graph
»»» LineageColumnLineageColumnfalsenoneColumn in lineage graph

Set Column Display Name

PATCH /nodes/{node_name}/columns/{column_name}

Set column name for the node

NameInTypeRequiredDescription
node_namepathstringtruenone
column_namepathstringtruenone
display_namequerystringtruenone

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"
  }
}
StatusMeaningDescriptionSchema
201CreatedSuccessful Responsedatajunction_server__models__node__ColumnOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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"
}
NameInTypeRequiredDescription
node_namepathstringtruenone
column_namepathstringtruenone
bodybodyPartitionInputtruenone

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"
  }
}
StatusMeaningDescriptionSchema
201CreatedSuccessful Responsedatajunction_server__models__node__ColumnOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

Copy A Node

POST /nodes/{node_name}/copy

Copy this node to a new name.

NameInTypeRequiredDescription
node_namepathstringtruenone
new_namequerystringtruenone

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"
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseDAGNodeOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

List Nodes In Namespace

GET /namespaces/{namespace}

List node names in namespace, filterable to a given type if desired.

NameInTypeRequiredDescription
namespacepathstringtruenone
type_queryanyfalseFilter 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"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Nodes In Namespace Namespaces Namespace Get

NameTypeRequiredRestrictionsDescription
Response List Nodes In Namespace Namespaces Namespace Get[NodeMinimumDetail]falsenone[List of high level node details]
» NodeMinimumDetailNodeMinimumDetailfalsenoneList of high level node details
»» namestringtruenonenone
»» display_namestringtruenonenone
»» descriptionstringtruenonenone
»» versionstringtruenonenone
»» typeNodeTypetruenoneNode 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.
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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_atstring(date-time)truenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft

Create Node Namespace

POST /namespaces/{namespace}

Create a node namespace

NameInTypeRequiredDescription
namespacepathstringtruenone
include_parentsquerybooleanfalsenone

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Deactivate A Namespace

DELETE /namespaces/{namespace}

Deactivates a node namespace

NameInTypeRequiredDescription
namespacepathstringtruenone
cascadequerybooleanfalseCascade the deletion down to the nodes in the namespace

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

List Namespaces

GET /namespaces

List namespaces with the number of nodes contained in them

Example responses

200 Response

[
  {
    "namespace": "string",
    "num_nodes": 0
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

Status Code 200

Response List Namespaces Namespaces Get

NameTypeRequiredRestrictionsDescription
Response List Namespaces Namespaces Get[NamespaceOutput]falsenone[Output for a namespace that includes the number of nodes]
» NamespaceOutputNamespaceOutputfalsenoneOutput for a namespace that includes the number of nodes
»» namespacestringtruenonenone
»» num_nodesintegertruenonenone

Restore A Namespace

POST /namespaces/{namespace}/restore

Restores a node namespace

NameInTypeRequiredDescription
namespacepathstringtruenone
cascadequerybooleanfalseCascade the restore down to the nodes in the namespace

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

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.

NameInTypeRequiredDescription
namespacepathstringtruenone
cascadequerybooleanfalsenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

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.

NameInTypeRequiredDescription
namespacepathstringtruenone

Example responses

200 Response

[
  {}
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response Export A Namespace As A Single Project S Metadata Namespaces Namespace Export Get

NameTypeRequiredRestrictionsDescription
Response Export A Namespace As A Single Project S Metadata Namespaces Namespace Export Get[object]falsenonenone

Materialization Jobs Info

GET /materialization/info

Materialization job types and strategies

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

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"
}
NameInTypeRequiredDescription
node_namepathstringtruenone
bodybodyUpsertMaterializationtruenone

Example responses

201 Response

null
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

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.

NameInTypeRequiredDescription
node_namepathstringtruenone
show_deletedquerybooleanfalsenone

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"
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Materializations For A Node Nodes Node Name Materializations Get

NameTypeRequiredRestrictionsDescription
Response List Materializations For A Node Nodes Node Name Materializations Get[MaterializationConfigInfoUnified]falsenone[Materialization config + info]
» MaterializationConfigInfoUnifiedMaterializationConfigInfoUnifiedfalsenoneMaterialization config + info
»» namestringfalsenonenone
»» configobjecttruenonenone
»» schedulestringtruenonenone
»» jobstringfalsenonenone
»» backfills[BackfillOutput]truenone[Output model for backfills]
»»» BackfillOutputBackfillOutputfalsenoneOutput model for backfills
»»»» specPartitionBackfillfalsenoneUsed for setting backfilled values
»»»»» column_namestringtruenonenone
»»»»» values[any]falsenonenone
»»»»» range[any]falsenonenone
»»»» urls[string]falsenonenone
»» strategystringfalsenonenone
»» output_tables[string]truenonenone
»» urls[string]truenonenone

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.

NameInTypeRequiredDescription
node_namepathstringtruenone
materialization_namequerystringtruenone

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"
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response Deactivate A Materialization For A Node Nodes Node Name Materializations Delete

NameTypeRequiredRestrictionsDescription
Response Deactivate A Materialization For A Node Nodes Node Name Materializations Delete[MaterializationConfigInfoUnified]falsenone[Materialization config + info]
» MaterializationConfigInfoUnifiedMaterializationConfigInfoUnifiedfalsenoneMaterialization config + info
»» namestringfalsenonenone
»» configobjecttruenonenone
»» schedulestringtruenonenone
»» jobstringfalsenonenone
»» backfills[BackfillOutput]truenone[Output model for backfills]
»»» BackfillOutputBackfillOutputfalsenoneOutput model for backfills
»»»» specPartitionBackfillfalsenoneUsed for setting backfilled values
»»»»» column_namestringtruenonenone
»»»»» values[any]falsenonenone
»»»»» range[any]falsenonenone
»»»» urls[string]falsenonenone
»» strategystringfalsenonenone
»» output_tables[string]truenonenone
»» urls[string]truenonenone

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
  ]
}
NameInTypeRequiredDescription
node_namepathstringtruenone
materialization_namepathstringtruenone
bodybodyPartitionBackfilltruenone

Example responses

201 Response

{
  "output_tables": [
    "string"
  ],
  "urls": [
    "http://example.com"
  ]
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseMaterializationInfo
422Unprocessable EntityValidation ErrorHTTPValidationError

List Measures

GET /measures

List all measures.

NameInTypeRequiredDescription
prefixquerystringfalsenone

Example responses

200 Response

[
  "string"
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Measures Measures Get

NameTypeRequiredRestrictionsDescription
Response List Measures Measures Get[string]falsenonenone

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"
}
NameInTypeRequiredDescription
bodybodyCreateMeasuretruenone

Example responses

201 Response

{
  "name": "string",
  "display_name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "string",
      "node": "string"
    }
  ],
  "additive": "additive"
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseMeasureOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Measure

GET /measures/{measure_name}

Get info on a measure.

NameInTypeRequiredDescription
measure_namepathstringtruenone

Example responses

200 Response

{
  "name": "string",
  "display_name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "string",
      "node": "string"
    }
  ],
  "additive": "additive"
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseMeasureOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

Edit A Measure

PATCH /measures/{measure_name}

Edit a measure

Body parameter

{
  "display_name": "string",
  "description": "string",
  "columns": [
    {
      "node": "string",
      "column": "string"
    }
  ],
  "additive": "additive"
}
NameInTypeRequiredDescription
measure_namepathstringtruenone
bodybodyEditMeasuretruenone

Example responses

201 Response

{
  "name": "string",
  "display_name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "string",
      "node": "string"
    }
  ],
  "additive": "additive"
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseMeasureOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

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": []
}
NameInTypeRequiredDescription
node_namepathstringtruenone
bodybodyAvailabilityStateBasetruenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Data For A Node

GET /data/{node_name}

Gets data for a node

NameInTypeRequiredDescription
node_namepathstringtruenone
dimensionsqueryarray[string]falseDimensional attributes to group by
filtersqueryarray[string]falseFilters on dimensional attributes
orderbyqueryarray[string]falseExpression to order by
limitqueryintegerfalseNumber of rows to limit the data retrieved to
async_querybooleanfalseWhether to run the query async or wait for results from the query engine
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseQueryWithResults
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Data For Query Id

GET /data/query/{query_id}

Return data for a specific query ID.

NameInTypeRequiredDescription
query_idpathstringtruenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseQueryWithResults
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Data For Metrics

GET /data

Return data for a set of metrics with dimensions and filters

NameInTypeRequiredDescription
metricsqueryarray[string]falsenone
dimensionsqueryarray[string]falsenone
filtersqueryarray[string]falsenone
orderbyqueryarray[string]falsenone
limitqueryintegerfalsenone
async_querybooleanfalsenone
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseQueryWithResults
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Data Stream For Metrics

GET /stream

Return data for a set of metrics with dimensions and filters using server side events

NameInTypeRequiredDescription
metricsqueryarray[string]falsenone
dimensionsqueryarray[string]falsenone
filtersqueryarray[string]falsenone
orderbyqueryarray[string]falsenone
limitqueryintegerfalsenone
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseQueryWithResults
422Unprocessable EntityValidation ErrorHTTPValidationError

Health Check

GET /health/

Healthcheck for services.

Example responses

200 Response

[
  {
    "name": "string",
    "status": "ok"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

Status Code 200

Response Health Check Health Get

NameTypeRequiredRestrictionsDescription
Response Health Check Health Get[HealthCheck]falsenone[A healthcheck response.]
» HealthCheckHealthCheckfalsenoneA healthcheck response.
»» namestringtruenonenone
»» statusHealthcheckStatustruenonePossible health statuses.

Enumerated Values

PropertyValue
statusok
statusfailed

List History

GET /history/{entity_type}/{entity_name}

List history for an entity type (i.e. Node) and entity name

NameInTypeRequiredDescription
entity_typepathEntityTypetruenone
entity_namepathstringtruenone
offsetqueryintegerfalsenone
limitqueryintegerfalsenone

Enumerated Values

ParameterValue
entity_typeattribute
entity_typeavailability
entity_typebackfill
entity_typecatalog
entity_typecolumn_attribute
entity_typedependency
entity_typeengine
entity_typelink
entity_typematerialization
entity_typenamespace
entity_typenode
entity_typepartition
entity_typequery
entity_typetag

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"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List History History Entity Type Entity Name Get

NameTypeRequiredRestrictionsDescription
Response List History History Entity Type Entity Name Get[HistoryOutput]falsenone[Output history event]
» HistoryOutputHistoryOutputfalsenoneOutput history event
»» idintegertruenonenone
»» entity_typeEntityTypefalsenoneAn entity type for which activity can occur
»» entity_namestringfalsenonenone
»» nodestringfalsenonenone
»» activity_typeActivityTypefalsenoneAn activity type
»» userstringfalsenonenone
»» preobjecttruenonenone
»» postobjecttruenonenone
»» detailsobjecttruenonenone
»» created_atstring(date-time)truenonenone

Enumerated Values

PropertyValue
entity_typeattribute
entity_typeavailability
entity_typebackfill
entity_typecatalog
entity_typecolumn_attribute
entity_typedependency
entity_typeengine
entity_typelink
entity_typematerialization
entity_typenamespace
entity_typenode
entity_typepartition
entity_typequery
entity_typetag
activity_typecreate
activity_typedelete
activity_typerestore
activity_typeupdate
activity_typerefresh
activity_typetag
activity_typeset_attribute
activity_typestatus_change

List History By Node Context

GET /history

List all activity history for a node context

NameInTypeRequiredDescription
nodequerystringtruenone
offsetqueryintegerfalsenone
limitqueryintegerfalsenone

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"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List History By Node Context History Get

NameTypeRequiredRestrictionsDescription
Response List History By Node Context History Get[HistoryOutput]falsenone[Output history event]
» HistoryOutputHistoryOutputfalsenoneOutput history event
»» idintegertruenonenone
»» entity_typeEntityTypefalsenoneAn entity type for which activity can occur
»» entity_namestringfalsenonenone
»» nodestringfalsenonenone
»» activity_typeActivityTypefalsenoneAn activity type
»» userstringfalsenonenone
»» preobjecttruenonenone
»» postobjecttruenonenone
»» detailsobjecttruenonenone
»» created_atstring(date-time)truenonenone

Enumerated Values

PropertyValue
entity_typeattribute
entity_typeavailability
entity_typebackfill
entity_typecatalog
entity_typecolumn_attribute
entity_typedependency
entity_typeengine
entity_typelink
entity_typematerialization
entity_typenamespace
entity_typenode
entity_typepartition
entity_typequery
entity_typetag
activity_typecreate
activity_typedelete
activity_typerestore
activity_typeupdate
activity_typerefresh
activity_typetag
activity_typeset_attribute
activity_typestatus_change

Get A Cube

GET /cubes/{name}

Get information on a cube

NameInTypeRequiredDescription
namepathstringtruenone

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"
    }
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseCubeRevisionMetadata
422Unprocessable EntityValidation ErrorHTTPValidationError

Dimensions Sql For Cube

GET /cubes/{name}/dimensions/sql

Generates SQL to retrieve all unique values of a dimension for the cube

NameInTypeRequiredDescription
namepathstringtruenone
dimensionsqueryarray[string]falseDimensions to get values for
filtersquerystringfalseFilters on dimensional attributes
limitqueryintegerfalseNumber of rows to limit the data retrieved to
include_countsquerybooleanfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseTranslatedSQL
422Unprocessable EntityValidation ErrorHTTPValidationError

Dimensions Values For Cube

GET /cubes/{name}/dimensions/data

All unique values of a dimension from the cube

NameInTypeRequiredDescription
namepathstringtruenone
dimensionsqueryarray[string]falseDimensions to get values for
filtersquerystringfalseFilters on dimensional attributes
limitqueryintegerfalseNumber of rows to limit the data retrieved to
include_countsquerybooleanfalsenone
async_querybooleanfalsenone

Example responses

200 Response

{
  "dimensions": [
    "string"
  ],
  "values": [
    {
      "value": [
        "string"
      ],
      "count": 0
    }
  ],
  "cardinality": 0
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseDimensionValues
422Unprocessable EntityValidation ErrorHTTPValidationError

List Tags

GET /tags

List all available tags.

NameInTypeRequiredDescription
tag_typequerystringfalsenone

Example responses

200 Response

[
  {
    "description": "string",
    "display_name": "string",
    "tag_metadata": {},
    "name": "string",
    "tag_type": "string"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Tags Tags Get

NameTypeRequiredRestrictionsDescription
Response List Tags Tags Get[TagOutput]falsenone[Output tag model.]
» TagOutputTagOutputfalsenoneOutput tag model.
»» descriptionstringfalsenonenone
»» display_namestringfalsenonenone
»» tag_metadataobjectfalsenonenone
»» namestringtruenonenone
»» tag_typestringtruenonenone

Create A Tag

POST /tags

Create a tag.

Body parameter

{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {},
  "name": "string",
  "tag_type": "string"
}
NameInTypeRequiredDescription
bodybodyCreateTagtruenone

Example responses

201 Response

{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {},
  "name": "string",
  "tag_type": "string"
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseTagOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

Get A Tag

GET /tags/{name}

Return a tag by name.

NameInTypeRequiredDescription
namepathstringtruenone

Example responses

200 Response

{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {},
  "name": "string",
  "tag_type": "string"
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseTagOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

Update A Tag

PATCH /tags/{name}

Update a tag.

Body parameter

{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {}
}
NameInTypeRequiredDescription
namepathstringtruenone
bodybodyUpdateTagtruenone

Example responses

200 Response

{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {},
  "name": "string",
  "tag_type": "string"
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseTagOutput
422Unprocessable EntityValidation ErrorHTTPValidationError

List Nodes For A Tag

GET /tags/{name}/nodes

Find nodes tagged with the tag, filterable by node type.

NameInTypeRequiredDescription
namepathstringtruenone
node_typequeryNodeTypefalsenone

Enumerated Values

ParameterValue
node_typesource
node_typetransform
node_typemetric
node_typedimension
node_typecube

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"
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Nodes For A Tag Tags Name Nodes Get

NameTypeRequiredRestrictionsDescription
Response List Nodes For A Tag Tags Name Nodes Get[NodeMinimumDetail]falsenone[List of high level node details]
» NodeMinimumDetailNodeMinimumDetailfalsenoneList of high level node details
»» namestringtruenonenone
»» display_namestringtruenonenone
»» descriptionstringtruenonenone
»» versionstringtruenonenone
»» typeNodeTypetruenoneNode 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.
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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_atstring(date-time)truenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft

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
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

Status Code 200

Response List Attributes Attributes Get

NameTypeRequiredRestrictionsDescription
Response List Attributes Attributes Get[AttributeTypeBase]falsenone[Base attribute type.]
» AttributeTypeBaseAttributeTypeBasefalsenoneBase attribute type.
»» namespacestringfalsenonenone
»» namestringtruenonenone
»» descriptionstringtruenonenone
»» allowed_node_types[NodeType]truenone[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.]
»»» NodeTypeNodeTypefalsenoneNode 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]falsenone[The scope at which this attribute needs to be unique.]
»»» UniquenessScopeUniquenessScopefalsenoneThe scope at which this attribute needs to be unique.
»» idintegertruenonenone

Enumerated Values

PropertyValue
NodeTypesource
NodeTypetransform
NodeTypemetric
NodeTypedimension
NodeTypecube
UniquenessScopenode
UniquenessScopecolumn_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"
  ]
}
NameInTypeRequiredDescription
bodybodyMutableAttributeTypeFieldstruenone

Example responses

201 Response

{
  "namespace": "system",
  "name": "string",
  "description": "string",
  "allowed_node_types": [
    "source"
  ],
  "uniqueness_scope": [
    "node"
  ],
  "id": 0
}
StatusMeaningDescriptionSchema
201CreatedSuccessful ResponseAttributeTypeBase
422Unprocessable EntityValidation ErrorHTTPValidationError

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).

NameInTypeRequiredDescription
metricsqueryarray[string]falsenone
dimensionsqueryarray[string]falsenone
filtersqueryarray[string]falsenone
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseTranslatedSQL
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Sql For A Node

GET /sql/{node_name}

Return SQL for a node.

NameInTypeRequiredDescription
node_namepathstringtruenone
dimensionsqueryarray[string]falsenone
filtersqueryarray[string]falsenone
orderbyqueryarray[string]falsenone
limitqueryintegerfalsenone
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseTranslatedSQL
422Unprocessable EntityValidation ErrorHTTPValidationError

Get Sql For Metrics

GET /sql

Return SQL for a set of metrics with dimensions and filters

NameInTypeRequiredDescription
metricsqueryarray[string]falsenone
dimensionsqueryarray[string]falsenone
filtersqueryarray[string]falsenone
orderbyqueryarray[string]falsenone
limitqueryintegerfalsenone
engine_namequerystringfalsenone
engine_versionquerystringfalsenone

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"
  ]
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseTranslatedSQL
422Unprocessable EntityValidation ErrorHTTPValidationError

Client Code For Creating Node

GET /datajunction-clients/python/new_node/{node_name}

Generate the Python client code used for creating this node

NameInTypeRequiredDescription
node_namepathstringtruenone

Example responses

200 Response

"string"
StatusMeaningDescriptionSchema
200OKSuccessful Responsestring
422Unprocessable EntityValidation ErrorHTTPValidationError

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

NameInTypeRequiredDescription
node_namepathstringtruenone
materialization_namepathstringtruenone

Example responses

200 Response

"string"
StatusMeaningDescriptionSchema
200OKSuccessful Responsestring
422Unprocessable EntityValidation ErrorHTTPValidationError

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

NameInTypeRequiredDescription
node_namepathstringtruenone
columnpathstringtruenone
dimensionpathstringtruenone

Example responses

200 Response

"string"
StatusMeaningDescriptionSchema
200OKSuccessful Responsestring
422Unprocessable EntityValidation ErrorHTTPValidationError

List Dimensions

GET /dimensions

List all available dimensions.

NameInTypeRequiredDescription
prefixquerystringfalsenone

Example responses

200 Response

[
  "string"
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response List Dimensions Dimensions Get

NameTypeRequiredRestrictionsDescription
Response List Dimensions Dimensions Get[string]falsenonenone

Find Nodes With Dimension

GET /dimensions/{name}/nodes

List all nodes that have the specified dimension

NameInTypeRequiredDescription
namepathstringtruenone
node_typequeryarray[string]falsenone

Enumerated Values

ParameterValue
node_typesource
node_typetransform
node_typemetric
node_typedimension
node_typecube

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"
        }
      }
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response Find Nodes With Dimension Dimensions Name Nodes Get

NameTypeRequiredRestrictionsDescription
Response Find Nodes With Dimension Dimensions Name Nodes Get[NodeRevisionOutput]falsenone[Output for a node revision with information about columns and if it is a metric.]
» NodeRevisionOutputNodeRevisionOutputfalsenoneOutput for a node revision with information about columns and if it is a metric.
»» idintegertruenonenone
»» node_idintegertruenonenone
»» typeNodeTypetruenoneNode 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.
»» namestringtruenonenone
»» display_namestringtruenonenone
»» versionstringtruenonenone
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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
»» catalogCatalogInfofalsenoneClass for catalog creation
»»» namestringtruenonenone
»»» engines[EngineInfo]falsenone[Class for engine creation]
»»»» EngineInfoEngineInfofalsenoneClass for engine creation
»»»»» namestringtruenonenone
»»»»» versionstringtruenonenone
»»»»» uristringfalsenonenone
»»»»» dialectDialectfalsenoneSQL dialect
»» schema_stringfalsenonenone
»» tablestringfalsenonenone
»» descriptionstringfalsenonenone
»» querystringfalsenonenone
»» availabilityAvailabilityStateBasefalsenoneAn availability state base
»»» min_temporal_partition[string]falsenonenone
»»» max_temporal_partition[string]falsenonenone
»»» catalogstringtruenonenone
»»» schema_stringfalsenonenone
»»» tablestringtruenonenone
»»» valid_through_tsintegertruenonenone
»»» urlstringfalsenonenone
»»» categorical_partitions[string]falsenonenone
»»» temporal_partitions[string]falsenonenone
»»» partitions[PartitionAvailability]falsenone[Partition-level availability]
»»»» PartitionAvailabilityPartitionAvailabilityfalsenonePartition-level availability
»»»»» min_temporal_partition[string]falsenonenone
»»»»» max_temporal_partition[string]falsenonenone
»»»»» value[string]truenonenone
»»»»» valid_through_tsintegerfalsenonenone
»» columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
»»» ColumnOutputdatajunction_server__models__node__ColumnOutputfalsenoneA simplified column schema, without ID or dimensions.
»»»» namestringtruenonenone
»»»» display_namestringfalsenonenone
»»»» typestringtruenonenone
»»»» attributes[AttributeOutput]falsenone[Column attribute output.]
»»»»» AttributeOutputAttributeOutputfalsenoneColumn attribute output.
»»»»»» attribute_typeAttributeTypeNametruenoneAttribute type name.
»»»»»»» namespacestringtruenonenone
»»»»»»» namestringtruenonenone
»»»» dimensionNodeNameOutputfalsenoneNode name only
»»»»» namestringtruenonenone
»»»» partitionPartitionOutputfalsenoneOutput for partition
»»»»» type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
»»»»» formatstringfalsenonenone
»»»»» granularitystringfalsenonenone
»»»»» expressionstringfalsenonenone
»» updated_atstring(date-time)truenonenone
»» materializations[MaterializationConfigOutput]truenone[Output for materialization config.]
»»» MaterializationConfigOutputMaterializationConfigOutputfalsenoneOutput for materialization config.
»»»» namestringfalsenonenone
»»»» configobjecttruenonenone
»»»» schedulestringtruenonenone
»»»» jobstringfalsenonenone
»»»» backfills[BackfillOutput]truenone[Output model for backfills]
»»»»» BackfillOutputBackfillOutputfalsenoneOutput model for backfills
»»»»»» specPartitionBackfillfalsenoneUsed for setting backfilled values
»»»»»»» column_namestringtruenonenone
»»»»»»» values[any]falsenonenone
»»»»»»» range[any]falsenonenone
»»»»»» urls[string]falsenonenone
»»»» strategystringfalsenonenone
»» parents[NodeNameOutput]truenone[Node name only]
»»» NodeNameOutputNodeNameOutputfalsenoneNode name only
»» metric_metadataMetricMetadataOutputfalsenoneMetric metadata output
»»» directionMetricDirectionfalsenoneThe direction of the metric that’s considered good, i.e., higher is better
»»» unitUnitfalsenoneMetric unit
»»»» namestringtruenonenone
»»»» labelstringfalsenonenone
»»»» categorystringfalsenonenone
»»»» abbreviationstringfalsenonenone
»»»» descriptionstringfalsenonenone
»» dimension_links[LinkDimensionOutput]falsenone[Input for linking a dimension to a node]
»»» LinkDimensionOutputLinkDimensionOutputfalsenoneInput for linking a dimension to a node
»»»» dimensionNodeNameOutputtruenoneNode name only
»»»» join_typeJoinTypetruenoneJoin type
»»»» join_sqlstringtruenonenone
»»»» join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
»»»» rolestringfalsenonenone
»»»» foreign_keysobjecttruenonenone
»»»»» additionalPropertiesstringfalsenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft
dialectspark
dialecttrino
dialectdruid
type_temporal
type_categorical
directionhigher_is_better
directionlower_is_better
directionneutral
join_typeleft
join_typeright
join_typeinner
join_typefull
join_typecross
join_cardinalityone_to_one
join_cardinalityone_to_many
join_cardinalitymany_to_one
join_cardinalitymany_to_many

Find Nodes With Common Dimensions

GET /dimensions/common

Find all nodes that have the list of common dimensions

NameInTypeRequiredDescription
dimensionqueryarray[string]falsenone
node_typequeryarray[string]falsenone

Enumerated Values

ParameterValue
node_typesource
node_typetransform
node_typemetric
node_typedimension
node_typecube

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"
        }
      }
    ]
  }
]
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Status Code 200

Response Find Nodes With Common Dimensions Dimensions Common Get

NameTypeRequiredRestrictionsDescription
Response Find Nodes With Common Dimensions Dimensions Common Get[NodeRevisionOutput]falsenone[Output for a node revision with information about columns and if it is a metric.]
» NodeRevisionOutputNodeRevisionOutputfalsenoneOutput for a node revision with information about columns and if it is a metric.
»» idintegertruenonenone
»» node_idintegertruenonenone
»» typeNodeTypetruenoneNode 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.
»» namestringtruenonenone
»» display_namestringtruenonenone
»» versionstringtruenonenone
»» statusNodeStatustruenoneNode 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
»» modeNodeModetruenoneNode 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
»» catalogCatalogInfofalsenoneClass for catalog creation
»»» namestringtruenonenone
»»» engines[EngineInfo]falsenone[Class for engine creation]
»»»» EngineInfoEngineInfofalsenoneClass for engine creation
»»»»» namestringtruenonenone
»»»»» versionstringtruenonenone
»»»»» uristringfalsenonenone
»»»»» dialectDialectfalsenoneSQL dialect
»» schema_stringfalsenonenone
»» tablestringfalsenonenone
»» descriptionstringfalsenonenone
»» querystringfalsenonenone
»» availabilityAvailabilityStateBasefalsenoneAn availability state base
»»» min_temporal_partition[string]falsenonenone
»»» max_temporal_partition[string]falsenonenone
»»» catalogstringtruenonenone
»»» schema_stringfalsenonenone
»»» tablestringtruenonenone
»»» valid_through_tsintegertruenonenone
»»» urlstringfalsenonenone
»»» categorical_partitions[string]falsenonenone
»»» temporal_partitions[string]falsenonenone
»»» partitions[PartitionAvailability]falsenone[Partition-level availability]
»»»» PartitionAvailabilityPartitionAvailabilityfalsenonePartition-level availability
»»»»» min_temporal_partition[string]falsenonenone
»»»»» max_temporal_partition[string]falsenonenone
»»»»» value[string]truenonenone
»»»»» valid_through_tsintegerfalsenonenone
»» columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
»»» ColumnOutputdatajunction_server__models__node__ColumnOutputfalsenoneA simplified column schema, without ID or dimensions.
»»»» namestringtruenonenone
»»»» display_namestringfalsenonenone
»»»» typestringtruenonenone
»»»» attributes[AttributeOutput]falsenone[Column attribute output.]
»»»»» AttributeOutputAttributeOutputfalsenoneColumn attribute output.
»»»»»» attribute_typeAttributeTypeNametruenoneAttribute type name.
»»»»»»» namespacestringtruenonenone
»»»»»»» namestringtruenonenone
»»»» dimensionNodeNameOutputfalsenoneNode name only
»»»»» namestringtruenonenone
»»»» partitionPartitionOutputfalsenoneOutput for partition
»»»»» type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
»»»»» formatstringfalsenonenone
»»»»» granularitystringfalsenonenone
»»»»» expressionstringfalsenonenone
»» updated_atstring(date-time)truenonenone
»» materializations[MaterializationConfigOutput]truenone[Output for materialization config.]
»»» MaterializationConfigOutputMaterializationConfigOutputfalsenoneOutput for materialization config.
»»»» namestringfalsenonenone
»»»» configobjecttruenonenone
»»»» schedulestringtruenonenone
»»»» jobstringfalsenonenone
»»»» backfills[BackfillOutput]truenone[Output model for backfills]
»»»»» BackfillOutputBackfillOutputfalsenoneOutput model for backfills
»»»»»» specPartitionBackfillfalsenoneUsed for setting backfilled values
»»»»»»» column_namestringtruenonenone
»»»»»»» values[any]falsenonenone
»»»»»»» range[any]falsenonenone
»»»»»» urls[string]falsenonenone
»»»» strategystringfalsenonenone
»» parents[NodeNameOutput]truenone[Node name only]
»»» NodeNameOutputNodeNameOutputfalsenoneNode name only
»» metric_metadataMetricMetadataOutputfalsenoneMetric metadata output
»»» directionMetricDirectionfalsenoneThe direction of the metric that’s considered good, i.e., higher is better
»»» unitUnitfalsenoneMetric unit
»»»» namestringtruenonenone
»»»» labelstringfalsenonenone
»»»» categorystringfalsenonenone
»»»» abbreviationstringfalsenonenone
»»»» descriptionstringfalsenonenone
»» dimension_links[LinkDimensionOutput]falsenone[Input for linking a dimension to a node]
»»» LinkDimensionOutputLinkDimensionOutputfalsenoneInput for linking a dimension to a node
»»»» dimensionNodeNameOutputtruenoneNode name only
»»»» join_typeJoinTypetruenoneJoin type
»»»» join_sqlstringtruenonenone
»»»» join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
»»»» rolestringfalsenonenone
»»»» foreign_keysobjecttruenonenone
»»»»» additionalPropertiesstringfalsenonenone

Enumerated Values

PropertyValue
typesource
typetransform
typemetric
typedimension
typecube
statusvalid
statusinvalid
modepublished
modedraft
dialectspark
dialecttrino
dialectdruid
type_temporal
type_categorical
directionhigher_is_better
directionlower_is_better
directionneutral
join_typeleft
join_typeright
join_typeinner
join_typefull
join_typecross
join_cardinalityone_to_one
join_cardinalityone_to_many
join_cardinalitymany_to_one
join_cardinalitymany_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
}
StatusMeaningDescriptionSchema
200OKSuccessful ResponseUserOutput

Get Short Lived Token

GET /token

Returns a token that expires in 24 hours

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

Create A User

POST /basic/user/

Create a new user

Body parameter

email: string
username: string
password: string
NameInTypeRequiredDescription
bodybodyBody_create_a_user_basic_user__posttruenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

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
NameInTypeRequiredDescription
bodybodyBody_login_basic_login__posttruenone

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline
422Unprocessable EntityValidation ErrorHTTPValidationError

Logout

POST /logout/

Logout a user by deleting the auth cookie

Example responses

200 Response

null
StatusMeaningDescriptionSchema
200OKSuccessful ResponseInline

Schemas

"create"

ActivityType

Properties

NameTypeRequiredRestrictionsDescription
ActivityTypestringfalsenoneAn activity type

Enumerated Values

PropertyValue
ActivityTypecreate
ActivityTypedelete
ActivityTyperestore
ActivityTypeupdate
ActivityTyperefresh
ActivityTypetag
ActivityTypeset_attribute
ActivityTypestatus_change
"additive"

AggregationRule

Properties

NameTypeRequiredRestrictionsDescription
AggregationRulestringfalsenoneType of allowed aggregation for a given measure.

Enumerated Values

PropertyValue
AggregationRuleadditive
AggregationRulenon-additive
AggregationRulesemi-additive
{
  "attribute_type": {
    "namespace": "string",
    "name": "string"
  }
}

AttributeOutput

Properties

NameTypeRequiredRestrictionsDescription
attribute_typeAttributeTypeNametruenoneAttribute type name.
{
  "namespace": "system",
  "name": "string",
  "description": "string",
  "allowed_node_types": [
    "source"
  ],
  "uniqueness_scope": [
    "node"
  ],
  "id": 0
}

AttributeTypeBase

Properties

NameTypeRequiredRestrictionsDescription
namespacestringfalsenonenone
namestringtruenonenone
descriptionstringtruenonenone
allowed_node_types[NodeType]truenone[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]falsenone[The scope at which this attribute needs to be unique.]
idintegertruenonenone
{
  "namespace": "system",
  "name": "string"
}

AttributeTypeIdentifier

Properties

NameTypeRequiredRestrictionsDescription
namespacestringfalsenonenone
namestringtruenonenone
{
  "namespace": "string",
  "name": "string"
}

AttributeTypeName

Properties

NameTypeRequiredRestrictionsDescription
namespacestringtruenonenone
namestringtruenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
min_temporal_partition[string]falsenonenone
max_temporal_partition[string]falsenonenone
catalogstringtruenonenone
schema_stringfalsenonenone
tablestringtruenonenone
valid_through_tsintegertruenonenone
urlstringfalsenonenone
categorical_partitions[string]falsenonenone
temporal_partitions[string]falsenonenone
partitions[PartitionAvailability]falsenone[Partition-level availability]
{
  "spec": {
    "column_name": "string",
    "values": [
      null
    ],
    "range": [
      null
    ]
  },
  "urls": [
    "string"
  ]
}

BackfillOutput

Properties

NameTypeRequiredRestrictionsDescription
specPartitionBackfillfalsenoneUsed for setting backfilled values
urls[string]falsenonenone
{
  "email": "string",
  "username": "string",
  "password": "string"
}

Body_create_a_user_basic_user__post

Properties

NameTypeRequiredRestrictionsDescription
emailstringtruenonenone
usernamestringtruenonenone
passwordstringtruenonenone
{
  "grant_type": "string",
  "username": "string",
  "password": "string",
  "scope": "",
  "client_id": "string",
  "client_secret": "string"
}

Body_login_basic_login__post

Properties

NameTypeRequiredRestrictionsDescription
grant_typestringfalsenonenone
usernamestringtruenonenone
passwordstringtruenonenone
scopestringfalsenonenone
client_idstringfalsenonenone
client_secretstringfalsenonenone
{
  "name": "string",
  "engines": []
}

CatalogInfo

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
engines[EngineInfo]falsenone[Class for engine creation]
{
  "name": "string",
  "type": "string",
  "column": "string",
  "node": "string",
  "semantic_entity": "string",
  "semantic_type": "string"
}

ColumnMetadata

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
typestringtruenonenone
columnstringfalsenonenone
nodestringfalsenonenone
semantic_entitystringfalsenonenone
semantic_typestringfalsenonenone
{}

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

NameTypeRequiredRestrictionsDescription
metrics[string]truenonenone
dimensions[string]truenonenone
filters[string]falsenonenone
orderby[string]falsenonenone
limitintegerfalsenonenone
descriptionstringtruenonenone
modeNodeModetruenoneNode 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_namestringfalsenonenone
primary_key[string]falsenonenone
namestringtruenonenone
namespacestringfalsenonenone
{
  "name": "string",
  "display_name": "string",
  "description": "string",
  "columns": [
    {
      "node": "string",
      "column": "string"
    }
  ],
  "additive": "non-additive"
}

CreateMeasure

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
display_namestringfalsenonenone
descriptionstringfalsenonenone
columns[NodeColumn]truenone[Defines a column on a node]
additiveAggregationRulefalsenoneType 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

NameTypeRequiredRestrictionsDescription
required_dimensions[string]falsenonenone
metric_metadataMetricMetadataInputfalsenoneMetric metadata output
querystringtruenonenone
display_namestringfalsenonenone
descriptionstringtruenonenone
modeNodeModetruenoneNode 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]falsenonenone
namestringtruenonenone
namespacestringfalsenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
catalogstringtruenonenone
schema_stringtruenonenone
tablestringtruenonenone
columns[SourceColumnOutput]truenone[A column used in creation of a source node]
missing_tablebooleanfalsenonenone
display_namestringfalsenonenone
descriptionstringtruenonenone
modeNodeModetruenoneNode 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]falsenonenone
namestringtruenonenone
namespacestringfalsenonenone
{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {},
  "name": "string",
  "tag_type": "string"
}

CreateTag

Properties

NameTypeRequiredRestrictionsDescription
descriptionstringfalsenonenone
display_namestringfalsenonenone
tag_metadataobjectfalsenonenone
namestringtruenonenone
tag_typestringtruenonenone
{
  "name": "string",
  "display_name": "string",
  "node_name": "string",
  "type": "string",
  "partition": {
    "type_": "temporal",
    "format": "string",
    "granularity": "string",
    "expression": "string"
  }
}

CubeElementMetadata

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
display_namestringtruenonenone
node_namestringtruenonenone
typestringtruenonenone
partitionPartitionOutputfalsenoneOutput 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

NameTypeRequiredRestrictionsDescription
node_revision_idintegertruenonenone
node_idintegertruenonenone
typeNodeTypetruenoneNode 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.
namestringtruenonenone
display_namestringtruenonenone
versionstringtruenonenone
statusNodeStatustruenoneNode 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
modeNodeModetruenoneNode 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
descriptionstringfalsenonenone
availabilityAvailabilityStateBasefalsenoneAn availability state base
cube_elements[CubeElementMetadata]truenone[Metadata for an element in a cube]
cube_node_metrics[string]truenonenone
cube_node_dimensions[string]truenonenone
querystringfalsenonenone
columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
updated_atstring(date-time)truenonenone
materializations[MaterializationConfigOutput]truenone[Output for materialization config.]
tags[TagOutput]falsenone[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

NameTypeRequiredRestrictionsDescription
namespacestringtruenonenone
node_revision_idintegertruenonenone
node_idintegertruenonenone
typeNodeTypetruenoneNode 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.
namestringtruenonenone
display_namestringtruenonenone
versionstringtruenonenone
statusNodeStatustruenoneNode 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
modeNodeModetruenoneNode 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
catalogCatalogInfofalsenoneClass for catalog creation
schema_stringfalsenonenone
tablestringfalsenonenone
descriptionstringfalsenonenone
columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
updated_atstring(date-time)truenonenone
parents[NodeNameOutput]truenone[Node name only]
dimension_links[LinkDimensionOutput]truenone[Input for linking a dimension to a node]
created_atstring(date-time)truenonenone
tags[TagOutput]falsenone[Output tag model.]
current_versionstringtruenonenone
{
  "code": 0,
  "message": "string",
  "debug": {},
  "context": ""
}

DJError

Properties

NameTypeRequiredRestrictionsDescription
codeErrorCodetruenoneError codes.
messagestringtruenonenone
debugobjectfalsenonenone
contextstringfalsenonenone
"spark"

Dialect

Properties

NameTypeRequiredRestrictionsDescription
DialectstringfalsenoneSQL dialect

Enumerated Values

PropertyValue
Dialectspark
Dialecttrino
Dialectdruid
{
  "name": "string",
  "node_name": "string",
  "node_display_name": "string",
  "is_primary_key": true,
  "type": "string",
  "path": [
    "string"
  ]
}

DimensionAttributeOutput

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
node_namestringfalsenonenone
node_display_namestringfalsenonenone
is_primary_keybooleantruenonenone
typestringtruenonenone
path[string]truenonenone
{
  "value": [
    "string"
  ],
  "count": 0
}

DimensionValue

Properties

NameTypeRequiredRestrictionsDescription
value[string]truenonenone
countintegerfalsenonenone
{
  "dimensions": [
    "string"
  ],
  "values": [
    {
      "value": [
        "string"
      ],
      "count": 0
    }
  ],
  "cardinality": 0
}

DimensionValues

Properties

NameTypeRequiredRestrictionsDescription
dimensions[string]truenonenone
values[DimensionValue]truenone[Dimension value and count]
cardinalityintegertruenonenone
{
  "granularity": "string",
  "intervals": [
    "string"
  ],
  "timestamp_column": "string",
  "timestamp_format": "string",
  "parse_spec_format": "string"
}

DruidConf

Properties

NameTypeRequiredRestrictionsDescription
granularitystringfalsenonenone
intervals[string]falsenonenone
timestamp_columnstringfalsenonenone
timestamp_formatstringfalsenonenone
parse_spec_formatstringfalsenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
sparkSparkConffalsenoneSpark configuration
lookback_windowstringfalsenonenone
dimensions[string]falsenonenone
measuresobjectfalsenonenone
» additionalPropertiesMetricMeasuresfalsenoneRepresent a metric as a set of measures, along with the expression forcombining the measures to make the metric.
metrics[ColumnMetadata]falsenone[A simple model for column metadata.]
prefixstringfalsenonenone
suffixstringfalsenonenone
druidDruidConffalsenoneDruid configuration
{
  "display_name": "string",
  "description": "string",
  "columns": [
    {
      "node": "string",
      "column": "string"
    }
  ],
  "additive": "additive"
}

EditMeasure

Properties

NameTypeRequiredRestrictionsDescription
display_namestringfalsenonenone
descriptionstringfalsenonenone
columns[NodeColumn]falsenone[Defines a column on a node]
additiveAggregationRulefalsenoneType of allowed aggregation for a given measure.
{
  "name": "string",
  "version": "string",
  "uri": "string",
  "dialect": "spark"
}

EngineInfo

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
versionstringtruenonenone
uristringfalsenonenone
dialectDialectfalsenoneSQL dialect
"attribute"

EntityType

Properties

NameTypeRequiredRestrictionsDescription
EntityTypestringfalsenoneAn entity type for which activity can occur

Enumerated Values

PropertyValue
EntityTypeattribute
EntityTypeavailability
EntityTypebackfill
EntityTypecatalog
EntityTypecolumn_attribute
EntityTypedependency
EntityTypeengine
EntityTypelink
EntityTypematerialization
EntityTypenamespace
EntityTypenode
EntityTypepartition
EntityTypequery
EntityTypetag
0

ErrorCode

Properties

NameTypeRequiredRestrictionsDescription
ErrorCodeintegerfalsenoneError codes.

Enumerated Values

PropertyValue
ErrorCode0
ErrorCode1
ErrorCode2
ErrorCode100
ErrorCode101
ErrorCode102
ErrorCode200
ErrorCode201
ErrorCode202
ErrorCode203
ErrorCode204
ErrorCode205
ErrorCode206
ErrorCode300
ErrorCode301
ErrorCode302
ErrorCode400
ErrorCode401
ErrorCode402
ErrorCode403
ErrorCode500
ErrorCode501
{
  "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

NameTypeRequiredRestrictionsDescription
sparkSparkConffalsenoneSpark configuration
lookback_windowstringfalsenonenone
dimensions[string]falsenonenone
measuresobjectfalsenonenone
» additionalPropertiesMetricMeasuresfalsenoneRepresent a metric as a set of measures, along with the expression forcombining the measures to make the metric.
metrics[ColumnMetadata]falsenone[A simple model for column metadata.]
{
  "spark": {},
  "lookback_window": "string"
}

GenericMaterializationConfigInput

Properties

NameTypeRequiredRestrictionsDescription
sparkSparkConffalsenoneSpark configuration
lookback_windowstringfalsenonenone
"second"

Granularity

Properties

NameTypeRequiredRestrictionsDescription
GranularitystringfalsenoneTime dimension granularity.

Enumerated Values

PropertyValue
Granularitysecond
Granularityminute
Granularityhour
Granularityday
Granularityweek
Granularitymonth
Granularityquarter
Granularityyear
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

HTTPValidationError

Properties

NameTypeRequiredRestrictionsDescription
detail[ValidationError]falsenonenone
{
  "name": "string",
  "status": "ok"
}

HealthCheck

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
statusHealthcheckStatustruenonePossible health statuses.
"ok"

HealthcheckStatus

Properties

NameTypeRequiredRestrictionsDescription
HealthcheckStatusstringfalsenonePossible health statuses.

Enumerated Values

PropertyValue
HealthcheckStatusok
HealthcheckStatusfailed
{
  "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

NameTypeRequiredRestrictionsDescription
idintegertruenonenone
entity_typeEntityTypefalsenoneAn entity type for which activity can occur
entity_namestringfalsenonenone
nodestringfalsenonenone
activity_typeActivityTypefalsenoneAn activity type
userstringfalsenonenone
preobjecttruenonenone
postobjecttruenonenone
detailsobjecttruenonenone
created_atstring(date-time)truenonenone
"one_to_one"

JoinCardinality

Properties

NameTypeRequiredRestrictionsDescription
JoinCardinalitystringfalsenoneThe version upgrade type

Enumerated Values

PropertyValue
JoinCardinalityone_to_one
JoinCardinalityone_to_many
JoinCardinalitymany_to_one
JoinCardinalitymany_to_many
"left"

JoinType

Properties

NameTypeRequiredRestrictionsDescription
JoinTypestringfalsenoneJoin type

Enumerated Values

PropertyValue
JoinTypeleft
JoinTyperight
JoinTypeinner
JoinTypefull
JoinTypecross
{
  "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

NameTypeRequiredRestrictionsDescription
column_namestringtruenonenone
node_namestringfalsenonenone
node_typestringfalsenonenone
display_namestringfalsenonenone
lineage[LineageColumn]falsenone[Column in lineage graph]
{
  "dimension_node": "string",
  "role": "string"
}

LinkDimensionIdentifier

Properties

NameTypeRequiredRestrictionsDescription
dimension_nodestringtruenonenone
rolestringfalsenonenone
{
  "dimension_node": "string",
  "join_type": "left",
  "join_on": "string",
  "join_cardinality": "many_to_one",
  "role": "string"
}

LinkDimensionInput

Properties

NameTypeRequiredRestrictionsDescription
dimension_nodestringtruenonenone
join_typeJoinTypefalsenoneJoin type
join_onstringtruenonenone
join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
rolestringfalsenonenone
{
  "dimension": {
    "name": "string"
  },
  "join_type": "left",
  "join_sql": "string",
  "join_cardinality": "one_to_one",
  "role": "string",
  "foreign_keys": {
    "property1": "string",
    "property2": "string"
  }
}

LinkDimensionOutput

Properties

NameTypeRequiredRestrictionsDescription
dimensionNodeNameOutputtruenoneNode name only
join_typeJoinTypetruenoneJoin type
join_sqlstringtruenonenone
join_cardinalityJoinCardinalityfalsenoneThe version upgrade type
rolestringfalsenonenone
foreign_keysobjecttruenonenone
» additionalPropertiesstringfalsenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
namestringfalsenonenone
configobjecttruenonenone
schedulestringtruenonenone
jobstringfalsenonenone
backfills[BackfillOutput]truenone[Output model for backfills]
strategystringfalsenonenone
output_tables[string]truenonenone
urls[string]truenonenone
{
  "name": "string",
  "config": {},
  "schedule": "string",
  "job": "string",
  "backfills": [
    {
      "spec": {
        "column_name": "string",
        "values": [
          null
        ],
        "range": [
          null
        ]
      },
      "urls": [
        "string"
      ]
    }
  ],
  "strategy": "string"
}

MaterializationConfigOutput

Properties

NameTypeRequiredRestrictionsDescription
namestringfalsenonenone
configobjecttruenonenone
schedulestringtruenonenone
jobstringfalsenonenone
backfills[BackfillOutput]truenone[Output model for backfills]
strategystringfalsenonenone
{
  "output_tables": [
    "string"
  ],
  "urls": [
    "http://example.com"
  ]
}

MaterializationInfo

Properties

NameTypeRequiredRestrictionsDescription
output_tables[string]truenonenone
urls[string]truenonenone
{
  "name": "spark_sql",
  "label": "Spark SQL",
  "description": "Spark SQL materialization job",
  "allowed_node_types": [
    "transform",
    "dimension",
    "cube"
  ],
  "job_class": "SparkSqlMaterializationJob"
}

MaterializationJobTypeEnum

Properties

NameTypeRequiredRestrictionsDescription
MaterializationJobTypeEnumanyfalsenoneAvailable materialization job types

Enumerated Values

PropertyValue
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

NameTypeRequiredRestrictionsDescription
MaterializationStrategystringfalsenoneMaterialization strategies

Enumerated Values

PropertyValue
MaterializationStrategyfull
MaterializationStrategysnapshot
MaterializationStrategysnapshot_partition
MaterializationStrategyincremental_time
MaterializationStrategyview
{
  "name": "string",
  "field_name": "string",
  "agg": "string",
  "type": "string"
}

Measure

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
field_namestringtruenonenone
aggstringtruenonenone
typestringtruenonenone
{
  "name": "string",
  "display_name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "string",
      "node": "string"
    }
  ],
  "additive": "additive"
}

MeasureOutput

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
display_namestringfalsenonenone
descriptionstringfalsenonenone
columns[datajunction_server__models__measure__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
additiveAggregationRuletruenoneType 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

NameTypeRequiredRestrictionsDescription
idintegertruenonenone
namestringtruenonenone
display_namestringtruenonenone
current_versionstringtruenonenone
descriptionstringfalsenonenone
created_atstring(date-time)truenonenone
updated_atstring(date-time)truenonenone
querystringtruenonenone
upstream_nodestringtruenonenone
expressionstringtruenonenone
dimensions[DimensionAttributeOutput]truenone[Dimension attribute output should include the name and type]
metric_metadataMetricMetadataOutputfalsenoneMetric metadata output
required_dimensions[string]truenonenone
"higher_is_better"

MetricDirection

Properties

NameTypeRequiredRestrictionsDescription
MetricDirectionstringfalsenoneThe direction of the metric that’s considered good, i.e., higher is better

Enumerated Values

PropertyValue
MetricDirectionhigher_is_better
MetricDirectionlower_is_better
MetricDirectionneutral
{
  "metric": "string",
  "measures": [
    {
      "name": "string",
      "field_name": "string",
      "agg": "string",
      "type": "string"
    }
  ],
  "combiner": "string"
}

MetricMeasures

Properties

NameTypeRequiredRestrictionsDescription
metricstringtruenonenone
measures[Measure]truenone[A measure with a simple aggregation]
combinerstringtruenonenone
{
  "direction": "higher_is_better",
  "unit": "string"
}

MetricMetadataInput

Properties

NameTypeRequiredRestrictionsDescription
directionMetricDirectionfalsenoneThe direction of the metric that’s considered good, i.e., higher is better
unitstringfalsenonenone
{
  "directions": [
    "higher_is_better"
  ],
  "units": [
    {
      "name": "string",
      "label": "string",
      "category": "string",
      "abbreviation": "string",
      "description": "string"
    }
  ]
}

MetricMetadataOptions

Properties

NameTypeRequiredRestrictionsDescription
directions[MetricDirection]truenone[The direction of the metric that’s considered good, i.e., higher is better]
units[Unit]truenone[Metric unit]
{
  "direction": "higher_is_better",
  "unit": {
    "name": "string",
    "label": "string",
    "category": "string",
    "abbreviation": "string",
    "description": "string"
  }
}

MetricMetadataOutput

Properties

NameTypeRequiredRestrictionsDescription
directionMetricDirectionfalsenoneThe direction of the metric that’s considered good, i.e., higher is better
unitUnitfalsenoneMetric unit
{
  "namespace": "system",
  "name": "string",
  "description": "string",
  "allowed_node_types": [
    "source"
  ],
  "uniqueness_scope": [
    "node"
  ]
}

MutableAttributeTypeFields

Properties

NameTypeRequiredRestrictionsDescription
namespacestringfalsenonenone
namestringtruenonenone
descriptionstringtruenonenone
allowed_node_types[NodeType]truenone[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]falsenone[The scope at which this attribute needs to be unique.]
{
  "namespace": "string",
  "num_nodes": 0
}

NamespaceOutput

Properties

NameTypeRequiredRestrictionsDescription
namespacestringtruenonenone
num_nodesintegertruenonenone
{
  "node": "string",
  "column": "string"
}

NodeColumn

Properties

NameTypeRequiredRestrictionsDescription
nodestringtruenonenone
columnstringtruenonenone
{
  "name": "string",
  "display_name": "string",
  "description": "string",
  "type": "source"
}

NodeIndexItem

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
display_namestringtruenonenone
descriptionstringtruenonenone
typeNodeTypetruenoneNode 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

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
display_namestringtruenonenone
descriptionstringtruenonenone
versionstringtruenonenone
typeNodeTypetruenoneNode 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.
statusNodeStatustruenoneNode 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
modeNodeModetruenoneNode 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_atstring(date-time)truenonenone
"published"

NodeMode

Properties

NameTypeRequiredRestrictionsDescription
NodeModestringfalsenoneNode 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

PropertyValue
NodeModepublished
NodeModedraft
{
  "name": "string"
}

NodeNameOutput

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
namespacestringtruenonenone
node_revision_idintegertruenonenone
node_idintegertruenonenone
typeNodeTypetruenoneNode 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.
namestringtruenonenone
display_namestringtruenonenone
versionstringtruenonenone
statusNodeStatustruenoneNode 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
modeNodeModetruenoneNode 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
catalogCatalogInfofalsenoneClass for catalog creation
schema_stringfalsenonenone
tablestringfalsenonenone
descriptionstringfalsenonenone
querystringfalsenonenone
availabilityAvailabilityStateBasefalsenoneAn availability state base
columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
updated_atstring(date-time)truenonenone
materializations[MaterializationConfigOutput]truenone[Output for materialization config.]
parents[NodeNameOutput]truenone[Node name only]
metric_metadataMetricMetadataOutputfalsenoneMetric metadata output
dimension_links[LinkDimensionOutput]falsenone[Input for linking a dimension to a node]
created_atstring(date-time)truenonenone
tags[TagOutput]falsenone[Output tag model.]
current_versionstringtruenonenone
missing_tablebooleanfalsenonenone
{
  "name": "string",
  "display_name": "string",
  "type": "source",
  "description": "",
  "query": "string",
  "mode": "published"
}

NodeRevisionBase

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
display_namestringfalsenonenone
typeNodeTypetruenoneNode 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.
descriptionstringfalsenonenone
querystringfalsenonenone
modeNodeModefalsenoneNode 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

NameTypeRequiredRestrictionsDescription
idintegertruenonenone
node_idintegertruenonenone
typeNodeTypetruenoneNode 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.
namestringtruenonenone
display_namestringtruenonenone
versionstringtruenonenone
statusNodeStatustruenoneNode 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
modeNodeModetruenoneNode 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
catalogCatalogInfofalsenoneClass for catalog creation
schema_stringfalsenonenone
tablestringfalsenonenone
descriptionstringfalsenonenone
querystringfalsenonenone
availabilityAvailabilityStateBasefalsenoneAn availability state base
columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
updated_atstring(date-time)truenonenone
materializations[MaterializationConfigOutput]truenone[Output for materialization config.]
parents[NodeNameOutput]truenone[Node name only]
metric_metadataMetricMetadataOutputfalsenoneMetric metadata output
dimension_links[LinkDimensionOutput]falsenone[Input for linking a dimension to a node]
"valid"

NodeStatus

Properties

NameTypeRequiredRestrictionsDescription
NodeStatusstringfalsenoneNode 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

PropertyValue
NodeStatusvalid
NodeStatusinvalid
"source"

NodeType

Properties

NameTypeRequiredRestrictionsDescription
NodeTypestringfalsenoneNode 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

PropertyValue
NodeTypesource
NodeTypetransform
NodeTypemetric
NodeTypedimension
NodeTypecube
{
  "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

NameTypeRequiredRestrictionsDescription
messagestringtruenonenone
statusNodeStatustruenoneNode 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]truenone[Output for a node revision with information about columns and if it is a metric.]
columns[datajunction_server__models__node__ColumnOutput]truenone[A simplified column schema, without ID or dimensions.]
errors[DJError]truenone[An error.]
missing_parents[string]truenonenone
"basic"

OAuthProvider

Properties

NameTypeRequiredRestrictionsDescription
OAuthProviderstringfalsenoneSupport oauth providers

Enumerated Values

PropertyValue
OAuthProviderbasic
OAuthProvidergithub
OAuthProvidergoogle
{
  "min_temporal_partition": [
    "string"
  ],
  "max_temporal_partition": [
    "string"
  ],
  "value": [
    "string"
  ],
  "valid_through_ts": 0
}

PartitionAvailability

Properties

NameTypeRequiredRestrictionsDescription
min_temporal_partition[string]falsenonenone
max_temporal_partition[string]falsenonenone
value[string]truenonenone
valid_through_tsintegerfalsenonenone
{
  "column_name": "string",
  "values": [
    null
  ],
  "range": [
    null
  ]
}

PartitionBackfill

Properties

NameTypeRequiredRestrictionsDescription
column_namestringtruenonenone
values[any]falsenonenone
range[any]falsenonenone
{
  "type_": "temporal",
  "granularity": "second",
  "format": "string"
}

PartitionInput

Properties

NameTypeRequiredRestrictionsDescription
type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
granularityGranularityfalsenoneTime dimension granularity.
formatstringfalsenonenone
{
  "type_": "temporal",
  "format": "string",
  "granularity": "string",
  "expression": "string"
}

PartitionOutput

Properties

NameTypeRequiredRestrictionsDescription
type_PartitionTypetruenonePartition type.A partition can be temporal or categorical
formatstringfalsenonenone
granularitystringfalsenonenone
expressionstringfalsenonenone
"temporal"

PartitionType

Properties

NameTypeRequiredRestrictionsDescription
PartitionTypestringfalsenonePartition type.A partition can be temporal or categorical

Enumerated Values

PropertyValue
PartitionTypetemporal
PartitionTypecategorical
[
  {
    "sql": "string",
    "columns": [
      {
        "name": "string",
        "type": "string",
        "column": "string",
        "node": "string",
        "semantic_entity": "string",
        "semantic_type": "string"
      }
    ],
    "rows": [
      [
        null
      ]
    ],
    "row_count": 0
  }
]

QueryResults

Properties

NameTypeRequiredRestrictionsDescription
QueryResults[StatementResults]falsenoneResults for a given query.
"UNKNOWN"

QueryState

Properties

NameTypeRequiredRestrictionsDescription
QueryStatestringfalsenoneDifferent states of a query.

Enumerated Values

PropertyValue
QueryStateUNKNOWN
QueryStateACCEPTED
QueryStateSCHEDULED
QueryStateRUNNING
QueryStateFINISHED
QueryStateCANCELED
QueryStateFAILED
{
  "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

NameTypeRequiredRestrictionsDescription
idstringtruenonenone
engine_namestringfalsenonenone
engine_versionstringfalsenonenone
submitted_querystringtruenonenone
executed_querystringfalsenonenone
scheduledstring(date-time)falsenonenone
startedstring(date-time)falsenonenone
finishedstring(date-time)falsenonenone
stateQueryStatefalsenoneDifferent states of a query.
progressnumberfalsenonenone
output_tableTableReffalsenoneTable reference
resultsQueryResultstruenoneResults for a given query.
nextstring(uri)falsenonenone
previousstring(uri)falsenonenone
errors[string]truenonenone
links[string]falsenonenone
{
  "name": "string",
  "type": {},
  "attributes": [
    {
      "attribute_type": {
        "namespace": "string",
        "name": "string"
      }
    }
  ],
  "dimension": "string"
}

SourceColumnOutput

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
typeColumnTypetruenoneBase type for all Column Types
attributes[AttributeOutput]falsenone[Column attribute output.]
dimensionstringfalsenonenone
{}

SparkConf

Properties

NameTypeRequiredRestrictionsDescription
additionalPropertiesstringfalsenonenone
{
  "sql": "string",
  "columns": [
    {
      "name": "string",
      "type": "string",
      "column": "string",
      "node": "string",
      "semantic_entity": "string",
      "semantic_type": "string"
    }
  ],
  "rows": [
    [
      null
    ]
  ],
  "row_count": 0
}

StatementResults

Properties

NameTypeRequiredRestrictionsDescription
sqlstringtruenonenone
columns[ColumnMetadata]truenone[A simple model for column metadata.]
rows[array]truenonenone
row_countintegerfalsenonenone
{
  "catalog": "string",
  "schema": "string",
  "table": "string"
}

TableRef

Properties

NameTypeRequiredRestrictionsDescription
catalogstringtruenonenone
schemastringtruenonenone
tablestringtruenonenone
{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {},
  "name": "string",
  "tag_type": "string"
}

TagOutput

Properties

NameTypeRequiredRestrictionsDescription
descriptionstringfalsenonenone
display_namestringfalsenonenone
tag_metadataobjectfalsenonenone
namestringtruenonenone
tag_typestringtruenonenone
{
  "sql": "string",
  "columns": [
    {
      "name": "string",
      "type": "string",
      "column": "string",
      "node": "string",
      "semantic_entity": "string",
      "semantic_type": "string"
    }
  ],
  "dialect": "spark",
  "upstream_tables": [
    "string"
  ]
}

TranslatedSQL

Properties

NameTypeRequiredRestrictionsDescription
sqlstringtruenonenone
columns[ColumnMetadata]falsenone[A simple model for column metadata.]
dialectDialectfalsenoneSQL dialect
upstream_tables[string]falsenonenone
"node"

UniquenessScope

Properties

NameTypeRequiredRestrictionsDescription
UniquenessScopestringfalsenoneThe scope at which this attribute needs to be unique.

Enumerated Values

PropertyValue
UniquenessScopenode
UniquenessScopecolumn_type
{
  "name": "string",
  "label": "string",
  "category": "string",
  "abbreviation": "string",
  "description": "string"
}

Unit

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
labelstringfalsenonenone
categorystringfalsenonenone
abbreviationstringfalsenonenone
descriptionstringfalsenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
metrics[string]falsenonenone
dimensions[string]falsenonenone
filters[string]falsenonenone
orderby[string]falsenonenone
limitintegerfalsenonenone
descriptionstringfalsenonenone
modeNodeModefalsenoneNode 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]falsenonenone
metric_metadataMetricMetadataInputfalsenoneMetric metadata output
querystringfalsenonenone
catalogstringfalsenonenone
schema_stringfalsenonenone
tablestringfalsenonenone
columns[SourceColumnOutput]falsenone[A column used in creation of a source node]
missing_tablebooleanfalsenonenone
display_namestringfalsenonenone
primary_key[string]falsenonenone
{
  "description": "string",
  "display_name": "string",
  "tag_metadata": {}
}

UpdateTag

Properties

NameTypeRequiredRestrictionsDescription
descriptionstringfalsenonenone
display_namestringfalsenonenone
tag_metadataobjectfalsenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
namestringfalsenonenone
jobMaterializationJobTypeEnumtruenoneAvailable materialization job types
configanytruenonenone

anyOf

NameTypeRequiredRestrictionsDescription
» anonymousDruidCubeConfigInputfalsenoneSpecific Druid cube materialization fields that require user input

or

NameTypeRequiredRestrictionsDescription
» anonymousGenericCubeConfigInputfalsenoneGeneric cube materialization config fields that require user input

or

NameTypeRequiredRestrictionsDescription
» anonymousGenericMaterializationConfigInputfalsenoneUser-input portions of the materialization config

continued

NameTypeRequiredRestrictionsDescription
schedulestringtruenonenone
strategyMaterializationStrategytruenoneMaterialization strategies
{
  "id": 0,
  "username": "string",
  "email": "string",
  "name": "string",
  "oauth_provider": "basic",
  "is_admin": false
}

UserOutput

Properties

NameTypeRequiredRestrictionsDescription
idintegertruenonenone
usernamestringtruenonenone
emailstringfalsenonenone
namestringfalsenonenone
oauth_providerOAuthProvidertruenoneSupport oauth providers
is_adminbooleanfalsenonenone
{
  "loc": [
    "string"
  ],
  "msg": "string",
  "type": "string"
}

ValidationError

Properties

NameTypeRequiredRestrictionsDescription
loc[anyOf]truenonenone

anyOf

NameTypeRequiredRestrictionsDescription
» anonymousstringfalsenonenone

or

NameTypeRequiredRestrictionsDescription
» anonymousintegerfalsenonenone

continued

NameTypeRequiredRestrictionsDescription
msgstringtruenonenone
typestringtruenonenone
{
  "name": "string",
  "type": "string",
  "node": "string"
}

ColumnOutput

Properties

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
typestringtruenonenone
nodestringtruenonenone
{
  "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

NameTypeRequiredRestrictionsDescription
namestringtruenonenone
display_namestringfalsenonenone
typestringtruenonenone
attributes[AttributeOutput]falsenone[Column attribute output.]
dimensionNodeNameOutputfalsenoneNode name only
partitionPartitionOutputfalsenoneOutput for partition