diff --git a/dsl.md b/dsl.md index 81724a9f..5e9dcff5 100644 --- a/dsl.md +++ b/dsl.md @@ -202,11 +202,34 @@ When the evaluation of an expression fails, runtimes **must** raise an error wit | Name | Type | Description | |:-----|:----:|:------------| -| context | `map` | The task's context data. | +| context | `any` | The task's context data. | | input | `any` | The task's filtered input. | | secrets | `map` | A key/value map of the workflow secrets.
To avoid unintentional bleeding, secrets can only be used in the `input.from` runtime expression. | | task | [`taskDescriptor`](#task-descriptor) | Describes the current task. | -| workflow | [`workflowDescritor`](#workflow-descriptor) | Describes the current workflow. | +| workflow | [`workflowDescriptor`](#workflow-descriptor) | Describes the current workflow. | + +##### Task Descriptor + +| Name | Type | Description | Example | +|:-----|:----:|:------------|:--------| +| name | `string` | The task's name. | `getPet` | +| definition | `map` | The tasks definition (specified under the name) as a parsed object | `{ "call": "http", "with": { ... } }` | +| input | `any` | The task's input *BEFORE* the `input.from` expression. For the result of `input.from` expression use the context of the runtime expression (for jq `.`) | - | +| startedAt.iso8601 | `string` | The start time of the task as a ISO 8601 date time string. It uses `T` as the date-time delimiter, either UTC (`Z`) or a time zone offset (`+01:00`). The precision can be either seconds, milliseconds or nanoseconds | `2022-01-01T12:00:00Z`, `2022-01-01T12:00:00.123456Z`, `2022-01-01T12:00:00.123+01:00` | +| startedAt.epochMillis | `integer` | The start time of the task as a integer value of milliseconds since midnight of 1970-01-01 UTC | `1641024000123` (="2022-01-01T08:00:00.123Z") | +| startedAt.epochNanos | `integer` | The start time of the task as a integer value of nanoseconds since midnight of 1970-01-01 UTC | `1641024000123456` (="2022-01-01T08:00:00.123456Z") | + +##### Workflow Descriptor + + +| Name | Type | Description | Example | +|:-----|:----:|:------------|:--------| +| id | `string` | A unique id of the workflow execution. Now specific format is imposed | UUIDv4: `4a5c8422-5868-4e12-8dd9-220810d2b9ee`, ULID: `0000004JFGDSW1H037G7J7SFB9` | +| definition | `map` | The workflow's definition as a parsed object | `{ "document": { ... }, "do": [...] }` | +| input | `any` | The workflow's input *BEFORE* the `input.from` expression. For the result of `input.from` expression use the `$input` argument | - | +| startedAt.iso8601 | `string` | The start time of the execution as a ISO 8601 date time string. It uses `T` as the date-time delimiter, either UTC (`Z`) or a time zone offset (`+01:00`). The precision can be either seconds, milliseconds or nanoseconds | `2022-01-01T12:00:00Z`, `2022-01-01T12:00:00.123456Z`, `2022-01-01T12:00:00.123+01:00` | +| startedAt.epochMillis | `integer` | The start time of the execution as a integer value of milliseconds since midnight of 1970-01-01 UTC | `1641024000123` (="2022-01-01T08:00:00.123Z") | +| startedAt.epochNanos | `integer` | The start time of the execution as a integer value of nanoseconds since midnight of 1970-01-01 UTC | `1641024000123456` (="2022-01-01T08:00:00.123456Z") | ### Fault Tolerance