Release Notes
Version 7 "Gugelhupf"
2023-03-30

The “Gugelhupf” is a cake and is known and loved far beyond the borders of Austria. In the past, a Gugelhupf was served at major events.
We are a Viennese company and we like sweets – therefore we name our releases after Viennese sweets. The “Gugelhupf” can be prepared with a wide variety of ingredients. Cloudomation Version 7 shows, manages and tracks your “software-ingredients”: with the new dependency visualisation, the bundle manager and a new logging feature. But that’s not all. Check out the release notes for more!
Breaking Changes
- Filter indirection format change
To list Cloudomation records using a filter for attributes in related records a more verbose format must be used. Existing filter queries to the Cloudomation API which use indirection must be migrated to the new schema.
Ref: #2vy9pbt - Modifying authentication-related fields of webhooks require re-authentication of the user
A user needs to re-authenticate when enabling/disabling a webhook, changing the key of a webhook or configuring the webhook to require/not-require a Cloudomation login. There are dedicated REST-API endpoints to modify the `is_enabled`, `key`, and `require_login` fields. These fields cannot be changed directly by mutating the webhook record.
Ref: #2x0m3gn - Flow-API command `log` writes to execution log
Previously the `log` command was writing to the execution output_value. To write to the output_value please use `set_output` or `save(output_value=…)` instead.
Ref: #861m4cud1 - Connection execution logging moved from execution outputs to execution log
Previously the output of connection executions would contain a “log” field. Now the logs are written to the execution logs.
Ref: #861m4dmdk - Simpler input_value for webhook executions
Executions which are created as a result of a webhook call will not receive the deprecated inputs `data_json`, `data_query` and `data_cookies` any more. They were replaced by `json`, `query` and `cookies` respectively.
Ref: #26py0xj - Frontend routes specify the lookup field
Links to Cloudomation records use the format `<Cloudomation host>/<record type>?id=<record id>`. Deprecated routes in the form `<Cloudomation host>/<record type>/<record id>` work until version 8.
Ref: #2z5bwbv - Executions started by webhooks will always inherit roles from the webhook itself
Previously, webhooks which were configured to require a Cloudomation login would create executions which inherit roles from the user who called the webhook.
Ref: #861m867pu - Executions only keep the latest savepoint per default
Added a new workspace configuration option `SAVEPOINT_RETENTION` to configure when savepoints are removed. Per default only the last savepoint will be kept.
Ref: #85zrgj6tw
New Features
- Dependency visualisation
The execution screen now features a live-updating visualisation of dependencies
Ref: #2ajerh6
- Bundle manager
We’ve made it easier to load example content in the form of bundles into your Cloudomation workspace
Ref: #2517y0k

