ProActive Workflows & Scheduling (PWS)

1. Introduction

The Job Planner schedules Workflows at specific points in time which are defined by Calendars.

A Workflow is scheduled by the Job Planner if it is associated to a Calendar Definition. A Calendar Definition can have several Workflows associated to it. Each of them can easily be activated and deactivated. The Workflows variables can be set with specific values when associating them to a calendar.

1.1. Glossary

The following terms are used throughout the documentation:

ProActive Workflows & Scheduling

The full distribution of ProActive for Workflows & Scheduling, it contains the ProActive Scheduler server, the REST & Web interfaces, the command line tools. It is the commercial product name.

ProActive Scheduler

Can refer to any of the following:

  • A complete set of ProActive components.

  • An archive that contains a released version of ProActive components, for example activeeon_enterprise-pca_server-OS-ARCH-VERSION.zip.

  • A set of server-side ProActive components installed and running on a Server Host.

Resource Manager

ProActive component that manages ProActive Nodes running on Compute Hosts.

Scheduler

ProActive component that accepts Jobs from users, orders the constituent Tasks according to priority and resource availability, and eventually executes them on the resources (ProActive Nodes) provided by the Resource Manager.

Please note the difference between Scheduler and ProActive Scheduler.
REST API

ProActive component that provides RESTful API for the Resource Manager, the Scheduler and the Catalog.

Resource Manager Portal

ProActive component that provides a web interface to the Resource Manager. Also called Resource Manager portal.

Scheduler Portal

ProActive component that provides a web interface to the Scheduler. Also called Scheduler portal.

Workflow Studio

ProActive component that provides a web interface for designing Workflows.

Automation Dashboard

Centralized interface for the following web portals: Workflow Execution, Catalog, Analytics, Job Planner, Service Automation, Event Orchestration and Notifications.

Analytics

Web interface and ProActive component, responsible to gather monitoring information for ProActive Scheduler, Jobs and ProActive Nodes

Job Analytics

ProActive component, part of the Analytics service, that provides an overview of executed workflows along with their input variables and results.

Job Gantt

ProActive component, part of the Analytics service, that builds a Gantt diagram of past Jobs executions.

Node Gantt

ProActive component, part of the Analytics service, that provides an overview of ProActive Nodes usage over time.

Health Dashboard

Web interface, part of the Analytics service, that displays global statistics and current state of the ProActive server.

Job Analytics portal

Web interface of the Analytics component.

Notification Service

ProActive component that allows a user or a group of users to subscribe to different types of notifications (web, email, sms or a third-party notification) when certain event(s) occur (e.g., job In-Error state, job in Finished state, scheduler in Paused state, etc.).

Notification portal

Web interface to visualize notifications generated by the Notification Service and manage subscriptions.

Notification Subscription

In Notification Service, a subscription is a per-user configuration to receive notifications for a particular type of events.

Third Party Notification

A Notification Method which executes a script when the notification is triggered.

Notification Method

Element of a Notification Subscription which defines how a user is notified (portal, email, third-party, etc.).

Notification Channel

In the Notification Service, a channel is a notification container that can be notified and displays notifications to groups of users

Service Automation

ProActive component that allows a user to easily manage any On-Demand Services (PaaS, IaaS and MaaS) with full Life-Cycle Management (create, deploy, pause, resume and terminate).

Service Automation portal

Web interface of the Service Automation.

Workflow Execution portal

Web interface, is the main portal of ProActive Workflows & Scheduling and the entry point for end-users to submit workflows manually, monitor their executions and access job outputs, results, services endpoints, etc.

Catalog

ProActive component that provides storage and versioning of Workflows and other ProActive Objects. It is also possible to query the Catalog for specific Workflows through a REST API and also with Graphql API.

Catalog portal

Web interface of the Catalog component.

Event Orchestration

ProActive component that monitors a system, according to predefined set of rules, detects complex events and then triggers user-specified actions.

Event Orchestration portal

Web interface of the Event Orchestration component.

Scheduling API

ProActive component that offers a GraphQL endpoint for getting information about a ProActive Scheduler instance.

Connector IaaS

ProActive component that enables to do CRUD operations on different infrastructures on public or private Cloud (AWS EC2, Openstack, VMWare, Kubernetes, etc).

