forked from AOT-Technologies/forms-flow-ai-doc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmultitenancy.html
61 lines (59 loc) · 3.82 KB
/
multitenancy.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<article class="docs-article">
<section class="docs-section" id="taskvariables">
<div>
<h1>Multi Tenancy</h1>
<hr>
<p>Formsflow.ai supports multi tenancy where one installation can be served for multiple tenants with
logical separation of data.</p>
<h3>Tenant isolation</h3>
<p>Formsflow.ai logically separates tenant data and authorization which enables</p>
<ul>
<li>Application URL : Each tenant gets their own tenant specific URL to access the application.</li>
<li>Authorization : Each tenant data is secured using tenant specific authentication token.
A user can be members of multiple tenants with different roles and user is authenticated based on
the tenant URL
and token with access to only that tenant is issued. Each tenant can have different sets of roles
than the default formsflow roles.</li>
<li>Forms : Each tenant can create and publish their own forms.</li>
<li>BPM : Each tenant can create and publish their own workflows. Workflows can be deployed which can be
shared across all tenants on the platform. Please <a
href="#camunda-bpm-tenant-based-task-assignment">see</a> for tenant based task assignment.</li>
<li>Analytics : Each tenant gets their own analytics organization to create dashboards.</li>
</ul>
</p>
<p>
If you are interested in premium features please submit a request <a
href="https://formsflow.ai/about-us/#contact-us" target="_blank">here</a>.
</p>
</section>
<section class="docs-section" id="taskvariables">
<div>
<h1 id="camunda-bpm-tenant-based-task-assignment">BPM: Tenant-based task
assignment</h1>
<hr>
<p>In a tenant-based environment, the user task is assigned to the tenant's
reviewer/approver group. An example process is provided below that demonstrates how
a user task is assigned using a process variable.</p>
<h3 id="example-process">Example process</h3>
<p>The candidateGroups attribute in the user task is associated to a process variable
using {$candidateGroup}. This allows us to let the task assignment depend on the
output of variable "candidateGroup".</p>
<p><img src="./assets/images/user-task.png" alt="User-Task - Snapshot" height="500" width="1000"></p><br>
<p>Inline script is added to the sequence flow before the user task to determine
candidate group.</p>
<p><img src="./assets/images/task-assignment-script.png" alt="User-Task-assignment - Snapshot" height="500"
width="1000">
</p><br>
<p>The script uses the process variable "tenantKey" to determine the candidate
group.</p>
<pre><code class="hljs"> tenantKey = execution.getVariable(<span class="hljs-string">"tenantKey"</span>);
<span class="hljs-keyword"> if</span>(tenantKey){
<span class="hljs-attr"> candidateGroup</span> = tenantKey + <span class="hljs-string">"-formsflow-reviewer"</span>;
}
<span class="hljs-keyword"> else</span>{
<span class="hljs-attr"> candidateGroup</span> = <span class="hljs-string">"formsflow/formsflow-reviewer"</span>;
}
execution.setVariable(<span class="hljs-string">"candidateGroup"</span>, candidateGroup);
</code></pre>
</div>
<script>hljs.initHighlighting();</script>