- Central logging
Logging of various components were unified into a central Workspace logging feature
Ref: #237t78t
- New example wrapper: timeout
The timeout wrapper starts a child execution and waits for it to end within a timeout. If the timeout is exceeded, the child execution and all descendants are cancelled.
Ref: #2vrrk47 - New example wrapper: rollback
The rollback wrapper monitors a child execution and triggers a rollback if an error occurs.
Ref: #2hr8kj5 - New example wrapper: validate
The validate wrapper checks if the inputs or outputs of an execution match a defined schema. The validate wrapper can also dynamically learn from inputs and outputs and adapt the schema accordingly.
Ref: #2g4v31m - Default roles bundle
As an example of various roles and permission sets we provide a “Default roles” bundle.
Ref: #275xk18 - Allow to specify encoding of SSH connector outputs
The SSH connector can be configured to parse output in encodings other than utf-8.
Ref: #2zb2zex - New connector type MSTEAMS
Create connector cards in MS teams.
Ref: #2y8vb90 - New connector type WEBDAV
Access WebDAV services.
Ref: #2yzkcmh - Helper to run batch scripts for PS connector
Run a batch script specified as a string.
Ref: #31ng5tt - Webhook calls redirect to login page when `require_login` is used and no valid session exists
If a webhook is configured to require a Cloudomation login session and none exists, the webhook will return a redirect to the login screen. After successful authentication the user will be redirected back to the webhook.
Ref: #861m8j4wm
- Possibility to specify non-standard port for REST connector in individual mode
Previously only in URL mode a non-standard port could be specified.
Ref: #2u591p4 - Method to import resources via Flow-API
Add a method to the Flow-API to allow the import of exported Cloudomation resources.
Ref: #2u55j9h - Example web app based on Cloudomation
Added an example to the documentation on how to create a small web application using Cloudomation as a backend.
Ref: #26pxunv - Implement method for webhook executions to return binary data
Cloudomation webhooks can now return binary responses by using `webhook_bytes_response` or `webhook_base64_response`
Ref: #861m9581g - Notify about problems when an invalid value is entered in a YAML field
When a YAML field contains a value which is not valid YAML, a warning and an error description is shown.
Ref: #32qwjk7 - Workspace Configuration in the Workspace
There’s now a UI screen for editing workspace settings easily.
Ref: #28z2qbc
Bug Fixes
- 2FA configuration uses the same “subject” when using the same email address in multiple Cloudomation workspaces.
In order to avoid 2FA authenticator applications overwriting existing entries, the 2FA subject will be appended with an unique ID.
Ref: #29wjfbw - Deleted resources are shown in the quick access menu
Resources in the trash will now be shown only in the “Deleted” section of the quick access menu.
Ref: #2vrm9q7 - Error when using the term “execution” or “message” in the quick search
It was impossible to use only the terms “execution” or “message” in the quick search.
Ref: #2ngdx10 - Resources of project were not deleted when project was deleted
Only the first 1000 resources of a project were deleted when the project was deleted.
Ref: #2tzjb2n - Using an underscore symbol in the advanced search mangles the search term
When using the underscore symbol in the advanced search term the first letter of the search term was cut off.
Ref: #2vk0g68 - Using space in advanced search shown as percent symbol
When using a space in the advanced search the search term was changed and spaces were shown as percent symbols.
Ref: #867728mcy - Flow-script visualisation failed to load when using a bare-except in the script
The parsing of the script did not properly handle bare-except statements.
Ref: #2vk0g68 - Cannot run flow with an incomplete static wrapper configuration attached
It was not possible to run a flow which has an incomplete wrapper configuration attached. Now incomplete wrapper configurations are ignored.
Ref: #861m964uf - Misconfigured schedules might prevent workspace from starting
Certain misconfigurations of schedules might cause a workspace unable to start. Processing of schedules is now deferred to a background task and log any misconfigurations.
Ref: #2zb86z6 - Improper handling of multiple vault secrets in the same line
Using more than one vault secret in the same line causes the first secret value to be used for all subsequent secrets too.
Ref: #32j4jxp - Unable to disable the use of TLS for the SMTP connection of the workspace
Setting `SMTP_USE_STARTTLS` to `false` resulted in the default value of the library to be used: using TLS
Ref: #32j46rc - Failed to access vault secret which contains a dot symbol in the path
The parsing of the secret path incorrectly handled dots.
Ref: #32qumj0 - Interactive wrapper aborts if email cannot be sent
If any email cannot be sent due to an error response from the SMTP server, the interactive wrapper used to abort. Now it will log the failing attempt and try to continue sending email to other recipients.
Ref: #3338em5 - Racing condition in frontend when trying to save a message form
Occasionally it was impossible to save a message form.
Ref: #85zrgb6t0 - Cleanup of deleted executions uses the wrong configuration value
Cleanup of deleted executions used the retention time configuration of deleted resources.
Ref: #861m4kkje - Cannot send email with non us-ascii characters in message body
The workspace email integration expected only us-ascii encoded messages. A new configuration parameter `SMTP_CHARSET` was added to specify any character encoding for the message body.
Ref: #861m9jg51 - Webhook cannot start execution if associated flow uses a static wrapper
The handling of static wrappers prohibited the creation of executions for webhooks.
Ref: #863fxnd0a - Flow-API methods to maintain wrappers were missing
It was not possible to create/update/delete wrappers using the Flow-API.
Ref: #861menjgy
Version 6 "Palatschinke"
2022-10-20