Job Planner

ProActive component providing advanced scheduling options for Workflows.

Job Planner portal

Web interface to manage the Job Planner service.

Calendar Definition portal

Web interface, component of the Job Planner that allows to create Calendar Definitions.

Calendar Association portal

Web interface, component of the Job Planner that defines Workflows associated to Calendar Definitions.

Execution Planning portal

Web interface, component of the Job Planner that allows to see future executions per calendar.

Job Planner Gantt portal

Web interface, component of the Job Planner that allows to see past and future executions on a Gantt diagram.

Bucket

ProActive notion used with the Catalog to refer to a specific collection of ProActive Objects and in particular ProActive Workflows.

Server Host

The machine on which ProActive Scheduler is installed.

SCHEDULER_ADDRESS

The IP address of the Server Host.

ProActive Node

One ProActive Node can execute one Task at a time. This concept is often tied to the number of cores available on a Compute Host. We assume a task consumes one core (more is possible, see multi-nodes tasks), so on a 4 cores machines you might want to run 4 ProActive Nodes. One (by default) or more ProActive Nodes can be executed in a Java process on the Compute Hosts and will communicate with the ProActive Scheduler to execute tasks. We distinguish two types of ProActive Nodes:

  • Server ProActive Nodes: Nodes that are running in the same host as ProActive server;

  • Remote ProActive Nodes: Nodes that are running on machines other than ProActive Server.

Compute Host

Any machine which is meant to provide computational resources to be managed by the ProActive Scheduler. One or more ProActive Nodes need to be running on the machine for it to be managed by the ProActive Scheduler.

Examples of Compute Hosts:

Node Source

A set of ProActive Nodes deployed using the same deployment mechanism and sharing the same access policy.

Node Source Infrastructure

The configuration attached to a Node Source which defines the deployment mechanism used to deploy ProActive Nodes.

Node Source Policy

The configuration attached to a Node Source which defines the ProActive Nodes acquisition and access policies.

Scheduling Policy

The policy used by the ProActive Scheduler to determine how Jobs and Tasks are scheduled.

PROACTIVE_HOME

The path to the extracted archive of ProActive Scheduler release, either on the Server Host or on a Compute Host.

Workflow

User-defined representation of a distributed computation. Consists of the definitions of one or more Tasks and their dependencies.

Workflow Revision

ProActive concept that reflects the changes made on a Workflow during it development. Generally speaking, the term Workflow is used to refer to the latest version of a Workflow Revision.

Generic Information

Are additional information which are attached to Workflows or Tasks. See generic information.

Calendar Definition

Is a json object attached by adding it to the Generic Information of a Workflow.

Job

An instance of a Workflow submitted to the ProActive Scheduler. Sometimes also used as a synonym for Workflow.

Job Id

An integer identifier which uniquely represents a Job inside the ProActive Scheduler.

Job Icon

An icon representing the Job and displayed in portals. The Job Icon is defined by the Generic Information workflow.icon.

Task

A unit of computation handled by ProActive Scheduler. Both Workflows and Jobs are made of Tasks. A Task must define a ProActive Task Executable and can also define additional task scripts

Task Id

An integer identifier which uniquely represents a Task inside a Job ProActive Scheduler. Task ids are only unique inside a given Job.

Task Executable

The main executable definition of a ProActive Task. A Task Executable can either be a Script Task, a Java Task or a Native Task.

Script Task

A Task Executable defined as a script execution.

Java Task

A Task Executable defined as a Java class execution.

Native Task

A Task Executable defined as a native command execution.

Additional Task Scripts

A collection of scripts part of a ProActive Task definition which can be used in complement to the main Task Executable. Additional Task scripts can either be Selection Script, Fork Environment Script, Pre Script, Post Script, Control Flow Script or Cleaning Script

Selection Script

A script part of a ProActive Task definition and used to select a specific ProActive Node to execute a ProActive Task.

Fork Environment Script

A script part of a ProActive Task definition and run on the ProActive Node selected to execute the Task. Fork Environment script is used to configure the forked Java Virtual Machine process which executes the task.

Pre Script

