Product Updates in 2020 Q2
Product Updates Archive for 2020 Q2 period.
2020-06-04 - v20.23
We are happy to announce that our Executions and Logs pages graduated from the beta stage to a full production. Thank you for all early adopters who provided the valuable feedback. With your help we improved these pages immensely.
Topics UI
Introducing UI for publish-subscribe (pub-sub) messaging pattern to compliment the pub-sub API endpoints already introduced last month. Using the new Topics UI you can create and modify the topics. The UI is accessible from the main navigation > Integrate sub-section.
We have a dedicated page you can dive in to read more and start using the Topics feature in your integration patterns.
To help implement pub-sub pattern we have a dedicated pub-sub component which we recommend to use to along with the Topics feature.
Flow Message Queue UI
You have heard from us talking about how many messages were processed and how many still in the messaging queue. This information was always hidden from you under the wraps. Not anymore!
We introduce the new feature called Flow Message Queue. You can now see number of messages in the queue for each of your flow steps. To access navigate to Executions, select any active execution and look for the Flow Queues menu link along with the Download Logs and View Flow links like in the picture below.
Click on link to navigate to a special page showing the current queue of this flow to see how many messages are in each flow-step of your integration flow.
You can access the Flow Queues page from the Flow Designer and Flow-card menu of general Flows page. However, the Flow Queues are only available for actively running flows.
You can also access the queue information using the /v2/stats/queues/FLOW_ID
API endpoint. More information is available from the
API reference documentation.
Java Sailor Update
We are releasing a new version of JAVA Sailor 3.1.0
which support a dynamic
flow control. More information is available from the io.elastic:sailor-jvm
documentation pages.
Secrets Management Service for OAuth
Introducing a new centralised service to handle the secrets and OAuth credentials. We aim to replace the credential handling mechanism in the whole platform.
Please Note: The service is still in early implementation and experimentation stage and it is not implemented on any currently released components.
This new service aims to solve the problem of outdated and invalid secrets/tokens. Here is the general approach for future component developments:
- Refreshing secrets/tokens are handled by the platform.
- Component can not and MUST not try to refresh token by itself, it should ask platform to do so.
- Component MUST ask platform for a valid value of secret every time it needs it. Caching is not recommended.
- When using this new service you MUST NOT use
this.emit('updateKeys')
mechanism. - The
this.emit('updateKeys')
mechanism would still continue to co-exist until the deprecation ofCredentials
mechanism. It is still OK to use it for refreshing theCredentials
. - You MUST NOT use both
Secrets
andCredentials
mechanisms at the same time in the same component.
Improvements
Mapper fixed version
The mapper component now adheres the general approach of fixed components. The version of the component is fixed when you save the flow draft. To use a newer version of the mapper component in your integration flow you must create a new draft of your flow and publish it again.
Node.js Sailor 2.6.10 release
The new Node.js Sailor 2.6.10
is available. It adds support for the dynamic
flow control in the return promise
interface in the Node.js Sailor. An update
of components using this interface and hoping to dynamically control the flow
messaging queues is highly recommended.
Fixed Bugs
- Fixes the problem when the dynamic metadata reloaded often during the flow-step configuration.
- Fixes the problem when after series of random navigation through the flow-step design an error Something technically Wrong would appear making the flow in-recoverable.
- Addresses the problem when by navigating forward and backwards without saving, in the flow-step design an error Something technically Wrong would appear making the flow in-recoverable.
- Fixes the problem when the error retry in the executions page kept showing after a successful retry.
Components
MongoDB Component
Introducing a new integration component for MongoDB interaction. Only action
functions are available. This means component can not be used in the first step of
integration flows. The component uses the new Node.js Sailor 2.6.7
.
- NEW - introducing action
Aggregate
which calculates the aggregate values for the data in a collection or a view. - NEW - introducing action
Bulk Write
which takes an array of write operations and executes each of them. - NEW - introducing action
Delete By ID
which deletes document by ID. - NEW - introducing action
Delete By Unique Criteria
which deletes document by a Unique Criteria. - NEW - introducing action
Lookup By ID
which performs a lookup of document by ID. - NEW - introducing action
Lookup By Unique Criteria
which performs lookup (at most 1) Document By Unique Criteria. - NEW - introducing action
Lookup Plural
which performs lookup of many documents by a criteria. - NEW - introducing action
Upsert By ID
which upserts document by ID. - NEW - introducing action
Update Many
which updates documents in a collection. - NEW - introducing action
Upsert By Unique Criteria
which upserts document by a Unique Criteria. - IMPROVED - added the help-links to all the descriptions of the component.
Marketo component
- NEW - introducing action
Lookup Object (at most 1)
which performs lookup of one object. - NEW - introducing action
Delete Object By Unique Criteria
which deletes an object by Unique Criteria. - UPDATED - updated Sailor version to
2.6.7
to support dynamic flow control.
Filter component
- UPDATED - updated Sailor version to
2.6.7
to support dynamic flow control. - IMPROVED - added JSONata expression when error is thrown by assertion for better debugging.
- IMPROVED - added the incoming message when filter condition is true.
- FIXED - the bug causing the message Cannot read property
info
of undefined.
Google Spreadsheet component
- IMPROVED - dynamic created fields based on sheets schema are now used in
Create/Add spreadsheet row
action.
SFTP component
- NEW - introducing action
Move File on SFTP
. - UPDATED - updated Sailor version to
2.6.7
to support dynamic flow control. - FIXED - the bug when the
Lookup Files
action tries to download many files.
AWS S3 component
- NEW - introducing action
Upsert S3 Object (aka File) by Key (aka ID/Filename)
. - UPDATED - updated Sailor version to
2.6.7
to support dynamic flow control.
Pub-Sub component
- IMPROVED - added the help-links to all the descriptions of the component.
- UPDATED - updated Sailor version to
2.6.7
to support dynamic flow control. - FIXED - the issue when by changing the topic had no real effect.
- FIXED - the problem with the dynamic select model and dynamic metadata.
- FIXED - the issue when the Property ID was shown instead of the name in the metadata dropdown for trigger and action.
Updated Sailor version to 2.6.7
For the following list of components only the Sailor version was updated to 2.6.7 to support dynamic flow control:
- AMQP component
- AWS SNS component
- Batch component
- Code component
- CSV component
- Email component
- Google PubSub component
- Jsonata component
- Mapper
- MsSQL component
- ODATA component
- PostgreSQL component
- Request-reply component
- REST API component
- Router component
- Simple Storage component (a.k.a Key-Value component)
- SOAP component
- Splitter component
- Utility component
- Webhook component
- XML component
- ZIP/UnZIP component
2020-05-07 - v20.19
Array-to-Array Mapping
You can now map array fields with the graphical UI using “New Mapping Experience”. Mapping process is similar to a mapping of an object field, with few restrictions:
- You can map properties from only one array throughout array’s children fields
- JSONata mode is disabled for an array’s children fields
Dynamic Flow Control (Sailor version: 2.6.7
required)
When you retry erroneous messages, they get marked with retry=true
header, so
lookout doesn’t write data record.
Also, now sailor retries publishing messages to next step infinitely, for those cases when the next queue is overloaded. Retries will happen with exponential back-off. For example, if it starts with retry in 5 seconds, the next will be in 10, then 20, then 40, then 80 seconds, etc. The maximum delay is configurable with an environment variable. By default, there is no limit to retries.
The following variables control the retry process:
AMQP_PUBLISH_RETRY_DELAY
: 100 msAMQP_PUBLISH_RETRY_ATTEMPTS
: InfinityAMQP_PUBLISH_MAX_RETRY_DELAY:
5 minutes.
Pub-Sub API
You can now use pub-sub topics via the new API endpoints:
POST /v2/workspaces/:id/topics
- creates a topic in the Workspace, requiresWORKSPACE.TOPIC.CREATE
permissionGET /v2/workspaces/:id/topics
- lists topics in the Workspace, requiresWORKSPACE.TOPIC.GET
permissionGET /v2/workspaces/:id/topics/:id
- get topic in the Workspace, requiresWORKSPACE.TOPIC.GET
permissionPATCH /v2/workspaces/:id/topics/:id
- update topic in the Workspace, requiresWORKSPACE.TOPIC.EDIT
permissionDELETE /v2/workspaces/:id/topics/:id
- delete topic in the Workspace, requiresWORKSPACE.TOPIC.DELETE
permission.
Details can be found here.
Improvements
Better Component Versions
You will now have the de-facto latest Component version set as default. Previously,
the default Component version was Latest
, meaning the Platform checked for the
latest version. Now there is no automatic check, and the latest version at the
point of Flow creation is selected. If you need to set the current version, you
should manually select it from the list.
10,000 Log Records Limit Set
The confusing “next” button on the last page of log records list is now disabled. If you hover the cursor on it, you’ll see the new tool-tip that suggests you reduce your results number with filters.
Large Samples Visualization
Improvements:
- Mapper
select items
filtering code moved to async worker - Mapper
select items
is now an async operation (async computed in ember) - Loader is displayed when filtering takes too long
Fixed Bugs
- Removed the strange “no notification” message on gitreceiver logs
- Removed the console error that appeared when you change Component version
- Letters
wiper-flow-suspended-due-to-queue-overflow
are sent again - Webhooks now don’t insist on Content-Type for webhook POST actions when there is no body in the POST request
Components
Utility Component
- NEW - introducing action
Convert Between Timezones
CSV Component
- NEW - introducing action
write_attachment_from_json
- NEW - introducing action
write_attachment_from_array
- IMPROVED - added the Steward URL to the body of outgoing message
XML Component
- IMPROVED - revised
JSON to XML
action
AppDirect Component
- FIXED - “Credentials verification fails when Authenticate and then Verify, but not if just Verify” bug
Splitter Component
- NEW - introducing action
Reassemble
Marketo Component
- NEW - introducing action
Describe Object
- NEW - introducing action
List Custom Objects
- NEW - introducing action
Lookup Objects
- NEW - introducing action
Bulk Import
- NEW - introducing action
Bulk Export
- NEW - introducing action
Lookup Activities
- NEW - introducing action
Upsert Objects By Unique Criteria
- NEW - introducing trigger
Get New Activities Polling
- NEW - introducing trigger
Get New Leads Polling
Soap Component Java
- IMPROVED - Basic-AUTH for reaching out WSDL
- FIXED - sorting order for configuration fields
Pub-sub Component
This is a new component with the following functions:
- NEW - introducing trigger
Subscriber
with a dynamically configurable field for topics. This trigger receives the data of a certain type from a topic as an input to start a new execution of the flow. - NEW - introducing action
Publisher
with a dynamically configurable field for topics. This action published an event of a certain type to topic to be received by loosely coupled subscribers.
2020-04-09 - v20.15
Help Links for Components
You can put help links on different stages of integration Flow creation:
-
When creating and verifying new Credentials
-
When selecting trigger or action of the Component
-
When receiving Credentials errors
-
When configuring Component fields and mapping, etc.
These links will lead to corresponding documents. You can find information on how to configure help links here.
A Tenant admin may configure his Tenant with a component_docs_base_url
attribute on the /v2/tenants
API-endpoint. This configuration parameter is optional and if set, can be used in combination with relative URLs in component.json to construct a URL of the Component documentation. The value of help.link
property may be an absolute or relative URL. If the URL is absolute, frontend navigates to that URL. If the URL is relative, the component_docs_base_url
comes into play.
NOTE:
component_docs_base_url
is for relative paths to component documents. If this URL isdocs.example.com/components
and component.json contains the following field"documentation": "/examplecomponent"
, on a frontend we will usedocs.example.com/components/examplecomponent
as a link to the corresponding documentation.attributes.component_docs_base_url
in Tenant model is an optional parameter. If this property is not set, relative URLs won’t be displayed. If set, please make sure/getting-started/credential.html
page exists.
New API docs can be found here.
Configuring Credentials Help Messages
Update corresponding component.json by adding help: {description: ..., link: ...}
property into:
credentials
credentials.fields[field]
Configuring Function Help Messages
Update corresponding component.json by adding help: {description: ..., link: ...}
property into:
actions[action]
triggers[trigger]
Configuring Mapper Fields Help Popup
You will now see help icons in the new mapper. They will appear if the particular property in the metadata provides enough information:
-
If the property has examples field, we display the following text in the hep: “Here are some example values accepted by this field:
X, Y, Z
”,X, Y, Z
being the elements in the examples array. -
If the property is optional and has the default field, we display the text: “This field is optional. If you don’t provide any value it will be filled with
X
”, ifdefault=X
-
If the property is of
enum
type, we display the following text in the help: “This field accepts a fixed set of values only. Following values are allowed: X, Y, Z” where X, Y, Z are the values of theenum
-
A combination of the abovementioned cases is allowed
Update corresponding component.json by adding "required": true/false
, “examples": ["the array of examples values"]
, "enum": ["the array of enum values"]
, "default": "this will displayed in optional field if you don’t provide any value there"
properties into metadata.in.properties.[property]
.
emailTemplates
Added new email_templates
attribute to /v2/tenants
endpoint:
{
templateName: true | false
}
The attribute allows you to enable and disable various automatic Platform emails. Related new API docs can be found here and here.
Edit Message Before Retrying Error
If an error occurs due to bad inputs or a misconfiguration, you can now edit those inputs and submit the record for re-processing at the point of failure. This way you don’t have to process the entire message from the beginning of the Flow:
Static CSS Classes
You can now create your own JSS styles based on static CSS classes.
$getPassthrough() function
We introduced the $getPassthrough()
functionality, which allows you to avoid hardcoded elasticio
mentions while refering the passthrough step. Now you can use $getPassthrough().step_1.body.value
instead of elasticio.step_1.body.value
.
NOTE: The following Components must be be updated:
Improvements
Link Log with Associated Thread
You can go from the record on the Logs Page directly to the associated thread now. In case the log record contains thread_id
, you will see “3 dots” icon, which appears on hover. Click it and it presents a link that opens the execution you need:
Threads Page Performance
Improved performance of getThread
. Instead of doing 25
requests it does 1
that takes about 30% of the time of listThreads
. Thus, the overall performance is 3
times better.
Raw Number Values
Number values can now be entered into number fields without conversion into string. The same principle works with Boolean values in Boolean fields.
Fixed bugs
-
If not specified during Tenant creation,
css_enabled
attribute will befalse
by default. -
Fixed Continue button in the new mapper for Salesforce Component.
Components
Filter Component
- IMPROVED - added support for JSONata function
$getPassthrough()
- IMPROVED - added support for JSONata function
$getFlowVariables()
JSONata Transform Component
- IMPROVED - added support for JSONata function
$getPassthrough()
- IMPROVED - added support for JSONata function
$getFlowVariables()
Microsoft Dynamics NAV 2015 Component
- NEW - introducing action
Delete Object
Microsoft OneDrive Component
Introducing new Component for Microsoft OneDrive.
- NEW - introducing action
Create Folder
- NEW - introducing action
Upload/Replace File
- NEW - introducing action
Download/Lookup File By Path
- NEW - introducing action
Delete File
- NEW - introducing trigger
Get New And Updated Files
REST API Component
- IMPROVED - added support for JSONata function
$getPassthrough()
- IMPROVED - added support for JSONata function
$getFlowVariables()
- FIXED - “No error and no response generated in case of unsupported Content Type” bug
- FIXED -
refresh_token
now always checked during OAuth2 Credentials verification
Router Component
- IMPROVED - added support for JSONata function
$getPassthrough()
- IMPROVED - added support for JSONata function
$getFlowVariables()
Splitter Component
- IMPROVED - added support for JSONata function
$getPassthrough()
- IMPROVED - added support for JSONata function
$getFlowVariables()
Salesforce Component
- IMPROVED -
Get New and Updated Objects
Polling Trigger now supports parent related object (__r
)
XML component
- IMPROVED - logs improvement for
XML to JSNON
action
Dropbox Component
Introducing new Component for Dropbox.
- NEW - introducing action
Create Folder
- NEW - introducing action
Get File By Provided Path
- NEW - introducing action
Delete File By Provided Path
- NEW - introducing action
Upsert (Create Or Replace) File By Provided Path
PostgreSQL Component
- IMPROVED - split
Connection String
into different fields for convenience - IMPROVED - removed sensitive data from logs