Product Update - v22.48

Details of the product update v22.48 from 1st of December 2022.

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.

Embed recipe activation form.

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:

  1. Create a user - (taenantAdmin API call).
  2. Add the newly created user as a contract member - (tenantAdmin API call).
  3. Add the same user as a workspace member - (tenantAdmin API call).
  4. Revise user to allow necessary access required to activate a recipe.
  5. 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.
  6. Generate the access URL for your user.
  7. Create and host embed page.
  8. 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 and DELETE calls to edit or delete the flows will now return 409 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 the GLOBAL.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 the TENANT scope,
  • All recipe deployments in the installation if they have GLOBAL.RECIPE_DEPLOYMENT.GET permission in the GLOBAL 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 the TENANT scope,
  • All recipe deployments in the installation if they have GLOBAL.RECIPE_DEPLOYMENT.SYNC permission in the GLOBAL 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 the TENANT scope,
  • All recipe deployments in the installation if they have GLOBAL.RECIPE_DEPLOYMENT.DELETE permission in the GLOBAL 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 to 2.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 to 2.7.1

ZIP component 1.2.0

  • ADDED Maester support