FailureResponse

The failure response object.

error
Error
required

The error that caused the failure.

Error

The error object.

code
Int

The error code.

message
String
required

The error message.

Account

The Account object.

id
ID
required

The Account’s unique identifier.

Environment

The Environments object.

Environments are independent and isolated Propel workspaces for development, staging (testing), and production workloads. Environments are hosted in a specific region, initially in us-east-2 only.

id
ID
required

The Environment’s unique identifier.

uniqueName
String

The Environment’s unique name.

description
String

The Environment’s description.

createdAt
DateTime

The Environment’s creation date and time in UTC.

modifiedAt
DateTime

The Environment’s last modification date and time in UTC.

createdBy
String

The Environment’s creator. It can be either a User ID, an Environment ID, or “system” if it was created by Propel.

modifiedBy
String

The Environment’s last modifier. It can be either a User ID, an Environment ID, or “system” if it was modified by Propel.

account
Account

The Environment’s Account.

EnvironmentResponse

The result of a mutation which creates or modifies an Environment.

environment
Environment

The Environment which was created or modified.

PageInfo

The page info object used for pagination.

startCursor
String

Points to the first item returned in the results. Used when paginating backward.

endCursor
String

Points to the last item returned in the results. Used when paginating forward.

hasNextPage
Boolean
required

A boolean that indicates whether a next page of results exists. Can be used to display a “next page” button in user interfaces, for example.

hasPreviousPage
Boolean
required

A boolean that indicates whether a previous page of results exists. Can be used to display a “previous page” button in user interfaces, for example.

Application

The Application object.

Propel Applications represent the web or mobile app you are building. They provide the API credentials that allow your client- or server-side app to access the Propel API. The Application’s Propeller determines the speed and cost of your Metric Queries.

id
ID
required

The Application’s unique identifier.

uniqueName
String
required

The Application’s unique name.

description
String
required

The Application’s description.

account
Account
required

The Application’s Account.

environment
Environment
required

The Application’s Environment.

createdAt
DateTime
required

The Application’s creation date and time in UTC.

modifiedAt
DateTime
required

The Application’s last modification date and time in UTC.

createdBy
String
required

The Application’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Application’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

clientId
String
required

The Application’s OAuth 2.0 client identifier.

secret
String

The Application’s OAuth 2.0 client secret.

propeller
Propeller
required

The Application’s Propeller.

scopes
[ApplicationScope!]
required

The Application’s OAuth 2.0 scopes.

dataPoolAccessPolicies
DataPoolAccessPolicyConnection
required

A paginated list of Data Pool Access Policies associated with the Application.

Arguments

first
Int
after
String
last
Int
before
String

ApplicationResponse

The result of a mutation which creates or modifies an Application.

application
Application

The Application which was created or modified.

DataSource

The Data Source object.

A Data Source is a connection to your data warehouse. It has the necessary connection details for Propel to access Snowflake or any other supported Data Source.

id
ID
required

The Data Source’s unique identifier.

uniqueName
String
required

The Data Source’s unique name.

description
String
required

The Data Source’s description.

account
Account
required

The Data Source’s Account.

environment
Environment
required

The Data Source’s Environment.

createdAt
DateTime
required

The Data Source’s creation date and time in UTC.

modifiedAt
DateTime
required

The Data Source’s last modification date and time in UTC.

createdBy
String
required

The Data Source’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Data Source’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

type
DataSourceType
required

The Data Source’s type.

status
DataSourceStatus
required

The Data Source’s status.

connectionSettings
ConnectionSettings
required

The Data Source’s connection settings.

tables
TableConnection

The tables contained within the Data Source, according to the most recent table introspection.

Arguments

first
Int
after
String
last
Int
before
String
tableIntrospections
TableIntrospectionConnection

A list of table introspections performed for the Data Source. You can see how tables and columns changed over time by paging through this list.

Arguments

first
Int
after
String
last
Int
before
String
checks
[DataSourceCheck!]

A list of checks performed on the Data Source during its most recent connection attempt.

dataPools
DataPoolConnection

If you list Data Pools via the dataPools field on a Data Source, you will get Data Pools for the Data Source.

The dataPools field uses cursor-based paginationtypical of GraphQL APIs. You can use the pairs of parameters first and after or last and before to page forward or backward through the results, respectively.

For forward pagination, the first parameter defines the number of results to return, and the after parameter defines the cursor to continue from. You should pass the cursor for the last result of the current page to after.

For backward pagination, the last parameter defines the number of results to return, and the before parameter defines the cursor to continue from. You should pass the cursor for the first result of the current page to before.

Arguments

first
Int
after
String
last
Int
before
String

DataSourceCheck

The Data Source Check object.

Data Source Checks are executed when setting up your Data Source. They check that Propel will be able to receive data and setup Data Pools.

The exact Checks to perform vary by Data Source. For example, Snowflake-backed Data Sources will have their own specific Checks.

name
String
required

The name of the Data Source Check to be performed.

description
String

A description of the Data Source Check to be performed.

status
DataSourceCheckStatus
required

The status of the Data Source Check (all checks begin as NOT_STARTED before transitioning to SUCCEEDED or FAILED).

error
Error

If the Data Source Check failed, this field includes a descriptive error message.

checkedAt
DateTime

The time at which the Data Source Check was performed.

TableIntrospection

The table introspection object.

When setting up a Data Source, Propel may need to introspect tables in order to determine what tables and columns are available to create Data Pools from. The table introspection represents the lifecycle of this operation (whether it’s in-progress, succeeded, or failed) and the resulting tables and columns. These will be captured as table and column objects, respectively.

dataSource
DataSource
required

The Data Source the table introspection was performed for.

status
TableIntrospectionStatus
required

The status of the table introspection.

createdAt
DateTime
required

The table introspection’s creation date and time in UTC.

createdBy
String
required

The table introspection’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedAt
DateTime
required

The table introspection’s last modification date and time in UTC.

modifiedBy
String
required

The table introspection’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

numTables
Int

The number of tables introspected.

tables
TableConnection

The tables introspected.

Arguments

first
Int
after
String
last
Int
before
String

Table

The table object.

Once a table introspection succeeds, it creates a new table object for every table it introspected.

id
ID
required

The table’s ID.

name
String
required

The table’s name.

dataSource
DataSource

The Data Source to which the table belongs.

rows
Int

The number of rows contained within the table at the time of introspection. Check the table’s cachedAt time, since this info can become out of date.

size
Int

The size of the table (in bytes) at the time of introspection. Check the table’s cachedAt time, since this info can become out of date.

cachedAt
DateTime
required

The time at which the table was cached (i.e., the time at which it was introspected).

createdAt
DateTime
required

The time at which the table was created. This is the same as its cachedAt time.

createdBy
String
required

The table’s creator. This corresponds to the initiator of the table Introspection. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

columns
ColumnConnection

The table’s columns.

Arguments

first
Int
after
String
last
Int
before
String
availableTimestamps
ColumnConnection

The table’s columns which can be used as a timestamp for a Data Pool.

Arguments

first
Int
after
String
last
Int
before
String
availableMeasures
ColumnConnection

The table’s columns which can be used as a measure for a Metric.

Arguments

first
Int
after
String
last
Int
before
String

Column

The column object.

Once a table introspection succeeds, it creates a new table object for every table it introspected. Within each table object, it also creates a column object for every column it introspected.

name
String
required

The column’s name.

type
String
required

The column’s type.

isNullable
Boolean

Whether the column is nullable, meaning whether it accepts a null value.

cachedAt
DateTime
required

The time at which the column was cached (i.e., the time at which it was introspected).

createdAt
DateTime
required

The time at which the column was created. This is the same as its cachedAt time.

createdBy
String
required

The column’s creator. This corresponds to the initiator of the table introspection. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

suggestedDataPoolColumnType
ColumnType

This is the suggested Data Pool column type to use when converting this Data Source column to a Data Pool column. Propel makes this suggestion based on the Data Source column type. If the Data Source column type is unsupported, this field returns null.

Sometimes, you know better which Data Pool column type to convert to. In these cases, you can refer to supportedDataPoolColumnTypes for the full set of supported conversions.

supportedDataPoolColumnTypes
[ColumnType!]
required

This is the set of supported Data Pool column types you can use when converting this Data Source column to a Data Pool column. If the Data Source column type is unsupported, this field returns an empty array.

For example, a numeric Data Source column type could be converted to a narrower or wider numeric Data Pool column type; a string-valued Data Source column type could be mapped to a date or timestamp Data Pool column type.

InternalConnectionSettings

_
Boolean

SnowflakeConnectionSettings

The Snowflake Data Source connection settings.

account
String
required

The Snowflake account. This is the part before the “snowflakecomputing.com” part of your Snowflake URL.

database
String
required

The Snowflake database name.

warehouse
String
required

The Snowflake warehouse name. It should be “PROPELLING” if you used the default name in the setup script.

schema
String
required

The Snowflake schema.

username
String
required