To the surprise of some non-Viennese, “Palatschinken” are a warm sweet dish – completely unrelated to savory “Schinken”. Flat and prepared in a pan, Palatschinken can be enjoyed with jam, ice cream or chocolate.
We are a Viennese company and we like sweets – therefore we name our releases after Viennese sweets. “Palatschinken” are a versatile dish that can be prepared in many variants. It is this scrumptious flexibility that Palaschinken and Cloudomation have in common: a delicious concept that can be adapted to your taste just as you like it.
Breaking Changes
- Executions are automatically deleted after a fixed expiry time
Per default, all executions will automatically be deleted (i.e. moved to the “deleted” section) after two weeks. From the “deleted” section, all records are automatically deleted permanently after another two weeks. These expiry times can be configured in the workspace settings. For cloud workspaces, this is currently only possible via the REST API. For self-managed on-premise workspaces, this is also possible via environment variables. Please reach out to support@cloudomation.com if you need help adjusting these settings.
Ref: #2884nj3 - Delete operation moves records to “deleted”
Per default all delete operations will move the deleted record to a “deleted” section (equivalent to a trash bin). Deleted records are read-only. Deleted records can be restored or deleted permanently. Deleted records will automatically be deleted permanently after a defined time. The default expiry time for deleted records is 2 weeks. This can be changed in the workspace configuration. In addition, per default executions and messages will automatically be moved to the deleted section after 2 weeks. This can also be changed in the workspace configuration.
Ref: #2884nj3 - Resource names must be unique across all types
Names of resources now have to be unique across all resource types. Any existing name duplication will have to be cleaned up manually before upgrading to this version or the upgrade will fail.
Ref: #2h72zy6
The following flow returns all duplicate resource names in your workspace. Please rename or remove any duplicates before upgrading:
import flow_api def handler(system: flow_api.System, this: flow_api.Execution): counts = {} for resource in system.resources(include_archived=True): resource_name, resource_type = resource.get('name', 'resource_type') counts[resource_name] = counts.get(resource_name, 0) + 1 counts = { k: v for k, v in counts.items() if v > 1 } this.log(counts=counts) return this.success('all done')
- Incoming webhook calls are counted as a connection
A call from a third-party application to a Cloudomation webhook will use a connection from the monthly quota.
Ref: #2d9ahge - Simplified usage of vault secrets in connectors
Usage of vault secrets was simplified. There is no need to explicitly link a secret to a connector. References to secrets can be specified inline. Existing connectors using vault secrets need to be migrated after the upgrade to version 6.
Ref: #2515wpq

- Workspace logging configuration moved to workspace_configuration
Several workspace configuration options – including the logging configuration – were moved to the workspace_configuration resource.
Ref: #2rhhyt7 - API responses will include metadata per default
The “plain” flag for REST API requests now defaults to “False”. Responses will per default contain metadata of the type and for list queries also the total number of records found.
Ref: #26udqc2
New Features
- Role-based access control (RBAC)
Access to Cloudomation records can be controlled by assigning roles and permissions to identities.
Ref: #1znfpa1

- Deleted Records
Per default all delete operations will move the deleted record to a “deleted” section (equivalent to a trash bin). Deleted records are read-only. Deleted records can be restored or deleted permanently. Deleted records will automatically be deleted permanently after a defined time. The default expiry time for deleted records is 2 weeks. This can be changed in the workspace configuration. In addition, per default executions and messages will automatically be moved to the deleted section after 2 weeks. This can also be changed in the workspace configuration.
Ref: #26py7ce

- Advanced search
The advanced search screen provides a unified search view for resources, executions and messages with the possibility to filter the results.
Ref: #25cphdy

- Flow script visualization
Cloudomation generates a visual representation of the control-flow implemented in your automation scripts.
Ref: #2fe02kg

