Class: Action
Defined in: core/actions/src/action-manager.ts:24
Structure actions.
Extends this class to build new actions behaviors.
Extended by
Constructors
Constructor
new Action():
Action
Defined in: core/actions/src/action-manager.ts:201
Returns
Action
Properties
dbDoc
dbDoc:
ActionSchemaInterface
<JSONObject
,JSONObject
,void
|Error
|JSONObject
>
Defined in: core/actions/src/action-manager.ts:106
Action Database Document
executor?
optional
executor:Executor
Defined in: core/actions/src/action-manager.ts:40
Specify an executor in which all actions of this class will run.
IArgument
IArgument:
JSONObject
Defined in: core/actions/src/action-manager.ts:91
Action argument
IBag
IBag:
JSONObject
Defined in: core/actions/src/action-manager.ts:96
Action bag
IResult
IResult:
void
|Error
|JSONObject
Defined in: core/actions/src/action-manager.ts:101
Action result
isExecutorSet
isExecutorSet:
boolean
=false
Defined in: core/actions/src/action-manager.ts:497
isInitialized
isInitialized:
boolean
=false
Defined in: core/actions/src/action-manager.ts:482
notifyHealthPromise
notifyHealthPromise:
Promise
<any
> =undefined
Defined in: core/actions/src/action-manager.ts:930
Send a signal to indicate that the action is still in progress.. Useful for preventing timeouts when the action's duration is long but not precisely predictable.
runtime
runtime:
ActionRuntime
=ActionRuntime.activeRuntime
Defined in: core/actions/src/action-manager.ts:42
cronDefaultSettings
static
cronDefaultSettings:object
Defined in: core/actions/src/action-manager.ts:82
Configure the frequency at which a cron will launch Action.resume. It is also possible to dynamically modify the dbDoc.cronActivity property to modify the call to a cron. If not set, this property will be 'inherited' from the first parent class where it is.
activityFrequency
activityFrequency:
number
defaultDelay
static
defaultDelay:number
Defined in: core/actions/src/action-manager.ts:49
Shortcut to [ActionState.IN_PROGRESS].
If not set, this property will be 'inherited' from the first parent class where it is.
defaultDelays
static
defaultDelays:object
Defined in: core/actions/src/action-manager.ts:70
For the states ActionState.EXECUTING_MAIN
and ActionState.IN_PROGRESS
,
this object configures the time after which, if no change happened, an action is considered in error.
For example, an action can only be in the ActionState.IN_PROGRESS
state for as long as
defaultDelays[ActionState.IN_PROGRESS]
time.
1?
optional
1:number
2?
optional
2:number
Default Value
{
[ActionState.IN_PROGRESS]: this.defaultDelay,
[ActionState.EXECUTING_MAIN]: 2*60*1000,
}
You should configure this if your actions have longer timeouts.
If not set, this property will be 'inherited' from the first parent class where it is.
permanentRef
static
permanentRef:string
|string
[]
Defined in: core/actions/src/action-manager.ts:35
Id of the action stored in database. It should be a permanent id that designates the action instance.
Accessors
_id
Get Signature
get _id():
this
["dbDoc"
]["_id"
]
Defined in: core/actions/src/action-manager.ts:157
Returns
this
["dbDoc"
]["_id"
]
argument
Get Signature
get argument():
this
["dbDoc"
]["argument"
]
Defined in: core/actions/src/action-manager.ts:121
Returns
this
["dbDoc"
]["argument"
]
Set Signature
set argument(
argument
):void
Defined in: core/actions/src/action-manager.ts:125
Parameters
argument
this
["dbDoc"
]["argument"
]
Returns
void
bag
Get Signature
get bag():
this
["dbDoc"
]["bag"
]
Defined in: core/actions/src/action-manager.ts:112
Returns
this
["dbDoc"
]["bag"
]
Set Signature
set bag(
bag
):void
Defined in: core/actions/src/action-manager.ts:116
Parameters
bag
this
["dbDoc"
]["bag"
]
Returns
void
cronActivity
Get Signature
get cronActivity():
this
["dbDoc"
]["cronActivity"
]
Defined in: core/actions/src/action-manager.ts:148
Returns
this
["dbDoc"
]["cronActivity"
]
Set Signature
set cronActivity(
cronActivity
):void
Defined in: core/actions/src/action-manager.ts:152
Parameters
cronActivity
this
["dbDoc"
]["cronActivity"
]
Returns
void
repeat
Get Signature
get repeat():
this
["dbDoc"
]["repeat"
]
Defined in: core/actions/src/action-manager.ts:139
Returns
this
["dbDoc"
]["repeat"
]
Set Signature
set repeat(
repeat
):void
Defined in: core/actions/src/action-manager.ts:143
Parameters
repeat
this
["dbDoc"
]["repeat"
]
Returns
void
result
Get Signature
get result():
this
["dbDoc"
]["result"
]
Defined in: core/actions/src/action-manager.ts:130
Returns
this
["dbDoc"
]["result"
]
Set Signature
set result(
result
):void
Defined in: core/actions/src/action-manager.ts:134
Parameters
result
this
["dbDoc"
]["result"
]
Returns
void
Methods
_resume()
_resume():
any
Defined in: core/actions/src/action-manager.ts:631
The function resumes the action by calling the appropriate function depending on the current state of the action. It doesn't take into account the executor.
Returns
any
A promise. You can not rely on this to know when an action is finished.
activityLogs()
activityLogs(
options
):any
[] |Promise
<any
[]>
Defined in: core/actions/src/action-manager.ts:775
Parameters
options
any
Returns
any
[] | Promise
<any
[]>
clone()
clone():
any
Defined in: core/actions/src/action-manager.ts:899
Clone the action.
Returns
any
a new action with the same argument
dynamicallyDefineFromWorkflowStep()
dynamicallyDefineFromWorkflowStep(
workflow
,marker
):void
Defined in: core/actions/src/action-manager.ts:312
Parameters
workflow
marker
string
Returns
void
getLogs()
getLogs(
options
):Promise
<any
[]>
Defined in: core/actions/src/action-manager.ts:779
Parameters
options
endTime?
number
Returns
Promise
<any
[]>
init()
init():
Promise
<any
>
Defined in: core/actions/src/action-manager.ts:398
Initialize the action from the action stored in the database.
Example: In order to not store secrets in the database, you can set a vault id in the argument and retrieve the secret at the initialization of the action.
Example: You cannot store class object on the database. If your action use complex object, they can be initialized here.
Returns
Promise
<any
>
initialization()
initialization():
Promise
<void
>
Defined in: core/actions/src/action-manager.ts:489
Mainly used for workflows. Can also complement init(). If it gets too complex, use hooks.
Returns
Promise
<void
>
internalLog()
internalLog(
message
,opts
):void
Defined in: core/actions/src/action-manager.ts:840
Log a message in the internal logger.
Parameters
message
string
The message to log.
opts
Options for logging, such as the log level. the final log message will be:
{
actionRef: this.dbDoc.actionRef,
actionId: this.dbDoc._id.toString(),
filter: this.dbDoc.filter,
definedIn: this.dbDoc.definitionFrom.workflow?.toObject(),
timestamp: new Date().toISOString(),
level: opts.level || 'info',
message: message,
}
level
string
= 'debug'
Returns
void
internalLogError()
internalLogError(
err
):void
Defined in: core/actions/src/action-manager.ts:875
Log an error in the internal logger.
Parameters
err
Error
The error to log. the final log message will be:
{
actionRef: this.dbDoc.actionRef,
actionId: this.dbDoc._id.toString(),
filter: this.dbDoc.filter,
definedIn: this.dbDoc.definitionFrom.workflow?.toObject(),
err: err,
timestamp: new Date().toISOString(),
}
Returns
void
main()
main():
ActionState
|Promise
<ActionState
>
Defined in: core/actions/src/action-manager.ts:591
This method should launched the main action process It is called only one time. It returns a state value.
Returns
ActionState
| Promise
<ActionState
>
notifyHealth()
notifyHealth():
Promise
<any
>
Defined in: core/actions/src/action-manager.ts:931
Returns
Promise
<any
>
onMainTimeout()
onMainTimeout():
ActionState
|Promise
<ActionState
>
Defined in: core/actions/src/action-manager.ts:700
Called in case of timeout in ActionState.EXECUTING_MAIN
state.
It can return ActionState.SLEEPING
if the process infers
that main()
has not run and the action must be retried.
Returns
ActionState
| Promise
<ActionState
>
a ActionState
value.
resume()
resume():
Promise
<any
>
Defined in: core/actions/src/action-manager.ts:600
The function resumes the action by calling the appropriate executor if needed and then by calling the appropriate function depending on the current state of the action
Returns
Promise
<any
>
A promise. You can not rely on this to know when an action is finished.
resyncWithDb()
resyncWithDb():
Promise
<void
>
Defined in: core/actions/src/action-manager.ts:327
Update the current model instance with latest data from database
Returns
Promise
<void
>
a promise that resolves when the document has been loaded
save()
save():
Promise
<ActionSchemaInterface
<JSONObject
,JSONObject
,void
|Error
|JSONObject
>>
Defined in: core/actions/src/action-manager.ts:165
Save an action in the database. Will then be managed by the worker.
Returns
Promise
<ActionSchemaInterface
<JSONObject
, JSONObject
, void
| Error
| JSONObject
>>
a promise that resolves when the action has been saved
setArgument()
setArgument(
args
):Action
Defined in: core/actions/src/action-manager.ts:407
Set the argument
that will be stored in the database.
Once set, the argument of an action should not be modified.
Parameters
args
JSONObject
The argument to set.
Returns
Action
setExecutor()
Defined in: core/actions/src/action-manager.ts:516
Set the executor for this action. It is called only once when the action is created. If you want to set an executor, you should override this method.
Returns
void
| Executor
| Promise
<void
| Executor
>
a promise that resolves when you have set the executor is set
setFilter()
setFilter(
filter
):Action
Defined in: core/actions/src/action-manager.ts:438
Make filtering actions easier with the filter
property.
These filters are stored in database with
the filter
property and allow to search for
an action or a group of actions
Parameters
filter
Object
Returns
Action
setRepeat()
setRepeat(
opts
):Action
Defined in: core/actions/src/action-manager.ts:422
Configure the number of times an action is repeated.
Parameters
opts
4?
number
5?
number
Returns
Action
setResult()
setResult(...
results
):Action
Defined in: core/actions/src/action-manager.ts:448
Set the action result.
Parameters
results
...any
[]
Returns
Action
watcher()
watcher():
Promise
<ActionState
>
Defined in: core/actions/src/action-manager.ts:478
Watch the action state.
It is called :
- potentially many times when the action is in
IN_PROGRESS
state - one time if the action is in
EXECUTING_MAIN
state and the executing_main delay has expired.
Returns
Promise
<ActionState
>
promise
_constructFromDb()
static
_constructFromDb(actionDb
):Action
Defined in: core/actions/src/action-manager.ts:256
Construct an action from a document stored in the database.
Parameters
actionDb
a document coming from the database
Returns
Action
an action for which dbDoc property is equal to actionDb
_constructFromWorkflow()
static
_constructFromWorkflow(dbDoc
):Promise
<Action
>
Defined in: core/actions/src/action-manager.ts:281
Construct an action from a document stored in the database and whose definition depends on a workflow.
Parameters
dbDoc
Returns
Promise
<Action
>
an action for which dbDoc property is equal to actionDb
constructFromDb()
static
constructFromDb(actionDb
):Promise
<Action
>
Defined in: core/actions/src/action-manager.ts:304
Construct an action from a document stored in the database.
Parameters
actionDb
a document coming from the database
Returns
Promise
<Action
>
an action for which dbDoc property is equal to actionDb
reject()
static
reject(result?
):RejectAction
Defined in: core/actions/src/action-manager.ts:355
Return a new RejectAction object.
Parameters
result?
any
action result
Returns
new RejectAction
instance
resolve()
static
resolve(result?
):ResolveAction
Defined in: core/actions/src/action-manager.ts:344
Return a new ResolveAction object.
Parameters
result?
any
action result
Returns
new ResolveAction
instance
trackActionAsPromise()
static
trackActionAsPromise(action
,states
):Promise
<unknown
>
Defined in: core/actions/src/action-manager.ts:911
Track an action until it reaches one of the given states.
Parameters
action
Action
The action to track.
states
ActionState
[] = ...
The states to reach.
Returns
Promise
<unknown
>
A promise that resolves when the action reaches one of the given states. The promise resolves with the state reached.