The Snowflake username. It should be “PROPEL” if you used the default name in the setup script.

role
String
required

The Snowflake role. It should be “PROPELLER” if you used the default name in the setup script.

HttpBasicAuthSettings

The HTTP Basic authentication settings.

username
String
required

Username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.

password
String
required

Password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.

HttpDataSourceTable

An HTTP Data Source’s table.

id
ID
required

The ID of the table

name
String
required

The name of the table

columns
[HttpDataSourceColumn!]
required

All the columns present in the table

HttpDataSourceColumn

A column in an HTTP Data Source’s table.

name
String
required

The column name. It has to be unique within a Table.

type
ColumnType
required

The column type.

clickHouseType
String

The ClickHouse type to use when type is set to CLICKHOUSE.

nullable
Boolean
required

Whether the column’s type is nullable or not.

S3DataSourceTable

An S3 Data Source’s table.

id
ID
required

The ID of the table

name
String
required

The name of the table

path
String

The path to the table’s files in S3.

columns
[S3DataSourceColumn!]
required

All the columns present in the table

S3DataSourceColumn

A column in an S3 Data Source’s table.

name
String
required

The column name.

type
ColumnType
required

The column type.

nullable
Boolean
required

Whether the column’s type is nullable or not.

WebhookDataSourceColumn

A column in the Webhook Data Source’s table.

name
String
required

The column name.

jsonProperty
String
required

The JSON property that the column will be derived from. For example, if you POST a JSON event like this:

{ "greeting": { "message": "hello, world" } }

Then you can use the JSON property “greeting.message” to extract “hello, world” to a column.

type
ColumnType
required

The column type.

nullable
Boolean
required

Whether the column’s type is nullable or not.

DataSourceResponse

The result of a mutation which creates or modifies a Data Source.

dataSource
DataSource

The Data Source which was created or modified.

DataPool

The Data Pool object. Data Pools are Propel’s high-speed data store and cache

id
ID
required

The Data Pool’s unique identifier.

uniqueName
String
required

The Data Pool’s unique name.

description
String
required

The Data Pool’s description.

account
Account
required

The Data Pool’s Account.

environment
Environment
required

The Data Pool’s Environment.

createdAt
DateTime
required

The Data Pool’s creation date and time in UTC.

modifiedAt
DateTime
required

The Data Pool’s last modification date and time in UTC.

createdBy
String
required

The Data Pool’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Data Pool’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

dataSource
DataSource
required

The Data Pool’s Data Source.

status
DataPoolStatus
required

The Data Pool’s status.

dataRetentionInDays
Int
required

The Data Pool’s data retention in days (not yet supported).

table
String
required

The name of the Data Pool’s table.

timestamp
Timestamp

The Data Pool’s primary timestamp column, if any.

recordCount
String

The number of records in the Data Pool.

sizeInTerabytes
Float

The amount of storage in terabytes used by the Data Pool.

columns
DataPoolColumnConnection

The Data Pool’s columns.

Arguments

first
Int
after
String
last
Int
before
String
availableMeasures
DataPoolColumnConnection

The list of measures (numeric columns) in the Data Pool.

Arguments

first
Int
after
String
last
Int
before
String
setupTasks
[DataPoolSetupTask!]

A list of setup tasks performed on the Data Pool during its most recent setup attempt.

syncing
DataPoolSyncing
required

Settings related to Data Pool syncing.

syncs
SyncConnection

The list of Syncs of the Data Pool.

Arguments

filter
SyncsFilter
first
Int
after
String
last
Int
before
String
metrics
MetricConnection

The list of Metrics powered by the Data Pool.

Arguments

first
Int
after
String
last
Int
before
String
deletionJobs
DeletionJobConnection

The Deletion Jobs that were historically issued to this Data Pool, sorted by creation time, in descending order.

Arguments

first
Int
after
String
last
Int
before
String
addColumnToDataPoolJobs
AddColumnToDataPoolJobConnection

The Add Column Jobs that were historically issued to this Data Pool, sorted by creation time, in descending order.

Arguments

first
Int
after
String
last
Int
before
String
updateDataPoolRecordsJobs
UpdateDataPoolRecordsJobConnection

The UpdateDataPoolRecords Jobs that were historically issued to this Data Pool, sorted by creation time, in descending order.

Arguments

first
Int
after
String
last
Int
before
String
accessControlEnabled
Boolean
required

Whether the Data Pool has access control enabled or not.

If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.

dataPoolAccessPolicies
DataPoolAccessPolicyConnection
required

A paginated list of Data Pool Access Policies available on the Data Pool.

Arguments

first
Int
after
String
last
Int
before
String
validateExpression
ValidateExpressionResult
required

Validates a custom expression against the Data Pool’s available columns. If the provided expression is invalid, the ValidateExpressionResult response will contain a reason explaining why.

Arguments

expression
String
required
tableSettings
TableSettings
required

The Data Pool’s table settings.

partitionByColumns
[DataPoolColumn!]

The Data Pool’s columns that participate in its PARTITION BY clause.

primaryKeyColumns
[DataPoolColumn!]

The Data Pool’s columns that participate in its PRIMARY KEY clause.

orderByColumns
[DataPoolColumn!]

The Data Pool’s columns that participate in its ORDER BY clause.

TableSettings

A Data Pool’s table settings.

These describe how the Data Pool’s table is created in ClickHouse.

engine
TableEngine

The ClickHouse table engine for the Data Pool’s table.

partitionBy
[String!]

The PARTITION BY clause for the Data Pool’s table.

primaryKey
[String!]

The PRIMARY KEY clause for the Data Pool’s table.

orderBy
[String!]

The ORDER BY clause for the Data Pool’s table.

ttl
String

The TTL clause for the Data Pool’s table.

MergeTreeTableEngine

Parameters for the MergeTree table engine.

type
TableEngineType
required

The type is always MERGE_TREE.

ReplacingMergeTreeTableEngine

Parameters for the ReplacingMergeTree table engine.

type
TableEngineType
required

The type is always REPLACING_MERGE_TREE.

ver
String

The ver parameter to the ReplacingMergeTree engine.

SummingMergeTreeTableEngine

Parameters for the SummingMergeTree table engine.

type
TableEngineType
required

The type is always SUMMING_MERGE_TREE.

columns
[String!]

The columns argument for the SummingMergeTree table engine

AggregatingMergeTreeTableEngine

Parameters for the AggregatingMergeTree table engine.

type
TableEngineType
required

The type is always AGGREGATING_MERGE_TREE.

PostgreSqlTableEngine

Parameters for the PostgreSQL table engine.

type
TableEngineType
required

The type is always POSTGRESQL.

DataPoolSetupTask

The Data Pool Setup Task object.

Data Pool Setup Tasks are executed when setting up your Data Pool. They ensure Propel will be able to sync records from your Data Source to your Data Pool.

The exact Setup Tasks to perform vary by Data Source. For example, Data Pools pointing to a Snowflake-backed Data Sources will have their own specific Setup Tasks.

name
String
required

The name of the Data Pool Setup Task to be performed.

description
String

A description of the Data Pool Setup Task to be performed.

status
DataPoolSetupTaskStatus
required

The status of the Data Pool Setup Task (all setup tasks begin as NOT_STARTED before transitioning to SUCCEEDED or FAILED).

error
Error

If the Data Pool Setup Task failed, this field includes a descriptive error message.

completedAt
DateTime

The time at which the Data Pool Setup Task was completed.

Dimension

The Dimension object that represents a column in a table.

columnName
String
required

The column name it represents.

type
String
required

The column data type.

isNullable
Boolean

Whether the column is nullable.

DimensionStatistics

Statistics about a particular Dimension.

uniqueValues
[String!]

An array of unique values for the Dimension, up to 1,000. Empty if the Dimension contains more than 1,000 unique values. Fetching unique values incurs query costs.

Arguments

limit
Int
min
String

The minimum value of the Dimension.

max
String

The maximum value of the Dimension.

average
String

The average value of the Dimension. Empty for non-numeric Dimensions.

query
QueryInfo
required

The Query statistics and metadata.

MaterializedView

id
ID
required

The Materialized View’s unique identifier.

uniqueName
String
required

The Materialized View’s unique name.

description
String
required

The Materialized View’s description.

account
Account
required

The Materialized View’s Account.

environment
Environment
required

The Materialized View’s Environment.

createdAt
DateTime
required

The Materialized View’s creation date and time in UTC.

modifiedAt
DateTime
required

The Materialized View’s last modification date and time in UTC.

createdBy
String
required

The Materialized View’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Materialized View’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

sql
String
required

The SQL that the Materialized View executes.

destination
DataPool
required

The Materialized View’s destination (AKA “target”) Data Pool.

source
DataPool

The Materialized View’s source Data Pool.

others
[DataPool!]
required

Other Data Pools queried by the Materialized View.

MaterializedViewResponse

The result of a mutation which creates or modifies a Materialized View.

materializedView
MaterializedView
required

