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
New connector: LDAPThe 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
Meet Your New Platform Engineering Tool
Streamline operations, optimize collaboration, and deliver faster. Let’s discuss how our platform can help you overcome challenges and hit your goals.