# CORE SYSTEM NORM

## Idea
This ***Core System Norm*** defines interfaces and structures which software **MUST** use to comply to this software and to avoid data and software redundancies.

## Wording
The key words **“MUST”**, **“MUST NOT”**, **“REQUIRED”**, **“SHALL”**, **“SHALL NOT”**, **“SHOULD”**,
**“SHOULD NOT”**, **“RECOMMENDED”**, **“MAY”**, and **“OPTIONAL”** in the \*.md files and in the comments of the code are to be
interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).


## Structure
### Folder
#### Obligated
The following folder structures **MUST** be used:

| Path                        | Description |
|---|---|
$HOME/Documents/certificates/ | Contains certificates to authenticate via [certificate based authentication](https://blog.couchbase.com/x-509-certificate-based-authentication/). |
| $HOME/Documents/recovery_codes/ | Contains files with recovery_codes e.g. for [Two-factor authentication](https://en.wikipedia.org/wiki/Multi-factor_authentication). |
| $HOME/Documents/identity/ | Contains files to prove the identity of the *Core System Owner* in physical live like passports. |
| $HOME/Documents/passwords/ | Contains e.g the [KeePassXC](https://keepassxc.org/) database with all *Core System Owner* passwords. |
| $HOME/Documents/repositories/ | Contains all git repositories |

#### Optional
The following folder structures **SHOULD** be used:

| Path                        | Description |
|---|---|
| $HOME/Images/ | contains os images|