The Materialized View which was created or modified.

Filter

The fields of a filter.

You can construct more complex filters using and and or. For example, to construct a filter equivalent to

(value > 0 AND value <= 100) OR status = "confirmed"

you could write

{
  "column": "value",
  "operator": "GREATER_THAN",
  "value": "0",
  "and": [{
    "column": "value",
    "operator": "LESS_THAN_OR_EQUAL_TO",
    "value": "0"
  }],
  "or": [{
    "column": "status",
    "operator": "EQUALS",
    "value": "confirmed"
  }]
}

Note that and takes precedence over or.

column
String
required

The name of the column to filter on.

operator
FilterOperator
required

The operation to perform when comparing the column and filter values.

value
String

The value to compare the column to.

and
[Filter!]

Additional filters to AND with this one. AND takes precedence over OR.

or
[Filter!]

Additional filters to OR with this one. AND takes precedence over OR.

UpdateDataPoolRecordsJobSetColumn

The fields for creating an Update Data Pool Records Job.

{
"column": "status",
"expression": "'completed'"
}

{
"column": "counter",
"expression": "counter + 1"
}

{
"column": "full_name",
"expression": "concat(first_name, ' ', last_name)"
}
column
String
required

The name of the column to update.

expression
String
required

The value to which the column will be updated. Once evaluated, it should be of the same data type as the column.

Timestamp

A Data Pool’s primary timestamp column. Propel uses the primary timestamp to order and partition your data in Data Pools. It will serve as the time dimension for your Metrics.

columnName
String
required

The name of the column that represents the primary timestamp.

type
String
required

The primary timestamp column’s type.

Tenant

A Data Pool’s tenant ID column. The tenant ID column is used to control access to your data with access policies.

columnName
String
required

The name of the column that represents the tenant ID.

type
String
required

The tenant ID column’s type.

UniqueId

A Data Pool’s unique ID column. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated within the Data Pool.

columnName
String
required

The name of the column that represents the unique ID.

DataPoolColumn

columnName
String
required

The name of the Data Source column that this Data Pool column derives from.

type
ColumnType
required

The Data Pool column’s type. This may differ from the corresponding Data Source column’s type.

clickHouseType
String
required

The ClickHouse type. This is the exact representation of the type in ClickHouse.

isNullable
Boolean
required

Whether the column is nullable, meaning whether it accepts a null value.

DataPoolResponse

The result of a mutation which creates or modifies a Data Pool.

dataPool
DataPool

The Data Pool which was created or modified.

DataPoolSyncing

Settings related to Data Pool syncing.

status
DataPoolSyncStatus
required

Indicates whether syncing is enabled or disabled.

interval
DataPoolSyncInterval

The syncing interval.

Note that the syncing interval is approximate. For example, setting the syncing interval to EVERY_1_HOUR does not mean that syncing will occur exactly on the hour. Instead, the syncing interval starts relative to when the Data Pool goes LIVE, and Propel will attempt to sync approximately every hour. Additionally, if you pause or resume syncing, this too can shift the syncing interval around.

lastSyncedAt
DateTime

The date and time of the most recent Sync in UTC.

Sync

The Sync object.

This represents the process of syncing data from your Data Source (for example, a Snowflake data warehouse) to your Data Pool.

id
ID
required

The Sync’s unique identifier.

account
Account

The Sync’s Account.

environment
Environment

The Sync’s Environment.

createdAt
DateTime
required

The Sync’s creation date and time in UTC.

modifiedAt
DateTime
required

The Sync’s last modification date and time in UTC.

createdBy
String
required

The Sync’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Sync’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

dataPool
DataPool

The Sync’s Data Pool.

dataSource
DataSource

The Sync’s Data Pool’s Data Source.

processedRecords
String

The number of new, updated, and deleted records contained within the Sync, if known. This excludes filtered records.

size
String

The (compressed) size of the Sync, in bytes, if known.

status
SyncStatus
required

The status of the Sync (all Syncs begin as SYNCING before transitioning to SUCCEEDED or FAILED).

startedAt
DateTime

The time at which the Sync started.

succeededAt
DateTime

The time at which the Sync succeeded.

failedAt
DateTime

The time at which the Sync failed.

error
Error

If the Sync failed, this represents the reason the Sync failed.

MetricReportConnection

The Metric Report connection object.

It includes headers and rows for a single page of a report. It also allows paging forward and backward to other pages of the report.

pageInfo
PageInfo
required

The report connection’s page info.

edges
[MetricReportEdge!]
required

The report connection’s edges.

nodes
[MetricReportNode!]
required

The report connection’s nodes.

headers
[String]
required

An ordered array of display names for your dimensions and Metrics, as defined in the report input. Use this to display your table’s header.

rows
[[String]!]
required

An ordered array of rows. Each row contains dimension and Metric values, as defined in the report input. Use these to display the rows of your table.

query
QueryInfo
required

The Query statistics and metadata.

MetricReportEdge

The Metric Report edge object.

node
MetricReportNode
required

The edge’s node.

cursor
String
required

The edge’s cursor.

MetricReportNode

The Metric Report node object.

This type represents a single row of a report.

headers
[String]
required

An ordered array of display names for your dimensions and Metrics, as defined in the report input. Use this to display your table’s header.

row
[String]
required

An ordered array of columns. Each column contains the dimension and Metric values for a single row, as defined in the report input. Use this to display a single row within your table.

Metric

The Metric object.

A Metric is a business indicator measured over time.

id
ID
required

The Metric’s unique identifier.

uniqueName
String
required

The Metric’s unique name.

description
String
required

The Metric’s description.

account
Account
required

The Metric’s Account.

environment
Environment
required

The Metric’s Environment.

createdAt
DateTime
required

The Metric’s creation date and time in UTC.

modifiedAt
DateTime
required

The Metric’s last modification date and time in UTC.

createdBy
String
required

The Metric’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Metric’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

dataPool
DataPool

The Data Pool that powers this Metric.

dimensions
[Dimension!]
required

The Metric’s Dimensions. These Dimensions are available to Query Filters.

timestamp
Dimension

The Metric’s timestamp, if any. This is the same as its Data Pool’s timestamp, if any.

boosters
BoosterConnection
required

List the Boosters associated to the Metric.

Arguments

first
Int
after
String
last
Int
before
String
type
MetricType
required

The Metric’s type. The different Metric types determine how the values are calculated.

settings
MetricSettings
required

The settings for the Metric. The settings are specific to the Metric’s type.

CountMetricSettings

Settings for Count Metrics.

filterSql
String

Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Metric Filters are present, all records will be included. To filter at query time, add Dimensions and use the filters property on the timeSeriesInput, counterInput, or leaderboardInput objects. There is no need to add filters to be able to filter at query time.

You can provide the filters in the form of SQL.

SumMetricSettings

Settings for Sum Metrics.

filterSql
String

Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Metric Filters are present, all records will be included. To filter at query time, add Dimensions and use the filters property on the timeSeriesInput, counterInput, or leaderboardInput objects. There is no need to add filters to be able to filter at query time.

You can provide the filters in the form of SQL.

measure
Dimension
required

The Dimension to be summed.

CountDistinctMetricSettings

Settings for Count Distinct Metrics.

filterSql
String

Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Metric Filters are present, all records will be included. To filter at query time, add Dimensions and use the filters property on the timeSeriesInput, counterInput, or leaderboardInput objects. There is no need to add filters to be able to filter at query time.

You can provide the filters in the form of SQL.

dimension
Dimension
required

The Dimension where the count distinct operation is going to be performed.

AverageMetricSettings

Settings for Average Metrics.

filterSql
String

Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Metric Filters are present, all records will be included. To filter at query time, add Dimensions and use the filters property on the timeSeriesInput, counterInput, or leaderboardInput objects. There is no need to add filters to be able to filter at query time.

You can provide the filters in the form of SQL.

measure
Dimension
required

The Dimension to be averaged.

MinMetricSettings

Settings for Min Metrics.

filterSql
String

Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Metric Filters are present, all records will be included. To filter at query time, add Dimensions and use the filters property on the timeSeriesInput, counterInput, or leaderboardInput objects. There is no need to add filters to be able to filter at query time.

You can provide the filters in the form of SQL.

measure
Dimension
required

The Dimension to select the minimum from.

MaxMetricSettings

Settings for Max Metrics.

filterSql
String

Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Metric Filters are present, all records will be included. To filter at query time, add Dimensions and use the filters property on the timeSeriesInput, counterInput, or leaderboardInput objects. There is no need to add filters to be able to filter at query time.

You can provide the filters in the form of SQL.

measure
Dimension
required

The Dimension to select the maximum from.

CustomMetricSettings

Settings for Custom Metrics.

filterSql
String

Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Metric Filters are present, all records will be included. To filter at query time, add Dimensions and use the filters property on the timeSeriesInput, counterInput, or leaderboardInput objects. There is no need to add filters to be able to filter at query time.

You can provide the filters in the form of SQL.