- Setup and update script for on-premise workspaces
On-premise workspace installations can quickly and easily be installed and updated using the Cloudomation installer.
Ref: #1znfng5 - Mock wrapper
For testing it can be useful to simulate a third-party system. The mock wrapper will return a response without actually calling a third-party system.
Ref: #26pxvg5 - Cache wrapper
The cache wrapper will return previously fetched responses from third-party systems for a defined amount of time. This can be used to increase performance of automation scripts and to reduce load on third-party systems.
Ref: #2hcy8by - Timeout wrapper
The timeout wrapper starts a child execution and waits for it to end within a timeout. If the timeout is exceeded, the child execution and all descendants are cancelled.
Ref: #2vrrk47 - Bundles
Cloudomation provides bundles of commonly used functionality.
Ref: #2hcynfh - Unified info field for execution live monitor
The “info” column in the execution live monitor provides a rich set of relevant information combined in one view. - Improved tables
Table views now support column selection and sorting.
Ref: #2fkgjp3 - Renamed “Try” to “Run in dev mode”
Better alignment of wording.
Ref: #2hjhj2w - Live-updates of existing projects and messages
The list of projects, opened records and messages is now pushed by the backend and will update live when there are changes.
Ref: #26pxpkd - Improved documentation
Migrated to a new documentation library.
Ref: #26pxvax - Read-only resources and projects
Individual resources as well as projects can be set to read-only. Read-only resources can be used, but not modified.
Ref: #26py048 - DependencyFailedError makes failed execution available in execution object
A commonly used pattern is to query the outputs of a failed execution. The execution attribute of a DependencyFailedError provides a quick and intuitive way to access the execution which failed.
Ref: #26pxtnn - ISO3166 country-codes library available in flow api
Flows can use the library to generate country names from ISO abbreviations and the other way around.
Ref: #29ah2yv - Powershell (WinRM) connector support for Kerberos
Kerberos authentication can be used to authenticate to a WinRM service.
Ref: #2ajh619 - AWS connector can upload files
Text files, binary files or base64 strings can be uploaded to AWS APIs.
Ref: #28zuuq5
Bug Fixes
- Git integration now correctly handles empty files
Ref: #2ebgjb6 - REST connector now correctly handles binary responses
Binary responses to REST requests can now be returned as base64 encoded or stored as a Cloudomation file.
Ref: #2837hdj
Version 5 "Topfengolatsche"
2022-03-17

Topfengolatschen are a typical Viennes pastry with a moist, sweet curd filling wrapped in fine and crunchy puff pastry. A staple of Viennes coffee houses as well as bakeries, it is one of Vienna’s most common pastries.
We are a Viennese company and we like sweets – therefore we name our releases after Viennese sweets. Topfengolatschen get their special taste through the combination of moist filling constrasting with the crunchy exterior. The Cloudomation Version Topfengolatsche comes with the powerful new “wrapper” feature, which allows you to do the same with your automations: add a layer of crunchy deliciousness to your tasty flow scripts by wrapping them in retry, notification, iteractive use or custom wrappers.
Breaking Changes
- Webhook: Immediately return when idle in dev-mode.
Development-mode webhooks will now immediately return with HTTP 402 when users are idle. Previously such webhooks would block until the execution is manually resumed or switched to productive-mode.
Ref: #1znd3v2 - Flow-API: The default timeout for executions waiting for a message response is to wait forever.
Previously, if not specified, the default timeout was 60 seconds.
Ref: #26pxp5p - Connector REST: The ‘URL’ input takes precedence over the ‘hostname’ input.
Previously, if `hostname` was specified, the URL was constructed using `scheme`, `hostname`, `base_path`, and `path`. The `url` input was ignored.
Ref: #1yru5mw
New Features
- Wrappers
Wrappers can be used to “wrap” an executable resource (eg. a Flow) with a script. This can be used for notifications, retries, interactive processes, and much more.
Ref: #26pxuvt - Schema Validation
The resource type “Schema” can be used to validate and coerce data.
Ref: #26pxvg2 - UI: Filters for the execution live monitor.
To make it easier to navigate your list of past executions, search and filter options have been added to the execution live monitor.
Ref: #26pxr8m


