Product Updates in 2022 Q4
Product Updates Archive for 2022 Q4 period.
2022-12-29 - v22.52
Additing tenant roles
We have changed the name of permission tenants.tenant.edit_roles
to global.tenant.edit_roles
.
Now PATCH /v2/tenants/:tenantId/roles
allows to create a new role with permissions in a tenant scope. We have also updated API endpoint PATCH /v2/tenants/{tenant_id}/members/{user_id}
which allows granting any role from the tenant’s scope to any user. The permission tenants.user.generate_one_time_token
can be granted to any user inside the tenant.
Abbility to read recipies by SERVICE_ACCOUNT
Our goal is to make easy-to-use recipes. In a recent release 22.48, we have already begun some improvements in this direction. Now we are introducing a new permissionGLOBAL.RECIPE.GET
to view all recipes based on the permission’s scope and provide the new permission to SERVICE_ACCOUNT
with the Global level. This is the first step in the development of a new feature, in which the new role of the superuser will allow you to review and approve recipes, as well as to change their level up to tenant or global if necessary.
Please Note: All updates related to the API are detailed here.
OEM Related
Scalable Redis Cluster
We are working on the Redis Cluster improvements. We made Redis Cluster scalable according to the load increases. Please follow the instruction below to deploy the cluster:
- Deploy the secrets chart first.
- Deploy bitnami/redis-cluster chart. Ask support for the config.
- Wait until all 3 instances of redis-cluster are up and running.
- Make a regular deployment.
New secrets config variable:
REDIS_CLUSTER_PASSWORD
- the password of redis cluster instances.
Fixed bugs
- FIXED bug, where additional fields can’t be saved in faceless credentials.
- FIXED bug, where the step number was duplicated. Now you can change the name of the step, but the step number will remain displayed.
- FIXED bug with red Router branch indicator. Now if you have unconfigured Router branch its panel has a red border:
Components
NetSuite component 3.0.0
- Breaking change - User credentials authentication mechanism has been removed. As it is no more supported by Netsuite SOAP API
- UPDATED API version to
2022.1
- UPDATED the
Sailor
library version to3.4.0
- ADDED
required
dependencies to component.json fields - ADDED Circle.ci job to build and push images to Docker Hub
SAP ByDesign component 2.1.4
- UPDATED the
Sailor
library version to3.4.0
Google Cloud Storage component 1.0.0
- ADDED
Make Raw Request
Action - ADDED
Upload file
Action - ADDED
Download file
Action - ADDED
Delete file
Action
Router component 1.0.1
- UPDATED jsonata-moment library to 1.1.5 in order to support Jsonata 1.8.6
- UPDATED the
Sailor
library version to2.7.1
2022-12-15 - v22.50
Updated Recipe Concept & Views
In this release we introduce a new dedicated page for recipe management accessible through the new Recipes menu item available under the Integrate section. Recipes enable Users to develop an integration once and then deploy that recipe multiple times for any of their clients or end-users. These recipes can contain single or collections of flows, from which end users can select the flows they need.
All recipes available to a User are now listed in the Recipes page. The format and style is deliberately similar to the Flows page so it is familiar to Users.
We display the number of deployments of these recipes on each Recipe Card. Each deployment can include more than one integration flows and these we display when you click Show Deployments on the Recipe Card.
You can deploy running integration flows from any listed Recipe by hitting the Activate button.
Please note: you can delete the recipe deployment by selecting the cog menu on the recipe card. However, you can only delete recipe deployments with
workspace
visibility and only when you haveAdmin
role in the workspace. You can not delete public recipes (those withTenant
orGlobal
visibility).
Click on a recipe title on the card to open a dedicated recipe section which includes Recipe and Deployments pages accessible through the tabs on the top. The Recipe page contains information about the recipe. From here you can press Activate to create a flow based on this recipe.
Please Note: we changed the access URL of an individual recipe page. Now it contains the contract ID and has the following form:
{base_url}/c/{contract_id}/w/{workspace_id}/recipes/{recipe_id}
If you have used this recipe before to create a flow, the Deployments page will list them all.
From here you can:
- Open the flows if you have the required workspace access.
- Upgrade the flow using a new recipe version if available.
- Delete the recipe deployment - severing the connection between flow and recipe.
- Delete With Flows - deleting the recipe deployment with the associated flows (one recipe deployment can contain more than one flow).
Improvements
New flow designer graph UI
We continue to improve our flow designer Page. Now when you create or change a flow you will notice a new, more uniform, design with components of the flow displayed inside squares instead of circles.
We have also updated designer page graph - now it uses react portal.
Components
Plytix component 1.2.0
- ADDED
Product Bulk
action
Shopify Admin component 1.6.6
- UPDATED the
Sailor
library version to2.7.1
MongoDB component 1.5.10
- UPDATED the
Sailor
library version to2.7.1
IPaas Core component 1.5.1
- UPDATED the
Sailor
library version to2.7.1
Amazon Selling Partner component 1.0.0
and 1.1.0
- ADDED
Execute operation
Action - ADDED
Make Raw Request
Action
CSV component 3.1.6
- UPDATED the
Sailor
library version to2.7.1
AWS SQS component 1.1.0
- ADDED
Receive Messages Long Polling
trigger
Shopware 6 component 1.1.2
- FIXED schema to support both namings e.g.
product_flat
andProduct
- UPDATED Limited number of (infinitely in general) nesting depth of ‘parent’ and ‘children’ objects for Products metadata to 1
- UPDATED the
Sailor
library version to2.7.1
2022-12-01 - v22.48
OEM Feature
Information in this section is intended for our customers who use the OEM version of the elastic.io platform.
White-labeled recipe management
In this release we introduce the recipe management feature for creating and deploying the integration solutions at scale. You can now embed the entire solution in your platform, App or website. Your clients can now access and deploy flows without leaving your platform or site - they simply select an integration that you list and enter their credentials.
Please note that you will need to trigger the necessary API calls to the platform so that the User, workspace, etc. are created and so that the flow is deployed.
You can see an embedded form for recipe activation on a screenshot above. The following instruction show how to create a similar page for your case.
Please Note: You must have
tenantAdmin
role to succeed.
Initial setup
The whole idea of recipe activation form embedding is to make the process as easy as possible for your user. You take over the entire process of user creation and registration and manage it behind the scene. Your user gets one URL to a form to fill-in the necessary fields and activate the integration solution.
Here are the steps:
- Create a user - (
taenantAdmin
API call). - Add the newly created user as a contract member - (
tenantAdmin
API call). - Add the same user as a workspace member - (
tenantAdmin
API call). - Revise user to allow necessary access required to activate a recipe.
- Create a onetime token for the user - (API call). Not ready for the
tenantAdmin
role holder. Contact support for help. We expect to deliver this option by the next release. - Generate the access URL for your user.
- Create and host embed page.
- Confirmation for successful activation.
Generate access URL
The access URL to a form must have the following format:
https://[platform_domain]/embedded-recipe?recipeId=[recipeId]&oneTimeToken=[oneTimeToken]&contractId=[contractId]
platform_domain
(required). Your platform domain.recipeId
(required). Recipe ID which you want the user to activate.oneTimeToken
(required). Onetime token you generated earlier (step 5) to authenticate your user in the platform.contractId
(optional). Contract ID in which the user will activate the recipe. If you omit this parameter then the platform will use the first available contract where user is registered.
Embed page
You can create an embed page following the example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Embedded Credentials Demo</title>
<style>html, body, iframe { height: 85%; width: 90%; margin: 0;}</style>
</head>
<body>
<iframe src="https://[platform_domain]/embedded-recipe?recipeId=[recipeId]&oneTimeToken=[oneTimeToken]&contractId=[contractId]" />
</body>
</html>
Here we use the generated URL in iframe
. You can shape and style your page
according to your needs.
Successful activation
When a user successfully activates a recipe, the platform sends a message with a Recipe Deployment ID to the parent window.
{
"action": "eio:embedded-recipe:activate-success",
"data": {
"recipeDeploymentId": "RECIPE_DEPLOYMENT_ID"
}
}
Recipe deployment API
To manage recipes in scale and enable easy management we introduced the recipe deployment new endpoints to our API. Along with this change, we updated related API endpoints for consistency.
Recipe deployment permissions
To manage recipe deployments for each tenant, we introduced GLOBAL.RECIPE_DEPLOYMENT.GET
,
GLOBAL.RECIPE_DEPLOYMENT.SYNC
and GLOBAL.RECIPE_DEPLOYMENT.DELETE
permissions.
Please Note: The
PATCH
andDELETE
calls to edit or delete the flows will now return409
Conflict (Can not delete flow, because it has recipe deployment relation) when the flow is part of a recipe deployment. You must first sever the connection between them. Check theGLOBAL.RECIPE_DEPLOYMENT.DELETE
section to learn how.
GLOBAL.RECIPE_DEPLOYMENT.GET
With this permission you can retrieve the recipe deployments using the
?include=recipe-deployments
parameter in the GET
/v2/recipes
HTTP call.
The answer will include the connected RecipeDeployment
in a response.
The standard user can fetch only recipe deployments:
- That are deployed into a workspace where they are member,
- All recipe deployments in their tenant if they have
GLOBAL.RECIPE_DEPLOYMENT.GET
permission in theTENANT
scope, - All recipe deployments in the installation if they have
GLOBAL.RECIPE_DEPLOYMENT.GET
permission in theGLOBAL
scope.
GLOBAL.RECIPE_DEPLOYMENT.SYNC
This permission allows to stop the flows connected to a certain recipe, update it
to the latest version of the recipe and start it again. By default the tenantAdmin
role has this permission.
With this permission you can make POST
HTTP request to /v2/recipe-deployments/:id/sync
to stop the flow, update and restart it.
The standard user can sync recipe deployments:
- That are deployed into the workspace where they are member and the flow edit permission is granted,
- All recipe deployments in their tenant if they have
GLOBAL.RECIPE_DEPLOYMENT.SYNC
permission in theTENANT
scope, - All recipe deployments in the installation if they have
GLOBAL.RECIPE_DEPLOYMENT.SYNC
permission in theGLOBAL
scope.
GLOBAL.RECIPE_DEPLOYMENT.DELETE
This permission allows to delete the recipe deployment but not the flows created from it. It effectively cuts the connection between recipe deployment and the flow.
With this permission you can make an HTTP DELETE
call to the /v2/recipe-deployments/:id
endpoint to delete the recipe deployment only.
The standard user can delete the recipe deployment:
- That are deployed into the workspace where they are member and the flow edit permission is granted,
- All recipe deployments in their tenant if they have
GLOBAL.RECIPE_DEPLOYMENT.DELETE
permission in theTENANT
scope, - All recipe deployments in the installation if they have
GLOBAL.RECIPE_DEPLOYMENT.DELETE
permission in theGLOBAL
scope.
Components
Plytix component 1.0.0
and 1.1.0
- ADDED
Get New and Updated Objects Polling
trigger - ADDED
Lookup Object (at most one)
action - ADDED
Lookup Objects (plural)
action - ADDED
Upsert Object
action - ADDED
Delete Object
action - ADDED
Make Raw Request
action - ADDED
Link or Unbind object
action
Bigcommerce component 3.0.0
- REMOVED
Create a Payment
action. Note this is a breaking change
Batch component 2.0.6
- UPDATED the
Sailor
library version to2.7.1
- FIXED the vulnerabilities in dependencies
ZohoCRM component 1.3.6
- FIXED bug in the verify credentials process
Id-linking component 1.2.0
- ADDED
Delete Object
action - UPDATED the
Sailor
library version to2.7.1
ZIP component 1.2.0
- ADDED Maester support
2022-11-17 - v22.46
Mapper can now map objects in hierarchies
The mapper User Interface (UI) now supports the mapping of objects, including their sub-structures.
You can map object sub-structures like before by clicking on the arrow right beside the component icon. You can also click on the name of the component to map the entire object. This is also true for objects inside the objects. Click on the object name to include it in the mapping.
Updates
Component builder helper 2.0.1
We released the new version of the component builder helper, 2.0.1
. It can now
process custom Dockerfiles.
OEM Related
Information in this section is intended for our customers who use the OEM version of the elastic.io platform.
Quota management API
The API documentation now includes all endpoints for the quota management in your installation.
Please Note: You need quota management or service user credentials to use these endpoints in your installation.
Fixed bugs
- FIXED bug, where the step configuration data were copied between branches during the switching.
- FIXED bug, where you could not set additional fields in the
HTTPAuthView
credentials object. - FIXED bug, where the UI would fail during the GraphQL component credential creation.
Components
Hubspot component 1.5.6
- FIXED output metadata for
Upsert
action
Lookup Table component 1.1.7
- UPDATED the Node.js
Sailor
library version to2.7.0
- ADDED async to a process action
- FIXED the bug when input values were not stringified before being processed.
Salesforce component v2 2.4.2
- IMPROVED error handling in the
Lookup Objects
action
JDBC component 2.5.6
- UPDATED the Java
Sailor
library version to3.5.0
- UPDATED limitations description about the custom timezone behavior
Microsoft dynamics business central component 1.1.0
- ADDED
Get New and Updated Objects Polling
trigger - ADDED
Lookup Objects (plural)
action - ADDED
Lookup Object (at most one)
action - ADDED
Upsert Object
action - ADDED
Delete Object
action
Amazon SQS component 1.0.0
- ADDED
Delete Message
action - ADDED
Receive Message
action - ADDED
Send Message
action
2022-11-03 - v22.44
COMING SOON - Improved Recipes and Embedding
In this release we make available a number of new API features that will soon enable an upgrade of our Recipes functionality and embedding credential addition steps in 3rd party platforms.
These new features will be limited to Tenant users and will enable:
- More scalable ways to create integration Recipes
- More automation of recipe deployment
- Simple updates of recipes and deployment of changes to flows deployed from that recipe
- Addition of credentials to deployed flows
Together these features will make it much easier for our clients to offer and automatically deploy integration solutions without their clients leaving their platform, App or website. Interested to learn more or you would like a demonstration? Contact our sales department.
Improvements
Component repositories: New design & improved functionality
In this release we update the UI of the Component repository pages. When you navigate to Developer Teams on the side menu and then select a Component repository you will notice the new design.
From each component repository page you can navigate to the environment variables page where you can add new, change, or delete the existing environment variables for the component:
HELM3
We constantly improve different aspects of HELM3 deployments in collaboration with our partners. This section lists updates and improvements included in this release.
RabbitMQ HAProxy in kubernetes cluster
The HAProxy for RabbitMQ cluster will now run as a separate service in the platform kubernetes cluster instead of as a single virtual machine. This enables high-availability and scalability by running the service in a replica set.
To run the HAProxy for the RabbitMQ cluster, change the following parameters in the HELM3 charts:
- Update all HELM3 variables pointing to HAProxy VM to
haproxy-service.platform.svc.cluster.local
. - Introduce a new HELM3 configuration file
haproxy.yaml
with the following content:haproxy: rabbitmqNodeIps: rabbitmq: "10.28.0.4" rabbitmq-2: "10.28.0.65"
Where
rabbitmq
andrabbitmq-2
parameters must match the RabbitMQ cluster VM names and values to their VM IP addresses.
Please Note: You must first deploy the HAProxy chart before the platform version deployment.
Fixed bugs
- Fixed the user interface bug when flow status changes were not reflected on the flows page.
- Addressed the problem when removing the user from the workspace or contract would take more than 4 minutes. Now the process takes less than a second.
- Fixed the bug when API would return
5xx
error when you use a space in the repository name while creating a component repository. Now the UI will disable the save button and show en error messageRepository name contains invalid characters. Letters, digits, - and _ are allowed only
- Addressed the bug when identity keys page (SSH Keys) would not load when a key was previously saved without a title. The title is now a required field.
- You must provide an SSH Key title to save the key.
- The system will also attempt to use the user title if present in the SSH Key body.
Components
Simple-trigger component 1.1.7
- UPDATED the
Sailor
library version to2.7.1
WebHook component 1.2.12
- UPDATED the
Sailor
library version to2.7.1
Splitter component 1.4.3
- UPDATED the
Sailor
library version to2.7.1
Email component 1.2.3
- UPDATED the
Sailor
library version to2.7.1
JSONata Transformation component 1.0.12
- UPDATED the
Sailor
library version to2.7.1
- UPDATED the
component-commons
library version to3.1.2
to support JSONata1.8.6
version
2022-10-20 - v22.42
Developer Team Pages: New design & improved functionality
We continue to update our User Interface to improve ease of use. This time it is the UI of every Developer Team that is updated. When you navigate to Development > Developer Teams > your team you will notice new uniform design:
Along with the new design we added a functionality to delete member of the developer team using the User Interface. Previously this functionality was only available via an API call.
Please Note: You can delete all members from a Developer Team. This will not delete the repositories, however, you will not see the developer team in your list of developer teams. Your membership to any existing developer team can be restored by the tenant Administration (
tenantAdmin
role holder).
Swagger based API documentation
We change the way our platform API documentation is rendered. From now on it will be presented using OpenAPI Swagger specifications. The address to the API documentation is the same: https://api.elastic.io/docs/v2.
Updates
NodeJs Sailor version 2.7.1
A new version of NodeJs Sailor library 2.7.1
is released. When you use this
version of library in your NodeJs components, it will use maester-client v4
instead of object-storage-client
.
JSONata version 1.8.6
supported
We upgraded the jsonata-moment
library (1.1.5
) to support JSONata version 1.8.6
.
This core dependency is used in our User Interface and the components to evaluate JSONata
expressions.
OEM Related
Information in this section is intended for our customers who use the OEM version of the elastic.io platform.
White-labeling API docs
With new implementation of the Swagger based API documentation, we introduce a new configuration for the tenant records which you can use to change the look and content of the API documentation for each tenant in your environment:
"api_docs_config": {
"top_bar_background_color": "red",
"custom_css_url": "http://host.com/custom.css",
"theme": "outline",
"hidden_tags": ["vpn agents", "sshkeys"]
}
top_bar_background_color
- set the value of this parameter to any CSS color to change the top bar panel’s background colourcustom_css_url
- set the value to an URL for custom CSS file to be included in the API documentationtheme
- Name of the known Swagger theme to use for rendering (allowed values are:classic
,feeling-blue
,flattop
,material
,monokai
,muted
,newspaper
,outline
)hidden_tags
- Array of tags to hide in the API documentation. In this context the tags are sections in the API documentation like VPN Agents or SSH-keys.
Components
HJSON component 1.0.4
- UPDATED to use
sailor-nodejs
version2.7.0
- FIXED errors when receiving attachment from the Maester
Akeneo component 1.0.0
- ADDED
Make Raw Request
Action - ADDED
Lookup Object By ID
Action - ADDED
Lookup Objects (plural)
Action - ADDED
Delete Object By ID
Action - ADDED
Upsert Object
Action - ADDED
Get New and Updated Objects Polling
Trigger
Splitter component 1.4.2
- UPDATED to use
sailor-nodejs
version2.7.0
- FIXED the vulnerabilities in dependencies
- FIXED message processing
- IMPROVED the Maximum Delay timer in Re-assembled message action by reducing it to 20 sec
Salesforce-v2 component 2.4.1
- FIXED loop bug in the
Get Updated Objects Polling
trigger - UPDATED to use
sailor-nodejs
version2.7.0
2022-10-06 - v22.40
Developer Teams: New design & improved functionality
We continue to update our User Interface to improve ease of use. This time it is the UI surrounding Developer Teams that is updated. When you navigate to Development > Developer Teams you will notice new uniform design:
Along with the new design we added a functionality to delete the developer team using the User Interface. Previously this functionality was only available via an API call.
Please Note: You can only delete a Developer Team when it contains no respoitories. The platform will give an error if you attempt to delete it when there is even one repository.
Updates
Java Sailor version 3.5.0
A new version of Java Sailor library 3.5.0
is released. This update adds
support for Java 17.
HELM3
We constantly improve different aspects of HELM3 deployments in collaboration with our partners. This section lists updates and improvements included in this release.
Helm chart: Cron job resources defined
Platform has number of cron jobs performing different functions. With this release we added kubernetes resource definition for:
- gendry
- wiper conrjobs
- git-receiver cronjobs
- maester cronjobs
- lookout cornjobs
OEM Related
Information in this section is intended for our customers who use the OEM version of the elastic.io platform.
Force pull/push for externally built docker components
In this update of our automatic component delivery
feature we introduce a new API endpoint to force pull of a component version from external
docker registry: POST
/v2/components/:component_id/docker-pull/:version
. This
endpoint forces pull of a component version from external docker registry. The
component must belong to one of the user’s team which supports the docker registry.
Executions details loading and Clickhouse
To streamline the proper data replication between Clickhouse cluster and reduce internal efforts to constantly update the Clickhouse-mongo dictionaries with every update of Clickhouse version we performed the following changes:
- The User Interface (
frontend
) will load flow and user names directly from the MongoDB, instead of thebran
service. - Removed the Clickhouse-mongo dictionaries and all related resources. Our OEM customers can delete mongo dictionary from clickhouse instances and mongodb proxy from HA-Proxy.
Please Note: as a regular user of the platform you don’t need to do anything. You will not notice any difference. This change is for customer who run a version of of the platform on their premises.
Components
Shopware 6 component 1.1.1
- FIXED sample retrieving in some actions
- IMPROVED Error handling in
Get New and Updated Objects Polling
Trigger
Microsoft Dynamics CRM v2 component 1.1.0
- ADDED
Get New and Updated Objects
Polling Trigger - ADDED
Lookup Objects (plural)
Action - ADDED
Lookup Object (at most one)
Action - ADDED
Delete Object By ID
Action - ADDED
Extract Raw System Metadata
Action
REST API v2 component 2.0.14
- UPDATED to use
sailor-nodejs
version2.6.29
Microsoft Dynamics CRM
- COMPONENT HAS BEEN DEPRECATED
Updates to multiple components
- UPDATED the sailor library to version
2.6.29
- FIXED the vulnerabilities in dependencies
- ADDED new headers
User-Agent
andx-request-id
For the following components:
- Utility component
1.5.2
- Docuware component
1.1.2
- AWS S3 component
1.5.2
- Microsoft OneDrive component
1.0.6
- XERO component
1.2.1
- PayPal component
1.3.2
- Zoho CRM component
1.3.5