expression
String
required

The expression that defines the aggregation function for this Metric.

MetricResponse

The result of a mutation which creates or modifies a Metric.

metric
Metric

The Metric which was created or modified.

ValidateExpressionResult

Response returned by the validateExpression query for validating expressions in Custom Metrics.

Returns whether the expression is valid or not with a reason explaining why.

valid
Boolean
required

True if the expression is valid, false otherwise.

reason
String

The reason for why the expression is not valid in case it isn’t, null otherwise.

TimeSeriesResponse

The time series response object. It contains an array of time series labels and an array of Metric values for the given time range and Query Filters.

labels
[String!]
required

The time series labels.

values
[String]
required

The time series values.

groups
[TimeSeriesResponseGroup!]

The time series values for each group in groupBy, if specified.

query
QueryInfo
required

The Query statistics and metadata.

TimeSeriesResponseGroup

The time series response object for a group specified in groupBy. It contains an array of time series labels and an array of Metric values for a particular group.

group
[String]
required

The time series group’s columns.

labels
[String!]
required

The time series group’s labels.

values
[String]
required

The time series group’s values.

CounterResponse

The counter response object. It contains a single Metric value for the given time range and Query Filters.

value
String

The value of the counter.

query
QueryInfo
required

The Query statistics and metadata.

LeaderboardResponse

The leaderboard response object. It contains an array of headers and a table (array of rows) with the selected Dimensions and corresponding Metric values for the given time range and Query Filters.

headers
[String!]
required

The table headers. It contains the Dimension and Metric names.

rows
[[String]!]
required

An ordered array of rows. Each row contains the Dimension values and the corresponding Metric value. A Dimension value can be empty. A Metric value will never be empty.

query
QueryInfo
required

The Query statistics and metadata.

QueryInfo

The Query Info object. It contains metadata and statistics about a Query performed.

id
ID
required

The Query’s unique identifier.

createdAt
DateTime
required

The date and time in UTC when the Query was created.

createdBy
String
required

The unique identifier of the actor that performed the Query.

modifiedAt
DateTime
required

The date and time in UTC when the Query was last modified.

modifiedBy
String
required

The unique identifier of the actor that modified the Query.

bytesProcessed
String
required

The bytes processed by the Query.

durationInMilliseconds
Int
required

The duration of the Query in milliseconds.

recordsProcessed
String
required

The number of records processed by the Query.

resultingBytes
Int
required

The bytes returned by the Query.

resultingRecords
Int
required

The number of records returned by the Query.

booster
Booster

If the Query was boosted, the Booster that was used.

propeller
Propeller

The Propeller used for this query.

status
QueryStatus
required

The Query status.

type
QueryType
required

The Query type.

subtype
QuerySubtype

The Query subtype.

sql
String
required

The SQL the query executed.

Booster

Boosters allow you to optimize Metric Queries for a subset of commonly used Dimensions. A Metric can have one or many Boosters to optimize for the different Query patterns.

Boosters can be understood as an aggregating index. The index is formed from left to right as follows:

  1. The Data Pool’s Tenant ID column (if present)
  2. Metric Filter columns (if present)
  3. Query Filter Dimensions (see dimensions)
  4. The Data Pool’s timestamp column
id
ID
required

The Booster’s unique identifier.

account
Account
required

The Booster’s Account.

environment
Environment
required

The Booster’s Environment.

createdAt
DateTime
required

The Booster’s creation date and time in UTC.

modifiedAt
DateTime
required

The Booster’s last modification date and time in UTC.

createdBy
String
required

The Booster’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Booster’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

metric
Metric
required

The Metric this Booster is associated to.

status
BoosterStatus
required

The status of the Booster (once LIVE it will be available for speeding up Metric queries).

error
Error

If the Booster fails during the optimization process, this field includes a descriptive error message.

progress
Float

When the Booster is OPTIMIZING, this represents its progress as a number from 0 to 1. In all other states, progress is null.

dimensions
[Dimension!]
required

Dimensions included in the Booster.

recordCount
String

The number of records in the Booster.

sizeInTerabytes
Float

The amount of storage in terabytes used by the Booster.

BoosterResponse

The result of a mutation which creates or modifies a Booster.

booster
Booster

The Booster which was created or modified.

Policy

The Policy type. It governs an Application’s access to a Metric’s data.

id
ID
required

The Policy’s unique identifier.

account
Account
required

The Policy’s Account.

environment
Environment
required

The Policy’s Environment.

createdAt
DateTime
required

The Policy’s creation date and time in UTC.

modifiedAt
DateTime
required

The Policy’s last modification date and time in UTC.

createdBy
String
required

The Policy’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Policy’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

type
PolicyType
required

The type of Policy.

application
Application
required

The Application that is granted access.

metric
Metric
required

The Metric that the Application is granted access to.

PolicyResponse

The result of a mutation which creates or modifies a Policy.

policy
Policy

The Policy which was created or modified.

DeletionJob

Deletion Job scheduled for a specific Data Pool.

The Deletion Job represents the asynchronous process of deleting data given some filters inside a Data Pool. It tracks the deletion process until it is finished, showing the progress and the outcome when it is finished.

id
ID
required

The Deletion Job’s ID.

createdAt
DateTime
required

The Deletion Job’s creation date and time in UTC.

createdBy
String
required

Who created the Deletion Job.

modifiedAt
DateTime
required

The Deletion Job’s last modification date and time in UTC.

modifiedBy
String
required

Who last modified the Deletion Job.

account
Account
required

Account to which the Deletion Job belongs.

environment
Environment
required

Environment to which the Deletion Job belongs.

dataPool
DataPool
required

The Data Pool whose records will be deleted by the Deletion Job.

status
JobStatus
required

The current Deletion Job’s status.

filterSql
String

The filters that will be used for deleting data, in the form of SQL. Data matching the filters will be deleted.

error
Error

The error that occurred while deleting data, if any.

progress
Float
required

The current progress of the Deletion Job, from 0.0 to 1.0.

startedAt
DateTime

The time at which the Deletion Job started.

succeededAt
DateTime

The time at which the Deletion Job succeeded.

failedAt
DateTime

The time at which the Deletion Job failed.

RequestDeleteResponse

The response returned by the Deletion Job.

job
DeletionJob
required

The Deletion Job that was just created.

DeletionJobResponse

The response returned by the Deletion Job.

job
DeletionJob
required

The Deletion Job that was just created.

AddColumnToDataPoolJob

AddColumnToDataPoolJob scheduled for a specific Data Pool.

The Add Column Job represents the asynchronous process of adding a column, given its name and type, to a Data Pool. It tracks the process of adding a column until it is finished, showing the progress and the outcome when it is finished.

id
ID
required

The AddColumnToDataPoolJob’s ID.

createdAt
DateTime
required

The AddColumnToDataPoolJob’s creation date and time in UTC.

createdBy
String
required

Who created the AddColumnToDataPoolJob.

modifiedAt
DateTime
required

The AddColumnToDataPoolJob’s last modification date and time in UTC.

modifiedBy
String
required

Who modified the AddColumnToDataPoolJob last.

account
Account
required

Account to which the AddColumnToDataPoolJob belongs.

environment
Environment
required

Environment to which the AddColumnToDataPoolJob belongs.

dataPool
DataPool
required

The Data Pool to which a column will be added by the Job.

status
JobStatus
required

The current AddColumnToDataPoolJob’s status.

columnName
String
required

Name of the new column.

columnType
ColumnType
required

Type of the new column.

jsonProperty
String

JSON property to which the new column corresponds.

error
Error

The error that occurred while adding the column data, if any.

progress
Float
required

The current progress of the AddColumnToDataPool Job, from 0.0 to 1.0.

startedAt
DateTime

The time at which the AddColumnToDataPool Job started.

succeededAt
DateTime

The time at which the AddColumnToDataPool Job succeeded.

failedAt
DateTime

The time at which the AddColumnToDataPool Job failed.

AddColumnToDataPoolJobResponse

The response returned by the Add Column Job.

job
AddColumnToDataPoolJob
required

The AddColumnToDataPool Job that was just created.

UpdateDataPoolRecordsJob

UpdateDataPoolRecords Job scheduled for a specific Data Pool. The Update Data Pool Records Job represents the asynchronous process of updating records given some filters, inside a Data Pool. It tracks the process of updating records until it is finished, showing the progress and the outcome when it is finished.

id
ID
required

The UpdateDataPoolRecords Job’s ID

createdAt
DateTime
required

The UpdateDataPoolRecords Job’s creation date and time in UTC

createdBy
String
required

Who created the UpdateDataPoolRecords Job

modifiedAt
DateTime
required

The UpdateDataPoolRecords Job’s last modification date and time in UTC

modifiedBy
String
required

Who last modified the UpdateDataPoolRecords Job

account
Account
required

Account to which the UpdateDataPoolRecords Job belongs

environment
Environment
required

Environment to which the UpdateDataPoolRecords Job belongs

