SWADL
Symphony Workflow Automation Definition Language. Documentation: https://developers.symphony.com/
| Type | object |
|---|---|
| File match |
*.swadl.yaml
*.swadl.yml
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/swadl/latest.json |
| Source | https://raw.githubusercontent.com/SymphonyPlatformSolutions/symphony-wdk/master/workflow-language/src/main/resources/swadl-schema-1.0.json |
Validate with Lintel
npx @lintel/lintel check
SWADL (Symphony Workflow Automation Definition Language) is a language to describe workflows on Symphony.
Properties
Workflow's id should start with a letter. It is optional. If no id is provided, the workflow filename is used. Otherwise, it will be generated. The id will appear in logs and audit trails.
A list of activities to be executed by the workflow. By default the execution is sequential but complex logic can be orchestrated with if/else conditions as well as on/activity-completed events.
Some metadata about the workflow
1 nested properties
Should the workflow be published or not, true publish, false otherwise
Variables are accessible and editable within the entire workflow. A map of key: value entries is expected.
Definitions
If true then a local DB search will be performed and only local pod users will be returned. If absent or false then a directory search will be performed and users from other pods who are visible to the calling user will also be returned.
If true, it searches for active users only. If false, it searches for inactive users only. If not set, it searches for all users regardless of their status.
Events that can trigger the activity execution.
2 nested properties
Form's id. The id should be the same as activity's one that sent the form.
True if only one reply is expected to the form. Default is false
2 nested properties
Token to authorize incoming http requests.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
3 nested properties
Message content to listen to.
If true, the event is only triggered if the bot is mentioned.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
1 nested properties
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
1 nested properties
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
1 nested properties
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
2 nested properties
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Used to receive all listed events.
Used to receive at least one of the listed events.
ISO 8601 repeating intervals to repeat the current activity.
ISO 8601 date representing a point in time when the current activity should be executed.
Form's id. The id should be the same as activity's one that sent the form.
True if only one reply is expected to the form. Default is false
Message content to listen to.
If true, the event is only triggered if the bot is mentioned.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Token to authorize incoming http requests.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Event's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Inner property having common properties for every activity.
Activity's identifier, should be unique across workflow. As it can be used as a variable identifier only alphanumerical characters are allowed.
Events that can trigger the activity execution.
Conditional execution of the activity based on a boolean expression.
Default execution of the activity when if conditions are used for previous activities.
A list of key-value pairs, describing additional properties of the room.
If true, any chat room participant can add new participants. If false, only owners can add new participants.
If true, this chat room (name, description and messages) non-participants can search for this room. If false, only participants can search for this room.
If true, this is a public chatroom. If false, a private chatroom. Note: Once this value is set for a room, it is read-only and can’t be updated.
If true, only stream owners can send messages. Note: Once this value is set for a room, it is read-only and can’t be updated.
If true, users cannot copy content from this room. Note: Once this value is set to true for a room, it is read-only and can’t be updated.
If true, this room is a cross-pod room.
If true, new members can view the room chat history of the room.
If true, this is a multilateral room where users belonging to more than 2 companies can be found.
If false, the room is not active anymore.
If true, this is a public chatroom. If false, a private chatroom. Note: Once this value is set for a room, it is read-only and can’t be updated.
User identifiers list.
A list of key-value pairs, describing additional properties of the room.
If true, any chat room participant can add new participants. If false, only owners can add new participants.
If true, this chat room (name, description and messages) non-participants can search for this room. If false, only participants can search for this room.
If true, only stream owners can send messages. Note: Once this value is set for a room, it is read-only and can’t be updated.
If true, users cannot copy content from this room. Note: Once this value is set to true for a room, it is read-only and can’t be updated.
If true, this room is a cross-pod room.
If true, new members can view the room chat history of the room.
If true, this is a multilateral room where users belonging to more than 2 companies can be found.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
A list of key-value pairs, describing additional properties of the room.
If true, any chat room participant can add new participants. If false, only owners can add new participants.
If true, this chat room (name, description and messages) non-participants can search for this room. If false, only participants can search for this room.
If true, this is a public chatroom. If false, a private chatroom. Note: Once this value is set for a room, it is read-only and can’t be updated.
If true, only stream owners can send messages. Note: Once this value is set for a room, it is read-only and can’t be updated.
If true, users cannot copy content from this room. Note: Once this value is set to true for a room, it is read-only and can’t be updated.
If true, this room is a cross-pod room.
If true, new members can view the room chat history of the room.
If true, this is a multilateral room where users belonging to more than 2 companies can be found.
If false, the room is not active anymore.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
User identifiers list.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
User identifiers list.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
User identifiers list.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
User identifiers list.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
The content of the message in MessageML format. Must contain at least one space. In case the content is a form, this latter's id should be the same as the activity one.
Message data, which is a Json string and sent along with message.
One or more attachments to be sent along with the message.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
The content of the message in MessageML format. Must contain at least one space. In case the content is a form, this latter's id should be the same as the activity one.
Message identifier. Both safe url and Base64 encoded urls are accepted.
If enabled, the new updated message is marked as read, otherwise is unread
Message identifier. Both safe url and Base64 encoded urls are accepted.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Script to execute (only Groovy is supported)
Contains the host and the path to be targeted
If enabled, the query parameters will be encoded in application/x-www-form-urlencoded
HTTP method to perform
HTTP request headers
Email address, must be unique
The user's work phone number.
Business information
The user's company name. If not specified, it is set with the default company name.
The user's department.
The user's division.
The user's title.
The user's location.
The user's job function.
The user's asset classes (one or more).
The user's job industries (one or more).
The user's job functions (one or more).
The user's market coverage (one or more).
The user's responsibilities (one or more).
The user's instruments (one or more).
Email address, must be unique
The recommended language. As an ISO 639-1 code.
Contact information
4 nested properties
The user's work phone number.
The user's work phone number.
The user's work phone number.
The user's work phone number.
Business information
12 nested properties
The user's company name. If not specified, it is set with the default company name.
The user's department.
The user's division.
The user's title.
The user's location.
The user's job function.
The user's asset classes (one or more).
The user's job industries (one or more).
The user's job functions (one or more).
The user's market coverage (one or more).
The user's responsibilities (one or more).
The user's instruments (one or more).
User's password. The password object is optional for end-user accounts (NORMAL). For example, if your organization utilizes SSO, you may not want to specify the password.
4 nested properties
A base64-encoded string. The hashed password. This is the hashed version of the password the user would use to login.
A base64-encoded string. The salt used for hashing the hPassword.
A base64-encoded string. The hashed password to be used for authenticating to the key manager.
A base64-encoded string. The salt used for hashing the khPassword.
The roles object consists of the following possibilities: For end-user accounts: INDIVIDUAL, ADMINISTRATOR, SUPER_ADMINISTRATOR, L1_SUPPORT, L2_SUPPORT, COMPLIANCE_OFFICER, SUPER_COMPLIANCE_OFFICER For service accounts: INDIVIDUAL, USER_PROVISIONING, SCOPE_MANAGEMENT, CONTENT_MANAGEMENT, MALWARE_SCAN_MANAGER, MALWARE_SCAN_STATE_USER, AUDIT_TRAIL_MANAGEMENT
Feature entitlements to configure for the user.
User status: ENABLED or DISABLED.
Email address, must be unique
Business information
12 nested properties
The user's company name. If not specified, it is set with the default company name.
The user's department.
The user's division.
The user's title.
The user's location.
The user's job function.
The user's asset classes (one or more).
The user's job industries (one or more).
The user's job functions (one or more).
The user's market coverage (one or more).
The user's responsibilities (one or more).
The user's instruments (one or more).
For SYSTEM users, to set up the RSA keys for authentication.
2 nested properties
3 nested properties
A string indicating the action to be performed on the user's RSA.
The following actions can be performed on the user's active RSA key: SAVE REVOKE.
The following actions can be performed onto the user's rotated RSA key: REVOKE EXTEND.
A string containing the user's RSA public key. The key must be 4096 bits. Only PKCS8 format is allowed.
An ISO 8601 timestamp containing the RSA key expiration date. This value is only set for rotated keys.
3 nested properties
A string indicating the action to be performed on the user's RSA.
The following actions can be performed on the user's active RSA key: SAVE REVOKE.
The following actions can be performed onto the user's rotated RSA key: REVOKE EXTEND.
A string containing the user's RSA public key. The key must be 4096 bits. Only PKCS8 format is allowed.
An ISO 8601 timestamp containing the RSA key expiration date. This value is only set for rotated keys.
The roles object consists of the following possibilities: For end-user accounts: INDIVIDUAL, ADMINISTRATOR, SUPER_ADMINISTRATOR, L1_SUPPORT, L2_SUPPORT, COMPLIANCE_OFFICER, SUPER_COMPLIANCE_OFFICER For service accounts: INDIVIDUAL, USER_PROVISIONING, SCOPE_MANAGEMENT, CONTENT_MANAGEMENT, MALWARE_SCAN_MANAGER, MALWARE_SCAN_STATE_USER, AUDIT_TRAIL_MANAGEMENT
Feature entitlements to configure for the user.
User status: ENABLED or DISABLED.
A string indicating the action to be performed on the user's RSA.
The following actions can be performed on the user's active RSA key: SAVE REVOKE.
The following actions can be performed onto the user's rotated RSA key: REVOKE EXTEND.
A string containing the user's RSA public key. The key must be 4096 bits. Only PKCS8 format is allowed.
An ISO 8601 timestamp containing the RSA key expiration date. This value is only set for rotated keys.
Feature entitlements to configure for the user.
The roles object consists of the following possibilities: For end-user accounts: INDIVIDUAL, ADMINISTRATOR, SUPER_ADMINISTRATOR, L1_SUPPORT, L2_SUPPORT, COMPLIANCE_OFFICER, SUPER_COMPLIANCE_OFFICER For service accounts: INDIVIDUAL, USER_PROVISIONING, SCOPE_MANAGEMENT, CONTENT_MANAGEMENT, MALWARE_SCAN_MANAGER, MALWARE_SCAN_STATE_USER, AUDIT_TRAIL_MANAGEMENT
Users to add or remove roles from.
The roles object consists of the following possibilities: For end-user accounts: INDIVIDUAL, ADMINISTRATOR, SUPER_ADMINISTRATOR, L1_SUPPORT, L2_SUPPORT, COMPLIANCE_OFFICER, SUPER_COMPLIANCE_OFFICER For service accounts: INDIVIDUAL, USER_PROVISIONING, SCOPE_MANAGEMENT, CONTENT_MANAGEMENT, MALWARE_SCAN_MANAGER, MALWARE_SCAN_STATE_USER, AUDIT_TRAIL_MANAGEMENT
User id.
User identifiers list.
List of email addresses. Note that for this activity, you can use either the user-ids, the emails or the usernames, but only one at a time, you cannot mix and match them.
List of usernames. If username is specified, local must be set to true. Note that for this activity, you can use either the user-ids, the emails or the usernames, but only one at a time, you cannot mix and match them.
If true then a local DB search will be performed and only local pod users will be returned. If absent or false then a directory search will be performed and users from other pods who are visible to the calling user will also be returned.
If true, it searches for active users only. If false, it searches for inactive users only. If not set, it searches for all users regardless of their status.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
User id.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
Maximum number of elements to be returned - used for pagination.
Number of elements to be skipped during return - used for pagination.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
A list of stream types that will be returned. Options are IM (1-1 instant messages), MIM (multiparty instant messages), ROOM (rooms), POST (the user's wall). For more information, see the streamTypes section below. If not specified, all types of streams are returned.
Whether to include inactive conversations. A chatroom is inactive if it has been deactivated by an owner or admin. An IM or MIM is inactive if one of the participating users has been deactivated by an admin. If not specified, only active streams are returned.
Maximum number of elements to be returned - used for pagination.
Number of elements to be skipped during return - used for pagination.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Message identifier. Both safe url and Base64 encoded urls are accepted.
A list of stream types that will be returned (IM, MIM, ROOM). If not specified, streams of all types are returned.
The scope of the stream: INTERNAL (restricted to members of the calling user's company) or EXTERNAL (including members of the calling user's company, as well as another firm). If not specified, returns streams of either scope.
The origin of the room: INTERNAL (created by a user of the calling user's company) or EXTERNAL (created by a user of another company). If not specified, returns streams of either origin. Only applies to chatrooms with External scope.
The privacy setting of the room: PRIVATE (members must be added) or PUBLIC (anyone can join). If not specified, returns both private and public rooms. Only applies to chatrooms with internal scope.
The status of the room: ACTIVE or INACTIVE. If not specified, both active and inactive streams are returned.
Restricts result set to rooms that have been modified since this date (ISO 8601). When specified along with end-date, enables the developer to specify rooms modified within a given time range.
Restricts result set to rooms that have been modified prior to this date (ISO 8601). When specified along with start-date, enables the developer to specify rooms modified within a given time range.
Maximum number of elements to be returned - used for pagination.
Number of elements to be skipped during return - used for pagination.
The query which is searched for in room name, description, and optionally keywords. Case-insensitive.
A list of room keywords whose values will be queried.
If true, it restricts the search to active rooms. If false, it restricts the search to inactive rooms. If not specified, it includes both active and inactive rooms. Note that for inactive rooms, only rooms where the calling user is a member will be in the search scope; read the box “Room Search Scope” for further details.
If true, it includes only private rooms in the search results. If false, only public rooms are returned. If not specified, both public and private rooms are returned. Note that for inactive rooms, only discoverable rooms and rooms where the calling user is a member will be in the search scope; read the box “Room Search Scope” for further details.
If provided, restrict the search to rooms created by the specified user.
If provided, restrict the search to rooms owned by the specified user.
If provided, restrict the search to rooms where the specified user is a member.
Sort algorithm to be used. Supports two values: BASIC (legacy algorithm) and RELEVANCE (enhanced algorithm).
Maximum number of elements to be returned - used for pagination.
Number of elements to be skipped during return - used for pagination.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
Date, in ISO 8601 format, of the earliest possible data of the first message returned.
Number of elements to be skipped during return - used for pagination.
Maximum number of elements to be returned - used for pagination.
User identifiers list.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
2 nested properties
User id.
Group type identifier (for instance SDL).
2 nested properties
Owner id if the owner type is tenant (podId) or user (userId), otherwise null.
Owner type. Only TENANT supported now.
Group's name.
The type of the company new groupType.
Symphony, referring company name, referring channel partner name.
14 nested properties
The display name in Directory, it is expected to be the same as group name.
The company name is expected to be the same as group company owner.
6 nested properties
The group's asset classes (one or more).
The group's job industries (one or more).
The group's job functions (one or more).
The group's market coverage (one or more).
The group's responsibilities (one or more).
The group's instruments (one or more).
2 nested properties
2 nested properties
2 nested properties
Owner id if the owner type is tenant (podId) or user (userId), otherwise null.
Owner type. Only TENANT supported now.
Member's user id.
Member's tenant id.
The display name in Directory, it is expected to be the same as group name.
The company name is expected to be the same as group company owner.
6 nested properties
The group's asset classes (one or more).
The group's job industries (one or more).
The group's job functions (one or more).
The group's market coverage (one or more).
The group's responsibilities (one or more).
The group's instruments (one or more).
2 nested properties
2 nested properties
2 nested properties
Group's unique identifier.
Status flag to distinguish between active and deleted objects. Required to update group fields except the image-path.
Required to update group fields except the image-path.
Path to the file to be uploaded as the group's avatar. The path is relative to the workflows folder.
Group's unique identifier.
Group type id.
Filter by status, active or deleted. If not specified both are returned.
NOT SUPPORTED YET, currently ignored. Cursor that points to the start of the current page of data. If not present, the current page is the first page.
Cursor that points to the end of the current page of data. If not present, the current page is the last page.
Numbers of items to return.
Group's unique identifier.
Group's unique identifier.
Defines whether the activity will be executed on behalf of a user and the user on whose behalf the call will be made.
User id.
The content of the message in MessageML format. Must contain at least one space. In case the content is a form, this latter's id should be the same as the activity one.
Number of elements to be skipped during return - used for pagination.
Maximum number of elements to be returned - used for pagination.
Message identifier. Both safe url and Base64 encoded urls are accepted.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
Stream id to sent the message to.
Stream identifier. Both safe url and Base64 encoded urls are accepted.
Stream ids to sent the message to (blast message).
User identifiers list.
List of user ids.
User identifiers list.
User id.
Message identifier. Both safe url and Base64 encoded urls are accepted.
Attachment id to forward. If not set, all attachments in the provided message are forwarded. Both url safe and base64 encoded urls are accepted.
Path to the file to be attached to the message. The path is relative to the workflows folder.