Objets de base
A la base de tous les objets décrits dans le modèle conceptuel, on trouve des objets abstraits, c'est-à-dire qui ne peuvent pas être directement utilisés dans le logiciel pour créer et gérer des instances des entités, mais qui servent de socle commun pour appuyer le modèle d'autres entités concrètes.
Dans Maarch Digital Flow, les données sont gérées dans des référentiels d'entités qui contiennent l'ensemble des entités d'un type système.
flowchart LR
A[Référentiel d'entités] -->|Contient| B[Entité]
Le référentiel d'entités est la représentation abstraite d'un ensemble constitué d'une collection d'entités d'un même type. Ce modèle est applicable à toutes les sources de données, qu'elles soient structurées ou non, gérées par le système ou externes. Certains jeux de données vont permettre des fonctions de listage, de lecture ou d'ajout d'entités en fonction des accès possibles depuis l'application.
L'entité est la représentation abstraite d'une entité discrète accessible indépendamment de tout support, qui sert de base pour l'ensemble des entités concrètes du système. Il n'est pas possible de préciser son modèle, la présence de propriétés particulières ou son comportement.
On peut faire le parallèle avec une base de données: le système est le moteur qui fournit la connexion et les fonctions d'accès aux données, le référentiel est une table (ou une vue) et les entités sont les lignes de cette table.
| Diagramme détaillé des objets de base |
|---|
![]() |
Référentiel d'entités du système
Un référentiel d'entité du système est constitué de l'ensemble des entités d'un même type gérées par le système, qui permet d'y accéder pour les différentes opérations.
Propriétés du référentiel
Nom du référentiel
Le nom du référentiel d'entité est unique dans le système, il permet de l'identifier et d'y faire référence sans ambiguïté aussi bien dans le système qu'à l'extérieur. Le plus souvent le nom du référentiel d'entité est le pluriel du type des objets qu'il contient. On trouvera par exemple un référentiel des documents, des utilisateurs ou encore des dossiers. Le tableau ci-dessous présente quelques référentiels :
| Nom du référentiel | Type des entités | Description |
|---|---|---|
| entries | entry | Dossiers métiers, affaires, formulaires |
| binaryContents | binaryContent | Contenus numériques, documents numériques |
| relationships | relationship | Relations entre les entités |
| users | user | Utilisateurs |
| groups | group | Groupes d'agents |
| folders | folder | Dossiers de classement, classeurs |
| policies | policy | Politiques de gestion |
| entryTypes | entryType | Types de dossiers définis par l'utilisateur |
| binaryContentTypes | binaryContentType | Types de contenus numériques définis par l'utilisateur |
Entité
C'est une entité discrète accessible indépendamment de tout support. C'est une notion abstraite qui sert de base pour l'ensemble des objets du système. Elle comporte un type, un identifiant système ainsi que des propriétés gérées par le système. Elle autorise des opérations de lecture et de gestion telles que des modifications et suppressions.
Propriétés système l'entité
Ces propriétés sont gérées par le système : leur valeur est fournie et maintenue à jour lorsque nécessaire, elles sont accessibles à l'utilisateur uniquement en lecture seule.
Type d'entité
Le type de l'entité indique la nature de l'information qu'il représente à un niveau conceptuel. Le type est défini par l'utilisateur au moment de la création de l'entité dans le système. Il n'est pas modifiable après son attribution (immuable).
id : Identifiant système
L'identifiant système permet de faire référence sans ambiguïté à un objet parmi l'ensemble des entités d'un référentiel d'entité.
Il est attribué automatiquement par le système à la création de l'objet et il est immuable.
Il est réputé être universellement unique - on utilise alors l'acronyme uuid pour universally unique identifier.
createdBy : Utilisateur créateur
L'auteur de la création est l'identification de l'agent qui a réalisé l'opération initiale d'entrée de l'information dans le système. Il est défini par le système lors de la création et non modifiable après enregistrement. Il ne doit pas être confondu avec l'auteur de l'information contenue, qui peut être externe au système.
createdAt : Date de création
La date de création de l'entité contient l'horodatage associé à l'entrée de l'information dans le système. Elle est définie par le système lors de la création et non modifiable après enregistrement. Elle ne doit pas être confondue avec la date de production de l'information contenue, qui peut être antérieure.
updatedBy : Dernier utilisateur modificateur
L'auteur de la dernière modification contient l'identification de l'agent qui a réalisé la dernière opération de mise à jour de l'information dans le système. Il est défini par le système lors des accès en mise à jour sur l'entité considérée.
updatedAt : Date de la dernière modification
La date de la dernière modification contient l'horodatage associé à la dernière mise à jour de l'information dans le système. Elle est définie par le système lors des accès en mise à jour sur l'entité considérée.
Propriétés liées au contrôle des accès
Ces propriétés permettent au système de gérer les accès des utilisateurs à l'entité de manière discrétionnaire, c'est-à-dire avec une portée restreinte à l'objet considéré.
| Diagramme des propriétés des objets à contrôle d'accès discrétionnaire |
|---|
![]() |
D'autres mécanismes de sécurité permettent de gérer les accès par ensemble et sous-ensembles. Il est par exemple possible d'allouer les droits de lecture à l'ensemble des documents numériques de l'application, ou uniquement les documents numériques d'un certain type. Ces mécanismes sont abordés dans une autre partie de la présente documentation.
owner : Propriétaire
Toute entité gérée dans le système possède un propriétaire. Ceci permet de toujours disposer d'un agent habilité à réaliser des opérations de base telles que la découverte, nécessaire pour connaître l'existence de l'objet, la lecture, nécessaire pour prendre connaissance de l'information, la modification, nécessaire pour gérer l'objet et notamment réaliser un transfert de propriété ou autoriser d'autres accès, et la destruction. Le propriétaire est défini par le système à la création de l'entité, avec par défaut l'identification de l'agent qui réalise l'opération. Il est ensuite modifiable par les agents possédant les accès adéquats.
ACL : Liste de contrôle d'accès
C'est une liste de liens entre des agents identifiés et des habilitations d'accès à l'entité ou à un ensemble d'entités, tels que la lecture, la modification et la suppression.
Chaque entrée comporte les propriétés suivantes :
agentId: L'identification de l'agent auquel est attribué l'accès. Il est défini par l'agent qui ajoute l'accès.access: La nature de l'accès accordé. Elle est définie par l'agent qui ajoute l'accès.grantedAt: La date d'attribution de l'accès. Il est définie par le système et est immuable.grantedBy: L'agent qui a attribué l'accès. Il est défini par le système.expiresAt: La date de révocation, éventuellement prévue pour mettre fin à l'accès. Elle est définie par l'agent qui ajoute l'accès.
Propriétés liées au cycle de vie
Ces données sont liées à la gestion du cycle de vie par le système. Toutes les entités gérées par le système partagent le même cycle de vie, qui se compose de 4 étapes et 5 événements de transition.
| Diagramme des propriétés des objets à cycle de vie |
|---|
![]() |
Le rôle du système est de garantir le respect des règles du métier, aussi bien celles implémentées que celles définies par l'utilisateur, tout au long du cycle de vie de l'information. Ces règles définissent les actions possibles en fonction de l'étape du cycle, ainsi que les conditions requises pour permettre les transitions entre les différents états.
status : Statut
Le statut identifie la grande étape de cycle de vie dans laquelle se trouve l'entité, parmi 4 phases:
* workingCopy : copie de travail du contenu, état par défaut
* current : courant, abtenu après validation et publication du contenu
* preserved : non-courant conservé après clôture
* residual : résiduel conservé après suppression
Pour en apprendre plus sur le cycle de vie des contenus d'information dnas Maarch Digital Flow, consultez la page dédiée.
publishedAt : Date de publication
La date de publication de l'entité contient l'horodatage associé à la validation et de scellement de l'information dans le système. Elle est définie par le système lors de l'opération.
publishedBy : Auteur de la publication
L'auteur de la publication est l'identification de l'agent qui a réalisé l'opération dans le système. Il est défini par le système lors de la publication.
closedAt : Date de clôture
La date de clôture de l'entité contient l'horodatage associé à l'opération correspondante dans le système. Elle est définie par le système lors de l'opération.
closedBy : Auteur de la clôture
L'auteur de la clôture est l'identification de l'agent qui a réalisé l'opération dans le système. Il est défini par le système lors de la clôture.
deletedAt : Date de suppression
La date de suppression de l'entité contient l'horodatage associé à l'opération correspondante dans le système. Elle est définie par le système lors de l'opération.
deletedBy : Auteur de la suppression
L'auteur de la suppression est l'identification de l'agent qui a réalisé l'opération dans le système. Il est défini par le système lors de la suppression.