dataPool
DataPool
required

The Data Pool whose records will be updated by the UpdateDataPoolRecords Job

status
JobStatus
required

The current UpdateDataPoolRecords Job’s status

filterSql
String

The filters that will be used for updating data, in the form of SQL. Data matching the filters will be updated.

set
[UpdateDataPoolRecordsJobSetColumn!]
required

Describes how the job will update the records.

error
Error

The error that occurred while updating data, if any.

progress
Float
required

The current progress of the UpdateDataPoolRecords Job, from 0.0 to 1.0.

startedAt
DateTime

The time at which the UpdateDataPoolRecords Job started.

succeededAt
DateTime

The time at which the UpdateDataPoolRecords Job succeeded.

failedAt
DateTime

The time at which the UpdateDataPoolRecords Job failed.

UpdateDataPoolRecordsJobResponse

The response returned by the Update Data Pool Records Job.

job
UpdateDataPoolRecordsJob
required

The UpdateDataPoolRecords Job that was just created.

DataPoolAccessPolicy

id
ID
required

The ID of the Data Pool Access Policy.

uniqueName
String
required

The Data Pool Access Policy’s unique name.

description
String
required

The Data Pool Access Policy’s description.

account
Account
required

The Data Pool Access Policy’s Account.

environment
Environment
required

The Data Pool Access Policy’s Environment.

createdAt
DateTime
required

The Data Pool Access Policy’s creation date and time in UTC.

modifiedAt
DateTime
required

The Data Pool Access Policy’s last modification date and time in UTC.

createdBy
String
required

The Data Pool Access Policy’s creator. It can be either a User ID, an Application ID, or “system” if it was created by Propel.

modifiedBy
String
required

The Data Pool Access Policy’s last modifier. It can be either a User ID, an Application ID, or “system” if it was modified by Propel.

dataPool
DataPool
required

The Data Pool to which the Access Policy belongs.

columns
[String!]
required

Columns that the Access Policy makes available for querying.

filterSql
String

Row-level filters that the Access Policy applies before executing queries, in the form of SQL.

applications
ApplicationConnection
required

Applications that are assigned to this Data Pool Access Policy.

Arguments

first
Int
after
String
last
Int
before
String

DataPoolAccessPolicyResponse

dataPoolAccessPolicy
DataPoolAccessPolicy
required

The Data Pool Access Policy.

createEnvironment
EnvironmentResponse
required

Creates an Environment and returns the newly created Environment (or an error if creating the Environment fails).

Arguments

input
CreateEnvironmentInput
required
modifyEnvironment
EnvironmentResponse
required

Modifies an Environment with the provided fields. If any of the optional fields are omitted, those properties will be unchanged on the Environment.

Arguments

input
ModifyEnvironmentInput
required
createDataPoolAccessPolicy
DataPoolAccessPolicyResponse
required

Creates a Data Pool Access Policy for the specified Data Pool.

Arguments

input
CreateDataPoolAccessPolicyInput
required
modifyDataPoolAccessPolicy
DataPoolAccessPolicyResponse
required

Modifies a Data Pool Access Policy with the provided unique name, description, columns and rows. If any of the optional arguments are omitted, those properties will be unchanged on the Data Pool Access Policy.

Arguments

input
ModifyDataPoolAccessPolicyInput
required
deleteDataPoolAccessPolicy
ID

Deletes a Data Pool Access Policy by ID and returns its ID if the Data Pool Access Policy was deleted successfully.

Arguments

id
ID
required
assignDataPoolAccessPolicyToApplication
ID

Assign a Data Pool Access Policy to an Application.

The Data Pool Access Policy will restrict the Data Pool rows and columns that the Application can query. If the Data Pool has accessControlEnabled set to true, the Application must have a Data Pool Access Policy assigned in order to query the Data Pool.

An Application can have at most one Data Pool Access Policy assigned for a given Data Pool. If an Application already has a Data Pool Access Policy for a given Data Pool, and you call this mutation with another Data Pool Access Policy for the same Data Pool, the Application’s Data Pool Access Policy will be replaced.

Arguments

dataPoolAccessPolicy
ID
required
application
ID
required
unAssignDataPoolAccessPolicyFromApplication
ID

Unassign a Data Pool Access Policy from an Application.

Once unassigned, whether the Application will be able to query the Data Pool is controlled by the Data Pool’s accessControlEnabled property. If accessControlEnabled is true, the Application will no longer be able to query the Data Pool. If accessControlEnabled is false, the Application will be able to query all data in the Data Pool, unrestricted.

Arguments

dataPoolAccessPolicy
ID
required
application
ID
required
createApplication
ApplicationOrFailureResponse

Creates a new Application and returns the newly created Application (or an error message if creating the Application fails).

Arguments

input
createApplicationInput
required
modifyApplication
ApplicationOrFailureResponse

Modifies an Application with the provided unique name, description, Propeller, and scopes. If any of the optional arguments are omitted, those properties will be unchanged on the Application.

Arguments

input
modifyApplicationInput
required
deleteApplication
ID

Deletes an Application by ID and returns its ID if the Application was deleted successfully.

Arguments

id
ID
required
deleteApplicationByName
ID

Deletes an Application by unique name and returns its ID if the Application was deleted successfully.

Arguments

uniqueName
String
required
createSnowflakeDataSource
DataSourceOrFailureResponse

Creates a new Data Source from the given Snowflake database using the specified Snowflake account, warehouse, schema, username, and role.

Returns the newly created Data Source (or an error message if creating the Data Source fails).

Arguments

input
createSnowflakeDataSourceInput
required
modifySnowflakeDataSource
DataSourceOrFailureResponse

Modifies a Data Source with the provided unique name, description, and connection settings. If any of the optional arguments are omitted, those properties will be unchanged on the Data Source.

Arguments

input
modifySnowflakeDataSourceInput
required
reconnectDataSource
DataSource

Attempts to reconnect a Data Source. The mutation then returns the Data Source object.

Arguments

input
idOrUniqueName
required
introspectTables
TableIntrospection

Introspects the tables in a Data Source.

Returns the tables along with when they were last cached from the Data Source.

Arguments

input
idOrUniqueName
required
testDataSource
DataSourceOrFailureResponse

Tests that Propel can actually connect to the data warehouse. Updates the status.

Arguments

input
idOrUniqueName
required
deleteDataSource
ID

Deletes a Data Source by ID and returns its ID if the Data Source was deleted successfully.

Arguments

id
ID
required
deleteDataSourceByName
ID

Deletes a Data Source by unique name and returns its ID if the Data Source was deleted successfully.

Arguments

uniqueName
String
required
createDataPoolV2
DataPoolResponse

Creates a new Data Pool from the given Data Source based on the specified table and using a particular column as the timestamp.

Returns the newly created Data Pool (or an error message if creating the Data Pool fails).

Arguments

input
CreateDataPoolInputV2
required
modifyDataPool
DataPoolOrFailureResponse

Modifies a Data Pool with the provided unique name, description, and data retention time. If any of the optional arguments are omitted, those properties will be unchanged on the Data Pool.

Arguments

input
modifyDataPoolInput
required
retryDataPoolSetup
DataPool

Retries to set up the Data Pool identified by the given ID.

Arguments

id
ID
required
retryDataPoolSetupByName
DataPool

Retries to set up the Data Pool identified by the given unique name.

Arguments

uniqueName
String
required
inspectDataPoolSchema
DataPoolOrFailureResponse

Extracts the schema from the table and updates the schema object.

Arguments

input
idOrUniqueName
required
testDataPool
DataPoolOrFailureResponse

Tests that Propel has access to the Data Pool’s table in its corresponding Data Source and will be able to Sync data. Updates the status.

Arguments

input
idOrUniqueName
required
deleteDataPool
ID

Deletes a Data Pool by ID and returns its ID if the Data Pool was deleted successfully.

Arguments

id
ID
required
deleteDataPoolByName
ID

Deletes a Data Pool by unique name and returns its ID if the Data Pool was deleted successfully.

Arguments

uniqueName
String
required
disableSyncing
DataPool

Disables syncing of a Data Pool.

Arguments

id
ID
required
enableSyncing
DataPool

Re-enables syncing of a Data Pool.

Arguments

id
ID
required
createCountMetric
MetricResponse

Creates a new Count Metric from the given Data Pool and returns the newly created Metric (or an error message if creating the Metric fails).

Arguments

input
CreateCountMetricInput
createCountDistinctMetric
MetricResponse

Creates a new Count Distinct Metric from the given Data Pool and returns the newly created Metric (or an error message if creating the Metric fails).

Arguments

input
CreateCountDistinctMetricInput
createSumMetric
MetricResponse

Creates a new Sum Metric from the given Data Pool and returns the newly created Metric (or an error message if creating the Metric fails).

Arguments

input
CreateSumMetricInput
createAverageMetric
MetricResponse

Creates a new Average Metric from the given Data Pool and returns the newly created Metric (or an error message if creating the Metric fails).