A script part of a ProActive Task definition and run inside the forked Java Virtual Machine, before the Task Executable.

Post Script

A script part of a ProActive Task definition and run inside the forked Java Virtual Machine, after the Task Executable.

Control Flow Script

A script part of a ProActive Task definition and run inside the forked Java Virtual Machine, after the Task Executable, to determine control flow actions.

Control Flow Action

A dynamic workflow action performed after the execution of a ProActive Task. Possible control flow actions are Branch, Loop or Replicate.

Branch

A dynamic workflow action performed after the execution of a ProActive Task similar to an IF/THEN/ELSE structure.

Loop

A dynamic workflow action performed after the execution of a ProActive Task similar to a FOR structure.

Replicate

A dynamic workflow action performed after the execution of a ProActive Task similar to a PARALLEL FOR structure.

Cleaning Script

A script part of a ProActive Task definition and run after the Task Executable and before releasing the ProActive Node to the Resource Manager.

Script Bindings

Named objects which can be used inside a Script Task or inside Additional Task Scripts and which are automatically defined by the ProActive Scheduler. The type of each script binding depends on the script language used.

Task Icon

An icon representing the Task and displayed in the Studio portal. The Task Icon is defined by the Task Generic Information task.icon.

ProActive Agent

A daemon installed on a Compute Host that starts and stops ProActive Nodes according to a schedule, restarts ProActive Nodes in case of failure and enforces resource limits for the Tasks.

2. Creation of a Planning

2.1. Creating Calendar Definitions

To create new calendar definition, use the Job Planner Portal, Calendar Definition page. When clicking the "+" button, a calendar definition is created with default parameters.

calendar definition

Click on a Calendar Definition to modify it. Its fields will be visible on the main panel ("Calendar Definition"). The name of the Calendar Definition must be unique in a bucket. The cron expression can be set using the widget, or manually with the "Advanced" tab. The resulting cron expression is shown under the widget.

Changes made in the Calendar Definition panel will be automatically saved. When a calendar definition is selected, it can be removed by clicking on the trash button.

2.2. Associating workflows to Calendar Definitions

Once a workflow has been published to the Catalog, it can be planned with the Job Planner Portal, Calendar Association page. On the top of this page there is a dashboard of counters that display statistics on the status of planned jobs (total, active, deactivated and failed) to help users gain a better understanding of the operational view of the platform. As a result, when an association is added / removed / deactivated / failed, the corresponding counter is updated accordingly as shown in the screenshot below.

calendar wf association

To plan a workflow, first select a calendar from the list on the left, then click on the add button to browse the catalog for the workflow to be scheduled. When creating an association, workflow variables can be given specific values, which may differ from the default values stored in the catalog for that workflow. Thus, a single workflow can be scheduled many times for the same calendar but with different input parameters.

calendar wf association 2

The created association can be deactivated by clicking on the unlink button. This means that the workflows won’t be submitted for the next calendar occurrences, but it will still be visible on the Execution Planning and the Gantt chart. You can reactivate it with the link button. On the left panel, you can easily see the number of associated workflows to each calendar, and how many of them are activated or failed.

It is possible to display the associations as icons or as list by switching between the two buttons next to the search field.

calendar wf association 3

When selecting a calendar with associated workflows, it is possible to filter the associations within this calendar by workflow name, bucket name, username, status, project name, id, description, variables(name and value), and generic info(value and name).

calendar wf association 4

This filtering can also be applied in the Calendars section on the left. By applying this filtering, it will filter both calendars and associated workflows.

calendar wf association 5

An advanced filtering is available by clicking on the filter icon.

calendar wf association 6

Advanced filtering will update the associations to match the filters but also the calendars and the statistics on the status of planned jobs at the top of the page.

calendar wf association 7

To reset the filters, you have two options: you can click on the "Clear icon" located next to the filter pills, or you can use the "Clear button" within the advanced filtering form, as depicted in the second screenshot above

calendar wf association 8

This page can also be opened when clicking on the "plan" button on the Studio or the Scheduler Portal.

3. Execution Planning visualisation and GANTT

