From bf32608956cd28ff0bac00a04706084e776b1773 Mon Sep 17 00:00:00 2001 From: Kevin Frantz Date: Wed, 12 Sep 2018 23:46:57 +0200 Subject: [PATCH] Updated requirements --- documentation/product/system/requirements.md | 84 ++++++++++++-------- 1 file changed, 51 insertions(+), 33 deletions(-) diff --git a/documentation/product/system/requirements.md b/documentation/product/system/requirements.md index 074ccce..d87f230 100644 --- a/documentation/product/system/requirements.md +++ b/documentation/product/system/requirements.md @@ -4,6 +4,8 @@ interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119). "entity" or "entities" are to be interpreted as [Doctrine Objects](https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/working-with-objects.html). +**Bold** words define a unique type. + # requiremts ## interfaces @@ -22,63 +24,80 @@ The application MUST provide the following functions: * login * logout -A user MUST have one node. +A **user** MUST have one **node**. -A user MUST be a source. +A **user** MUST be a **source**. ### law -A law MUST belong exclusive to a node. +A **law** MUST belong exclusive to a **node**. -A law MUST contain one of each of right types one time. +A **law** MUST contain one of each of **right** types one time. #### right -A right MUST NOT be a source. +A **right** MUST NOT be a **source**. -A right MUST belong to a law. +A **right** MUST belong to a **law**. -A right MUST be of one of the following types: +A **right** MUST be of one of the following types: * read * write * administrate #### permission -A permission MAY have a father from which it inherit. +A **permission** MAY have a father from which it inherit. -A permission MUST belong to a right. +A **permission** MUST belong to a **right**. -A permission MUST allow blacklisting. +A **permission** MUST allow blacklisting. -A permission MUST allow whitelisting. +A **permission** MUST allow whitelisting. -A permission MUST allow that it applies to child of collection. +A **permission** MUST allow that it applies to the parent **relative collection** s of the rule set. -A permission MUST allow that it applies to the parents of the collection. +A **permission** MUST allow that it applies to the child **relative collection** s of the rule set. -A permission MUST contain a collection on which the rule set applies. +A **permission** MUST contain a **collection** on which the rule set applies. ### node -A node MUST have one source. +A **node** MUST have one **source**. -A node MAY contain a parents collection. +A **node** MUST contain a parent **relative collection**. -A node MAY contain a children collection. +A **node** MUST contain a children **relative collection**. -A node MAY be a member of a collection entity. +A **node** MAY be a member of one or more **relative collection** s. -A node MUST have a law. +A **node** MAY be a member of one or more **collection** entity. -A node MUST have a history. + +A **node** MUST have a **law**. + +A **node** MUST have a **history**. + +#### relative collection + +A **relative collection** MUST belong to a **node**. + +A **relative collection** MUST contain **node** s. + +A **relative collection** MUST provide the following functions: +* get all relatives +* get specific relative +* get relatives +* get relatives of generation ### source -A source MUST have one node. +A **source** MUST have one node. -A source MUST be an entity. +A **source** MUST be an entity. + +A **source** MUST contain a file fabric. #### entities Sources MUST be on of the following entities: entity|attributes ---- | --- +--- | --- user|username,password,identity identity|names,addresses address| @@ -90,11 +109,10 @@ text|text(varchar) collection|nodes live|birthday,death -A source MUST have a file fabric. +#### file -#### files +A **file** MUST be on of the following types: -Sources MUST be on of the following files: * HTML * JSON * XML @@ -102,18 +120,18 @@ Sources MUST be on of the following files: * CSV * JPG -It SHOULD be possible to export a file to one or more other files. +It SHOULD be possible to export a **file** to one or more other **file** s. -It MUST be possible to edit a file. +It MUST be possible to edit a **file**. -IT MUST be possible to save a file. +IT MUST be possible to save a **file**. #### collection -A source MAY contain other nodes. +A **source** MAY contain other **nodes**. ### history -A history MUST log all of the actions which happen to a node. +A **history** MUST log all of the actions which happen to a **node**. -A history MUST exclusive belong to a node. +A **history** MUST exclusive belong to a **node**. -A history MUST allow to give the state of a node to a special date back. +A **history** MUST allow to give the state of a **node** of a special date back.