Application
Une application est une entité définie par un nœud Application dans la base de données Neo4j. Elle est conceptualisée comme une ressource logique utilisée au sein d'une structure (école, organisation ou autre) pour fournir des services ou des fonctionnalités.
Liens avec les différentes entités
-
Applications :
- Les nœuds
Application
représentent les applications disponibles. Ils contiennent des propriétés commeid
,name
,displayName
,icon
,appType
, etc. - Une application peut être qualifiée d'externe si elle porte le label
External
.
Une application a un type qui peut être :
- WORKFLOW
- RESOURCE
- AUTHENTICATED
- Les nœuds
-
Rôles :
- Les rôles sont représentés par les nœuds
Role
. Ils contiennent des propriétés telles queid
,name
, etdistributions
. - Les rôles peuvent être liés aux applications via les actions qu'ils autorisent.
- Les rôles sont représentés par les nœuds
-
Actions :
- Les actions (
Action
) sont les fonctionnalités ou permissions que les rôles peuvent autoriser. - Les relations entre les rôles et les actions sont modélisées avec la relation
AUTHORIZE
.
- Les actions (
-
Groupes :
- Les groupes sont représentés par les nœuds
Group
et peuvent dépendre d'une structure (DEPENDS
) ou autoriser des rôles (AUTHORIZED
).
- Les groupes sont représentés par les nœuds
-
Structures :
- Une
Structure
peut regrouper des applications, des rôles et des groupes. Les relations permettent de limiter l'accès ou les associations en fonction d'une structure spécifique.
- Une
Application externe
Une application peut être externe. C'est dans ce cas une application qui n'est pas un module Open ENT mais que nous souhaitons proposer dans les choix de l'utilisateur.
Requêtes
Liste des applications par nom
MATCH (n:Application)-[:PROVIDE]->(a)
WHERE n.name = $name
RETURN a.name AS name, a.displayName AS displayName, a.type AS type
Liste des applications pour une structure
MATCH (n:Application) WHERE NOT(HAS(n.structureId)) OR n.structureId = $structureId RETURN n.id as id, n.displayName as displayName, n.name as name, n.icon as icon, 'External' IN labels(n) as isExternal, n.levelsOfEducation as levelsOfEducation, n.appType as appType
Liste des rôles associés à une structure
MATCH (n:Role) WHERE NOT(HAS(n.structureId)) OR n.structureId = $structureId RETURN n.id as id, n.name as name ORDER BY name ASC
Application externe
Une application dans OpenENT v3 doit être définies dans KeyCloak. Dans OpenENT v2, le nom de l'application correspond au clientId et le secret au clientSecret.