On the Job Planner Portal, Execution Planning page, you can see the recurrence of Calendar Definitions . You can select one or several Calendar Definitions on the left panel and associated workflows will appear on the right panel. There are 4 ways to visualize planning of the selected Calendar Definitions:

  • by workflow

  • Chronologically

  • On a standard Calendar

  • with a GANTT chart

3.1. Visualization by workflow, Chronologically or on a standard Calendar

There are 3 different tabs for the planning visualization:

  • "Sort by workflow" tab: For each workflow, a list of execution time is displayed. The combo box allows you to choose the period of the execution planning. If several workflows are associated to one Calendar Definition, they will be grouped. If a workflow is associated to several Calendar Definitions, it will appear several times. The name of the Calendar Definition is always displayed next to the workflow name, in order to know which Calendar Definition is related to the given executions.

  • "Sort chronologically" tab: All executions are displayed chronologically in a list, with for each execution, the workflow that will be executed and the corresponding Calendar Definition. The combo box allows you to choose the period of the execution planning.

  • "Calendar" tab: You can see the execution planning of the selected Calendar Definitions, by year/month/week or day. In the year and month views, you can see the number of executions in one month/day. If you click on it, you can see more details on which workflows are executed and when. In the week view, if several workflows are executed at the same time, you will only be able to see one at a time.

calendar planning

If a calendar has no association, you can still select it and see its recurrence on the Execution Planning panel. If nothing is displayed, it means the selected Calendar Definitions have no recurrence on the selected period.

3.2. GANTT Visualization of the Job Planning

You can also use the Gantt chart to visualize the executions:

calendar planning gantt

In addition to the Execution Planning panel, the Gantt chart allows you to see the past job history, the current one being executed, as well as the future ones, all in a comprehensive interactive view. In this view, you will easily see the potential difference between the Planned Submission time and the Actual Start Time of the Jobs. You will also get estimations of the Finished Time, taking into account the Actual Start Time. Moreover, you can visualize the Job that stayed PENDING for some time (in Yellow), as well as the Jobs that had issues and got KILLED, CANCELLED, or FAILED (in red).

The planned jobs (in orange) are on the row just above the actual jobs so that you can easily compare what was planned and what actually executed. Please refer to the chart legend (Open legend button) for a complete definition of the colors and patterns used in the Gantt chart.

calendar planning gantt legend

The length of the displayed planned jobs can be:

  • the expected execution time given by users in the workflow with the Generic Information: JOB_EXEC_TIME

  • if the workflow doesn’t have any JOB_EXEC_TIME Generic Information, it will be the average execution time computed from the past association executions

  • if the workflow doesn’t have any JOB_EXEC_TIME Generic Information and has never been executed with the association, it will be a default 15 minutes duration

calendar planning gantt tooltip

If a job has been PENDING before starting, depending on the scale you have selected, you can see a yellow part on the displayed job. This corresponds to the time the job was PENDING and helps to highlight a resource problem.

You can see more information jobs in the tooltips, when passing your mouse over a specific job:

  • Workflow and bucket name

  • Job ID: the ID given by the scheduler when a job has been submitted

  • Status: the status of the job when the Gantt has been generated

  • User estimated execution duration: Generic Information JOB_EXEC_TIME given by users in the workflow. This information doesn’t appear if the Generic Information is not defined in the workflow.

  • Submission time: the time when the job had been submitted by the job planner

  • Actual start time: the time when the job has started. If it has been PENDING before starting, Submission time and Actual start time will be different.

  • Actual finish time: the time when the job has finished (event if it was killed, cancelled or that it failed)

  • Full duration (wall time): the duration of the job, from the time it was submitted (Submission time) to the time it finished (Actual finish time)

  • Average execution time: the average duration of the workflow submitted with this specific calendar by the job planner

  • Minimal execution time: the minimal duration of the workflow submitted with this specific calendar by the job planner

  • Maximal execution time: the maximal duration of the workflow submitted with this specific calendar by the job planner

  • Displayed with […​]: which one of the values above was used to display the bar representing the job

Depending on the status of the job, the information won’t be the same. For example, if the job is RUNNING or STALLED, Actual finish time will be replaced by Planned finish time: the time when the job should finish, depending on when it started or how long it has been delayed.

If you select a calendar that will occur frequently (such as "every_10_min"), you might encounter troubles with big scales (such as "year"). The Gantt chart will take a long time to load and events will be too condensed to be readable. This is why for these kind of calendars, it is easier to select a smaller scale (such as "1 hour"). You can also select only the calendars you need to see before opening the Gantt chart modal, to make it load faster.

The "Save Gantt" button will take a screenshot of the visible part of the Gantt chart. Like for Gantt chart loading, it might take a while if there are too many events. You can also chose a smaller scale and select only the calendars you need.

4. Calendar Definition Syntax

Job Planner uses a Calendar Definition to know how the job will be planned over the time. As shown on the example below, this definition is composed of 4 fields:

  • a description (providing a humain-readable description of the used cron expression, when is the Calendar Definition used, etc.)

  • a specific time zone for the future scheduled jobs depending on the region (Europe/Paris, US/Eastern, etc.)

  • a cron expression to define the recurrence (every morning at 6am, etc.)

  • a set of inclusions calendars to add specific job executions which cannot be defined by a cron expression (holidays, etc.)

  • a set of exclusions calendars to exclude specific occurrences of the job executions defined in cron and inclusion definitions (maintenances operations, holidays, etc.)

calendar definition inclusions exclusions

Based on the above configuration, the following JSON object will be stored in the Catalog.

{
  "description": "Every Week Day at 9:00 AM including holidays (except Christmas and Easter holidays)",
  "cron_timezone": "Europe/Paris",
  "cron": "0 0 9 ? * MON-FRI *",
  "inclusion_calendars": [
      {
        "url": "http://localhost:8080/all_holidays_calendar.ics",
        "action": "EXECUTE_AT_START"
      }
  ],
  "exclusion_calendars": [
    {
      "url": "http://localhost:8080/christmas_holidays_calendar.ics",
      "action": "CANCEL_NEXT_EXECUTION"
    },
    {
      "url": "http://localhost:8080/easter_holidays_calendar.ics",
      "action": "CANCEL_NEXT_EXECUTION"
    }
  ]
}

4.1. Description

The description allows users who are not familiar with cron expressions to provide a humain-readable description to know when it occurs. It might also be used for other purpose, for example saying when is the Calendar Definition used.

4.2. Time Zone

The aim of the time zone is to make the user able to select a specific time for his future scheduled jobs depending on the region. By default, it is set according to the client location. The server time zone is always displayed on the top right corner. It indicates the time of the machine where ProActive instance is running. To simplify the process of selecting a time zone, the time zone dropdown now features a search field. Users can enter a value into this field to filter and narrow down the list of available options.

4.3. Cron

The aim of the cron expression is to launch the planned workflow according to the cron syntax. One can see the cron expression "0 0 9 ? * MON-FRI *", which follows the quartz cron expression syntax explained in the Quartz Cron Expression Syntax section. The cron expression in this example executes at 9:00 AM on working days (Monday to Friday).

4.4. Inclusion Calendar

The purpose of the inclusion calendar section is to use an ICS file to specify a workflow launching policies during calendar events. For instance automatically submit a worklfow at event start. Given an event, a predefined action will be applied on the workflow execution.

Inclusion action Description

EXECUTE_AT_START

The workflow will be submitted at each event start.

4.5. Exclusion Calendar

The purpose of the exclusion calendar is to use an ICS file to prevent workflows to be executed during a calendar event. Given an event, a predefined action will be applied on the workflow execution.

Exclusion action Description

CANCEL_NEXT_EXECUTION

All workflow submissions are canceled during the calendar events.

4.6. External calendar retrieved from URL

If an inclusion or exclusion calendar is not retrievable, it is blocking the Workflow submission. An inclusion or exclusion calendar can become not retrievable if it cannot be downloaded from its URL and the Job Planner cache doesn’t hold a copy.

5. Notifications

The Job Planner can send notifications to users when particular events occur. The Notification service user guide documentation is available here and its configuration in the admin guide is available here.

To start receiving notifications from the Job Planner, you must:

6. Job Planner Configuration

When an unexpected event occurs and prevent the Job Planner from submitting Workflows according to the given Calendar, multiple configurable strategies can be used to handle the issue. This configuration is done in the properties file PROACTIVE_HOME/dist/war/job-planner/WEB-INF/classes/application.properties

6.1. Planned execution(s) has been missed

This configuration controls how the Job Planner reacts when it detects that one or more executions have been missed for a given association. For instance, if the server is down for a period of time, the Job Planner won’t be able to submit Workflows during this interval. Two properties are used to define how the Job Planner reacts to this situation.

pa.on_skipped_execution.submit=true

True by default, this option tells the Job Planner to submit a new execution if it detects that previous executions have been missed. It is equivalent to say that the submission has been delayed and thus a Delayed submission executing notification will be triggered for all users subscribed to this event. If set to false, the Job Planner will not submit a new execution.

pa.on_skipped_execution.submit.windows=-1

This property, when greater than zero, allows the job planner to submit a missed execution within a given time window in milliseconds. If the job planner is unable to submit the missed execution after the configured delay, it will be skipped until the next calendar occurrence. By default, the skipped execution window is disabled : -1.

6.2. A previous planned execution is still on going

This feature enables to specify to the Job Planner what should be done when a planned execution must occur but the previous one is still executing.

The Job Planner can either remove (default) or postpone the submission.

pa.on_going_job.cancel_execution=true

With pa.on_going_job.cancel_execution=true (default), when a past submission of the same calendar association is still ongoing (job is not finished), the Job Planner will decide to skip submission until the next calendar occurrence.

In such case, a Submission canceled notification will be triggered to users subscribed to this event.

#if postponed_execution is set to true it will replace the cancel execution feature
pa.on_going_job.postponed_execution=false

If enabled pa.on_going_job.postponed_execution=true, when a past submission of the same calendar association is still ongoing (job is not finished), the Job Planner will decide to postpone submission until the previous job terminates its execution.

In such case we can expect two notifications:

  • A Submission postponed notification to inform that an execution has been postponed.

  • A Delayed submission executing to inform that the previous delayed execution is now executing.

6.3. Last finished planned job has issues

This feature defines the behavior of the Job Planner when the previous execution for a planned workflow has errors. By default, it will continue to submit according to the calendar.

pa.on_faulty_jobs_association.put_in_error=false

If set to true, the Calendar Association will be set to FAILED and Job Planner will stop submitting until the user manually reactivates the association.

In such case, an Association failed notification will be triggered to users subscribed to this event.

6.4. Job planner could not retrieve a resource from the catalog

If a workflow or a calendar cannot be retrieved by the Job Planner from the catalog, the association will be set to FAILED and will require manual reactivation for the submissions to restart.

In such case, an Association failed notification will be triggered to users subscribed to this event.

6.5. Job Planner RBAC management

RBAC, or Role Based Access Control, represents a control model for a system in which each access decision is based on the role to which the user is associated. In the Job-Planner, RBAC operations are only performed by Job-Planner admins or associations' owners. RBAC operations can be distinguished in two types:

  1. Managing an authorization for an association

  2. Managing an authorization for all associations owned by a specific user

Both types of authorizations can be assigned for either a specific user (using her/his username) or a user group (that contains multiple users). Only one authorization can be assigned to a username or a user group for each type of RBAC operation. However, the user can eventually have multiple authorizations due to a mix of both types of RBAC operations. Furthermore, the created authorizations can be modified or deleted.

An authorization gives the specified user(s) some access permission to the specific association(s). We provide four authorization levels:

  • read: The user or user group can only view the association(s), along with its parameters and visualize its planning in the gantt chart.

  • write: The user or user group have, in addition to the read right, the privilege to deactivate or reactivate an association and modify its parameters.

  • admin: The user or user group have, in addition to the write rights, the ability to remove the association. Additionally, this level allow users to create, modify or delete authorization rules.

  • noAccess: The association will be hidden from the user or user group. Any operation on this association is forbidden.

6.5.1. Manage the authorizations of a single association

To manage an association’s authorizations in the Job-Planner Calendar Associations portal, first select the association, then click on the Open authorisations view above the associations view as shown in the figure below:

Association authorisations button

A dedicated authorization view will open. The figure below shows an example:

Association authorisations view

The authorization view consists in two parts:

  • The buttons on top allow to refresh the authorizations list, add a new authorization and delete an existing one.

  • The list below shows the authorization rules that are assigned to the selected association.

