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

See DataPoolAccessPolicyConnection

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

See TableConnection

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

See TableIntrospectionConnection

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 pagination typical 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

See DataPoolConnection

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. See DataSource

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

See TableConnection

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. See DataSource

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 Amazon 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 Amazon S3.

columns
[S3DataSourceColumn!]
required

All the columns present in the table

S3DataSourceColumn

A column in an Amazon 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.

AmazonDataFirehoseDataSourceColumn

A column in an Amazon Data Firehose 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 send 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.

AmazonDynamoDBDataSourceColumn

A column in an Amazon DynamoDB 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 send 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.

TwilioSegmentDataSourceColumn

A column in a Twilio Segment 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.

WebhookDataSourceColumn

A column in a 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. See DataSource

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

See SyncConnection

metrics
MetricConnection

The list of Metrics powered by the Data Pool.

Arguments

first
Int
after
String
last
Int
before
String

See MetricConnection

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

See DeletionJobConnection

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

See AddColumnToDataPoolJobConnection

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

See UpdateDataPoolRecordsJobConnection

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

See DataPoolAccessPolicyConnection

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. See DataPool

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. See DataPool

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

See BoosterConnection

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. See Booster

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.