Add your comments directly to the page. Include links to any relevant research, data, or feedback.

Summarize this decision in the table below. Type /date to quickly add the due date and @mention the driver, approver, contributors, and informed to keep everyone on the same page.

Status

Impact

(core+api+ui) or (core+api+ui+gui)

Driver

Alessandro Domanico 

Approver

Alessandro Domanico

Stakeholders

Antonio Verni Niccolò Pasquetto Riccardo Costa Paurav Munshi Alessandro Falezza Andrei Dodu

Informed

Ilario Gavioli

Due date

When does this decision need to be made by?

Outcome

Option 1: RBAC

Background

At the moment the user’s permission schema is realized with four tables in the DB:

This is ok for the Swing GUI, but in a REST application the workflow is slighty different

Relevant data

It would be nice to use the same DB tables, by adding new ones

Options considered

Option 1:

Option 2:

Description

RBAC

ABAC

Pros and cons

(plus) There’s a React guideline

(plus) It is already implemented

(minus) Doesn’t provide fine graned policies as ABAC

(plus) provides fine graned policies for accessing resources (see examples)

(minus) it requires a new complex architecture (see architecture)

Estimated cost

Action items

Add action items to close the loop on open questions or concerns

Outcome

Different analysis led to the same conclusion: in order to improve (in the short-term) the actual permissions system in the web application (core+api+ui) with minimum changes it will be enough to develop the proposed solution (Paurav Munshi) which introduces: