mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-01-10 06:27:24 +01:00
120 lines
2.4 KiB
Markdown
120 lines
2.4 KiB
Markdown
|
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
|
||
|
“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be
|
||
|
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).
|
||
|
|
||
|
# requiremts
|
||
|
|
||
|
## interfaces
|
||
|
The application MUST contain the following interfaces:
|
||
|
* HTML
|
||
|
* JSON
|
||
|
|
||
|
## actors
|
||
|
|
||
|
### user
|
||
|
The application MUST provide the following functions:
|
||
|
* delete user
|
||
|
* register user
|
||
|
* modify user
|
||
|
* create user (child)
|
||
|
* login
|
||
|
* logout
|
||
|
|
||
|
A user MUST have one node.
|
||
|
|
||
|
A user MUST be a source.
|
||
|
|
||
|
### law
|
||
|
A law MUST belong exclusive to a node.
|
||
|
|
||
|
A law MUST contain one of each of right types one time.
|
||
|
|
||
|
#### right
|
||
|
A right MUST NOT be a source.
|
||
|
|
||
|
A right MUST belong to a law.
|
||
|
|
||
|
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 MUST belong to a right.
|
||
|
|
||
|
A permission MUST allow blacklisting.
|
||
|
|
||
|
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 parents of the collection.
|
||
|
|
||
|
A permission MUST contain a collection on which the rule set applies.
|
||
|
|
||
|
### node
|
||
|
A node MUST have one source.
|
||
|
|
||
|
A node MAY contain a parents collection.
|
||
|
|
||
|
A node MAY contain a children collection.
|
||
|
|
||
|
A node MAY be a member of a collection entity.
|
||
|
|
||
|
A node MUST have a law.
|
||
|
|
||
|
A node MUST have a history.
|
||
|
|
||
|
### source
|
||
|
A source MUST have one node.
|
||
|
|
||
|
A source MUST be an entity.
|
||
|
|
||
|
#### entities
|
||
|
Sources MUST be on of the following entities:
|
||
|
|
||
|
|entity|attributes|
|
||
|
--- | --- | ---
|
||
|
|user|username,password,identity|
|
||
|
|identity|names,addresses|
|
||
|
|address||
|
||
|
|date|datetime|
|
||
|
|name|string|
|
||
|
|birthday|date
|
||
|
|death|date
|
||
|
|text|varchar
|
||
|
|collection|nodes
|
||
|
|live|birthday,death
|
||
|
|
||
|
A source MUST have a file fabric.
|
||
|
|
||
|
#### files
|
||
|
|
||
|
Sources MUST be on of the following files:
|
||
|
* HTML
|
||
|
* JSON
|
||
|
* XML
|
||
|
* TEXT
|
||
|
* CSV
|
||
|
* JPG
|
||
|
|
||
|
It SHOULD be possible to export a file to one or more other files.
|
||
|
|
||
|
It MUST be possible to edit a file.
|
||
|
|
||
|
IT MUST be possible to save a file.
|
||
|
|
||
|
#### collection
|
||
|
A source MAY contain other nodes.
|
||
|
|
||
|
### history
|
||
|
A history MUST log all of the actions which happen 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.
|