Workflow step policy
The Workflow step policy, is an optional policy, which can be provided in the Implementation manifest in an Action step. This policy can be used when:
- an Implementation depends on another Implementation and an Interface cannot be used,
- the Content Creator wants to prefer some Implementation in the Action steps.
This policy can be only provided by the Content Creator and cannot be changed without uploading a new Implementation manifest. Other policies can overwrite it, when a different policy has a higher priority. To check the default policy priority order see this section.
Example
The following YAML snippet presents an Action step in the Implementation with a Workflow step policy:
- - capact-action: postgresql.install
name: install-db
capact-when: postgresql == nil
capact-policy:
rules: # Configures the following behavior for Engine during rendering Action for this step
- interface: # Rules for Interface with exact path
path: cap.interface.database.postgresql.install
oneOf:
- implementationConstraints: # Enforces that the cap.implementation.bitnami.postgresql.install is selected
path: "cap.implementation.bitnami.postgresql.install"
NOTE: Instead of providing the full Interface path you can use the alias from the Interfaces imported in the Implementation:
spec:
imports:
- interfaceGroupPath: cap.interface.database.postgresql.install
alias: postgresql
methods:
- name: install
revision: 0.1.0- - capact-action: postgresql.install
capact-policy:
rules:
- interface: postgresql.install
NOTE: You cannot inject TypeInstances in the Workflow step policy. Manifests can be used by any Capact installation, and it is not possible to predict the ID a TypeInstance will have in a given Capact environment.
In this case the policy will enforce that the cap.implementation.bitnami.postgresql.install
Implementation will be selected, if no other policy is overriding this setting.