Arguments

input
CreateAverageMetricInput
createMinMetric
MetricResponse

Creates a new Min Metric from the given Data Pool and returns the newly created Metric (or an error message if creating the Metric fails).

Arguments

input
CreateMinMetricInput
createMaxMetric
MetricResponse

Creates a new Max Metric from the given Data Pool and returns the newly created Metric (or an error message if creating the Metric fails).

Arguments

input
CreateMaxMetricInput
createCustomMetric
MetricResponse

Creates a new Custom Metric from the given Data Pool and returns the newly created Metric (or an error message if creating the Metric fails).

Arguments

input
CreateCustomMetricInput
modifyMetric
MetricResponse

Modifies a Metric by ID with the provided unique name, description, and Dimensions. If any of the optional arguments are omitted, those properties will be unchanged on the Metric.

Arguments

input
ModifyMetricInput
migrateMetric
Metric

Migrates a Metric from one Data Pool to another.

Arguments

input
MigrateMetricInput
required
deleteMetric
ID

Deletes a Metric by ID and returns its ID if the Metric was deleted successfully.

Arguments

id
ID
required
deleteMetricByName
ID

Deletes a Metric by unique name and returns its ID if the Metric was deleted successfully.

Arguments

uniqueName
String
required
createBooster
BoosterResponse

Creates a new Booster for the given Metric and returns the newly created Booster.

A Booster significantly improves the query performance for a Metric.

Arguments

input
CreateBoosterInput
required
deleteBooster
ID

Deletes a Booster by ID and then returns the same ID if the Booster was deleted successfully.

A Booster significantly improves the query performance for a Metric.

Arguments

id
ID
required
createDeletionJob
DeletionJobResponse
required

Schedules a new Deletion Job on the specified Data Pool.

Arguments

input
CreateDeletionJobInput
required
createAddColumnToDataPoolJob
AddColumnToDataPoolJobResponse
required

Schedules a new AddColumnToDataPoolJob on the specified Data Pool.

Arguments

input
CreateAddColumnToDataPoolJobInput
required
createUpdateDataPoolRecordsJob
UpdateDataPoolRecordsJobResponse
required

Schedules a new UpdateDataPoolRecords Job on the specified Data Pool.

Arguments

input
CreateUpdateDataPoolRecordsJobInput
required
syncDataPool
Sync

Manually trigger a Sync for a Data Pool.

Arguments

dataPoolId
ID
required
resyncDataPool
Sync

Manually trigger a re-Sync for a Data Pool.

Arguments

dataPoolId
ID
required
createMaterializedView
MaterializedViewResponse
required

Creates a new Materialized View. Returns the newly created Materialized View (or an error message if creating the Materialized View fails).

Arguments

input
CreateMaterializedViewInput
required
modifyMaterializedView
MaterializedViewResponse
required

Modifies a Materialized View. If any of the optional arguments are omitted, those properties will be unchanged on the Materialized View.

Arguments

input
ModifyMaterializedViewInput
required
deleteMaterializedView
ID

Deletes a Materialized View and returns its ID if the Materialized View was deleted successfully. Note that deleting a Materialized View does not delete its target Data Pool. If you want to delete its target Data Pool, you must use the deleteDataPool mutation.

Arguments

id
ID
required
createClickHouseDataSource
DataSourceResponse
required

This mutation creates a new ClickHouse Data Source.

The mutation returns the newly created Data Source (or an error message if creating the Data Source fails).

Arguments

input
CreateClickHouseDataSourceInput
required
modifyClickHouseDataSource
DataSourceResponse
required

This mutation selects a Data Source by its ID or unique name and modifies it to have the given unique name, description, and connection settings.

If any of the optional arguments are omitted, those properties will be unchanged on the Data Source.

Arguments

input
ModifyClickHouseDataSourceInput
required
createHttpDataSource
DataSourceResponse
required

Creates a new HTTP Data Source from the given settings.

Returns the newly created Data Source (or an error message if creating the Data Source fails).

Arguments

input
CreateHttpDataSourceInput
required
modifyHttpDataSource
DataSourceResponse
required

This mutation selects a Data Source by its ID or unique name and modifies it to have the given unique name, description, and connection settings.

If any of the optional arguments are omitted, those properties will be unchanged on the Data Source.

Arguments

input
ModifyHttpDataSourceInput
required
createKafkaDataSource
DataSourceResponse
required

This mutation creates a new Kafka Data Source.

The mutation returns the newly created Data Source (or an error message if creating the Data Source fails).

Arguments

input
CreateKafkaDataSourceInput
required
modifyKafkaDataSource
DataSourceResponse
required

This mutation selects a Data Source by its ID or unique name and modifies it to have the given unique name, description, and connection settings.

If any of the optional arguments are omitted, those properties will be unchanged on the Data Source.

Arguments

input
ModifyKafkaDataSourceInput
required
createPostgreSqlDataSource
DataSourceResponse
required

This mutation creates a new PostgreSQL Data Source.

The mutation returns the newly created Data Source (or an error message if creating the Data Source fails).

Arguments

input
CreatePostgreSqlDataSourceInput
required
modifyPostgreSqlDataSource
DataSourceResponse
required

This mutation selects a Data Source by its ID or unique name and modifies it to have the given unique name, description, and connection settings.

If any of the optional arguments are omitted, those properties will be unchanged on the Data Source.

Arguments

input
ModifyPostgreSqlDataSourceInput
required
createS3DataSource
DataSourceResponse
required

Creates a new Amazon S3 Data Source pointed at the specified S3 bucket.

Returns the newly created Data Source (or an error message if creating the Data Source fails).

Arguments

input
CreateS3DataSourceInput
required
modifyS3DataSource
DataSourceResponse
required

This mutation selects a Data Source by its ID or unique name and modifies it to have the given unique name, description, and connection settings.

If any of the optional arguments are omitted, those properties will be unchanged on the Data Source.

Arguments

input
ModifyS3DataSourceInput
required
createWebhookDataSource
DataSourceResponse
required

Creates a new Webhook Data Source from the given settings.

Returns the newly created Data Source (or an error message if creating the Data Source fails).

Arguments

input
CreateWebhookDataSourceInput
required
modifyWebhookDataSource
DataSourceResponse
required

Modifies the Data Source by the ID or unique name provided with the given unique name, description, and connection settings.

If any of the optional arguments are omitted, those properties will be unchanged on the Data Source.

Arguments

input
ModifyWebhookDataSourceInput
required

SqlColumnResponse

columnName
String
required

The name of the returned column.

type
ColumnType
required

The returned column’s type.

isNullable
Boolean
required

Whether the column is nullable, meaning whether it accepts a null value.

SqlResponse

Response from the SQL API.

columns
[SqlColumnResponse!]
required

The column names in the same order as present in the data field.

rows
[[String]!]
required

The data gathered by the SQL query. The data is returned in an N x M matrix format, where the first dimension are the rows retrieved, and the second dimension are the columns. Each cell can be either a string or null, and the string can represent a number, text, date or boolean value.

info
QueryInfo
required

The Query statistics and metadata.

DescribeSqlResponse

Response from the describe SQL API.

columns
[SqlColumnResponse!]
required

The columns that the query would return.

DataGridConnection

The Data Grid connection.

It includes headers and rows for a single page of a Data Grid table. It also allows paging forward and backward to other pages of the Data Grid table.

headers
[String!]
required

The Data Grid table’s headers.

rows
[[String]!]
required

An array of arrays containing the values of the Data Grid table’s rows.

query
QueryInfo
required

The Query statistics and metadata.

pageInfo
PageInfo
required

The Data Grid table’s page info.

edges
[DataGridEdge!]
required

The Data Grid table’s edges.

nodes
[DataGridNode!]
required

The Data Grid table’s nodes.

DataGridEdge

The Data Grid edge object.

node
DataGridNode
required

The edge’s node.

cursor
String
required

The edge’s cursor.

DataGridNode

The Data Grid table’s node.

This type represents a single row of a Data Grid table.

headers
[String!]
required

The Data Grid table’s headers.

row
[String]
required

An array of the values for the row.

RecordsByUniqueIdResponse

columns
[String!]
required

The Data Pool columns for the record.

values
[[String]!]
required

An array of values for the record.

query
QueryInfo
required

The Query statistics and metadata.

TopValuesResponse

values
[String!]
required

An array with the list of values.

application
Application

This query returns the Application specified by the given ID.

Arguments

id
ID
required
applicationByName
Application

This query returns the Application with the given unique name.

Arguments

uniqueName
String
required
applications
ApplicationConnection

This query returns the Applications within the Environment.

The applications query uses cursor-based paginationtypical of GraphQL APIs. You can use the pairs of parameters first and after or last and before to page forward or backward through the results, respectively.

For forward pagination, the first parameter defines the number of results to return, and the after parameter defines the cursor to continue from. You should pass the cursor for the last result of the current page to after.

