Operation reference

This reference lists each DNML operation, its keys and the matching fields in the app.

The operations are on four pages: DynamoDB items, DynamoDB tables, Import and export, and Athena.

Operation Blocks

Each operation starts with a TOML array-of-tables header: dynamodb or athena, a dot, and the operation type.

[[dynamodb.query]]
name = "Find recent order"
tableArn = "arn:aws:dynamodb:ap-southeast-2:111122223333:table/Orders"
keyConditionExpression = "accountId = :accountId"
expressionAttributeValues = { ":accountId" = "account#42" }
scanIndexForward = false
  • For the run order, see Dependencies and execution.
  • For block syntax, see Document structure.
  • In the app, Add operation, +, in the Operations rail lists these operations. You can search by title or type, for example dynamodb.query.

Common Keys

All operations accept these keys. Document structure has the full entries.

KeyTypePurpose
name (required) string The display name of the operation. It must be unique in the request, and other operations use it to refer to the operation.
description string Free-text notes about the operation.
dependsOn string or string[] The names of the operations that must succeed before this operation runs. One name is the same as a list with one name.
enabled boolean If false, Dynomate skips the operation and all operations that depend on it. The default is true.
onError enum: "stop" | "continue" | "ignore" What Dynomate does when the operation fails: "stop" stops the request, "continue" skips only its dependents, and "ignore" lets dependents run without its result. The default is the request setting.
timeoutMs integer The maximum time for the operation, in milliseconds. It replaces the default timeout of the operation, but the request timeout still applies.
tags string[] Your own labels for the operation. They are not AWS resource tags.
profileName string The AWS profile that Dynomate uses to connect. If you omit it, Dynomate uses the request default, then the profile named "default".
region string The AWS region, required for Athena operations, List tables and PartiQL statements. If the operation also has a tableArn, the two regions must match.
endpointUrl string A custom endpoint, for example DynamoDB Local. It must use HTTPS, or HTTP on localhost or a loopback address. An endpoint in the file needs confirmation or approval before the request runs.
tableArn string The full ARN of the table, which gives its name and region. All DynamoDB operations except List tables and PartiQL statements require it.

Athena operations use catalog, database and table name keys, not tableArn.

All Operations

Destructive shows if an operation can delete or replace data. Sometimes means that it depends on the resolved values. See Safety.

DynamoDB items

OperationBlockDestructiveWhat it does
Get item dynamodb.get No Reads one item by its primary key.
Query dynamodb.query No Reads the items that share a partition key in a table or index, across one or more pages.
Scan dynamodb.scan No Reads all items in a table or index, with an optional filter and parallel segments.
Put item dynamodb.put Sometimes Writes a complete item. It replaces an existing item with the same key.
Update item dynamodb.update Yes Changes the attributes of one item with an update expression or with SET, REMOVE, ADD and DELETE clauses.
Delete item dynamodb.delete Yes Deletes one item by its primary key, with an optional condition.
Batch get dynamodb.batchGet No Reads many items from one table by their primary keys.
Batch write dynamodb.batchWrite Yes Puts and deletes many items in one table. The result has a status for each write.
Write transaction dynamodb.transactWrite Yes Applies up to 100 puts, updates, deletes and condition checks in one all-or-nothing transaction.
Read transaction dynamodb.transactGet No Reads up to 100 items as one consistent snapshot, in the order of the gets.
PartiQL statement dynamodb.executeStatement Sometimes Runs a PartiQL statement with positional parameters. The statement names the table.

DynamoDB tables

OperationBlockDestructiveWhat it does
Describe table dynamodb.describeTable No Returns the status, keys, indexes, billing mode, item count and time to live settings of a table.
List tables dynamodb.listTables No Lists the table names in a region.
Create table dynamodb.createTable No Creates a table with its keys, indexes, capacity and settings. By default, it waits until the table is active.
Delete table dynamodb.deleteTable Yes Deletes a table and all its data. It can check guards before it sends the delete.
Truncate table dynamodb.truncate Yes Deletes all items, or all items that match a filter, but keeps the table.
Update time to live dynamodb.updateTimeToLive Sometimes Turns time to live expiration on or off for a table attribute.

Import and export

OperationBlockDestructiveWhat it does
Import items dynamodb.import Sometimes Writes items into a table from inline data, a local file, an S3 object or another DynamoDB table. It checks the full source first.
Export items dynamodb.export No Scans a table and writes its items to a local file in JSON, JSON Lines, CSV or DynamoDB JSON Lines format.

Athena

OperationBlockDestructiveWhat it does
Athena query athena.query Yes Runs an Athena SQL query. By default, it waits for the query and returns its rows.
List databases athena.listDatabases No Lists the databases in an Athena data catalog.
List Athena tables athena.listTables No Lists the tables in an Athena database, with their columns and partition keys.
Describe Athena table athena.describeTable No Returns the columns, partition keys and properties of one Athena table.

Results

  • Later operations read a result through the normalized operation name, for example find_recent_order.items[0].orderId. See Result roots.
  • Most results have requestId: the AWS request ID of the last AWS call, or "unknown".
  • Failed and skipped operations have no result, so a reference to their result fails. See Outcomes.