diff --git a/examples/event-based-greeting.json b/examples/event-based-greeting.json
index 33121efb..9036726f 100644
--- a/examples/event-based-greeting.json
+++ b/examples/event-based-greeting.json
@@ -1,7 +1,7 @@
{
"version": "1.0.0",
"specVersion": "0.8",
- "name": "Event Based Greeting Workflow",
+ "name": "event-based-greeting-workflow",
"description": "Event Based Greeting",
"start": "greet",
"events": [
diff --git a/examples/finalize-college-application.json b/examples/finalize-college-application.json
index ce5b2a1a..d0468092 100644
--- a/examples/finalize-college-application.json
+++ b/examples/finalize-college-application.json
@@ -1,5 +1,5 @@
{
- "name": "finalizeCollegeApplication",
+ "name": "finalize-college-application",
"version": "1.0.0",
"specVersion": "0.8",
"start": "finalize-application",
diff --git a/examples/hello-world.json b/examples/hello-world.json
index 10e8d9f4..0231d304 100644
--- a/examples/hello-world.json
+++ b/examples/hello-world.json
@@ -1,7 +1,7 @@
{
"version": "1.0.0",
"specVersion": "0.8",
- "name": "Hello-World-Workflow",
+ "name": "hello-world-workflow",
"description": "Inject Hello World",
"start": "hello-state",
"states": [
diff --git a/examples/monitor-patient-vital-signs.json b/examples/monitor-patient-vital-signs.json
index 6e79450f..1ae55caf 100644
--- a/examples/monitor-patient-vital-signs.json
+++ b/examples/monitor-patient-vital-signs.json
@@ -1,5 +1,5 @@
{
- "name": "patientVitalsWorkflow",
+ "name": "patient-vitals-workflow",
"version": "1.0.0",
"specVersion": "0.8",
"start": "monitor-vitals",
diff --git a/schema/workflow.json b/schema/workflow.json
index e5b185d9..9c324a43 100644
--- a/schema/workflow.json
+++ b/schema/workflow.json
@@ -6,7 +6,8 @@
"properties": {
"name": {
"type": "string",
- "description": "Workflow definition unique identifier (which must be human readable)",
+ "description": "The name that identifies the workflow definition, and which, when combined with its version, forms a unique identifier.",
+ "pattern": "^[a-z0-9](-?[a-z0-9])*$",
"minLength": 1
},
"version": {
@@ -20,7 +21,7 @@
},
"key": {
"type": "string",
- "description": "Expression that will be used to generate a domain-specific workflow instance identifier"
+ "description": "Optional expression that will be used to generate a domain-specific workflow instance identifier"
},
"annotations": {
"type": "array",
diff --git a/specification.md b/specification.md
index c36383d0..8eecc3a9 100644
--- a/specification.md
+++ b/specification.md
@@ -643,7 +643,7 @@ a workflow with a single event state and show how data filters can be combined.
```json
{
- "name": "GreetCustomersWorkflow",
+ "name": "greet-customers-workflow",
"description": "Greet Customers when they arrive",
"version": "1.0.0",
"specVersion": "0.8",
@@ -1910,7 +1910,7 @@ we can use this expression in the workflow "version" parameter:
```json
{
- "name": "MySampleWorkflow",
+ "name": "my-sample-workflow",
"description": "Sample Workflow",
"version": "${ .inputVersion }",
"specVersion": "0.8"
@@ -1925,10 +1925,10 @@ definition "name" must be a constant value.
| Parameter | Description | Type | Required |
| --- | --- | --- | --- |
-| name | Workflow definition unique identifier (which must be human readable) | string | yes |
-| version | Workflow version. MUST respect the [semantic versioning](https://semver.org/) format. If not provided, latest is assumed | string | no |
+| name | The name that identifies the workflow definition, and which, when combined with its version, forms a unique identifier. | string | yes |
+| version | Workflow version. MUST respect the [semantic versioning](https://semver.org/) format. If not provided, `latest` is assumed | string | no |
| description | Workflow description | string | no |
-| key | Expression that will be used to generate a domain-specific workflow instance identifier | string | no |
+| key | Optional expression that will be used to generate a domain-specific workflow instance identifier | string | no |
| annotations | List of helpful terms describing the workflows intended purpose, subject areas, or other important qualities | array | no |
| dataInputSchema | Used to validate the workflow data input against a defined JSON Schema| string or object | no |
| dataOutputSchema | Used to validate the workflow data output against a defined JSON Schema| string or object | no |
@@ -1962,7 +1962,7 @@ definition "name" must be a constant value.
```json
{
- "name": "sampleWorkflow",
+ "name": "sample-workflow",
"version": "1.0.0",
"specVersion": "0.8",
"description": "Sample Workflow",
@@ -1979,7 +1979,7 @@ definition "name" must be a constant value.
```yaml
-name: sampleWorkflow
+name: sample-workflow
version: '1.0.0'
specVersion: '0.8'
description: Sample Workflow
@@ -2161,7 +2161,7 @@ Here is an example of using external resource for function definitions:
```json
{
- "name": "sampleWorkflow",
+ "name": "sample-workflow",
"version": "1.0.0",
"specVersion": "0.8",
"description": "Sample Workflow",
@@ -2197,7 +2197,7 @@ Here is an example of using external resource for event definitions:
```json
{
- "name": "sampleWorkflow",
+ "name": "sample-workflow",
"version": "1.0.0",
"specVersion": "0.8",
"description": "Sample Workflow",
@@ -2361,7 +2361,7 @@ Serverless Workflow defines the following Workflow States:
|
```yaml
-name: MonitorVitals
+name: monitor-vitals
type: event
exclusive: true
onEvents:
@@ -3140,7 +3140,7 @@ and our workflow is defined as:
```json
{
- "name": "SendConfirmationForCompletedOrders",
+ "name": "send-confirmation-for-completed-orders",
"version": "1.0.0",
"specVersion": "0.8",
"start": "send-confirm-state",
@@ -3176,7 +3176,7 @@ and our workflow is defined as:
|
```yaml
-name: SendConfirmationForCompletedOrders
+name: send-confirmation-for-completed-orders
version: '1.0.0'
specVersion: '0.8'
start: send-confirm-state
@@ -3454,7 +3454,7 @@ Example of a function definition configured to use an [auth definition](#Auth-De
```yaml
functions:
-- name: SecuredFunctionInvocation
+- name: secured-function-invocation
operation: https://test.com/swagger.json#HelloWorld
authRef: My Basic Auth
```
@@ -3463,7 +3463,7 @@ Example of a function definition configured to use an [auth definition](#Auth-De
```yaml
functions:
-- name: SecuredFunctionInvocation
+- name: secured-function-invocation
operation: https://test.com/swagger.json#HelloWorld
authRef:
resource: My Basic Auth
@@ -3476,11 +3476,11 @@ This is done to avoid unnecessary repetitions of [auth definition](#Auth-Definit
```yaml
functions:
- - name: MySecuredFunction1
+ - name: secured-function-1
operation: https://secure.resources.com/myapi.json#helloWorld
authRef:
resource: My ApiKey Auth
- - name: MySecuredFunction2
+ - name: secured-function-2
operation: https://secure.resources.com/myapi.json#holaMundo
```
@@ -5141,7 +5141,7 @@ Let's take a look at an example of additional properties:
```json
{
- "name": "myworkflow",
+ "name": "my-workflow",
"version": "1.0.0",
"specVersion": "0.8",
"description": "My Test Workflow",
@@ -5159,7 +5159,7 @@ Note the same can be also specified using workflow metadata, which is the prefer
```json
{
- "name": "myworkflow",
+ "name": "my-workflow",
"version": "1.0.0",
"specVersion": "0.8",
"description": "Py Test Workflow",
@@ -5555,18 +5555,18 @@ actions:
-In our example the first action named `MyFirstFunction` is going to be retried according to the `FirstRetryStrategy`
+In our example the first action named `my-first-function` is going to be retried according to the `first-retry-strategy`
retry policy
for all errors except `SomeErrorOne` and `SomeErrorTwo`.
-The seconds action named `MySecondFunction` is going to be retried according to the `SecondRetryStrategy`
+The seconds action named `my-second-function` is going to be retried according to the `second-retry-strategy`
retry policy
for all errors except `SomeErrorTwo` and `SomeErrorThree`.
-The third action named `MyThirdFunction` is going to retried according to the default runtime retry policy.
+The third action named `my-third-function` is going to retried according to the default runtime retry policy.
It will be retried for all errors both known (checked) as well as unknown (unckecked).
-The fourth action named `MyFourthFunction` is going to be retried according to the `DoNotRetryStrategy`
+The fourth action named `my-fourth-function` is going to be retried according to the `no-retry-strategy`
retry policy which has the `maxAttempts` property set to `1`, meaning that this action will not be retried.
### Workflow Timeouts
@@ -5587,8 +5587,7 @@ timeout settings should take in effect.
To give an example, let's say that in our workflow definition we define the timeout for state execution:
```json
-{
- "name": "testWorkflow",
+ "name": "test-workflow",
...
"timeouts": {
...
@@ -6304,7 +6303,7 @@ Here is an example of metadata attached to the core workflow definition:
```json
{
- "name": "processSalesOrders",
+ "name": "process-sales-orders",
"description": "Process Sales Orders",
"version": "1.0.0",
"specVersion": "0.8",
@@ -6340,7 +6339,7 @@ Implementations may use this keyword to give access to any relevant information
```json
{
- "name": "processSalesOrders",
+ "name": "process-sales-orders",
"description": "Process Sales Orders",
"version": "1.0.0",
"specVersion": "0.8",
|