Skip to main content

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 comme id, 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
  • Rôles :

    • Les rôles sont représentés par les nœuds Role. Ils contiennent des propriétés telles que id, name, et distributions.
    • Les rôles peuvent être liés aux applications via les actions qu'ils autorisent.
  • 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.
  • 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).
  • 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.

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.

External Application

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

Exemple d'application

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.