Orchestrator for AWS Step Functions
npm install workflow-manager
* workflow-manager
* WorkflowManager ⏏
* new WorkflowManager(options)
* _instance_
* .close()
* [.healthCheck([options], [cb])](#module_workflow-manager--WorkflowManager+healthCheck) ⇒ Promise
* [.postStateResource(NewStateResource, [options], [cb])](#module_workflow-manager--WorkflowManager+postStateResource) ⇒ Promise
* [.deleteStateResource(params, [options], [cb])](#module_workflow-manager--WorkflowManager+deleteStateResource) ⇒ Promise
* [.getStateResource(params, [options], [cb])](#module_workflow-manager--WorkflowManager+getStateResource) ⇒ Promise
* [.putStateResource(params, [options], [cb])](#module_workflow-manager--WorkflowManager+putStateResource) ⇒ Promise
* [.getWorkflowDefinitions([options], [cb])](#module_workflow-manager--WorkflowManager+getWorkflowDefinitions) ⇒ Promise
* [.newWorkflowDefinition(NewWorkflowDefinitionRequest, [options], [cb])](#module_workflow-manager--WorkflowManager+newWorkflowDefinition) ⇒ Promise
* [.getWorkflowDefinitionVersionsByName(params, [options], [cb])](#module_workflow-manager--WorkflowManager+getWorkflowDefinitionVersionsByName) ⇒ Promise
* [.updateWorkflowDefinition(params, [options], [cb])](#module_workflow-manager--WorkflowManager+updateWorkflowDefinition) ⇒ Promise
* [.getWorkflowDefinitionByNameAndVersion(params, [options], [cb])](#module_workflow-manager--WorkflowManager+getWorkflowDefinitionByNameAndVersion) ⇒ Promise
* [.getWorkflows(params, [options], [cb])](#module_workflow-manager--WorkflowManager+getWorkflows) ⇒ Promise
* [.getWorkflowsIter(params, [options])](#module_workflow-manager--WorkflowManager+getWorkflowsIter) ⇒ Object \| function \| function \| function \| function
* [.startWorkflow(StartWorkflowRequest, [options], [cb])](#module_workflow-manager--WorkflowManager+startWorkflow) ⇒ Promise
* [.CancelWorkflow(params, [options], [cb])](#module_workflow-manager--WorkflowManager+CancelWorkflow) ⇒ Promise
* [.getWorkflowByID(params, [options], [cb])](#module_workflow-manager--WorkflowManager+getWorkflowByID) ⇒ Promise
* [.resumeWorkflowByID(params, [options], [cb])](#module_workflow-manager--WorkflowManager+resumeWorkflowByID) ⇒ Promise
* [.resolveWorkflowByID(workflowID, [options], [cb])](#module_workflow-manager--WorkflowManager+resolveWorkflowByID) ⇒ Promise
* _static_
* .RetryPolicies
* .Exponential
* .Single
* .None
* .Errors
* .BadRequest ⇐ Error
* .InternalError ⇐ Error
* .NotFound ⇐ Error
* .Conflict ⇐ Error
* .DefaultCircuitOptions
#### new WorkflowManager(options)
Create a new client object.
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| options | Object | | Options for constructing a client object. |
| [options.address] | string | | URL where the server is located. Must provide this or the discovery argument |
| [options.discovery] | bool | | Use clever-discovery to locate the server. Must provide this or the address argument |
| [options.timeout] | number | | The timeout to use for all client requests, in milliseconds. This can be overridden on a per-request basis. Default is 5000ms. |
| [options.keepalive] | bool | | Set keepalive to true for client requests. This sets the forever: true attribute in request. Defaults to true. |
| [options.retryPolicy] | RetryPolicies | RetryPolicies.Single | The logic to determine which requests to retry, as well as how many times to retry. |
| [options.logger] | module:kayvee.Logger | logger.New("workflow-manager-wagclient") | The Kayvee logger to use in the client. |
| [options.circuit] | Object | | Options for constructing the client's circuit breaker. |
| [options.circuit.forceClosed] | bool | | When set to true the circuit will always be closed. Default: true. |
| [options.circuit.maxConcurrentRequests] | number | | the maximum number of concurrent requests the client can make at the same time. Default: 100. |
| [options.circuit.requestVolumeThreshold] | number | | The minimum number of requests needed before a circuit can be tripped due to health. Default: 20. |
| [options.circuit.sleepWindow] | number | | how long, in milliseconds, to wait after a circuit opens before testing for recovery. Default: 5000. |
| [options.circuit.errorPercentThreshold] | number | | the threshold to place on the rolling error rate. Once the error rate exceeds this percentage, the circuit opens. Default: 90. |
| [options.asynclocalstore] | object | | a request scoped async store |
#### workflowManager.close()
Releases handles used in client
Kind: instance method of WorkflowManager
#### workflowManager.healthCheck([options], [cb]) ⇒ Promise
Checks if the service is healthy
Kind: instance method of WorkflowManager
Fulfill: undefined
Reject: BadRequest
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.postStateResource(NewStateResource, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| NewStateResource | | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.deleteStateResource(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: undefined
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| params.namespace | string | |
| params.name | string | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.getStateResource(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| params.namespace | string | |
| params.name | string | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.putStateResource(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| params.namespace | string | |
| params.name | string | |
| [params.NewStateResource] | | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.getWorkflowDefinitions([options], [cb]) ⇒ Promise
Get the latest versions of all available WorkflowDefinitions
Kind: instance method of WorkflowManager
Fulfill: Object[]
Reject: BadRequest
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.newWorkflowDefinition(NewWorkflowDefinitionRequest, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| NewWorkflowDefinitionRequest | | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.getWorkflowDefinitionVersionsByName(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object[]
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| params | Object | | |
| params.name | string | | |
| [params.latest] | boolean | true | |
| [options] | object | | |
| [options.timeout] | number | | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | | A request specific retryPolicy |
| [cb] | function | | |
#### workflowManager.updateWorkflowDefinition(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| [params.NewWorkflowDefinitionRequest] | | |
| params.name | string | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.getWorkflowDefinitionByNameAndVersion(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| params.name | string | |
| params.version | number | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.getWorkflows(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object[]
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| params | Object | | |
| [params.limit] | number | 10 | Maximum number of workflows to return. Defaults to 10. Restricted to a max of 10,000. |
| [params.oldestFirst] | boolean | | |
| [params.pageToken] | string | | |
| [params.status] | string | | The status of the workflow (queued, running, etc.). |
| [params.resolvedByUser] | boolean | | A flag that indicates whether the workflow has been marked resolved by a user. |
| [params.summaryOnly] | boolean | | Limits workflow data to the bare minimum - omits the full workflow definition and job data. |
| params.workflowDefinitionName | string | | |
| [options] | object | | |
| [options.timeout] | number | | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | | A request specific retryPolicy |
| [cb] | function | | |
#### workflowManager.getWorkflowsIter(params, [options]) ⇒ Object \| function \| function \| function \| function
Kind: instance method of WorkflowManager
Returns: Object - iterfunction - iter.map - takes in a function, applies it to each resource, and returns a promise to the result as an arrayfunction - iter.toArray - returns a promise to the resources as an arrayfunction - iter.forEach - takes in a function, applies it to each resourcefunction - iter.forEachAsync - takes in an async function, applies it to each resource
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| params | Object | | |
| [params.limit] | number | 10 | Maximum number of workflows to return. Defaults to 10. Restricted to a max of 10,000. |
| [params.oldestFirst] | boolean | | |
| [params.pageToken] | string | | |
| [params.status] | string | | The status of the workflow (queued, running, etc.). |
| [params.resolvedByUser] | boolean | | A flag that indicates whether the workflow has been marked resolved by a user. |
| [params.summaryOnly] | boolean | | Limits workflow data to the bare minimum - omits the full workflow definition and job data. |
| params.workflowDefinitionName | string | | |
| [options] | object | | |
| [options.timeout] | number | | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | | A request specific retryPolicy |
#### workflowManager.startWorkflow(StartWorkflowRequest, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| StartWorkflowRequest | | Parameters for starting a workflow (workflow definition, input, and optionally namespace, queue, and tags) |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.CancelWorkflow(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: undefined
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| params.workflowID | string | |
| params.reason | | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.getWorkflowByID(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| params.workflowID | string | |
| [params.fetchHistory] | boolean | When true, the execution history will be fetched from SFN along with the workflow summary |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.resumeWorkflowByID(params, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: Object
Reject: BadRequest
Reject: NotFound
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| params | Object | |
| params.workflowID | string | |
| params.overrides | | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### workflowManager.resolveWorkflowByID(workflowID, [options], [cb]) ⇒ Promise
Kind: instance method of WorkflowManager
Fulfill: undefined
Reject: BadRequest
Reject: NotFound
Reject: Conflict
Reject: InternalError
Reject: Error
| Param | Type | Description |
| --- | --- | --- |
| workflowID | string | |
| [options] | object | |
| [options.timeout] | number | A request specific timeout |
| [options.baggage] | [ 'Map' ].<string, (string\|number)> | A request-specific baggage to be propagated |
| [options.retryPolicy] | RetryPolicies | A request specific retryPolicy |
| [cb] | function | |
#### WorkflowManager.RetryPolicies
Retry policies available to use.
Kind: static property of WorkflowManager
* .RetryPolicies
* .Exponential
* .Single
* .None
##### RetryPolicies.Exponential
The exponential retry policy will retry five times with an exponential backoff.
Kind: static constant of RetryPolicies
##### RetryPolicies.Single
Use this retry policy to retry a request once.
Kind: static constant of RetryPolicies
##### RetryPolicies.None
Use this retry policy to turn off retries.
Kind: static constant of RetryPolicies
#### WorkflowManager.Errors
Errors returned by methods.
Kind: static property of WorkflowManager
* .Errors
* .BadRequest ⇐ Error
* .InternalError ⇐ Error
* .NotFound ⇐ Error
* .Conflict ⇐ Error
##### Errors.BadRequest ⇐ Error
BadRequest
Kind: static class of Errors
Extends: Error
Properties
| Name | Type |
| --- | --- |
| message | string |
##### Errors.InternalError ⇐ Error
InternalError
Kind: static class of Errors
Extends: Error
Properties
| Name | Type |
| --- | --- |
| message | string |
##### Errors.NotFound ⇐ Error
NotFound
Kind: static class of Errors
Extends: Error
Properties
| Name | Type |
| --- | --- |
| message | string |
##### Errors.Conflict ⇐ Error
Conflict
Kind: static class of Errors
Extends: Error
Properties
| Name | Type |
| --- | --- |
| message | string |
#### WorkflowManager.DefaultCircuitOptions
Default circuit breaker options.
Kind: static constant of WorkflowManager