For backward pagination, the last parameter defines the number of results to return, and the before parameter defines the cursor to continue from. You should pass the cursor for the first result of the current page to before.

Arguments

first
Int
after
String
last
Int
before
String
dataSource
DataSource

This query returns the Data Source specified by the given ID.

A Data Source is a connection to your data warehouse. It has the necessary connection details for Propel to access Snowflake or any other supported Data Source.

Arguments

id
ID
required
dataSourceByName
DataSource

This query returns the Data Source specified by the given unique name.

A Data Source is a connection to your data warehouse. It has the necessary connection details for Propel to access Snowflake or any other supported Data Source.

Arguments

uniqueName
String
required
dataSources
DataSourceConnection

This query returns the Data Sources within the Environment.

A Data Source is a connection to your data warehouse. It has the necessary connection details for Propel to access Snowflake or any other supported Data Source. Environments are independent and isolated Propel workspaces for development, staging (testing), and production workloads.

The dataSources query uses cursor-based paginationtypical of GraphQL APIs. You can use the pairs of parameters first and after or last and before to page forward or backward through the results, respectively.

For forward pagination, the first parameter defines the number of results to return, and the after parameter defines the cursor to continue from. You should pass the cursor for the last result of the current page to after.

For backward pagination, the last parameter defines the number of results to return, and the before parameter defines the cursor to continue from. You should pass the cursor for the first result of the current page to before.

Arguments

first
Int
after
String
last
Int
before
String
dataPool
DataPool

This query returns the Data Pool specified by the given ID.

A Data Pool is a cached table hydrated from your data warehouse optimized for high-concurrency and low-latency queries.

Arguments

id
ID
required
dataPoolByName
DataPool

This query returns the Data Pool specified by the given unique name.

A Data Pool is a cached table hydrated from your data warehouse optimized for high-concurrency and low-latency queries.

Arguments

uniqueName
String
required
dataPools
DataPoolConnection

This query returns the Data Pools within the Environment.

A Data Pool is a cached table hydrated from your data warehouse optimized for high-concurrency and low-latency queries. Environments are independent and isolated Propel workspaces for development, staging (testing), and production workloads.

The dataPools query uses cursor-based paginationtypical of GraphQL APIs. You can use the pairs of parameters first and after or last and before to page forward or backward through the results, respectively.

For forward pagination, the first parameter defines the number of results to return, and the after parameter defines the cursor to continue from. You should pass the cursor for the last result of the current page to after.

For backward pagination, the last parameter defines the number of results to return, and the before parameter defines the cursor to continue from. You should pass the cursor for the first result of the current page to before.

Arguments

first
Int
after
String
last
Int
before
String
environment
Environment

This query returns the Environment specified by the given ID.

Arguments

id
ID
required
materializedViews
MaterializedViewConnection

This query returns the Materialized Views within the Environment.

The materializedViews query uses cursor-based paginationtypical of GraphQL APIs. You can use the pairs of parameters first and after or last and before to page forward or backward through the results, respectively.

For forward pagination, the first parameter defines the number of results to return, and the after parameter defines the cursor to continue from. You should pass the cursor for the last result of the current page to after.

For backward pagination, the last parameter defines the number of results to return, and the before parameter defines the cursor to continue from. You should pass the cursor for the first result of the current page to before.

Arguments

first
Int
after
String
last
Int
before
String
dataPoolAccessPolicy
DataPoolAccessPolicy

This query returns the Data Pool Access Policy specified by the given ID.

A Data Pool Access Policy limits the data that Applications can access within a Data Pool.

Arguments

id
ID
required
metric
Metric

This query returns the Metric specified by the given ID.

A Metric is a business indicator measured over time.

Arguments

id
ID
required
metricByName
Metric

This query returns the Metric specified by the given unique name.

A Metric is a business indicator measured over time.

Arguments

uniqueName
String
required
metrics
MetricConnection

This query returns the Metrics within the Environment.

A Metric is a business indicator measured over time. Each Metric is associated with one Data Pool, which is a cached table hydrated from your data warehouse optimized for high-concurrency and low-latency queries. Environments are independent and isolated Propel workspaces for development, staging (testing), and production workloads.

The metrics query uses cursor-based paginationtypical of GraphQL APIs. You can use the pairs of parameters first and after or last and before to page forward or backward through the results, respectively.

For forward pagination, the first parameter defines the number of results to return, and the after parameter defines the cursor to continue from. You should pass the cursor for the last result of the current page to after.

For backward pagination, the last parameter defines the number of results to return, and the before parameter defines the cursor to continue from. You should pass the cursor for the first result of the current page to before.

Arguments

first
Int
after
String
last
Int
before
String
booster
Booster

This query returns the Booster specified by the given ID.

A Booster significantly improves the query performance for a Metric.

Arguments

id
ID
required
policy
Policy

Returns a Policy by ID.

Arguments

id
ID
required
sync
Sync

Returns a Sync by ID.

Arguments

id
ID
required
table
Table

Returns a table by ID.

Arguments

id
ID
required
metricReport
MetricReportConnection

Build a report, or table, consisting of multiple Metrics broken down by one-or-more dimensions.

The first few columns of the report are the dimensions you choose to break down by. The subsequent columns are the Metrics you choose to query. By default, the report sorts on the first Metric in descending order, but you can configure this with the orderByMetric and sort inputs.

Finally, reports use cursor-based pagination. You can control page size with the first and last inputs.

Arguments

input
MetricReportInput
required
sqlV1
SqlResponse
required

Query Data Pools using SQL.

Arguments

input
SqlV1Input
required
describeSqlV1
DescribeSqlResponse
required

Describe SQL statements Data Pools.

Arguments

input
DescribeSqlV1Input
required
dataGrid
DataGridConnection
required

This query returns the individual records of a Data Pool with the convenience of built-in pagination, filtering, and sorting.

Arguments

input
DataGridInput
required
recordsByUniqueId
RecordsByUniqueIdResponse
required

This query returns records by the given unique IDs.

Arguments

input
RecordsByUniqueIdInput
required
topValues
TopValuesResponse
required

This query returns an array of the most frequent values in a given column. The resulting array is sorted in descending order of approximate frequency of values.

Arguments

input
TopValuesInput
required
counter
CounterResponse

Query a metric in counter format. Returns a single metric value for the given time range and filters.

Arguments

input
CounterInput
required
counters
[CounterResponse]
required

Query metrics in counter format. Returns a metric value for each input in the array of inputs.

Arguments

input
[CounterInput!]
required
timeSeries
TimeSeriesResponse

Query a metric in time series format. Returns arrays of timestamps and metric values for the given time range and filters.

Arguments

input
TimeSeriesInput
required
leaderboard
LeaderboardResponse

Query a metric in leaderboard format. Returns a table (array of rows) with the selected dimensions and the metric’s corresponding values for the given time range and filters.

Arguments

input
LeaderboardInput
required
deletionJob
DeletionJob

This query returns the Deletion Job specified by the given ID.

The Deletion Job represents the asynchronous process of deleting data given some filters inside a Data Pool.

Arguments

id
ID
required
addColumnToDataPoolJob
AddColumnToDataPoolJob

This query returns the AddColumnToDataPoolJob specified by the given ID.

The AddColumnToDataPoolJob represents the asynchronous process of adding a column, given its name and type, to a Data Pool.

Arguments

id
ID
required
addColumnToDataPoolJobByStatus
AddColumnToDataPoolJobConnection
required

This query returns the AddColumnToDataPool Job specified by a given status.

Arguments

status
JobStatus
required
first
Int
after
String
last
Int
before
String
updateDataPoolRecordsJob
UpdateDataPoolRecordsJob

This query returns the UpdateDataPoolRecords Job specified by the given ID.

The UpdateDataPoolRecords Job represents the asynchronous process of updating records inside a Data Pool.

Arguments

id
ID
required
updateDataPoolRecordsJobByStatus
UpdateDataPoolRecordsJobConnection
required

This query returns the UpdateDataPoolRecords Job specified by a given status.

Arguments

status
JobStatus
required
first
Int
after
String
last
Int
before
String
materializedView
MaterializedView

This query returns the Materialized View specified by the given ID.

Arguments

id
ID
required
materializedViewByName
MaterializedView

This query returns the Materialized View specified by its unique name.

Arguments

uniqueName
String
required

AddColumnToDataPoolJobConnection

The Add column to Data Pool Job connection object.

Learn more about pagination in GraphQL.

edges
[AddColumnToDataPoolJobEdge!]
required

The Add column to Data Pool Job connection’s edges.

nodes
[AddColumnToDataPoolJob!]
required

The Add column to Data Pool Job connection’s nodes.

pageInfo
PageInfo
required

The Add column to Data Pool Job connection’s page info.

AddColumnToDataPoolJobEdge

The Add column to Data Pool Job edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
AddColumnToDataPoolJob
required

The edge’s node.

ApplicationConnection

The Application connection object.

Learn more about pagination in GraphQL.