- “Task” was renamed to “Connection”
And „Task Types“ to „Connector Types“. Usage of „task“ in flows is backwards compatible but may be removed in a future release. We recommend using „this.connect“ instead of the now deprecated „this.task“.
Ref: #26py75c - Vault Integration: It is now possible to use AppRole credentials to access secrets from the Vault.
Ref: #26pxu28 - Flow-API: New methods to skip dependencies of executions.
New methods include ignore_scheduled, ignore_dependency, ignore_lock, and ignore_response.
Ref: #26pxr21 - Flow-API: Child executions can now be created by selecting a flow by ID as well as name.
Previously, only selection by name was possible.
Ref: #26pxrha - API: The ‘/api/alive’ endpoint now also returns the version of the backend.
Ref: #26pxu30 - Connector REST: Cookies of all responses, including redirections are returned.
Ref: #26pxt51 - Connector REST: Username and password can now be specified for basic-auth.
Ref: #26pxuuc - Connector REST: Allow sending a resource body when using the ‘DELETE’ method.
Ref: #26py2wq - Connector REST: Add web-proxy support.
Ref: #23dnt1w - Workspace sync: Add web-proxy support.
Ref: #23yxyzq - Flow-API: Provide ‘save_json_content’ and ‘get_json_content’ helpers for Cloudomation files.
Ref: #23djrgv - Security: Workspaces can be configured to require all users to use two-factor authentication.
Ref: #23dnry8 - Security: A user account is locked after five unsuccessful login attempts.
Ref: #26py3nt - Security: Cloudomation sends notifications to users when security relevant changes to their accounts are made.
Notifications are sent for: change of email address, change of password, enable/disable 2FA, account recovery, account activation.
Ref: #26py3nk
Bug Fixes
- Scheduling: Deleting a schedule now also cancels all active executions of the schedule.
Ref: #26py34q - Import: The keys of existing webhooks are kept when importing them again.
Previously, importing a webhook which already existed overwrote the key with a randomly-generated key even when the import file did not contain a key.
Ref: #26py39m - An execution which waits for a message response is now notified immediately when the message is deleted.
Previously the execution waited for the message until the timeout.
Ref: #26py3y1 - UI: Bulk operation “Archive” will archive all un-archived records and leave archived records unmodified.
Previously, the archive status of all selected records was toggled.
Ref: #26py2yp - Webhook: Content-type is now not validated when the request does not contain a body.
Previously, if a request specified an unsupported content-type, the request failed even when the request did not contain a body.
Ref: #26py2ww - Security: Added strict character whitelisting to multipart request headers.
Ref: #26py3kn - Security: Improved security by explicitly whitelisting allowed calls for connector types.
Connector types now perform a strict check of allowed method calls for connector types which use `getattr`.
Ref: #26py321
Version 4 "Punschkrapferl"
2021-08-12

Punschkrapfen or Punschkrapferl (punch cake) is a classic Austrian confection of pastry with a fine rum flavor. It is a cake filled with cake crumbs, nougat chocolate, apricot jam and then soaked with rum.
We are a Viennese company and we like sweets – therefore we name our releases after Viennese sweets. “Punchkrapferl” with their pink, glossy glazing are exceptionally pretty – just like release 4.0, which comes with a shiny new user interface.
Breaking Changes
- Vault integration: reference to secrets changed
To support different vault engines, secrets now have to be specified using separate engine_path and secret_path.
Ref: CLOUD-6735, CLOUD-7031 - Flow API: system.get_own_user only returns a value when started by a user
The method system.get_own_user is deprecated and returns None if the execution was not directly started by a user. Use get_identity_created_by and get_identity_modified_by instead.
Ref: CLOUD-6478 - Messages and Forms disallow special characters in field names
Names of all fields in messages and forms must only contain alphanumeric characters or underscores.
Ref: CLOUD-6197 - Simple request form always returns data in the key string
The simple request form only allows string inputs and returns the entered value in a key named string.
Ref: CLOUD-6196 - Flow API: File.get(‘content’) always returns a Base64 string
And File.save(content=data) always expects a Base64 string
New convenience methods are available:get_text_content, save_text_content, get_bytes_content, save_bytes_content, get_base64_content, and save_base64_content.
Ref: CLOUD-5665 - Default data returned by webhooks changed
Unauthenticated webhook calls will return less data. New Flow-API methods webhook_response, webhook_html_response, and webhook_json_response are available to return any custom response.
Ref: CLOUD-5402
New Features
- New User Interface
Clearer, cleaner, easier: the new user interface lets you focus on getting things done, instead of searching for buttons.
Ref: CLOUD-5841