Each authorization has the following properties:

  • Association ID

  • Grantee (required): the username or the user group name

  • Grantee Type: group or user

  • Access Type: read, write, admin or noAccess

  • Creator: The user who created the authorization

  • Priority: This attribute is only used for access associated with a group. For example, if the user belongs to 2 groups and each group has a different type of access, the system will choose the access with the highest priority for the user. For an authorization assigned to a user, the value is 0, since it will be ignored when calculating the resulting access type.

To create a new authorization, the admin just needs to click on the Add authorisation button button. Then the view of creating an authorization (as shown in the figure below) will be popped up. The admin needs to fill in the authorization attributes (as presented above), then click the "Add authorization" button. The figure below shows an example of an authorization which gives the user named Olivia write access to association 1.

Create association authorisation

Once the admin has created an authorization, it will appear in the authorizations list in the authorization view, as shown in the figure below.

List of authorisations

Once the first authorization has been created, the admin will see a "shield" icon next to the association to which the authorization was created. The figure below shows an example.

Admin association shield

Moreover, when the user, who is benefiting from the authorization, log in to his/her account, he/she will be able to visualize an icon indicating the rights he/she possess over the association(s). These icons are the following:

Association authorrizations icons
  • The first icon indicates that the user has read rights over the association(s).

  • The second icon indicates that the user has write rights over the association(s).

  • The third icon indicates that authorizations rules are defined on the association and the user has admin rights over the association.

The figure below shows how the user visualize the authorization icon next to the association.

User association icon

To delete an authorization, the admin simply needs to select it from the list and click on the Delete authorisation button button. The figure below shows an example:

Delete association authorisation

Once the admin deletes the authorization, it will be removed from the list as shown in the figure below:

Association authorisations view

To update an authorization, the admin needs to click on the drop-down list of the access type or the priority level and select a new value. The figure below shows an example:

Update association authorisation

Once the selection is made the authorization will be updated as shown in the figure below:

Updated association authorisation

6.5.2. Manage authorizations for all associations owned by the user

To manage authorization for all associations owned by a specific user, the process is nearly identical. The user can manage the global authorizations level of every association he/she created by clicking on the Create association owner button button above the calendars view, as shown in the figure below:

Association owner button

A dedicated authorization view will open. The figure below shows an example:

Association owner view

Each authorization has the same attributes as an association authorization, however, the association ID is replaced by Owner. This attribute is used to give access to all associations created by the specified username.

To create a new associations' owner authorization, the user just needs to click on the "+" button. Then the view of creating authorization (as shown in the figure below) will appear. The user needs to fill in the authorization attributes (as presented above), then click the "Add authorization" button. The figure below shows an example of an authorization which gives the user named Joseph read access to all of Tom 's associations.

Create association owner autthorisation

Once the user has created an authorization, it will appear in the authorization view, as shown in the figure below:

List of owner authorisations

The remaining actions such as edit and delete are identical to the association authorization actions.

6.6. Authorization calculation rules

Since each user might belong to multiple user groups, a user could have multiple authorizations over an association or a group of them due to his/her username or user group(s) authorizations. In such case, the resulting access type will be calculated as follows:

  • If a username-assigned authorization for the association exists, it is prioritized and its access type will be the user’s resulting rights over the association.

  • If the previous case does not exist, but the association owner has created a global username-assigned authorization targeting the current-user, then this authorization will take the priority.

  • If multiple user-groups association authorizations exist for the selected association, and none of the previous cases apply, the resulting user’s rights over the association will be the access type of the group authorization that has the highest priority. If two authorizations have the same priority level, the resulting rights will be based on the following access type order (from the most prioritized access type to the least): admin → write → read → noAccess.

  • If none of the previous case apply and multiple user-groups assigned associations' owner authorizations exist, the resulting user’s rights over the association will be the access type of the group authorization that has the highest priority. The same apply as before if two authorizations have the same priority level.

  • If none of the above apply, the default authorization for a user who is not the creator of a job-planner association is noAccess.

Activeeon SAS, © 2007-2019. All Rights Reserved.

For more information, please contact contact@activeeon.com.