edges
[ApplicationEdge!]
required

The Application connection’s edges.

nodes
[Application!]
required

The Application connection’s nodes.

pageInfo
PageInfo
required

The Application connection’s page info.

ApplicationEdge

The Application edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
Application
required

The edge’s node.

BoosterConnection

The Booster connection object.

Learn more about pagination in GraphQL.

edges
[BoosterEdge!]
required

The Booster connection’s edges.

nodes
[Booster!]
required

The Booster connection’s nodes.

pageInfo
PageInfo
required

The Booster connection’s page info.

BoosterEdge

The Booster edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
Booster
required

The edge’s node.

ColumnConnection

The column connection object.

Learn more about pagination in GraphQL.

cachedAt
DateTime
required

The time at which the columns were cached (i.e., the time at which they were introspected).

edges
[ColumnEdge!]
required

The column connection’s edges.

nodes
[Column!]
required

The column connection’s nodes.

pageInfo
PageInfo
required

The column connection’s page info.

ColumnEdge

The column edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
Column
required

The edge’s node.

DataPoolAccessPolicyConnection

The Data Pool Access Policy connection object.

Learn more about pagination in GraphQL.

edges
[DataPoolAccessPolicyEdge!]
required

The Data Pool Access Policy connection’s edges.

nodes
[DataPoolAccessPolicy!]
required

The Data Pool Access Policy connection’s nodes.

pageInfo
PageInfo
required

The Data Pool Access Policy connection’s page info.

DataPoolAccessPolicyEdge

The Data Pool Access Policy edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
DataPoolAccessPolicy
required

The edge’s node.

DataPoolColumnConnection

The Data Pool column connection object.

Learn more about pagination in GraphQL.

edges
[DataPoolColumnEdge!]
required

The Data Pool column connection’s edges.

nodes
[DataPoolColumn!]
required

The Data Pool column connection’s nodes.

pageInfo
PageInfo
required

The Data Pool column connection’s page info.

DataPoolColumnEdge

The Data Pool column edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
DataPoolColumn
required

The edge’s node.

DataPoolConnection

The Data Pool connection object.

Learn more about pagination in GraphQL.

edges
[DataPoolEdge!]
required

The Data Pool connection’s edges.

nodes
[DataPool!]
required

The Data Pool connection’s nodes.

pageInfo
PageInfo
required

The Data Pool connection’s page info.

DataPoolEdge

The Data Pool edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
DataPool
required

The edge’s node.

DataSourceConnection

The Data Source connection object.

Learn more about pagination in GraphQL.

edges
[DataSourceEdge!]
required

The Data Source connection’s edges.

nodes
[DataSource!]
required

The Data Source connection’s nodes.

pageInfo
PageInfo
required

The Data Source connection’s page info.

DataSourceEdge

The Data Source edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
DataSource
required

The edge’s node.

DeletionJobConnection

The Deletion Job connection object.

Learn more about pagination in GraphQL.

edges
[DeletionJobEdge!]
required

The Deletion Job connection’s edges.

nodes
[DeletionJob!]
required

The Deletion Job connection’s nodes.

pageInfo
PageInfo
required

The Deletion Job connection’s page info.

DeletionJobEdge

The Deletion Job edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
DeletionJob
required

The edge’s node.

MaterializedViewConnection

The Materialized View connection object.

Learn more about pagination in GraphQL.

edges
[MaterializedViewEdge!]
required

The Materialized View connection’s edges.

nodes
[MaterializedView!]
required

The Materialized View connection’s nodes.

pageInfo
PageInfo
required

The Materialized View connection’s page info.

MaterializedViewEdge

The Materialized View edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
MaterializedView
required

The edge’s node.

MetricConnection

The Metric connection object.

Learn more about pagination in GraphQL.

edges
[MetricEdge!]
required

The Metric connection’s edges.

nodes
[Metric!]
required

The Metric connection’s nodes.

pageInfo
PageInfo
required

The Metric connection’s page info.

MetricEdge

The Metric edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
Metric
required

The edge’s node.

PolicyConnection

The Policy connection object.

Learn more about pagination in GraphQL.

edges
[PolicyEdge!]
required

The Policy connection’s edges.

nodes
[Policy!]
required

The Policy connection’s nodes.

pageInfo
PageInfo
required

The Policy connection’s page info.

PolicyEdge

The Policy edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
Policy
required

The edge’s node.

SyncConnection

The Sync connection object.

Learn more about pagination in GraphQL.

edges
[SyncEdge!]
required

The Sync connection’s edges.

nodes
[Sync!]
required

The Sync connection’s nodes.

pageInfo
PageInfo
required

The Sync connection’s page info.

SyncEdge

The Sync edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
Sync
required

The edge’s node.

TableConnection

The table connection object.

Learn more about pagination in GraphQL.

cachedAt
DateTime
required

The time at which the tables were cached (i.e., the time at which they were introspected).

edges
[TableEdge!]
required

The table connection’s edges.

nodes
[Table!]
required

The table connection’s nodes.

pageInfo
PageInfo
required

The table connection’s page info.

TableEdge

The table edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
Table
required

The edge’s node.

TableIntrospectionConnection

The table introspection connection object.

Learn more about pagination in GraphQL.

edges
[TableIntrospectionEdge!]
required

The table introspection connection’s edges.

nodes
[TableIntrospection!]
required

The table introspection connection’s nodes.

pageInfo
PageInfo
required

The table introspection connection’s page info.

TableIntrospectionEdge

The table introspection edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
TableIntrospection
required

The edge’s node.

UpdateDataPoolRecordsJobConnection

The Update Data Pool records Job connection object.

Learn more about pagination in GraphQL.

edges
[UpdateDataPoolRecordsJobEdge!]
required

The Update Data Pool records Job connection’s edges.

nodes
[UpdateDataPoolRecordsJob!]
required

The Update Data Pool records Job connection’s nodes.

pageInfo
PageInfo
required

The Update Data Pool records Job connection’s page info.

UpdateDataPoolRecordsJobEdge

The Update Data Pool records Job edge object.

Learn more about pagination in GraphQL.

cursor
String
required

The edge’s cursor.

node
UpdateDataPoolRecordsJob
required

The edge’s node.

ClickHouseConnectionSettings

The ClickHouse Data Source connection settings.

database
String
required

Which database to connect to

password
String
required

The password for the provided user

readonly
Boolean

Whether the user has readonly permissions or not for querying ClickHouse

url
String
required

The URL where the ClickHouse host is listening to HTTP[S] connections

user
String
required

The user for authenticating against the ClickHouse host

HttpConnectionSettings

The HTTP Data Source connection settings.

basicAuth
HttpBasicAuthSettings

The HTTP Basic authentication settings for uploading new data.

If this parameter is not provided, anyone with the URL to your tables will be able to upload data. While it’s OK to test without HTTP Basic authentication, we recommend enabling it.

tables
[HttpDataSourceTable!]
required

The HTTP Data Source’s tables.

KafkaConnectionSettings

The Kafka Data Source connection settings.

auth
String
required

The type of authentication to use. Can be SCRAM-SHA-256, SCRAM-SHA-512, PLAIN or NONE

bootstrapServers
[String!]
required

The bootstrap server(s) to connect to

password
String
required

The password for the provided user

tls
Boolean

Whether the the connection to the Kafka servers is encrypted or not

user
String
required

The user for authenticating against the Kafka servers

PostgreSqlConnectionSettings

The PostgreSQL Data Source connection settings.

database
String

Which database to connect to

host
String
required

The host where PostgreSQL is listening

port
Int

The port where PostgreSQL is listening (usually 5432)

schema
String

Which schema to use

user
String
required

The user for authenticating against PostgreSQL

S3ConnectionSettings

The connection settings for an S3 Data Source. These include the S3 bucket name, the AWS access key ID, and the tables (along with their paths). We do not allow fetching the AWS secret access key after it has been set.

awsAccessKeyId
String
required

The AWS access key ID for an IAM user with sufficient access to the S3 bucket.

bucket
String
required

The name of the S3 bucket.

tables
[S3DataSourceTable!]
required

The S3 Data Source’s tables.

WebhookConnectionSettings

The Webhook Data Source connection settings.

accessControlEnabled
Boolean

Enables or disables access control for the Data Pool. If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.

basicAuth
HttpBasicAuthSettings

The HTTP basic authentication settings for the Webhook Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it’s OK to test without HTTP Basic authentication, we recommend enabling it.

columns
[WebhookDataSourceColumn!]

The additional columns for the Webhook Data Source table.

tableSettings
TableSettings

Override the Data Pool’s table settings. These describe how the Data Pool’s table is created in ClickHouse, and a default will be chosen based on the Data Pool’s timestamp and uniqueId values, if any. You can override these defaults in order to specify a custom table engine, custom ORDER BY, etc.

timestamp
String

The primary timestamp column, if any.

webhookUrl
String
required

The Webhook URL for posting JSON events