- Vault integration can now access all Vault engines
It is now possible to fetch secrets from any Vault engine using the Vault integration.
Ref: CLOUD-6735, CLOUD-7031 - Identity management
Cloudomation entities which access Cloudomation internally now carry their own identity. Their identity is recorded in the fields created_by and modified_by.
Ref: CLOUD-5845 - REST connector now accepts hostname, base_path and path
It is now possible to specify hostname, base_path and path separately. Optionally the url input is still available.
Ref: CLOUD-5736 - Webhooks can now return any HTTP response
A flow can set the HTTP status, headers and body of the response.
Ref: CLOUD-5402 - Simple internal mail method
A simple Flow-API method send_mail to send mail to a Cloudomation user was added.
Ref: CLOUD-1192 - Scheduling feature
Powerful and flexible scheduling was added as a native feature of Cloudomation.
Ref: CLOUD-5838 - Vault integration allows to write key-value secrets
A Cloudomation execution can write secrets to a key-value secrets engine of Vault.
Ref: CLOUD-5852 - Connection Analysis Plugin
Cloudomation provides a plugin which can be used to collect diagnostic information about a remote system with one click.
Ref: CLOUD-3430 - Plugins
Plugins extend the functionality of Cloudomation by providing content and additional actions in the user interface.
Ref: CLOUD-5716 - New connector type: SMB
Cloudomation can now access Samba/CIFS/UNC file shares.
Ref: CLOUD-5723 - New connector type: SOAP
Cloudomation can now access SOAP services.
Ref: CLOUD-5642 - Users will be locked out of Cloudomation when the log-in fails too many times
The user will immediately receive an email informing about the locked account and a link to recover the account by setting a new password.
Ref: CLOUD-6914, CLOUD-6861
Bug Fixes
- Catching a LifecycleSignal exceptions makes execution uncancellable
Using a broad except or except Exception clause rendered an execution uncancellable.
Solution: It is now impossible for an execution to catch LifecycleSignal exceptions.
Ref: CLOUD-5663 - Flow-API resource listing commands unreliable
When resources are created or deleted while an execution iterates over the items of the resource the results might be inconsistent.
Solution: It is now guaranteed that all items which exist when the listing started are returned exactly once.
Ref: CLOUD-5485 - Importing a plugin might create orphaned plugin action records
Some import structures might create duplicate and orphaned plugin action records.
Solution: The importing process was improved to avoid this.
Ref: CLOUD-7198 - Flow-API: rename a resource using save(name=’new-name’) does not work
The resource is not renamed.
Solution: Renaming resources using save now works.
Ref: CLOUD-7141 - On-premise git integration does not work with remotes using the ssh protocol
It is not possible to synchronize with a git remote using the ssh protocol.
Solution: A bug was fixed, it is now possible to use the ssh protocol in on-premise installations.
Ref: CLOUD-7040, CLOUD-6778 - Git integration does not properly encode username and password
When using the https protocol and basic authentication username and password are not properly encoded.
Solution: username and password are now properly encoded.
Ref: CLOUD-7039 - Cannot delete a flow which already was used in an execution
A ForeignKeyViolation error is shown.
Solution: Flows can be deleted after they are used. The execution loses the reference to the flow.
Ref: CLOUD-6994 - Cannot delete a connection which already was used in an execution
A ForeignKeyViolation error is shown.
Solution: Connections can be deleted after they are used. The execution loses the reference to the connection.
Ref: CLOUD-6612 - Security fixes
During our recurring external security audit several issues were encountered.
Solution: Security issues were fixed.
Ref: CLOUD-6934, CLOUD-6933, CLOUD-6932, CLOUD-6931, CLOUD-6860, CLOUD-6859 - Using a parameter of invalid type results in a stuck execution
Parameters of invalid type might create an execution which cannot be cancelled or deleted.
Solution: Internal error handling was improved to ensure executions are not stuck and provide a meaningful error message.
Ref: CLOUD-6921 - Unexpected effect of “waiting for an empty list of dependencies”
When waiting for an empty list of dependencies with a timeout, the execution is set to the status SCHEDULED.
Solution: When waiting for an empty list of dependencies, the execution now resumes immediately.
Ref: CLOUD-6920 - Git integration does not clear cache when changing the remote URL
The previously cached repository is still used after changing the URL.
Solution: when the URL is changed the cache is cleared.
Ref: CLOUD-6792 - Racing condition: Operation sometimes lost when workspace processes scale down
A “resume” operation can get lost when the workspace process ends during processing the operation.
Solution: Pending operations are now processed when an execution in state PAUSED is restored.
Ref: CLOUD-6764, CLOUD-6710 - It is not possible to select a column of type TIME with the Postgres connector type
The datatype is not properly converted for JSON.
Solution: conversion for TIME was added.
Ref: CLOUD-6754 - An execution waiting for a message to be responded is not resumed when the message form is deleted
The execution continues to wait for the message until a) a timeout occurs or b) the execution is paused and resumed.
Solution: Deleting a message will immediately notify executions waiting for it.
Ref: CLOUD-6445 - LDAP connector fails with encodings other than UTF-8
The LDAP connector assumes UTF-8 encoding and does not have an input to choose a different one.
Solution: An encoding input was added to the LDAP connector.
Ref: CLOUD-6260 - Restoring to a savepoint of an execution which currently has a timeout set does not clear the timeout
When the state which it is restored to does not expect a timeout, the execution enters a sleeping state.
Solution: Any timeout is cleared when restoring to a savepoint.
Ref: CLOUD-6186 - Cannot upload files bigger than 16 MiB
“Maximum request body size exceeded”
Solution: The maximum upload size was increased to 64 MiB per file.
Ref: CLOUD-5747 - REST API list filter on datetime field does not work
Using a filter expression on a datetime field does not produce any results.
Solution: The REST API now properly converts filter values for datetime fields.
Ref: CLOUD-2958 - REST API filter operator “like” does not work on non-string fields
Cannot partially match against non-string fields.
Solution: The REST API now converts non-string fields when using the “like” operator.
Ref: CLOUD-2656
Version 3
2021-01-20
Breaking Changes
- New resource: webhook
Webhooks are now configured using a dedicated “Webhook” resource type. Webhooks which are currently configured in a Setting must be migrated manually.
Ref: CLOUD-3366 - New input schema for Google connector
the project ID should now be specified in the “params” input
Ref: CLOUD-5292
New Features
- Visual representation of dependencies
The dependencies between executions can be visually represented in the Cloudomation UI.
Ref: CLOUD-3636

