ICApp
5 min read
In Rapidomize platform we name workflows as Intelligent Connected App, in short
Workflows are represented as graphs (as in DAG
- Directed Acyclic Graph). In a workflow graph each vertex, referred to as a Node or Step, process your data in a stepwise manner to incrementally complete service/application logic. We name a workflow as an Intelligent Connected App, in short
First Node starts execution of your workflow service/application logic. Execution starts when an Event, such as timer ticks
or new or updated data is available for processing
occurs in the first Node. An Event can occur in a node due to a scheduled execution, api execution, retrieval of data from a service, … etc. This first Node where an event occurs, is called a Trigger
and other Nodes in the workflow are called Actions
. Actions
can process/tranform your data or connect to remote services such as SaaS apps, integrate to your ERP systems, or databases to send, receive or store data. In an Action
. However, for the time being, Trigger
Node.
How ICApps are represented?
-
having one Trigger
and oneAction
. Here, every time an Event occurs inTrigger
, theAction
gets executed. So the data from theTrigger
is fed into theAction
for consumption. -
having one Trigger
and twoActions
. Here, every time an Event occurs inTrigger
, both theActions
get executed concurrently. So the Event’s data from theTrigger
is fed simultaneously into bothActions
for consumption. -
having one Trigger
and twoActions
in sequence. Here, every time an Event occurs inTrigger
, both theAction
s get executed one after the other as per their order. TheAction1
gets executed first followed byAction2
. The Event’s data from theTrigger
is fed first into theAction1
and then toAction2
. This model allowsAction2
to consume both the data from original Event and the data received fromAction1
.
How ICApps are executed
- When an Event occurs in the
Trigger
Node, platform executesActions
Nodes connected to theTrigger
in thein a stepwise manner. - The Event data is fed from the
Trigger
into eachAction
in theso that Actions
can consume that Event’s data & do additional processing. Actions
can send, receive or transform data. They also can produce status as data. IfActions
receive data (or produce status as data), such data can also be fed back into the execution flow, leaving you with both original Event’s data and data received fromAction's
execution.can have multiple parallel flows (or branches). Each branch is executed concurrently. - If an
Action
fails, it will be automatically retried several times. If anAction
fail hard (due to permanant issue - such as config/data error or after retry) then the execution for that particular branch will be holted at that particularAction
onward.
ICApp’s data formats
- We utilize JSON format as the normalized form to represent data for ICApp execution. If the apps, services or devices you connect, produce non-JSON data, then the normalization process encodes such data into
JSON
form, so that they can be processed consistently. - Event/data received or status produced by
Actions
are available asMacros
at desiging time of the. This allows you to feed such event/data/status from one Action
to another by configuration.
Trigger
is executed. Executions depend on the type of Trigger
in your
Types of Triggers
There are three types of triggers.
-
Scheduler based
Triggers
(Cron/Timer): Allows you to configure a periodic (crons style) execution schedule for your. -
APIs or Webhooks based
Triggers
- TheseTriggers
are executed instantly when an API or Webhook is invoked. For example using HTTP POST, or MQTT message is published. -
SaaS App
Triggers
- There are two categories- Instant - These
Triggers
are executed instantly when SaaS App sends us an Event. For example when a new record is created in the SaaS App. - Scheduled - Rapidomize periodically polls and check for Event data for your SaaS App. Minimum polling interval that you can select for your ICApp depends on your account plan.
- Instant - These
Minimum polling interval per Account Plan
Free or Lite
plans - 15 minStandard
plans - 5 min- All other plans - 3 min
Authentication & Authorization for APIs or Webhooks based Triggers
Authentication
Token based API authentication are supported for the time being. Token is used in the Authorization
header for App/Device backends where HTTP headers can be specified. Otherwise token can be used with URL query parameters. However, latter method is not encouraged unless your app is frontend only i.e. static webapp.
All request must be submitted using HTTPS
to avoid compromising your token.
Authorization
If your App/Device has a separate backend, it is highly recommended to whitelist your Domain or IP address
of your servers.
Auth header
When using HTTP REST API without the SDK, for HTTP Basic authentication you need to use username
and password
separated by a single colon (":") character within a base64 encoded string in the credentials. Here you must leave the username blank
and specify the token
as password
field of the HTTP Basic Auth header.
In plain HTTP, that is
Authorization: Basic Base64 encoded :YOUR_TOKEN