- Visual representation of flow logic
The control-structure logic of a flow can be visually represented in the Cloudomation UI.
Ref: CLOUD-3635

- Cloudomation workspace linking
It is now possible to link several active Cloudomation workspaces and synchronize executions between them.
Ref: CLOUD-3297 - Execution savepoints & restore functionality
Executions can revert to a previous state and continue running from there. This enables savepoints and restarts.
Ref: CLOUD-22 - Native git integration
Git integration is now configured using a dedicated “Git config” resource type. All Cloudomation resources can be synchronized from git.
Ref: CLOUD-69 - Native HashiCorp Vault integration
Vault integration is now configured using a dedicated “Vault config” resource type. Connections and Executions can refer to a secret path in a Vault installation. The secret is fetched at runtime and not stored in Cloudomation.
Ref: CLOUD-827 - New resource type: connection
It is possible to preconfigure connections to third-party systems and re-use them in flows.
Ref: CLOUD-2465 - New connector: MSSQL
It is now possible to connect to MSSQL databases.
Ref: CLOUD-3205 - On-premise support
Cloudomation can be deployed on-premise with or without Kubernetes.
Ref: CLOUD-105 - REST connector can auto-retry on certain HTTP codes
The REST connector will retry on HTTP 502, 503 and 504 per default. Custom codes and retry backoff and timeouts can be specified.
Ref: CLOUD-3430 - New connector: VAULT
It is now possible to connect to a HashiCorp Vault using the VAULT connector.
Ref: CLOUD-3964 - New connector: XMLRPC
It is now possible to connect to any XML-RPC service.
Ref: CLOUD-4498 - Support for running Cloudomation on Windows
Cloudomation can be deployed on Windows.
Ref: CLOUD-4530 - New connector: IMAP
It is now possible to connect to IMAP servers to search and fetch emails.
Ref: CLOUD-4581 - New connector: LDAP
It is now possible to connect to LDAP servers for authentication and to query data about a domain.
Ref: CLOUD-4586 - Support OAuth2 for bullhorn
The Oauth resource now supports authenticating against a Bullhorn installation.
Ref: CLOUD-4677
Bug Fixes
- Code in finally block of flow is not executed when using `this.end()` in the try block
The python try…catch…finally control structure can now be used by flows to run logic after an error occurs, when the flow aborts, is cancelled, or when the flow ends normally. This can be used to ensure the cleanup of dynamically created resources.
Ref: CLOUD-1956
Version 2
2020-03-26
Breaking Changes
- Changes in pricing
Pricing based on productive executions of tasks replaced the token-based pricing model. Productive task executions are called “connections”. The “Token Report” section was removed from the UI.
Ref: CLOUD-2145 - Removed “inputs” resource
The “messages” and “inputs” resources were merged into a combined resource called “messages”. The new messages resource provides additional functionality to design message forms to request a response from Cloudomation users.
Ref: CLOUD-1622

New Features
- Development mode
Tasks can be executed in development and productive mode. Task executions (connections) in development mode are free of charge.
Ref: CLOUD-2059 - User Interface redesign
The user interface was overhauled with a new color scheme and a cleaner design.
Ref: CLOUD-2991

- Editable files
Text files in the “files” resource can now be edited in the Cloudomation UI.
Ref: CLOUD-1480 - Extended upload and download functionality
Users can now upload and download flow scripts, settings, and files through the UI directly in the respective views.
Ref: CLOUD-1306, CLOUD-2330

- Standard API documentation
Cloudomation API now provides OpenAPI schema and SwaggerUI.
Ref: CLOUD-2027 - Advanced search in list views & REST API
All list views in the UI and the Cloudomation REST API now support filter expressions.
Ref: CLOUD-11 - Filter expressions in flow API
All flow-API list calls now support filter expressions.
Ref: CLOUD-1646 - Improved dependency overview
Users can now see live which dependencies a flow script is currently waiting for, as well as which dependencies it waited for in the past.
Ref: CLOUD-2044 - Display of recent executions in flow record
The flow record view now shows the last 3 executions of that flow.
Ref: CLOUD-601 - Two-factor authentication
Users can now activate two-factor authentication for logging into Cloudomation.
Ref: CLOUD-2558 - Parse pdf in flow script
Users can now parse the contents of pdf files directly in flow scripts.
Ref: CLOUD-2525 - REST multipart POST upload
The REST task type now supports multipart post uploads.
Ref: CLOUD-2524 - Powershell task type
Users can now access Windows machines via Windows Remote Management and execute Powershell scripts.
Ref: CLOUD-1851 - Kubernetes task type
Users can now manage Kubernetes directly in flow scripts. - PostgreSQL task type
Users can now access PostgreSQL databases directly from flow scripts.
Ref: CLOUD-1620 - Google API task type with Oauth2
Users can now use all Google APIs, and authenticate against Google APIs with oauth2.
Ref: CLOUD-392 - Email attachments
Users can now send emails with attachments directly from flow scripts.
Ref: CLOUD-1082 - Created/modified timestamps for all records
All resources now provide created at/created by and modified at/modified by fields.
Ref: CLOUD-815 - Protect API against denial-of-service
The load-balancer now enforces rate-limits.
Ref: CLOUD-699 - Improved pagination display for long lists
The pagination control will skip pages when there are more than 9 pages. The pagination will always show buttons for the first two pages, last two pages, two before the current page, and two after the current page.
Ref: CLOUD-733 - Changed database backend
Improved scalability by migrating to PostgreSQL as a database backend.
Ref: CLOUD-2016
Bug Fixes
- Files resource now refreshes when modified
In contrast to all other resources, the files resource did not push updates to the UI. This is now fixed.
Ref: CLOUD-1086 Files resource does not refresh when modified - Order of opened records fixed on page refresh
Previously, page refreshes changed the order of opened records. Opened records now stay sorted when the page is refreshed.
Ref: CLOUD-1085 page refresh reorders open flows - Files resource can now handle several executions requesting the same file
Previously, only one execution could request a file at any one time.
Ref: CLOUD-2612 file_futures cannot handle two executions requesting the same file at the same time - Cancelling paused executions now cancels them immediately
Previously, paused executions could only be cancelled after resuming them.
Ref: CLOUD-1429 cancel paused execution is done only after execution “resume” - Fixed sorting of numerical columns
Sorting of columns of various types was fixed (numbers, timestamp, duration, filesize).
Ref: CLOUD-136 sort number column as number (not string)
Version 1
2019-03-01