From 2c1f2e7d9b417d6b7a9c0498a4fbb76f0980a84f Mon Sep 17 00:00:00 2001 From: gwen Date: Sun, 21 Jun 2026 11:13:06 +0200 Subject: [PATCH] docs(new-version): add new version of the doc technical doc and the tutorial --- docs/.gitignore | 2 + docs/Makefile | 20 + docs/_static/css/custom.css | 3 + docs/_static/terminal.css | 73 + docs/abstract.rst | 345 +++++ docs/bribes.txt | 2 - docs/check.rst | 286 ---- docs/cli.rst | 207 +++ docs/condition.rst | 240 --- docs/conf.py | 145 +- docs/configuration.rst | 12 +- docs/developer.rst | 282 ++++ docs/dict_convention.rst | 19 - docs/dictionary.rst | 36 - docs/documentation.rst | 222 +++ docs/ext/extinclude.py | 95 ++ docs/ext/xref.py | 67 + docs/family.rst | 262 ---- docs/fill.rst | 585 -------- docs/format_content/calculation.rst | 563 +++++++ docs/format_content/condition.rst | 276 ++++ docs/format_content/family.rst | 285 ++++ docs/format_content/index.rst | 18 + docs/format_content/mutability.rst | 129 ++ docs/format_content/path.rst | 69 + docs/format_content/validation.rst | 303 ++++ docs/format_content/variable.rst | 608 ++++++++ docs/gettingstarted.rst | 191 --- docs/helper_prerequisites.py | 72 + docs/helper_type_along.py | 47 + docs/images/QuestionaryChoice.png | Bin 0 -> 54010 bytes docs/images/UserDataOutput.png | Bin 0 -> 84747 bytes docs/images/dessin.png | Bin 0 -> 24338 bytes docs/images/dessin.svg | 385 +++++ docs/images/read_write.png | Bin 0 -> 68087 bytes docs/images/schema.png | Bin 46516 -> 0 bytes docs/images/schema.svg | 1306 ----------------- docs/images/tiramisu_get_set.png | Bin 0 -> 90320 bytes docs/index.rst | 73 +- docs/install.rst | 35 + docs/install/requirements.txt | 16 + docs/library.rst | 233 --- docs/library/custom_function.rst | 47 + docs/library/extra.rst | 45 + docs/library/index.rst | 87 ++ docs/library/output.rst | 269 ++++ docs/library/own_type.rst | 52 + docs/library/parse.rst | 260 ++++ docs/library/rougailconfig_load_from_cli.rst | 167 +++ docs/library/tags.rst | 112 ++ docs/library/upgrade.rst | 42 + docs/library/user_data.rst | 390 +++++ docs/output/ansible.rst | 230 +++ docs/output/display.rst | 87 ++ docs/output/doc.rst | 381 +++++ docs/output/formatter.rst | 29 + docs/output/index.rst | 17 + docs/output/json.rst | 3 + docs/output/table.rst | 98 ++ docs/readme.txt | 22 + docs/release.rst | 215 +++ docs/requirements.txt | 84 +- docs/rw_ro_modes.rst | 77 + docs/structured_data/data_integrity.rst | 86 ++ docs/structured_data/documentation.rst | 71 + docs/structured_data/images/schema.png | Bin 0 -> 38305 bytes docs/structured_data/images/schema.svg | 95 ++ docs/structured_data/index.rst | 10 + docs/structured_data/mode.rst | 52 + docs/structured_data/structured_data.rst | 194 +++ docs/structured_data/typing.rst | 191 +++ docs/structured_data/variable_properties.rst | 43 + docs/structured_data/variable_validation.rst | 8 + docs/tiramisu.rst | 41 + docs/tutorial.rst | 832 ----------- docs/tutorial/auto_save.rst | 62 + docs/tutorial/calculated.rst | 275 ++++ docs/tutorial/choice.rst | 224 +++ docs/tutorial/customtype.rst | 558 +++++++ docs/tutorial/document.rst | 261 ++++ docs/tutorial/dynamic.rst | 398 +++++ docs/tutorial/family.rst | 276 ++++ docs/tutorial/images/QuestionaryChoice.png | Bin 0 -> 24587 bytes docs/tutorial/images/UserDataOutput.png | Bin 0 -> 55768 bytes docs/{ => tutorial}/images/firefox.png | Bin docs/tutorial/images/firefox130.png | Bin 0 -> 120951 bytes docs/tutorial/images/firefox160.png | Bin 0 -> 120526 bytes docs/tutorial/images/firefox_01.png | Bin 0 -> 122305 bytes docs/tutorial/images/firefox_02.png | Bin 0 -> 68659 bytes .../tutorial/images/firefox_manual_family.png | Bin 0 -> 32322 bytes docs/tutorial/images/firefox_manual_https.png | Bin 0 -> 121030 bytes docs/tutorial/images/firefox_port.png | Bin 0 -> 8784 bytes docs/tutorial/images/firefox_soks_version.png | Bin 0 -> 121030 bytes docs/tutorial/images/foxyproxy.png | Bin 0 -> 157719 bytes docs/tutorial/images/integrator.png | Bin 0 -> 10910 bytes docs/tutorial/images/operator.png | Bin 0 -> 7190 bytes docs/tutorial/images/practice_threevars.png | Bin 0 -> 11280 bytes docs/tutorial/images/practice_twovars.png | Bin 0 -> 19254 bytes docs/tutorial/images/soksv5.png | Bin 0 -> 121030 bytes docs/tutorial/index.rst | 74 + docs/tutorial/jinja.rst | 674 +++++++++ docs/tutorial/modes.rst | 90 ++ docs/tutorial/multiple.rst | 235 +++ docs/tutorial/namespace.rst | 172 +++ docs/tutorial/nullable.rst | 211 +++ docs/tutorial/practice1.rst | 145 ++ docs/tutorial/practice2.rst | 220 +++ docs/tutorial/preliminary.rst | 380 +++++ docs/tutorial/properties.rst | 801 ++++++++++ docs/tutorial/propertyerror.rst | 57 + docs/tutorial/redefine.rst | 110 ++ docs/tutorial/regexp.rst | 126 ++ docs/tutorial/sequence.rst | 238 +++ docs/tutorial/types.rst | 461 ++++++ docs/tutorial/underscore_parameter.rst | 70 + docs/tutorial/validators.rst | 120 ++ docs/tutorial/variable_propertyerror.rst | 121 ++ docs/tutorial/webaddress.rst | 91 ++ docs/user_data/ansible.rst | 83 ++ docs/user_data/bitwarden.rst | 58 + docs/user_data/commandline.rst | 10 + docs/user_data/environment.rst | 71 + docs/user_data/example.yaml | 53 + docs/user_data/index.rst | 17 + docs/user_data/prerequisites.rst | 59 + docs/user_data/questionary.rst | 56 + docs/user_data/yaml.rst | 71 + docs/vac.rst | 206 +++ docs/variable.rst | 306 ---- 129 files changed, 14788 insertions(+), 4501 deletions(-) create mode 100644 docs/.gitignore create mode 100644 docs/Makefile create mode 100644 docs/_static/terminal.css create mode 100644 docs/abstract.rst delete mode 100644 docs/bribes.txt delete mode 100644 docs/check.rst create mode 100644 docs/cli.rst delete mode 100644 docs/condition.rst delete mode 100644 docs/dict_convention.rst delete mode 100644 docs/dictionary.rst create mode 100644 docs/documentation.rst create mode 100644 docs/ext/extinclude.py create mode 100644 docs/ext/xref.py delete mode 100644 docs/family.rst delete mode 100644 docs/fill.rst create mode 100644 docs/format_content/calculation.rst create mode 100644 docs/format_content/condition.rst create mode 100644 docs/format_content/family.rst create mode 100644 docs/format_content/index.rst create mode 100644 docs/format_content/mutability.rst create mode 100644 docs/format_content/path.rst create mode 100644 docs/format_content/validation.rst create mode 100644 docs/format_content/variable.rst delete mode 100644 docs/gettingstarted.rst create mode 100755 docs/helper_prerequisites.py create mode 100755 docs/helper_type_along.py create mode 100644 docs/images/QuestionaryChoice.png create mode 100644 docs/images/UserDataOutput.png create mode 100644 docs/images/dessin.png create mode 100644 docs/images/dessin.svg create mode 100644 docs/images/read_write.png delete mode 100644 docs/images/schema.png delete mode 100644 docs/images/schema.svg create mode 100644 docs/images/tiramisu_get_set.png create mode 100644 docs/install.rst create mode 100644 docs/install/requirements.txt delete mode 100644 docs/library.rst create mode 100644 docs/library/custom_function.rst create mode 100644 docs/library/extra.rst create mode 100644 docs/library/index.rst create mode 100644 docs/library/output.rst create mode 100644 docs/library/own_type.rst create mode 100644 docs/library/parse.rst create mode 100644 docs/library/rougailconfig_load_from_cli.rst create mode 100644 docs/library/tags.rst create mode 100644 docs/library/upgrade.rst create mode 100644 docs/library/user_data.rst create mode 100644 docs/output/ansible.rst create mode 100644 docs/output/display.rst create mode 100644 docs/output/doc.rst create mode 100644 docs/output/formatter.rst create mode 100644 docs/output/index.rst create mode 100644 docs/output/json.rst create mode 100644 docs/output/table.rst create mode 100644 docs/readme.txt create mode 100644 docs/release.rst create mode 100644 docs/rw_ro_modes.rst create mode 100644 docs/structured_data/data_integrity.rst create mode 100644 docs/structured_data/documentation.rst create mode 100644 docs/structured_data/images/schema.png create mode 100644 docs/structured_data/images/schema.svg create mode 100644 docs/structured_data/index.rst create mode 100644 docs/structured_data/mode.rst create mode 100644 docs/structured_data/structured_data.rst create mode 100644 docs/structured_data/typing.rst create mode 100644 docs/structured_data/variable_properties.rst create mode 100644 docs/structured_data/variable_validation.rst create mode 100644 docs/tiramisu.rst delete mode 100644 docs/tutorial.rst create mode 100644 docs/tutorial/auto_save.rst create mode 100644 docs/tutorial/calculated.rst create mode 100644 docs/tutorial/choice.rst create mode 100644 docs/tutorial/customtype.rst create mode 100644 docs/tutorial/document.rst create mode 100644 docs/tutorial/dynamic.rst create mode 100644 docs/tutorial/family.rst create mode 100644 docs/tutorial/images/QuestionaryChoice.png create mode 100644 docs/tutorial/images/UserDataOutput.png rename docs/{ => tutorial}/images/firefox.png (100%) create mode 100644 docs/tutorial/images/firefox130.png create mode 100644 docs/tutorial/images/firefox160.png create mode 100644 docs/tutorial/images/firefox_01.png create mode 100644 docs/tutorial/images/firefox_02.png create mode 100644 docs/tutorial/images/firefox_manual_family.png create mode 100644 docs/tutorial/images/firefox_manual_https.png create mode 100644 docs/tutorial/images/firefox_port.png create mode 100644 docs/tutorial/images/firefox_soks_version.png create mode 100644 docs/tutorial/images/foxyproxy.png create mode 100644 docs/tutorial/images/integrator.png create mode 100644 docs/tutorial/images/operator.png create mode 100644 docs/tutorial/images/practice_threevars.png create mode 100644 docs/tutorial/images/practice_twovars.png create mode 100644 docs/tutorial/images/soksv5.png create mode 100644 docs/tutorial/index.rst create mode 100644 docs/tutorial/jinja.rst create mode 100644 docs/tutorial/modes.rst create mode 100644 docs/tutorial/multiple.rst create mode 100644 docs/tutorial/namespace.rst create mode 100644 docs/tutorial/nullable.rst create mode 100644 docs/tutorial/practice1.rst create mode 100644 docs/tutorial/practice2.rst create mode 100644 docs/tutorial/preliminary.rst create mode 100644 docs/tutorial/properties.rst create mode 100644 docs/tutorial/propertyerror.rst create mode 100644 docs/tutorial/redefine.rst create mode 100644 docs/tutorial/regexp.rst create mode 100644 docs/tutorial/sequence.rst create mode 100644 docs/tutorial/types.rst create mode 100644 docs/tutorial/underscore_parameter.rst create mode 100644 docs/tutorial/validators.rst create mode 100644 docs/tutorial/variable_propertyerror.rst create mode 100644 docs/tutorial/webaddress.rst create mode 100644 docs/user_data/ansible.rst create mode 100644 docs/user_data/bitwarden.rst create mode 100644 docs/user_data/commandline.rst create mode 100644 docs/user_data/environment.rst create mode 100644 docs/user_data/example.yaml create mode 100644 docs/user_data/index.rst create mode 100644 docs/user_data/prerequisites.rst create mode 100644 docs/user_data/questionary.rst create mode 100644 docs/user_data/yaml.rst create mode 100644 docs/vac.rst delete mode 100644 docs/variable.rst diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..cb3900cd2 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +.venv/ +build/ diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 000000000..ed8809902 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css index 0d59fcadf..c78c5ca75 100644 --- a/docs/_static/css/custom.css +++ b/docs/_static/css/custom.css @@ -1,4 +1,7 @@ .wy-table-responsive table td { white-space: normal; } +.underline { + text-decoration: underline; +} diff --git a/docs/_static/terminal.css b/docs/_static/terminal.css new file mode 100644 index 000000000..401d3b7e0 --- /dev/null +++ b/docs/_static/terminal.css @@ -0,0 +1,73 @@ +.terminal { + background-color: #000000; /* Fond noir */ + color: #00ff00; /* Texte vert, typique des anciens terminaux */ + font-family: 'Courier New', Courier, monospace; /* Police à chasse fixe */ + padding: 5px; /* Espace réduit autour du texte */ + border-radius: 5px; + border: 1px solid #00ff00; /* Bordure verte */ + white-space: pre-wrap; + overflow-x: auto; /* Défilement horizontal si nécessaire */ + box-shadow: 0 0 10px rgba(0, 255, 0, 0.5); /* Ombre verte pour un effet rétro */ + display: flex; /* Active Flexbox */ + line-height: 1.2; /* Espacement entre les lignes */ + display: inline-block; /* Pour que le fond s'adapte au contenu */ + width: 100%; /* Largeur maximale */ +} + +.terminal, +.terminal * { + border: none !important; /* Supprime toutes les bordures à l'intérieur du terminal */ +} + +.terminal .highlight { + margin: 0; /* Supprime les marges */ + padding: 0; /* Supprime les paddings */ + background-color: transparent; /* Fond transparent pour éviter les conflits */ +} + +.terminal .highlight pre { + margin: 0; /* Supprime les marges */ + padding: 0; /* Supprime les paddings */ + background-color: transparent; /* Fond transparent */ + color: inherit; /* Hérite la couleur du texte du parent */ + font-family: inherit; /* Hérite la police du parent */ + line-height: inherit; /* Hérite l'espacement des lignes du parent */ +} + +.terminal .highlight pre span { + display: inline; /* Évite les espaces inutiles causés par inline-block */ + margin: 0; /* Supprime les marges */ + padding: 0; /* Supprime les paddings */ +} + +.terminal .go { + color: #00ff00; /* Couleur pour le texte de sortie du terminal */ +} + +/* raw html output css */ + +/* Styles communs pour les deux classes */ +.error-box, .output { + padding: 10px; /* Espace intérieur */ + font-size: 0.8em; /* Taille de police plus petite */ + width: fit-content; /* Ajuste la largeur au contenu */ + border-radius: 5px; /* Coins arrondis */ + display: inline-block; /* Pour que la boîte s'ajuste au contenu */ + margin-bottom: 20px; +} + +.error-box pre, .output pre { + margin: 0; /* Supprime la marge par défaut du
 */
+}
+
+/* Styles spécifiques à la classe error-box */
+.error-box {
+    border: 2px solid #ff0000; /* Bordure rouge */
+    background-color: #ffe6e6; /* Fond légèrement rouge */
+}
+
+/* Styles spécifiques à la classe output */
+.output {
+    border: 2px solid #00ff00; /* Bordure verte */
+    background-color: #e6ffe6; /* Fond légèrement vert */
+}
diff --git a/docs/abstract.rst b/docs/abstract.rst
new file mode 100644
index 000000000..410389dba
--- /dev/null
+++ b/docs/abstract.rst
@@ -0,0 +1,345 @@
+Abstract presentation
+=========================
+
+Rougail is a robust and powerful, free/open-source configuration manager.
+
+Rougail is:
+
+- a CLI (command line interface) utility
+- a `Python `_ library
+- a YAML based description language
+
+The language combines declaration, data validation, and templating in a single, declarative syntax.
+
+It will be useful to:
+
+- define variables (the structure) easily and their constraints
+- loads those variables
+- generate variables documentation
+- loads variables' values
+- validate the variables and the overall consistency handling system
+- generate custom table views
+- export to different common format (YAML, Ansible, ...)
+- ...
+
+Why another configuration manager?
+-------------------------------------
+
+Using Rougail tansforms end user consumer defined consistency rules into highly consistent business objects.
+It's a configuration language designed to simplify and unify the way you define,
+validate and generate configuration data.
+
+In other word, making it easier to manage complex configurations across multiple environments.
+
+You might tell me that other configuration management tools do the same thing. And that's partly true.
+
+But Rougail adds interesting features in variable management that other projects don't have.
+We are of course referring to the documentation management included directly in the configuration manager.
+
+Your configuration is therefore consistent, easily accessible, and modifiable.
+
+Not to mention the always up-to-date documentation and the information you provide to your users regarding changes to variables.
+
+What kind of configuration manager?
+---------------------------------------------
+
+At the time of the design of Rougail, there were structuring choices
+that defined the functioning of the tool.
+
+The steps in Rougail can be explained as follows:
+
+- loading the variable's :term:`structured data`
+- loading the :term:`user data`
+- reading, validating, exporting, documenting (and so on...) the data
+
+Structured data
+~~~~~~~~~~~~~~~~~
+
+Structured data is also called the Rougail format.
+
+.. glossary::
+
+   structured data
+
+       A variable-first :term:`DSL` (Domain-Specific Language) designed for describing variables, consistency
+       and describe the relationships between variables in a declarative style.
+
+       The language is a mix of YAML and Jinja Templating.
+
+       It goes beyond traditional schema languages (like `JSON Schema `_,
+       `OpenAPI `_, `Cuelang `_)
+       by combinig type systems, powerful validation, consistency of the configuration and documentation.
+
+Structured data are commonly placed in :term:`structure files `.
+
+User data
+~~~~~~~~~~
+
+.. glossary::
+
+    user data
+
+        User data, as opposed to structured data, are data that only concern the assignment of values
+        and not the consistency of the variables between them.
+
+        The variable's values are also called **user values**.
+
+        The consistency field is outside of the user data scope.
+        The consistency is handled in the :term:`structured data `\ 's scope.
+
+Here a some user data examples:
+
+- configuration files
+- environment variables
+- external sources
+- command-line options
+- a form
+
+Output
+~~~~~~~
+
+.. glossary::
+
+   output
+
+        Structured and user data form a coherent configuration useful for different purposes.
+
+        Output is here to define what kind of data we want.
+
+Here are some output examples:
+
+- :term:`Tiramisu` object
+- JSON extraction
+- Ansible inventory extraction
+- documentation
+- custom table views
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Step**
+
+   * - **Structured data**
+
+   * - **User data**
+
+   * - **Output**
+
+.. _configuration:
+
+Configuration
+~~~~~~~~~~~~~
+
+We've been talking about `configuration` for a while now. It's time to define what a configuration is.
+
+.. glossary::
+
+    configuration
+
+        The configuration represents the set of variables and their values loaded in a tree-like fashion into memory from structural data, user data and any modifications during its lifecycle.
+
+        In practice, it's :term:`Tiramisu` who manages this part.
+
+What kind of actor?
+---------------------
+
+It's clear that Rougail can be used in many contexts.
+
+Here we'll define actor names. Obviously, these aren't the only possible actors.
+
+We're just defining the actors within the Rougail context.
+Choice your own actor name if you wish to personnalize in your specific context.
+
+.. glossary::
+
+    integrator
+
+        An integrator in the Rougail field is the person who writes the :term:`structured `\ .
+        He has the responsibility of the integration process, that is,
+        he defines the variables and the relationship between them, the variables that are allowed
+        (or not) to be set, and so on. His responsabilites are the **structuration** and the **consistency**
+        of the organisation of the variables between them.
+
+.. glossary::
+
+    operator
+
+        An operator in the Rougail field is the person who assigns :term:`value`\ s to the pre-defined variables,
+        his responsabilities are to set variable values correctly.
+
+        The user :term:`value`\ s, that is the values that have been set by the :term:`operator`, are of course type validated.
+        The type validation is driven by the definitions in the :term:`structure file `.
+
+Here is a reminder of the different steps:
+
+- the :term:`integrator` defines the structure
+- the :term:`operator` sets the value
+- the :term:`integrator` and/or the :term:`operator` use the output
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Step**
+     - Actor
+
+   * - **Structured data**
+     - Integrator
+
+   * - **User data**
+     - Operator
+
+   * - **Output**
+     - - Operator
+       - Integrator
+
+Variable lifecyle
+----------------------
+
+Rougail's a configuration language and data validation tool is designed 
+to simplify defining, validating, and generating structured configuration and data.
+
+Rougail aims at defining variables.
+
+Here we are talking about the variable lifecyle.
+
+The variable’s lifecyle is the period between its creation and its destruction.
+
+The lifecycle of a variable includes the generic stages (for example, like in the C language):
+
+- Creation: variables are assigned a name and a type
+- Initialization: they are assigned their first value (we call it :term:`default value`)
+- Assignment: the variable's value is modified
+- Reading: the variable's value is used
+- Destruction: the variable terminates upon the destruction of the object
+
+.. note:: No other concept is included in the lifecycle (ni particular the access control, with properties describing access constraints).
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Step**
+     - Actor
+     - Lifecyle
+
+   * - **Structured data**
+     - Integrator
+     - - Creation
+       - Initialization
+
+   * - **User data**
+     - Operator
+     - - Reading
+       - Assignment
+       - Access control
+
+
+   * - **Output**
+     - - Operator
+       - Integrator
+     - - Reading
+       - Access control
+
+.. _variable_mutability:
+
+Variable mutability
+---------------------
+
+.. _structured_data:
+
+Structured data
+~~~~~~~~~~~~~~~~
+
+When the :term:`integrator` defines the structure, variables are mutable.
+
+Even if the default behavior is inconsistent, like when there is a conflict between multiple declarations for the same variable,
+
+it's possible to explicitly allow to unify (combine) multiple variables declarations.
+
+User data
+~~~~~~~~~~
+
+At the user data level, it's no more possible to modify any variable definition.
+Here we are just talking about variable's values.
+
+Output
+~~~~~~~
+
+Variable definition settings are immutable.
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Step**
+     - Actor
+     - Lifecyle
+     - Mutability
+
+   * - **Structured data**
+     - Integrator
+     - - Creation
+       - Initialization
+     - Mutable
+
+   * - **User data**
+     - Operator
+     - - Reading
+       - Assignment
+       - Access control
+     - Immutable
+
+   * - **Output**
+     - - Operator
+       - Integrator
+     - - Reading
+       - Access control
+     - Immutable
+
+Value access
+-------------
+
+In the :term:`structured data` step, there is no value, strictly speaking. 
+The values set are default values.
+Like other parameters, the default value is explicitly mutable.
+
+In the `user data` step, we can modify the values. That's precisely the purpose of this step.
+The configuration is said to be in :term:`read write mode`.
+
+But at the `output` step, it is obviously no longer possible to modify the value.
+The configuration is said to be in :term:`read only mode`.
+
+.. attention::
+   It is important not to confuse `value` and `calculated value`.
+   The result of a calculation can change over time.
+   In this case, the value does indeed correspond to the result of the calculation.
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Step**
+     - Actor
+     - Lifecyle
+     - Mutability
+     - Value
+
+   * - **Structured data**
+     - Integrator
+     - - Creation
+       - Initialization
+     - Mutable
+     - Mutable default value
+
+   * - **User data**
+     - Operator
+     - - Reading
+       - Assignment
+       - Access control
+     - Immutable
+     - Read write
+
+   * - **Output**
+     - - Operator
+       - Integrator
+     - - Reading
+       - Access control
+     - Immutable
+     - Read only
diff --git a/docs/bribes.txt b/docs/bribes.txt
deleted file mode 100644
index 2f1e0205b..000000000
--- a/docs/bribes.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-variable
- `_
diff --git a/docs/check.rst b/docs/check.rst
deleted file mode 100644
index 82ccd7f3f..000000000
--- a/docs/check.rst
+++ /dev/null
@@ -1,286 +0,0 @@
-Verification function
-==========================
-
-Synopsis
--------------
-
-A verification is a complementary validation to the type which allows the content of a variable to be validated more precisely.
-
-A :term:`validator` is necessarily a Jinja type calculation.
-
-Parameters
---------------
-
-Depending on the types of calculation, the parameters will be different:
-
-.. list-table:: 
-   :widths: 15 25 20 15
-   :header-rows: 1
-   
-   * - **Calculation type**
-     - **Parameter**
-     - **Comments**
-     - **Sample**
-     
-   * - 
-     - **type** 
-     
-       `string`
-       
-       `mandatory`
-     - Type of calculation, the only possible value is: jinja    
-     - jinja
-   * - **jinja** 
-     
-       `string`
-       
-       `mandatory`
-     - Jinja template
-     - {% if rougail.variable == 'not_allowed' %}not allowed!{% endif %}
-     - 
-   * - **params**
-       
-       `list`
-     - Additional parameters passed to the Jinja template
-     - 
-     - 
-
-There are two types of parameter:
-
-- the standard parameters (string, boolean, integer, null), in this case just do: "key: value"
-- advanced settings:
-  
-  - parameter via a variable
-  - parameter via an information
-  - parameter via a suffix: in the case of a variable in a dynamic family
-  - parameter via an index: in the case of a :term:`follower` variable
-  
-.. list-table:: 
-   :widths: 15 25 20 15
-   :header-rows: 1
-   
-   * - **Parameter's type**
-     - **Parameter**
-     - **Comments**
-     - **Sample**
-   * - 
-     - **name** 
-     
-       `string`
-       
-       `mandatory`
-     - Parameter's name 
-     - my_param
-   * - 
-     - **type** 
-     
-       `string`
-       
-       `mandatory`
-     - Type of parameter, possible values are: variable, information, suffix or index
-     - suffix 
-   * - Variable
-     - **variable** 
-     
-       `string`
-       
-       `mandatory`
-     - variable's name
-     - rougail.variable
-   * - Variable (`mandatory`) information
-     - **propertyerror**
-     
-       `boolean`
-     - If access to the variable is not possible due to a property 
-       (for example `disabled`) by default an error is returned. 
-       If the attribute is `False`, the parameter is not passed to the Jinja template.
-       
-       **Default value**: `True`
-     - True  
-   * - Information
-     - **information** 
-     
-       `string`
-       
-       `mandatory`
-     - Name of the information whose value we want to retrieve.
-     - doc
-
-Samples
---------------
-
-Strict verification of values
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here is a simple example of validating values:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      validators:
-        - type: jinja
-          jinja: |
-            {% if rougail.my_variable and not rougail.my_variable.islower() %}
-            {{ rougail.my_variable }} is not lowercase string
-            {% endif %}        
-     
-
-A verification function must take into account 2 important aspects:
-
-- the value may not be entered (even if the variable is mandatory), the None value must be taken into account
-- if the value is invalid, a sentence must be returned with an explicit message.
-
-From now on only `None` and lowercase values will be allowed.       
-
-Checking values with warning
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In the constraint, it is possible to specify the error level and put it as a warning:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      validators:
-        - type: jinja
-          jinja: |+
-            {% if rougail.my_variable and not rougail.my_variable.islower() %}
-            {{ rougail.my_variable }} is not lowercase string
-            {% endif %}        
-          params:
-            warnings_only: true
-
-In this case a value with a capital letter will be accepted, but a warning message will appear.
-
-Verification with parameters
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_hidden_variable:
-      disabled: true
-    my_variable:
-      validators:
-        - type: jinja
-          jinja: |
-            {% if param1 is defined and rougail.my_variable == param1 %}
-            has same value as rougail.unknown_variable
-            {% endif %}
-            {% if param2 is defined and rougail.my_variable == param2 %}
-            has same value as rougail.my_hidden_variable
-            {% endif %}        
-          params:
-            param1:
-              type: variable
-              variable: rougail.unknown_variable
-              optional: true
-            param2:
-              type: variable
-              variable: rougail.my_hidden_variable
-              propertyerror: false
-
-An example with a suffix type parameter:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    varname:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_dyn_family_:
-      type: dynamic
-      variable: rougail.varname
-      description: 'Describe '
-      my_dyn_var:
-        type: string
-        validators:
-          - type: jinja
-            jinja: |
-              {% if rougail.my_dyn_family_.my_dyn_var == param1 %}
-              forbidden!
-              {% endif %}          
-            params:
-              param1:
-                type: suffix
-
-In this example, we see a dynamic family. Two families will be created: `rougail.my_dyn_family_val1.my_dyn_var` and `rougail.my_dyn_family_val2.my_dyn_var`.
-
-The value of the variable within this family cannot be equal to the value 
-of the suffix (`val1` and `val2` respectively).
-
-An example with an index type parameter:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    family:
-      type: leadership
-      leader:
-        multi: true
-        default:
-          - val1
-          - val2
-      follower1:
-        type: number
-        validators:
-          - type: jinja
-            jinja: |
-              {% if rougail.family.follower1 == param1 %}
-              forbidden!
-              {% endif %}          
-            params:
-              param1:
-                type: index
-
-Redefinition
----------------
-
-In a first dictionary, let's declare our variable and its verification function:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      validators:
-        - type: jinja
-          jinja: |
-            {% if rougail.my_variable and not rougail.my_variable.islower() %}
-            {{ rougail.my_variable }} is not lowercase string
-            {% endif %}        
-
-In a second dictionary it is possible to redefine the calculation:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      redefine: true
-      validators:  
-        - type: jinja
-          jinja: |
-            {% if rougail.my_variable and ' ' in rougail.my_variable %}
-            {{ rougail.my_variable }} has a space
-            {% endif %}        
-
-In this case only this validator will be executed.
-
-Here is a third dictionary in which we remove the validation:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      redefine: true
-      validators:
diff --git a/docs/cli.rst b/docs/cli.rst
new file mode 100644
index 000000000..d1abe6d22
--- /dev/null
+++ b/docs/cli.rst
@@ -0,0 +1,207 @@
+The Rougail Command Line Interface
+========================================
+
+help
+------------
+
+::
+
+    rougail -u yaml -h
+
+Standard usage 
+-----------------
+
+::
+
+    rougail -m firefox/ -u yaml -yf config/02/config.yml
+
+
+
+::
+
+    rougail --cli.versions 
+
+    tiramisu: 5.2.0a9
+    tiramisu-cmdline-parser: 0.7.0a1
+    rougail: 1.2.0a29
+    rougail-cli: 0.2.0a19
+    rougail-user-data-environment: 0.1.0a9
+    rougail-user-data-yaml: 0.2.0a11
+    rougail-output-console: 0.2.0a11
+    rougail-output-json: 0.2.0a8
+
+::
+
+    env ROUGAIL_MANUAL.USE_FOR_HTTPS=true rougail -m structfile/proxy2.yml -u yaml  environment --yaml.filename userdata/proxy.yml -o json
+
+::
+
+    env ROUGAIL_MANUAL.USE_FOR_HTTPS=true rougail -m structfile/proxy2.yml -u yaml --yaml.filename userdata/proxy.yml -o json --json.get manual.https_proxy --json.read_write
+    {
+      "address": "toto.fr",
+      "port": "8888"
+    }
+
+CLI root
+-------------
+
+::
+
+    (.venv) ubuntu@monessai:~/workplace/rougail-tutorials$ env ROUGAIL_MANUAL.USE_FOR_HTTPS=true rougail -m firefox/ --cli.root manual.https_proxy -u yaml environment -yf ^Cnfig/01/config.yml --cli.read_write
+    (.venv) ubuntu@monessai:~/workplace/rougail-tutorials$ cat config/01/config.yml 
+    ---
+    proxy_mode: Manual proxy configuration
+    manual:
+      http_proxy:
+        address: http.proxy.net
+        port: 3128
+      use_for_https: false
+      https_proxy:
+        address: https.proxy.net
+    (.venv) ubuntu@monessai:~/workplace/rougail-tutorials$ rougail -m firefox/ --cli.root manual.https_proxy  -u yaml -yf config/01/config.yml
+    [WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.
+    [DEPRECATION WARNING]: Importing 'to_bytes' from 'ansible.module_utils._text' is deprecated. This feature will be removed from ansible-core version 2.24. Use ansible.module_utils.common.text.converters instead.
+    ╭────────────── Caption ───────────────╮
+    │ Variable Default value               │
+    │          Modified value              │
+    │          (⏳ Original default value) │
+    ╰──────────────────────────────────────╯
+    Variables:
+    ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" ⏳ http.proxy.net)
+    ┗━━ 📓 HTTPS port: 3128
+
+
+.. FIXME: sortie normale: 
+
+.. FIXME: sortie pour n'afficher qu'une family: 
+
+::
+
+    rougail -m firefox/ -u yaml -yf config/01/config
+
+on a:
+
+::
+
+    Variables:
+    ┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No proxy)
+    ┗━━ 📂 Manual proxy configuration
+        ┣━━ 📂 HTTP Proxy
+        ┃   ┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file "config/01/config.yml"
+        ┃   ┗━━ 📓 HTTP Port: 3128 ◀ loaded from the YAML file "config/01/config.yml" (⏳ 8080)
+        ┣━━ 📓 Also use this proxy for HTTPS: false ◀ loaded from the YAML file "config/01/config.yml" (⏳ true)
+        ┣━━ 📂 HTTPS Proxy
+        ┃   ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ http.proxy.net)
+        ┃   ┗━━ 📓 HTTPS port: 3128
+        ┗━━ 📂 SOCKS Proxy
+            ┣━━ 📓 SOCKS address: http.proxy.net
+            ┣━━ 📓 SOCKS port: 3128
+            ┗━━ 📓 SOCKS host version used by proxy: v5
+
+
+for a more precise output: 
+
+::
+
+    rougail -m firefox/ -u yaml -yf config/01/config.yml --cli.root manual.https_proxy
+
+we have
+
+::
+
+    Variables:
+    ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" ⏳ http.proxy.net)
+    ┗━━ 📓 HTTPS port: 3128
+
+
+Invalid user data error
+-----------------------------
+
+::
+
+    rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.invalid_user_data_error
+
+Unknown user data error 
+-----------------------------
+
+The option "`--cli.unknown_user_data_error`" looks like "`--cli.invalid_user_data_error`" but here it concerns unknown variables (or here disabled or hidden but it amounts to the same thing) loaded into user data.
+
+
+.. note:: The `--cli.unknown_user_data_error` option changes the behaviour of the Rougail CLI's standard output: 
+          when an unknown (or disabled or hidden) variable is declared in the :term:`user data file ` 
+          then it appears in the output as an error instead of a warning.
+
+The output doc 
+----------------
+
+::
+
+    rougail -m structure.yml -o doc --doc.output_format github > README.md 
+
+::
+
+      doc:
+      Generate documentation from structural files
+
+      -do [{console,asciidoc,html,github,gitlab,json}], --doc.output_format [{console,asciidoc,html,github,gitlab,json}]
+                            The output format of the generated documentation (default: console)
+      -dm [{two_columns,three_columns,four_columns,five_columns,six_columns}], --doc.tabular_template [{two_columns,three_columns,four_columns,five_columns,six_columns}]
+                            Generate document with this tabular model (default: two_columns)
+      -dc {variables,example,changelog} [{variables,example,changelog} ...], --doc.contents {variables,example,changelog} [{variables,example,changelog} ...]
+                            Generated content (default: variables)
+      -dt [TITLE_LEVEL], --doc.title_level [TITLE_LEVEL]
+                            Starting title level (default: 1)
+      --doc.default_values  Modify values to document all variables (default: True)
+      --doc.no-default_values
+      --doc.document_a_type
+                            Documentation a structural type (default: False)
+      --doc.no-document_a_type
+
+
+The formatter
+----------------
+
+::
+
+    rougail -o formatter -m structure.yml > a.yml; mv a.yml structure.yml
+
+The namespaces
+-----------------
+
+::
+
+    rougail -m structure.yml -u yaml -yf userdata.yml -s intranet -xn hosts -xd 0 hosts.yml
+
+
+::
+
+    rougail -m structure.yml -u yaml -yf userdata.yml -s intranet -xn hosts orem srem prom -xd 0 hosts.yml -xd 1 packages/OREM -xd 2 packages/SREM -xd 3 packages/SREP
+
+Commandline user data
+----------------------------
+
+Commandline user data can be used:
+
+::
+
+    rougail -m mon_fichier.yml -u commandline --family.variable pouet
+
+Ansible export 
+-------------------
+
+rougail -m structure.yml -u yaml -yf userdata.yml -s intranet -xn hosts -xd 0 hosts.yml -o ansible > ansible.json
+
+:: 
+
+    ansible-inventory -i $(which rougail) --list
+
+Ansible lists your inventory
+
+::
+
+    ansible-inventory -i $(which rougail) --host tutu.fr 
+
+::
+
+    ansible-playbook -i $(which rougail) install.yml
+
diff --git a/docs/condition.rst b/docs/condition.rst
deleted file mode 100644
index 3d1895639..000000000
--- a/docs/condition.rst
+++ /dev/null
@@ -1,240 +0,0 @@
-Calculated properties
-==========================
-
-Synopsis
-------------
-
-Calculated properties allow you to add or remove properties to a :term:`variable`
-or a :term:`family` depending on the context.
-
-Here is the list of editable properties:
-
-.. list-table:: 
-   :widths: 15 15 25
-   :header-rows: 1
-   
-   * - **Attribute applicable on**
-     - **Property's name**
-     - Comment
-     
-   * - Variable
-   
-       Family 
-     - hidden
-     - Hides a variable or a family, in this case it is not accessible in `read-write` mode, 
-       but remains accessible in a calculation or in `read-only` mode
-   * - Variable
-   
-       Family 
-     - disabled
-     - Deactivates a variable or family, in this case it is never accessible
-   * - Variable
-     - mandatory
-     - The variable expects a value other than `None` or `[]` for multiple variables
-
-A property can be calculated. In this case we have two possibilities:
-
-- calculation via Jinja
-- calculation via a variable          
-
-Parameters
----------------
-
-.. list-table:: 
-   :widths: 15 25 20 15
-   :header-rows: 1
-   
-   * - **Calculation type**
-     - **Parameter**
-     - **Comment**
-     - **Sample**
-   * - 
-     - **type**
-     
-       `string`
-       
-       `mandatory`
-     - Calculation type, possible values are: jinja, variable, information, suffix or index  
-     - jinja
-   * - Jinja 
-     - **jinja**
-     
-       `string`
-       
-       `mandatory`
-     - Jinja template . For a multiple variable, each line represents a value.
-     - {% if rougail.variable %}
-
-       {{ rougail.variable }}
-
-       {% endif %}
-   * - Jinja
-     - **params**
-     
-       `list`
-     - Additional parameters passed to the Jinja template
-     - 
-   * - Variable
-     - **variable**
-     
-       `string`
-       
-       `mandatory`
-     - Name of the associated variable.
-     
-       .. attention:: The variable must be of `boolean` type.
-     - rougail.variable 
-   * - Variable
-     - **propertyerror**
-     
-       `boolean` 
-     - If access to the variable is not possible due to a property 
-       (for example `disabled`) by default an error is returned. 
-       If the attribute is `False`, the calculated value is False.
-
-       **Default value**: `True`
-     - False
-
-In the case of a Jinja type calculation, it is possible to have parameters.
-
-There are two types of parameter:
-
-- the standard parameters (string, boolean, integer, null), in this case just do: "key: value"
-
-- advanced settings:
-
-   - parameter via a variable
-   - parameter via information
-   - parameter via a suffix: in the case of a variable in a dynamic family
-   - parameter via an index: in the case of a follower variable       
-   
-.. list-table:: 
-   :widths: 15 25 20 15
-   :header-rows: 1
-   
-   * - **Parameter's type**
-     - **Parameter**
-     - **Comments**
-     - **Sample**
-   * - 
-     - **name**
-     
-       `string`
-       
-       `mandatory`
-     - parameter's name 
-     - my_param
-   * - 
-     - **type**
-     
-       `string`
-       
-       `mandatory`
-     - Parameter's type, possible values are: variable, information, suffix or index
-     - suffix
-   * - Variable 
-     - **variable**
-     
-       `string`
-       
-       `mandatory`
-     - variable's name 
-     - rougail.variable
-   * - Variable (`mandatory`) Information   
-     - **propertyerror**
-     
-       `boolean`
-     - If access to the variable is not possible due to a property (for example `disabled`) by default an error is returned. If the attribute is False, the parameter is not passed to the Jinja template.
-
-       **Default value**: `True`
-     - False
-   * - Variable
-     - **optional**
-     
-       `boolean`
-     - The variable may not exist depending on YAML file imports. If the optional parameter is True, the parameter will simply be deleted if the variable does not exist.
-       **Default value**: `False`
-     - True
-     
-   * - information
-     - **information**
-     
-       `string`
-       
-       `mandatory`
-     - Name of the information whose value we want to retrieve.
-     - doc
-
-Samples
-------------
-
-A Jinja-type calculated property
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It is possible to write the condition in Jinja:
-
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    condition:
-      default: 'do not hide!'
-    my_variable:
-      hidden:
-        type: jinja
-        jinja: |
-          {% if rougail.condition and rougail.condition == "hide!" %}
-          this rougail.condition value is 'hide!'
-          {% endif %}      
-          
-           
-In this case the variable is hidden if the value of the variable "rougail.condition" is `hide!` and it did not hide for any other value. Be careful, always take into consideration that "rougail.condition" can be equal to `None`.
-
-The message returned by the function is visible in the error message in the event of an access problem:                  
-
-.. code-block:: python
-
-    >>> from rougail import Rougail, RougailConfig
-    >>> RougailConfig['dictionaries_dir'] = ['dict']
-    >>> rougail = Rougail()
-    >>> config = rougail.get_config()
-    >>> config.property.read_write()
-    [..]
-    tiramisu.error.PropertiesOptionError: cannot access to option "my_variable" because has property "hidden" (this rougail.condition value is 'hide!')
-
-It is possible to use parameters when calculating properties as for calculating the `default` attribute.
-
-A calculated property of variable type 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A variable can therefore be calculated via the result of another variable. Please note, this other variable must be of `boolean` type:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    condition:
-      type: boolean
-    my_variable:
-      hidden:
-        type: variable
-        variable: rougail.condition
-
-If the value of the variable "rougail.condition" is `True` then the variable "rougail.my_variable" is hidden.
-
-Redefintion
-~~~~~~~~~~~~~~~~~
-
-It may be that in a dictionary we decide to define a condition.
-
-To delete the calculation from a variable, simply do in a new dictionary:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      redefine: true
-      hidden:
-
diff --git a/docs/conf.py b/docs/conf.py
index 8b2a7e831..32a502e00 100755
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,24 +1,20 @@
 # Configuration file for the Sphinx documentation builder.
 #
-# This file does only contain a selection of the most common options. For a
-# full list see the documentation:
-# http://www.sphinx-doc.org/en/master/config
-
 # -- Path setup --------------------------------------------------------------
 
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
+import sys, os
 # sys.path.insert(0, os.path.abspath('.'))
+#sys.path.append(os.path.abspath('ext'))
+sys.path.append('.')
 
+#---- debug mode ----
+# shows/hides the todos
+todo_include_todos = False
 
 # -- Project information -----------------------------------------------------
 
 project = 'Rougail'
-copyright = '2019-2023, Silique'
+copyright = '2019-2026, Silique'
 author = 'gwen'
 
 # The short X.Y version
@@ -33,55 +29,64 @@ release = '1.0'
 #
 # needs_sphinx = '1.0'
 
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-
 extensions = [
-        'sphinx.ext.extlinks', 'sphinx_lesson',
-        #'myst_parser', 'sphinx.ext.extlinks'
+        'sphinx.ext.extlinks', 'sphinx_lesson', 'sphinx.ext.todo',
+        'ext.xref', 'ext.extinclude', 'sphinxnotes.strike',
 ]
-#
-#myst_enable_extensions = [
-#    "amsmath",
-#    "attrs_inline",
-#    "colon_fence",
-#    "deflist",
-#    "dollarmath",
-#    "fieldlist",
-#    "html_admonition",
-#    "html_image",
-##    "linkify",
-#    "replacements",
-#    "smartquotes",
-#    "strikethrough",
-#    "substitution",
-#    "tasklist",
-#]
 
+#---- disable highlight warnings with yaml new version ----
+# Configuration pour les blocs de code
+highlight_language = 'yaml'
 
+# Options spécifiques pour YAML
+highlight_options = {
+    'yaml': {
+        'startinline': True
+    }
+}
+
+suppress_warnings = [
+    'misc.highlighting_failure'
+]
+
+#---- xref links ----
+#import the xref.py extension
+xref_links = {"link_name" : ("user text", "url")}
+
+#link_name = "Sphinx External Links"
+#user_text = "modified External Links Extension"
+#url = "http://www.sphinx-doc.org/en/stable/ext/extlinks.html"
+#enables syntax like:
+" :xref:`tiramisu` "
+links = {
+        'tiramisu': ('Tiramisu', 'https://tiramisu.readthedocs.io/en/latest/'),
+        'tiramisu library': ('Tiramisu library homepage', 'https://forge.cloud.silique.fr/stove/tiramisu'),
+        }
+xref_links.update(links)
+
+#---- ext links ----
 # **extlinks** 'sphinx.ext.extlinks',
-# enables syntax like :proxy:`my source ` in the src files
-extlinks = {'proxy': ('/proxy/%s.html',
-                      'external link: ')}
+# enables syntax like
+" :source:`v1.1_010/firefox/00-proxy.yml` "
+extlinks = {'source': ('https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/%s',
+                       'source: %s'),
+            'tiramisu': ('https://tiramisu.readthedocs.io/en/latest/%s', 'tiramisu: %s'),
+            'tutorial': ('https://forge.cloud.silique.fr/stove/rougail-tutorials/%s', 'tutorial %s'),
+            }
 
+#---- options for HTML output ----
 default_role = "code"
-
 html_theme = "sphinx_rtd_theme"
-
 pygments_style = 'sphinx'
-
 html_short_title = "Rougail"
-html_title = "Rougail documenation"
-
-# If true, links to the reST sources are added to the pages.
+html_title = "Rougail documentation"
 html_show_sourcelink = False
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
 html_show_sphinx = False
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
 html_show_copyright = True
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+html_static_path = ['_static']
+html_css_files = ['terminal.css', 'custom.css']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
@@ -109,41 +114,21 @@ language = 'en'
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
 # This pattern also affects html_static_path and html_extra_path.
-exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+exclude_patterns = ['.venv', 'build', '_build', 'Thumbs.db', '.DS_Store']
 
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = None
+# ------------------------------------------------------------------------------
+## underline role
+## sample: Voici du texte :underline:`souligné`.
 
+from docutils import nodes
+from docutils.parsers.rst import roles
 
-# -- Options for HTML output -------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-#
-#html_theme = 'alabaster'
-# **themes**
-#html_theme = 'bizstyle'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#
-# html_theme_options = {}
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Custom sidebar templates, must be a dictionary that maps document names
-# to template names.
-#
-# The default sidebars (for documents that don't match any pattern) are
-# defined by theme itself.  Builtin themes are using these templates by
-# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
-# 'searchbox.html']``.
-#
-# html_sidebars = {}
+def underline_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
+    node = nodes.inline(rawtext, text, **options)
+    node['classes'].append('underline')
+    return [node], []
 
 def setup(app):
-   app.add_css_file('css/custom.css')
+    app.add_role('underline', underline_role)
+    app.add_css_file('css/custom.css')
+    
diff --git a/docs/configuration.rst b/docs/configuration.rst
index 5f067482f..cc96b7a45 100644
--- a/docs/configuration.rst
+++ b/docs/configuration.rst
@@ -40,7 +40,7 @@ The functions file
 
 The file which contains the custom functions is managed in the `functions_file` key and has the default value `/srv/rougail/functions.py`. This key can contain a list if there are several files.
 
-.. important:: Functions must return a value, even if the variable being calculated is a :term:`multiple` variable. If the function can return a multiple value (a list), you must put the name of the function in the `multi_functions` key.
+.. important:: Functions must return a value, even if the variable being calculated is a :term:`multiple ` variable. If the function can return a multiple value (a list), you must put the name of the function in the `multi_functions` key.
 
 The `auto_freeze` variable
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -50,15 +50,11 @@ The `auto_freeze` property is only applied until a specific variable becomes `Tr
 Modes
 ~~~~~~~~
 
-.. glossary::
-
-   mode
+A mode is a solution that allows a variable or a family to be categorized. It can be used, for example, to define a level of expertise or a particular context. Have a look at the :term:`mode definition ` for further details.
    
-       modes are views on variables. 
-   
-       Modes are customizable in Rougail. By default the modes are `basic`, `standard` and `advanced`. It is possible to change this list via the `modes_level` key.
+Modes are customizable in Rougail.
 
-If you change these values, consider changing the default modes of families and variables in your dictionaries. 
+Often, we categorize by level of expertise to access a variable: `basic`, `standard` and `advanced`.
 
 Default mode for a family 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/developer.rst b/docs/developer.rst
index 8fafd92fb..225fd519a 100644
--- a/docs/developer.rst
+++ b/docs/developer.rst
@@ -58,3 +58,285 @@ We use black
       - id: black
 
 And some YAML and JSON validators.
+
+
+----
+
+The pre commit tool
+----------------------
+
+**pre-commit** is a fantastic tool for automating code quality checks
+before you commit your changes. It’s especially useful in Python
+projects for running linters, formatters, and other checks
+automatically.
+
+Here’s a **practical, minimal example** to get you started with a small
+Python project.
+
+
+1. Install pre-commit
+---------------------
+
+First, install the ``pre-commit`` package:
+
+.. code:: bash
+
+   pip install pre-commit
+
+
+2. Create a ``.pre-commit-config.yaml`` File
+--------------------------------------------
+
+In the root of your Python project, create a file named
+``.pre-commit-config.yaml`` with the following content:
+
+.. code:: yaml
+
+   repos:
+     - repo: https://github.com/pre-commit/pre-commit-hooks
+       rev: v4.4.0
+       hooks:
+         - id: trailing-whitespace
+         - id: end-of-file-fixer
+         - id: check-yaml
+         - id: check-added-large-files
+
+     - repo: https://github.com/psf/black
+       rev: 23.12.1
+       hooks:
+         - id: black
+
+     - repo: https://github.com/pycqa/flake8
+       rev: 6.1.0
+       hooks:
+         - id: flake8
+
+This config: - Uses popular pre-commit hooks for basic checks - Adds
+`Black `__ for code formatting - Adds
+`Flake8 `__ for linting
+
+
+3. Install the Git Hook
+-----------------------
+
+Run this command in your project root:
+
+.. code:: bash
+
+   pre-commit install
+
+This sets up a Git hook that runs the checks before each commit.
+
+
+4. Try It Out
+-------------
+
+Now, when you try to commit:
+
+.. code:: bash
+
+   git add .
+   git commit -m "My commit message"
+
+pre-commit will run the hooks. If any check fails, you’ll see output
+like this:
+
+::
+
+   Trim Trailing Whitespace............................................Passed
+   Fix End of Files....................................................Passed
+   Check Yaml..........................................................Passed
+   Check for added large files..........................................Passed
+   Black..............................................................Failed
+   - hook id: black
+   - exit code: 1
+
+   Reformatted /path/to/your/file.py
+   All done! ✨ 🍰 ✨
+   1 file reformatted.
+
+If any hook fails, fix the issues and try committing again.
+
+
+5. (Optional) Run pre-commit Manually
+-------------------------------------
+
+You can run all hooks against all files at any time:
+
+.. code:: bash
+
+   pre-commit run --all-files
+
+
+6. Update Hooks
+---------------
+
+To update your hooks to the latest versions:
+
+.. code:: bash
+
+   pre-commit autoupdate
+
+**Summary Table**
+~~~~~~~~~~~~~~~~~
+
+==== ===================== ==============================
+Step Action                Command
+==== ===================== ==============================
+1    Install pre-commit    ``pip install pre-commit``
+2    Create config file    ``.pre-commit-config.yaml``
+3    Install Git hook      ``pre-commit install``
+4    Commit and see checks ``git commit -m "..."``
+5    Run manually          ``pre-commit run --all-files``
+6    Update hooks          ``pre-commit autoupdate``
+==== ===================== ==============================
+
+more python linters
+-------------------
+
+Customizing your ``.pre-commit-config.yaml`` to include **pylint**,
+**ruff**, and additional hooks is a great way to maintain code quality.
+Here’s how you can structure your config for a robust setup:
+
+**1. Basic Setup with pylint and ruff**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here’s a starting point for your ``.pre-commit-config.yaml``:
+
+.. code:: yaml
+
+   repos:
+     - repo: https://github.com/pre-commit/pre-commit-hooks
+       rev: v4.4.0
+       hooks:
+         - id: trailing-whitespace
+         - id: end-of-file-fixer
+         - id: check-yaml
+         - id: check-added-large-files
+
+     - repo: https://github.com/astral-sh/ruff-pre-commit
+       rev: v0.1.6
+       hooks:
+         - id: ruff
+           args: [--fix, --exit-non-zero-on-fix]
+
+     - repo: https://github.com/pycqa/pylint
+       rev: v3.0.3
+       hooks:
+         - id: pylint
+           args: [--rcfile=.pylintrc]  # Optional: specify a pylint config file
+
+**2. Adding More Hooks**
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are some popular hooks you might want to add:
+
+**a. Black (Code Formatter)**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code:: yaml
+
+     - repo: https://github.com/psf/black
+       rev: 23.12.1
+       hooks:
+         - id: black
+
+**b. Mypy (Static Type Checker)**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code:: yaml
+
+     - repo: https://github.com/pre-commit/mirrors-mypy
+       rev: v1.8.0
+       hooks:
+         - id: mypy
+
+**c. isort (Import Sorter)**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code:: yaml
+
+     - repo: https://github.com/pycqa/isort
+       rev: 5.13.2
+       hooks:
+         - id: isort
+
+**d. Bandit (Security Linter)**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code:: yaml
+
+     - repo: https://github.com/pycqa/bandit
+       rev: 1.7.7
+       hooks:
+         - id: bandit
+
+**3. Full Example Config**
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here’s a full example with all the above hooks:
+
+.. code:: yaml
+
+   repos:
+     - repo: https://github.com/pre-commit/pre-commit-hooks
+       rev: v4.4.0
+       hooks:
+         - id: trailing-whitespace
+         - id: end-of-file-fixer
+         - id: check-yaml
+         - id: check-added-large-files
+
+     - repo: https://github.com/astral-sh/ruff-pre-commit
+       rev: v0.1.6
+       hooks:
+         - id: ruff
+           args: [--fix, --exit-non-zero-on-fix]
+
+     - repo: https://github.com/pycqa/pylint
+       rev: v3.0.3
+       hooks:
+         - id: pylint
+           args: [--rcfile=.pylintrc]
+
+     - repo: https://github.com/psf/black
+       rev: 23.12.1
+       hooks:
+         - id: black
+
+     - repo: https://github.com/pre-commit/mirrors-mypy
+       rev: v1.8.0
+       hooks:
+         - id: mypy
+
+     - repo: https://github.com/pycqa/isort
+       rev: 5.13.2
+       hooks:
+         - id: isort
+
+     - repo: https://github.com/pycqa/bandit
+       rev: 1.7.7
+       hooks:
+         - id: bandit
+
+**4. Customizing Hooks**
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  **pylint**: You can specify a config file (``.pylintrc``) or pass
+   arguments directly.
+-  **ruff**: You can customize rules in ``pyproject.toml`` or
+   ``.ruff.toml``.
+-  **Black, isort, mypy**: Each can be configured via their respective
+   config files.
+
+**5. Installing and Running**
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Save the config to ``.pre-commit-config.yaml``.
+
+2. Run:
+
+   .. code:: bash
+
+      pre-commit install
+      pre-commit run --all-files
diff --git a/docs/dict_convention.rst b/docs/dict_convention.rst
deleted file mode 100644
index 2cef856a5..000000000
--- a/docs/dict_convention.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-Dictionary conventions
-=========================
-
-Dictionary file naming convention
-------------------------------------
-
-The order of dictionaries is important for the order in which variables and families are created.
-
-The files must therefore be started with two numbers followed by a hyphen.
-
-For example: `00-base.xml`
-
-Naming convention for families and variables
------------------------------------------------
-
-The only restriction on the name of families and variables is that the name must not start with the `"_"` (undescore) character. 
-
-However, it is preferable to only use lowercase ASCII letters, numbers and the `"_"` (undescore) character. 
-The snake case typographic convention is therefore used.
diff --git a/docs/dictionary.rst b/docs/dictionary.rst
deleted file mode 100644
index e8f483295..000000000
--- a/docs/dictionary.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-The dictionaries
-=====================
-
-What do you mean by :term:`dictionary`?
--------------------------------------------
-
-A :term:`dictionary` is a YAML file whose structure is described in this documentation page.
-
-A dictionary contains a set of variables loaded into :term:`Tiramisu`, usable at any time, especially in a :term:`templates`.
-
-:term:`Families` and :term:`variables` can be defined in several dictionaries. These dictionaries are then aggregated.
-
-Dictionaries are loaded in the directory order defined by the `dictionaries_dir` configuration parameter. 
-Each directory is loaded one after the other. 
-Inside these directories the YAML files will be classified in alphabetical order.
-
-There is no alphabetical ordering of all YAML files in all directories.
-
-It is also possible to :term:`redefine` elements to change the behavior of a family or a variable. 
-
-The default namespace
--------------------------
-
-The families and variables contained in these dictionaries are ordered, by default, in the `rougail` namespace. It is possible to change the name of this namespace :doc:`with the `variable_namespace` parameter of the configuration `.
-
-This namespace is a bit special, it can access variables in another namespace.
-
-The extra dictionaries
----------------------------
-
-An extra is a different namespace. The idea is to be able to classify the variables by theme.
-
-Extra namespaces must be declared :doc:`when configuring Rougail `.
-
-In this namespace we cannot access variables from another `extra` namespace. 
-On the other hand, it is possible to access the variable of the default namespace.
diff --git a/docs/documentation.rst b/docs/documentation.rst
new file mode 100644
index 000000000..2e518e1da
--- /dev/null
+++ b/docs/documentation.rst
@@ -0,0 +1,222 @@
+Documentation Writing Guide
+===========================
+
+This project uses **Sphinx** to generate documentation from reStructuredText (``.rst``) files.
+Following a few consistent conventions will keep our docs clear, maintainable, and correctly rendered.
+
+Section title levels
+--------------------
+
+Use the following underline-only characters for headings:
+
+- **Level 1 titles** (page titles): underline with ``======`` (equal signs)
+
+Example:
+
+.. code-block:: rst
+
+    My Page Title
+    =============
+
+- **Level 2 headings** (major sections): underline with ``-------`` (dashes)
+
+Example:
+
+.. code-block:: rst
+
+    My Second-level Heading
+    -----------------------
+
+- **Level 3 headings** (sub-sections): underline with ``~~~~~~~~~~~`` (tildes)
+
+Example:
+
+.. code-block:: rst
+
+    My Third-level Heading
+    ~~~~~~~~~~~~~~~~~~~~~~
+
+Do **not** skip levels (e.g. going from a level 1 title directly to a level 3 heading).
+
+Handling TODOs and FIXMEs
+------------------------------
+
+We use two complementary mechanisms to track pending work:
+
+- **FIXME** – keyword for things that need **correction** (bugs, typos, broken links, wrong logic)
+- **``.. todo::`` directive** – for things that need to be **done** (missing sections, improvements, new features)
+
+Example:
+
+.. code-block:: rst
+
+    FIXME: The example below uses a deprecated function.
+
+    .. todo::
+        Add a section about configuration file formats.
+
+To show or hide todos in the rendered output, set in your ``conf.py``:
+
+.. code-block:: python
+
+    todo_include_todos = True   # shows todos in the HTML output
+    # todo_include_todos = False  # hides them
+
+When ``True``, all ``.. todo::`` directives appear inline. Use this for local reviews; keep it ``False`` for public releases unless you want todos visible.
+
+Extensions
+----------
+
+Our Sphinx configuration uses the following extensions:
+
+.. code-block:: python
+
+    extensions = [
+        'sphinx.ext.extlinks',
+        'sphinx_lesson',
+        'sphinx.ext.todo',
+    ]
+
+- **``sphinx.ext.todo``** – enables the ``.. todo::`` directive and the ``todo_include_todos`` setting.
+- **``sphinx_lesson``** – provides lesson‑specific markup (see its documentation for details).
+- **``sphinx.ext.extlinks``** – creates short aliases for long, repetitive URLs.
+
+External links (extlinks)
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``extlinks`` extension defines convenient shortcuts. For each alias you write ``::``, and Sphinx expands it into a full URL.
+
+Our configuration:
+
+.. code-block:: python
+
+    extlinks = {
+        'source': ('https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/%s',
+                   'source: %s'),
+        'tiramisu': ('https://tiramisu.readthedocs.io/en/latest/%s', 'tiramisu: %s'),
+        'tutorial': ('https://forge.cloud.silique.fr/stove/rougail-tutorials/%s', 'tutorial %s'),
+    }
+
+Usage examples:
+
+- ``:source:`v1.1_010/firefox/00-proxy.yml``` → links to the raw file at that tag, displayed as ``source: v1.1_010/firefox/00-proxy.yml``
+- ``:tiramisu:`configuration.html``` → links to the Tiramisu documentation, displayed as ``tiramisu: configuration.html``
+- ``:tutorial:`README.md``` → links to the rougail-tutorials file, displayed as ``tutorial README.md``
+
+The first string in each tuple is the URL pattern (the ``%s`` is replaced by your custom text). The second string is the visible link title (where ``%s`` is again replaced by your custom text).
+
+General writing tips
+--------------------
+
+- **Keep lines wrapped at 80–90 characters** for readability in plain text.
+- **Use blank lines** before and after headings, lists, code blocks, and tables.
+- **Prefer explicit cross-references** with Sphinx roles like ``:ref:`` or ``:doc:`` over raw URLs.
+- **Write in present tense** and imperative mood for instructions (e.g. “Define the function”, not “The function should be defined”).
+- **Use ``.. code-block::``** for syntax highlighting. Always specify the language (``python``, ``bash``, ``json``, etc.).
+- **Review the rendered output** with ``make html`` before committing.
+
+File organisation
+-----------------
+
+- Place ``.rst`` files in the ``source/`` directory (or as defined in your Sphinx ``conf.py``).
+- One page per logical topic – split long documents into sub-pages and link them with ``toctree``.
+- Name files with lowercase letters and hyphens instead of underscores or spaces (e.g. ``api-reference.rst``).
+
+Example – a typical page
+------------------------
+
+.. code-block:: rst
+
+    Using the Logger
+    ================
+
+    Basic setup
+    -----------
+
+    Add the following to your configuration:
+
+    .. code-block:: python
+
+        import logging
+        logging.basicConfig(level=logging.INFO)
+
+    Advanced filtering
+    ~~~~~~~~~~~~~~~~~~
+
+    For more complex filtering, see :ref:`custom-filters`.
+
+    FIXME: The example above should mention log levels.
+
+    .. todo::
+        Add a section about rotating log files.
+
+For any questions about Sphinx directives or reStructuredText syntax, check the `official Sphinx documentation `_.
+
+Displaying YAML files
+-------------------------
+
+We host our data files on a remote forge. To include and display YAML files directly from that remote repository, we use a custom directive called **``extinclude``**.
+
+This directive works like the standard ``.. include::`` but fetches content from a **remote URL** instead of a local file.
+
+YAML files coming from a data repository
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Use the following syntax to include a remote YAML file with syntax highlighting:
+
+.. code-block:: rst
+
+    .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_170/firefox/60-dns_over_https.yml
+       :language: yaml
+       :caption: The :file:`firefox/60-dns_over_https.yml` with the jinja validator
+
+Explanation of options:
+
+- **``extinclude:: ``** – the full URL to the raw YAML file on the remote forge
+- **``:language: yaml``** – enables YAML syntax highlighting in the rendered output
+- **``:caption: ``** – adds a descriptive caption below the code block
+
+Displaying terminal commands
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To include and display a text file containing bash commands or terminal output, use the ``raw`` directive with the ``terminal`` class:
+
+.. code-block:: rst
+
+    .. raw:: html
+       :class: terminal
+       :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_033/config/02/cmd_ro.txt
+
+This fetches the remote text file and renders it with terminal-style formatting (typically a dark background, monospaced font, and command-line appearance).
+
+Displaying HTML output
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To include and display an HTML file from the remote forge, use the ``raw`` directive with the ``output`` class:
+
+.. code-block:: rst
+
+    .. raw:: html
+       :class: output
+       :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_033/config/02/output_ro.html
+
+This fetches the remote HTML file and embeds it directly into the generated documentation page.
+
+Summary
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
++----------------------------+----------------------+---------------------------+
+| Content type               | Directive            | Class                     |
++============================+======================+===========================+
+| YAML files                 | ``.. extinclude::``  | ``:language: yaml``       |
++----------------------------+----------------------+---------------------------+
+| Terminal commands / text   | ``.. raw:: html``    | ``:class: terminal``      |
++----------------------------+----------------------+---------------------------+
+| HTML output                | ``.. raw:: html``    | ``:class: output``        |
++----------------------------+----------------------+---------------------------+
+
+
+
+All three directives fetch content from our remote forge at build time, ensuring the documentation always displays the latest version of the referenced files.
+
diff --git a/docs/ext/extinclude.py b/docs/ext/extinclude.py
new file mode 100644
index 000000000..f5f1915f0
--- /dev/null
+++ b/docs/ext/extinclude.py
@@ -0,0 +1,95 @@
+from __future__ import annotations
+
+from docutils import nodes
+from sphinx.application import Sphinx
+from sphinx.util.docutils import SphinxDirective, SphinxRole
+from sphinx.util.typing import ExtensionMetadata
+from sphinx.directives.code import LiteralInclude, container_wrapper
+
+import requests
+from requests.exceptions import RequestException
+from docutils.parsers.rst import directives
+
+class ExtInclude(LiteralInclude):
+    """A directive to include code that comes from an url
+
+    Sample use::
+
+        .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/firefox/00-proxy.yml
+           :linenos:
+           :language: yaml
+           :caption: this is a interesting code
+
+    - parameter required
+    - linenos, language and caption are optionnal.
+
+    :default language: yaml
+    :default caption: extinclude parameter (url)
+
+    """
+
+    def run(self) -> list[nodes.Node]:
+        url = self.arguments[0]
+        
+        try:
+            headers = {
+                'accept': 'application/text',
+                'Content-Type': 'application/text',
+            }
+            response = requests.get(url, headers=headers)
+            response.raise_for_status()  # This will raise an exception for 4xx/5xx status codes
+            
+        except requests.exceptions.HTTPError as e:
+            if response.status_code == 404:
+                error_msg = f"extinclude: URL not found (404): {url}"
+            else:
+                error_msg = f"extinclude: HTTP error {response.status_code}: {url}"
+            
+            # Create an error node that will be displayed in the documentation
+            error_node = nodes.error()
+            para = nodes.paragraph()
+            para += nodes.Text(error_msg)
+            error_node += para
+            self.state.document.reporter.warning(error_msg, line=self.lineno)
+            return [error_node]
+            
+        except requests.exceptions.RequestException as e:
+            error_msg = f"extinclude: Failed to fetch URL {url}: {str(e)}"
+            
+            # Create an error node that will be displayed in the documentation
+            error_node = nodes.error()
+            para = nodes.paragraph()
+            para += nodes.Text(error_msg)
+            error_node += para
+            self.state.document.reporter.warning(error_msg, line=self.lineno)
+            return [error_node]
+
+        code = response.text
+
+        literal = nodes.literal_block(code, code)
+        if 'language' in self.options:
+            literal['language'] = self.options['language']
+        else:
+            literal['language'] = 'yaml'
+        literal['linenos'] = 'linenos' in self.options
+        if 'caption' in self.options:
+            caption = self.options.get('caption')
+        else:
+            caption = url
+        literal['caption'] = caption
+        if 'name' in self.options:
+            literal['name'] = self.options.get('name')
+        literal = container_wrapper(self, literal, caption)
+        self.add_name(literal)
+
+        return [literal]
+
+
+def setup(app: Sphinx) -> ExtensionMetadata:
+    app.add_directive('extinclude', ExtInclude)
+
+    return {
+        'version': '0.1',
+        'parallel_read_safe': True,
+        'parallel_write_safe': True,
+    }
diff --git a/docs/ext/xref.py b/docs/ext/xref.py
new file mode 100644
index 000000000..71948a3fa
--- /dev/null
+++ b/docs/ext/xref.py
@@ -0,0 +1,67 @@
+"""adds link url in the global scope
+
+sample use:
+
+:xref:`Tiramisu `
+
+You must declare in the `conf.py`
+
+::
+
+    #---- xref links ----
+    #import the xref.py extension
+            xref_links = {"link_name" : ("user text", "url")}
+    #link_name = "Sphinx External Links"
+    #user_text = "modified External Links Extension"
+    #url = "http://www.sphinx-doc.org/en/stable/ext/extlinks.html"
+    #enables syntax like:
+            " :xref:`tiramisu` "
+            links = {
+                    'tiramisu': ('Tiramisu', 'https://tiramisu.readthedocs.io/en/latest/'),
+                    'tiramisu library': ('Tiramisu library homepage', 'https://forge.cloud.silique.fr/stove/tiramisu'),
+                    }
+            xref_links.update(links)
+
+
+
+"""
+from docutils import nodes
+
+from sphinx.util import caption_ref_re
+
+def xref( typ, rawtext, text, lineno, inliner, options={}, content=[] ):
+
+    title = target = text
+    titleistarget = True
+    # look if explicit title and target are given with `foo ` syntax
+    brace = text.find('<')
+    if brace != -1:
+        titleistarget = False
+        m = caption_ref_re.match(text)
+        if m:
+            target = m.group(2)
+            title = m.group(1)
+        else:
+            # fallback: everything after '<' is the target
+            target = text[brace+1:]
+            title = text[:brace]
+
+    link = xref.links[target]
+
+    if brace != -1:
+        pnode = nodes.reference(target, title, refuri=link[1])
+    else:
+        pnode = nodes.reference(target, link[0], refuri=link[1])
+
+    return [pnode], []
+
+def get_refs(app):
+
+    xref.links = app.config.xref_links
+
+def setup(app):
+
+    app.add_config_value('xref_links', {}, True)
+    app.add_role('xref', xref)
+    app.connect("builder-inited", get_refs)
+
diff --git a/docs/family.rst b/docs/family.rst
deleted file mode 100644
index 964a4006e..000000000
--- a/docs/family.rst
+++ /dev/null
@@ -1,262 +0,0 @@
-A family
-============
-
-Synopsis
----------
-
-A family is a container of variables and subfamily.
-
-.. attention:: A family without a subfamily or subvariable will be automatically deleted.
-
-Name
--------------
-
-It is with this name that we will be able to interact with the family.
-
-It's best to follow the :ref:`convention on variable names`.
-
-Shorthand declaration
-----------------------------
-
-Shorthand declaration is a way to declare a family in a single line. But you can only define family name and description.
-
-To create a family, just add a key with it's name and variables as values. Attention, do not declare any other attributs.
-
-By default, the description of the variable is the family name.
-If you add comment in same line of name, this comment is use as description:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_family:  # This is a great family
-      variable:
-
-Parameters
----------------
-
-.. FIXME: faire une page sur la "convention on variable names"
-
-.. list-table::
-   :widths: 15 45
-   :header-rows: 1
-
-   * - Parameter
-     - Comments
-
-   * - type, _type
-
-       `string`
-
-     - possile values:
-
-       - `family` (**default value**)
-       - `leadership`
-       - `dynamic`
-
-       .. note:: If a subfamily or a subvariable already has the name `"type"`, it is possible to use the `"_type"` attribute.
-
-   * - description, _description
-
-       `string`
-     - Description of the family.
-
-       User information to understand the usefulness of the family.
-
-       ..note:: If a subfamily or subvariable already has the name "description" it is possible to use the "_description" attribute.
-
-   * - help, _help
-
-       `string`
-     - Additional help associated with the family.
-
-       .. note:: If a subfamily or a subvariable already has the name "help" it is possible to use the "_help" attribute.
-
-   * - mode, _mode
-
-       `string`
-     - Family mode.
-
-       The default mode of a family is the smallest mode of the parent families, child variables, or child families that are contained in that family.
-
-       This mode also allows you to define the default mode for variables or families included in this family.
-
-       .. note:: If a subfamily or a subvariable already has the name "mode" it is possible to add the "_mode" attribute.
-
-   * - hidden, _hidden
-
-       `string`
-     - Invisible family.
-
-       Allows you to hide a family as well as the variables or families included in this family.
-
-       This means that the family will no longer be visible in `read-write` mode, but only for calculations or in `read-only` mode.
-
-       .. note:: If a subfamily or a subvariable already has the name "hidden" it is possible to add the "_hidden" attribute.
-
-   * - disabled, _disabled
-
-       `string`
-
-     - Disabled family.
-
-       Allows you to deactivate a family as well as the variables or families included in this family.
-
-       This means that the family will no longer be visible to the user but also to a :term:`calculation`.
-
-       .. note:: If a subfamily or a subvariable already has the name "disabled" it is possible to use the "_disabled" attribute.
-
-Dynamically created family
------------------------------
-
-To create a family dynamically, you must create a fictitious family linked to a calculation.
-The family name will actually be the prefix of the new name. Alternativly you can specify the suffix in the name, ie `my_{{ suffix }}_name`.
-The suffix will come from the calculation.
-
-Obviously if the result of calculation were to evolve, new dynamic families will appear or disappear.
-
-Leader or follower variable
------------------------------
-
-A leader family has a typical attribute of “leadership”. The type is required.
-
-A leader family
-----------------
-
-The leader and follower variables are placed in a leader family.
-
-A leader family cannot contain other families.
-
-The default mode of the leader family is the mode of the leader variable.
-
-Leader variable
-----------------
-
-A leader variable is a variable that will guide the length of other variables (called follower variables).
-
-A leader variable is a :doc:`variable` that must have the `multiple` type.
-
-A leader variable may be mandatory.
-
-The default mode corresponds to the smallest mode defined for the follower variables.
-
-Follower variable
---------------------
-
-A follower variable is a variable whose length is not determined by itself, but is identical to that of the leader variable on which it depends.
-
-A follower variable is a variable placed just behind a leader variable or another follower variable.
-
-The order in which the tracking variables are defined is important.
-
-This variable can be of multiple type. In this case, for a determined index of the leading variable, it is possible to put several values to the same variable.
-
-A follower variable may be required. This means that when a leader variable is entered, the follower variable must also be a value at the index considered. If no value is defined for the leader variable, no value is specified for the follower variable.
-
-The default mode of a follower variable corresponds to the mode of the leader variable.
-
-If a leader variable is hidden or disabled, the follower variables will be hidden or disabled as well.
-
-Examples
-----------
-
-Simple family:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_family:
-      type: family
-      description: This is a great family
-      help: This is the help of a great family
-      mode: expert
-
-Dynamically created family
-----------------------------
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    varname:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_dyn_family_:
-      type: dynamic
-      dynamic:
-        type: variable
-        variable: rougail.varname
-      description: 'Describe'
-      my_dyn_var:
-        type: string
-        description: 'Variable description'
-
-This will dynamically create two families:
-
-- "rougail.my_dyn_family_val1"
-- "rougail.my_dyn_family_val2"
-
-In the dynamic family "rougail.my_dyn_family_val1" we will find a variable "my_dyn_var".
-
-Here is a second example:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    varname:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_dyn_{{ suffix }}_family:
-      type: dynamic
-      dynamic:
-        type: variable
-        variable: rougail.varname
-      description: 'Describe'
-      my_dyn_var:
-        type: string
-        description: 'Variable description'
-
-This will dynamically create two families:
-
-- "rougail.my_dyn_val1_family"
-- "rougail.my_dyn_val2_family"
-
-In the dynamic family "rougail.my_dyn_val1_family" we will find a variable "my_dyn_var".
-
-Leader or follower variable
--------------------------------
-
-Definition of leader and follower variables
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here is an example of defining a leading variable and two following variables:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    family:
-      type: leadership
-      leader:
-        multi: true
-      follower1:
-      follower2:
-        multi: true
-
-Adding a new follower variable
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To add a new follower variable, in a new dictionary, simply define one or more new variables in the leader family:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    family:
-      follower3:
diff --git a/docs/fill.rst b/docs/fill.rst
deleted file mode 100644
index d796bff25..000000000
--- a/docs/fill.rst
+++ /dev/null
@@ -1,585 +0,0 @@
-Calculated default values
-==============================
-
-Synopsis
------------
-
-A value can be calculated. In this case we have four possibilities:
-
-- calculation via Jinja
-- calculation via a variable
-- calculation via information
-- calculation via a suffix: in the case of a variable in a dynamic family
-- calculation via an index: in the case of a follower variable
-
-If the user modifies the value of the variable, the default value is no longer used, so the calculation is no longer carried out. This is also the case if the variable has the `auto_save` attribute.
-
-On the other hand, if the variable is hidden (with the `hidden` parameter), it is the default value that is used and not the value customized by the user.
-
-.. note:: A follower variable cannot be calculated automatically.
-
-Parameters
---------------
-
-Depending on the types of calculation, the parameters will be different:
-
-.. list-table:: 
-   :widths: 15 25 20 15
-   :header-rows: 1
-   
-   * - Calculation type 
-     - Parameter
-     - Comments
-     - Sample
-
-   * - 
-     - **type** 
-     
-       `string`
-       
-       `mandatory`
-       
-     - Type of calculation, possible values are: jinja, variable, information, suffix or index
-     - jinja
-   * - Jinja 
-     - **jinja**
-     
-       `string`
-       
-       `mandatory`
-     - Template Jinja. For a multiple variable, each line represents a value.
-     - `{% if rougail.variable %}
-
-       {{ rougail.variable }}
-
-       {% endif %}`
-   * - Jinja 
-     - **params** 
-     
-       `list` 
-     - Additional parameters passed to the Jinja template
-     -  
-   * - Variable (`mandatory`)
-
-       Information
-     - **variable** 
-
-       `string`
-     - Name of associated variable
-     - rougail.variable 
-   * - Variable
-     - **propertyerror** 
-     
-       `boolean`
-     - If access to the variable is not possible due to a property (for example `disabled`) by default an error is returned. If the attribute is `false`, the calculated value is empty.
-
-       **Default value:** `true`
-     - false 
-     
-   * - Information
-     - **information**
-            
-       `string`
-       
-       `mandatory`
-     - Name of the information whose value we want to retrieve.
-     - doc
-
-In the case of a Jinja type calculation, it is possible to have parameters.
-
-There are two types of parameter:
-
--  the standard parameters (string, boolean, integer, null), in this case just do: "key: value"
-
--  the advanced settings:
-
-    - parameter via a variable
-    - parameter via an information
-    - parameter via a suffix: in the case of a variable in a dynamic family
-    - parameter via an index: in the case of a follower variable
-
-.. list-table:: 
-   :widths: 15 25 20 15
-   :header-rows: 1
-   
-   * - Parameter type 
-     - Parameter
-     - Comments
-     - Sample
-
-   * - 
-     - **name**
-                 
-       `string`
-       
-       `mandatory`
-     - parameter's name
-     - my_param  
-   * - 
-     - **type**
-                 
-       `string`
-       
-       `mandatory`
-     - parameter's type, possible values are: variable, information, suffix or index
-     - suffix
-   * - Variable
-     - **variable**
-     
-       `string`
-       
-       `mandatory`
- 
-     - Variable's name 
-     - rougail.variable
-   * - Variable (`mandatory`) information
-     - **propertyerror** 
-     
-       `boolean`
-     - If access to the variable is not possible due to a property (for example `disabled`) by default an error is returned. If the attribute is `False`, the parameter is not passed to the Jinja template.
-     - **Default value**: `True`
-   * - Variable 
-     - **optional**
-             
-       `boolean`
-     - The variable may not exist depending on YAML file imports. 
-       If the optional parameter is `True`, the parameter will simply be deleted if the variable does not exist.
-
-       Default value : `False`  
-     - True
-   * - Information
-     - **information**
-     
-       `string`
-       
-       `mandatory`
-     - Name of the information whose value we want to retrieve.
-     - doc
-
-The variable path
------------------
-
-Normal family
-~~~~~~~~~~~~~
-
-The default namespace is defined in RougailConfig["variable_namespace"] with the default value "rougail".
-In addition, there are extras namespaces defined with in RougailConfig["extra_dictionaries"].
-
-Inside those namespaces we can add families and variables.
-
-Here is an hierarchic examples:
-
-.. code-block::
-  rougail
-    ├── variable1
-    ├── family1
-    │     ├── variable2
-    │     └── variable3
-    └── family2
-          └── subfamily1
-                └── variable4
-  extra1
-    └── family3
-          ├── variable5
-          └── variable6
-
-In `calculation` we can use other variables.
-
-Here is all paths:
-
-- rougail.variable1
-- rougail.family1.variable2
-- rougail.family1.variable3
-- rougail.family2.subfamily1.variable4
-- extra1.family3.variable5
-- extra1.family3.variable6
-
-Inside a variable's `calculation` we can use relative path. "_" means that other variable is in same family. "__" means that other variables are in parent family, and so on...
-
-For example, in variable2's `calculation`, we can use relative path:
-
-- __.variable1
-- _.variable3
-- __.family2.subfamily1.variable4
-
-But we cannot access to extra1 variables with relative path.
-
-Dynamic family
-~~~~~~~~~~~~~~~~~~
-
-Hire is a dynamic family "{{ suffix }}":
-
-.. code-block::
-  rougail
-    ├── variable1: ["val1", "val2"]
-    ├── {{ suffix }}
-    │     ├── variable2
-    │     └── variable3
-    └── family
-          └── variable4
-
-For variable2's calculation, we can use:
-
-- rougail.{{ suffix }}.variable3
-- _.variable3
-
-In this case, we get value for "variable3" with the same suffix as "variable2".
-
-For variable4's calculation, we have two possibility:
-
-- retrieves all values with all suffixes:
-
-  - rougail.{{ suffix }}.variable3
-  - __.{{ suffix }}.variable3
-
-- retrieves a value for a specified suffix:
-
-  - rougail.val1.variable3
-  - __.val1.variable3
-
-Examples
------------
-
-Calculation via a Jinja template
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Let's start with an example from a simple Jinja template:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      default:
-        type: jinja
-        jinja: 'no'
-
-Here is a second example with a boolean variable:        
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      type: boolean
-      default:
-        type: jinja
-        jinja: 'false'
-
-And a multiple value of the number type:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      type: number
-      multi: true
-      default:
-        type: jinja
-        jinja: |
-          1
-          2
-          3      
-
-Let's create a variable whose value is returned by a python function:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      default:
-        type: jinja
-        jinja: '{{ return_no() }}'
-
-Then let's create the `return_no` function:
-
-.. code-block:: python 
-
-    def return_no():
-        return 'no'
-
-An example with parameters:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      description: my description
-      default:
-        type: jinja
-        jinja: |
-                {{ param1 }}{% if param2 is defined %}_{{ param2 }}{% endif %}_{{ param3 }}
-        params:
-          param1: value
-          param2:
-            type: variable
-            variable: _.unknown_variable
-            optional: true
-          param3:
-            type: information
-            information: doc
-            variable: _.my_calculated_variable
-
-An example with a `suffix` type parameter:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    varname:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_dyn_family_:
-      type: dynamic
-      dynamic:
-        type: variable
-        variable: _.varname
-      description: 'Describe '
-      my_dyn_var:
-        type: string
-        default:
-          type: jinja
-          jinja: 'the suffix is: {{ param1 }}'
-          params:
-            param1:
-              type: suffix
-
-In this example, we see a dynamic family. Two families will be created: `rougail.my_dyn_family_val1.my_dyn_var` and `rougail.my_dyn_family_val2.my_dyn_var`.
-
-The value of the variable inside this family 'this suffix is: ' + the value of the suffix (`val1` and `val2` respectively).
-
-An example with an index type parameter:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    family:
-      type: leadership
-      leader:
-        multi: true
-        default:
-          - val1
-          - val2
-      follower1:
-        default:
-          type: jinja
-          jinja: 'the index is: {{ param1 }}'
-          params:
-            param1:
-              type: index
-
-Calculation via a variable
------------------------------
-
-Copy a variable in another: 
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_calculated_variable:
-      multi: true
-      default:
-        type: variable
-        variable: _.my_variable
-
-Copy the default value from a variable, means copy type, params and multi attribute too if not define in second variable.
-
-.. code-block:: yaml
-
-      ---
-      version: 1.1
-      my_variable:
-        multi: true
-        type: domainname
-        params:
-          allow_ip: true
-      my_calculated_variable:
-        default:
-          type: variable
-          variable: _.var1
-
-Here my_calculated_variable is a domainname variable with parameter allow_ip=True and multi to true.
-
-Copy one variable to another if the source has no `property` problem:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable:
-      default: val1
-      disabled: true
-    my_calculated_variable:
-      multi: true
-      default:
-        type: variable
-        variable: _.my_variable
-        propertyerror: false
-
-Copy two non-multiple variables into a multiple variable:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_variable_1:
-      default: val1
-    my_variable_2:
-      default: val2
-    my_calculated_variable:
-      multi: true
-      default:
-        - type: variable
-          variable: _.my_variable_1
-        - type: variable
-          variable: _.my_variable_2
-
-A variable in a dynamic family can also be used in a calculation.
-
-For example using the variable for a particular suffix:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    varname:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_dyn_family_:
-      type: dynamic
-      dynamic:
-        type: variable
-        variable: _.varname
-      description: 'Describe '
-      my_dyn_var_:
-        type: string
-        default:
-          type: suffix
-    all_dyn_var:
-      default:
-        type: variable
-        variable: _.my_dyn_family_val1.my_dyn_var_val1
-
-In this case, we recover the value `val1`.
-
-Second example using the variable for all suffixes:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1' 
-    varname:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_dyn_family_:
-      type: dynamic
-      dynamic:
-        type: variable
-        variable: _.varname
-      description: 'Describe '
-      my_dyn_var_:
-        type: string
-        default:
-          type: suffix
-    all_dyn_var:
-      multi: true
-      default:
-        type: variable
-        variable: _.my_dyn_family_.my_dyn_var_
-
-In this case, we recover the `val1` and `val2` list.
-
-Calculation via a suffix
----------------------------
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    varname:
-      multi: true
-      default:
-        - val1
-        - val2
-    my_dyn_family_:
-      type: dynamic
-      dynamic:
-        type: variable
-        variable: _.varname
-      description: 'Describe '
-      my_dyn_var_:
-        type: string
-        default:
-          type: suffix
-
-Calculation via an index
---------------------------
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    family:
-      type: leadership
-      leader:
-        multi: true
-        default:
-          - val1
-          - val2
-      follower1:
-        type: number
-        default:
-          type: index
-
-Redefinition
-----------------
-
-In a first dictionary, let's declare our variable and our calculation:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      default:
-        type: jinja
-        jinja: 'the value is calculated'
-
-In a second dictionary, it is possible to redefine the calculation:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      redefine: true
-      default:
-        type: jinja
-        jinja: 'the value is redefined'
-
-In a third dictionary, we even can delete the calculation if needed:
-
-.. code-block:: yaml
-
-    ---
-    version: '1.1'
-    my_calculated_variable:
-      redefine: true
-      default: null
-
diff --git a/docs/format_content/calculation.rst b/docs/format_content/calculation.rst
new file mode 100644
index 000000000..dd1e66f80
--- /dev/null
+++ b/docs/format_content/calculation.rst
@@ -0,0 +1,563 @@
+.. _calculated_variable:
+
+Calculated default values
+==============================
+
+Synopsis
+-----------
+
+A value can be calculated. In this case we have four possibilities:
+
+- calculation via Jinja template
+- calculation via a variable
+- calculation via an information
+- calculation via a identifier: in a :term:`dynamically built family` returns the current identifier
+- calculation via an index: in the case of a follower variable returns the current index
+- calculation via :ref:`the current namespace name `
+
+If the user modifies the value of the variable, the default value is no longer used, so the calculation is no longer carried out. This is also the case if the variable has the `auto_save` attribute.
+
+On the other hand, if the variable is hidden (with the `hidden` parameter), it is the default value that is used and not the value customized by the user.
+
+.. note:: A follower variable cannot be calculated automatically.
+
+.. seealso:: The tutorial with a real world sample :ref:`calculation `
+
+Parameters
+--------------
+
+Jinja template
+~~~~~~~~~~~~~~
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Calculation type**
+     - **Comment**
+
+   * - **type**
+
+       `string`
+     - The value is `jinja`
+
+   * - **jinja**
+
+       `string`
+
+       `mandatory`
+     - Please set a Jinja template.
+
+   * - **params**
+
+       `dict`
+     - Additional parameters passed to the Jinja template (see below).
+
+   * - **description**
+
+       `string`
+     - Additional information for the :ref:`documentation ` and the error message in case of return_type is a boolean.
+
+Variable
+~~~~~~~~
+
+.. list-table::
+   :header-rows: 1
+
+   * - Parameter
+     - Comment
+     - Sample
+
+   * - type
+
+       `string`
+     - Calculation type.
+
+       This parameter is optional. It is deduced from the presence of the parameter "variable" in a calculation.
+     - variable
+
+   * - variable
+
+       `string`
+
+       `mandatory`
+     - Name of the associated variable.
+
+       It's better to use :term:`relative path` notation.
+     - _.my_variable
+
+   * - propertyerror
+
+       `boolean`
+     - If access to the variable is not possible due to a property
+       (for example `disabled`) by default an error is returned.
+       The overall coherence is not guaranteed.
+
+       Default value: `true`
+     - false
+
+   * - optional
+
+       `boolean`
+     - The variable in calculation may not exist. This generates an error. Overall coherence is not guaranteed.
+       To avoid this set the optional parameter to `true`. In this case, if variable in calculation is not exists, the variable is always accessible.
+     - true
+
+   * - default
+
+       `boolean`
+     - If optional parameter is set to `true` and the variable in calculation is not exist, the variable is accessible.
+       If you do not want this behavior, set this parameter to `false`.
+     - false
+
+   * - description
+
+       `string`
+     - Rougail engine create a description like "depends on a calculation".
+       You can personnalize here the calculation description
+     -
+
+Information
+~~~~~~~~~~~
+
+.. list-table::
+   :header-rows: 1
+
+   * - Parameter
+     - Comments
+     - Sample
+
+   * - information
+
+       `string`
+
+       `mandatory`
+     - Name of the information whose value we want to retrieve.
+     - doc
+
+   * - variable
+
+       `string`
+     - Variable's name. If not specified, the information is retrieve in :term:`Tiramisu` Config.
+
+       It's better to use :term:`relative path` notation.
+     - _.my_variable
+
+Params
+~~~~~~
+
+In the case of a Jinja type calculation, it is possible to have parameters.
+
+There are two types of params:
+
+- the standard parameters (string, boolean, integer, float or null), in this case just do: "key: value"
+- advanced settings (with something like "key: {}":
+
+  - parameter via a variable
+  - parameter via an information
+  - parameter via an identifier: in a :term:`dynamically built family` returns the current identifier
+  - parameter via an index: in the case of a follower variable returns the current index
+  - parameter via :ref:`the current namespace name `
+
+Variable params
+"""""""""""""""
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Parameter**
+     - **Comments**
+     - **Sample**
+
+   * - **type**
+
+       `string`
+     - Type of parameter, which is variable.
+     - variable
+
+   * - **variable**
+
+       `string`
+
+       `mandatory`
+     - Variable's path.
+     - my_variable
+
+   * - **propertyerror**
+
+       `boolean`
+     - If access to the variable is not possible due to a property
+       (for example `disabled`) by default an error is returned.
+       If the attribute is `false`, the parameter is not passed to the Jinja template.
+
+       **Default value**: `false`
+     - `true`
+
+   * - **optional**
+
+       `boolean`
+     - If the variable is not defined the value is always `null`.
+
+       **Default value**: `false`
+     - `true`
+
+   * - **whole**
+
+       `boolean`
+     - In :term:`dynamically built family` only the value of the current index is retrieve. If this parameter is set to `true` it returns all
+       If this parameter is set to `true`, it returns the set of values for all indices.
+
+       **Default value**: `false`
+     - `true`
+
+Information params
+~~~~~~~~~~~~~~~~~~
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Parameter**
+     - **Comments**
+     - **Sample**
+
+   * - **type**
+
+       `string`
+     - Type of parameter, which is information
+     - information
+
+   * - **information**
+
+       `string`
+
+       `mandatory`
+     - Name of the information whose value we want to retrieve.
+     - doc
+
+   * - **variable**
+
+       `string`
+     - By default, the information is a context information. It is possible to get a variable information. In this case just specify a path.
+     - my_variable
+
+Sample
+-----------
+
+Calculation via a Jinja template
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Let's start with an example from a simple Jinja template:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_calculated_variable:
+      default:
+        jinja: 'no'
+    ...
+
+Here is a second example with a boolean variable:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_calculated_variable:
+      type: boolean
+      default:
+        jinja: 'false'
+    ...
+
+And a multiple value of the integer type:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_calculated_variable:
+      type: integer
+      multi: true
+      default:
+        jinja: |
+          1
+          2
+          3
+    ...
+
+Let's create a variable whose value is returned by a python function:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_calculated_variable:
+      default:
+        jinja: '{{ return_no() }}'
+    ...
+
+Then let's create the `return_no` function:
+
+.. code-block:: python
+
+    def return_no():
+        return 'no'
+
+An example with parameters:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_calculated_variable:
+      description: my description
+      default:
+        jinja: |
+                {{ param1 }}{% if param2 is defined %}_{{ param2 }}{% endif %}_{{ param3 }}
+        params:
+          param1: value
+          param2:
+            type: variable
+            variable: _.unknown_variable
+            optional: true
+          param3:
+            type: information
+            information: doc
+            variable: _.my_calculated_variable
+    ...
+
+An example with a `identifier` type parameter:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_dyn_family_{{ identifier }}:
+      dynamic:
+        - val1
+        - val2
+      description: 'Describe {{ identifier }}'
+
+      my_dyn_var:
+        default:
+          jinja: 'the identifier is: {{ param1 }}'
+          params:
+            param1:
+              type: identifier
+
+In this example, we see a :term:`dynamically built family`. Two families will be created: `my_dyn_family_val1.my_dyn_var` and `my_dyn_family_val2.my_dyn_var`.
+
+The value of the variable inside this family 'this identifier is: ' + the value of the identifier (`val1` and `val2` respectively).
+
+An example with an index type parameter:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    family:
+      type: sequence
+
+      leader:
+        - val1
+        - val2
+
+      follower1:
+        default:
+          type: jinja
+          jinja: 'the index is: {{ param1 }}'
+          params:
+            param1:
+              type: index
+    ...
+
+Calculation via a variable
+-----------------------------
+
+Copy a variable in another:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable:
+      default:
+        - val1
+        - val2
+
+    my_calculated_variable:
+      default:
+        type: variable
+        variable: _.my_variable
+    ...
+
+Copy the default value from a variable, means copy type, params and multi attribute too if not define in second variable.
+
+.. code-block:: yaml
+
+      %YAML 1.2
+      ---
+      version: 1.1
+
+      my_variable:
+        multi: true
+        type: domainname
+        params:
+          allow_ip: true
+
+      my_calculated_variable:
+        default:
+          type: variable
+          variable: _.var1
+
+Here my_calculated_variable is a domainname variable with parameter allow_ip=True and multi to true.
+
+Copy one variable to another if the source has no `property` problem:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable:
+      default: val1
+      disabled: true
+
+    my_calculated_variable:
+      multi: true
+      default:
+        variable: _.my_variable
+        propertyerror: false
+    ...
+
+Copy two non-multiple variables into a multiple variable:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable_1: val1
+
+    my_variable_2: val2
+
+    my_calculated_variable:
+      default:
+        - variable: _.my_variable_1
+        - variable: _.my_variable_2
+
+A variable in a :term:`dynamically built family` can also be used in a calculation.
+
+For example using the variable for a particular identifier:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    varname:
+      - val1
+      - val2
+
+    my_dyn_family_{{ identifier }}:
+      dynamic:
+        - val1
+        - val2
+      description: 'Describe {{ identifier }}'
+      my_dyn_var_{{ identifier }}:
+        default:
+          type: identifier
+
+    all_dyn_var:
+      default:
+        variable: _.my_dyn_family_val1.my_dyn_var_val1
+
+In this case, we recover the value `val1`.
+
+Second example using the variable for all identifieres:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    varname:
+    my_dyn_family_{{ identifier }}:
+      dynamic:
+        - val1
+        - val2
+      description: 'Describe {{ identifier }}'
+
+      my_dyn_var_{{ identifier }}:
+        default:
+          type: identifier
+
+    all_dyn_var:
+      multi: true
+      default:
+        variable: _.my_dyn_family_.my_dyn_var_
+    ...
+
+In this case, we recover the `val1` and `val2` list.
+
+Calculation via a identifier
+----------------------------
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_dyn_family_{{ identifier }}:
+      dynamic:
+        - val1
+        - val2
+      description: 'Describe {{ identifier }}'
+
+      my_dyn_var_{{ identifier }}:
+        type: string
+        default:
+          type: identifier
+    ...
+
+Calculation via an index
+--------------------------
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    family:
+      type: sequence
+
+      leader:
+        - val1
+        - val2
+
+      follower1:
+        type: integer
+        default:
+          type: index
+    ...
diff --git a/docs/format_content/condition.rst b/docs/format_content/condition.rst
new file mode 100644
index 000000000..a64257a4d
--- /dev/null
+++ b/docs/format_content/condition.rst
@@ -0,0 +1,276 @@
+Calculated properties
+==========================
+
+Synopsis
+------------
+
+Calculated properties allow you to add or remove properties to a :term:`variable` or a :term:`family` depending on the context.
+
+Here is the list of editable properties:
+
+.. list-table::
+   :widths: 15 15 25
+   :header-rows: 1
+
+   * - Attribute applying to
+     - Property's name
+     - Comment
+
+   * - Variable
+
+       Family
+     - hidden
+     - Hides a variable or a family, in this case it is not accessible in `read-write` mode,
+       but remains accessible in a calculation or in `read-only` mode.
+
+       .. seealso:: :ref:`hidden access control `.
+
+   * - Variable
+
+       Family
+     - disabled
+     - Deactivates a variable or family, in this case it is never accessible.
+
+       .. seealso:: :ref:`disabled access control `.
+
+   * - Variable
+     - frozen
+     - A frozen variable is a variable that the :term:`operator` cannot change the value.
+
+   * - Variable
+     - mandatory
+     - The variable expects a value other than `null` (or `None` in Python) or `[]` for multiple variables.
+
+       .. seealso:: for non multiple variables we call it a :ref:`nullable variable `.
+
+   * - Variable
+     - empty
+     - The multiple variable allow the value `null` (or `None` in Python)
+
+       .. seealso:: we call it a :ref:`nullable variable `.
+
+A property can be calculated. In this case we have two possibilities:
+
+- calculation via Jinja (see also the tutorial with a real world sample :doc:`variable jinja <../tutorial/jinja>`)
+- calculation via a variable (see also the tutorial with a real world sample :doc:`variable calculation <../tutorial/properties>`)
+
+Parameters
+---------------
+
+Variable parameters
+~~~~~~~~~~~~~~~~~~~
+
+.. list-table::
+   :header-rows: 1
+
+   * - Parameter
+     - Comment
+     - Sample
+
+   * - type
+
+       `string`
+     - Calculation type.
+
+       This parameter is optional. It is deduced from the presence of the parameter "variable" in a calculation.
+     - variable
+
+   * - variable
+
+       `string`
+
+       `mandatory`
+     - Name of the associated variable.
+
+       It's better to use :term:`relative path` notation.
+     - _.my_variable
+
+   * - when/when_not
+     - Compare the value of the variable define in `variable` attribute.
+
+       If the related variable is the boolean typed variable, the default value is `true`
+     - See the tutorial with a real world sample :doc:`when_not <../tutorial/properties>`)
+
+   * - propertyerror
+
+       `boolean` or `transitive`
+     - If access to the variable is not possible due to a property
+       (for example `disabled`) by default an error is returned.
+       The overall coherence is not guaranteed.
+       If the parameter is `false`, the calculated value is `false` in this condition.
+       If the parameter is `transitive`, the calculated is `true` if the variable raise propertyerror
+       or `false` otherwise.
+
+       Default value: `true`
+     - transitive
+
+       false
+
+   * - optional
+
+       `boolean`
+     - The variable in calculation may not exist. This generates an error. Overall coherence is not guaranteed.
+       To avoid this set the optional parameter to `true`. In this case, if variable in calculation is not exists, the variable is always accessible.
+     - true
+
+   * - default
+
+       `boolean`
+     - If optional parameter is set to `true` and the variable in calculation is not exist, the variable is accessible.
+       If you do not want this behavior, set this parameter to `false`.
+     - false
+
+   * - description
+
+       `string`
+     - Rougail engine create a description like "when the variable "xxxx" has the value "yyyy".
+       You can personnalize here the calculation description
+     -
+
+Jinja parameters
+~~~~~~~~~~~~~~~~
+
+.. list-table::
+   :header-rows: 1
+
+   * - Parameter
+     - Comment
+     - Sample
+
+   * - type
+
+       `string`
+     - The calculation type.
+
+       This parameter is optional. It is deduced from the presence of the parameter "jinja" in calculation.
+     - jinja
+
+   * - jinja
+
+       `string`
+
+       `mandatory`
+     - Jinja template. For a multiple variable, each line represents a value.
+
+       It's better to use :term:`relative path` notation in Jinja template.
+     - .. code-block:: jinja
+
+         {% if _.my_variable %}
+           {{ _.my_variable }}
+         {% endif %}
+
+   * - params
+
+       `dict`
+     - Additional parameters passed to the Jinja template
+
+       See below to have params possibility.
+     - See the tutorial with a real world sample :doc:`params <../tutorial/jinja>`)
+
+   * - return_type
+
+       `string`
+     - Jinja template could return two type of value:
+
+       - `string` (default): that means the Jinja template return an error message that explain why we don't have access to this variable
+       - `boolean`: the Jinja template return "true" or "false". The value true means that the properties is present.
+
+     - See the tutorial with a real world sample :doc:`return_type <../tutorial/jinja>`)
+
+   * - description
+
+       `string`
+       `recommanded`
+     - Rougail engine cannot deduce what you want to do in Jinja template. You have to describe it for documentation purpose.
+       If return_type parameter is `boolean`, this description is used in error message.
+     - See the tutorial with a real world sample :doc:`description <../tutorial/jinja>`)
+
+In the case of a Jinja type calculation, it is possible to have parameters (`params`).
+
+There are two types of parameter:
+
+- the standard parameters (string, boolean, integer, null), in this case just do: "key: value"
+
+- advanced settings:
+
+   - parameter via a variable
+   - parameter via information
+   - parameter via an identifier: in the case of a variable in a :term:`dynamically built family`
+   - parameter via an index: in the case of a variable in a :term:`sequence`
+   - parameter via the current :term:`namespace`
+
+Parameters for variable type `param`
+''''''''''''''''''''''''''''''''''''
+
+.. list-table::
+   :header-rows: 1
+
+   * - Parameter
+     - Comments
+     - Sample
+
+   * - type
+
+       `string`
+     - Parameter's type
+     - variable
+
+   * - variable
+
+       `string`
+
+       `mandatory`
+     - Variable's name
+
+       It's better to use :term:`relative path` notation.
+     - _.my_variable
+
+   * - propertyerror
+
+       `boolean`
+     - If access to the variable is not possible due to a property (for example `disabled`) by default an error is returned. If the parameter is false, the parameter is not passed to the Jinja template.
+
+       Default value: `true`
+     - false
+
+   * - optional
+
+       `boolean`
+     - The variable may not exist depending on YAML file imports. If the optional parameter is true, the parameter will simply be deleted if the variable does not exist.
+       Default value: `false`
+     - true
+
+   * - whole
+
+       `boolean`
+     - In :term:`sequence` family, only the value of the variable in the current element is propose.
+       This parameter allow you to have all values for all elements.
+
+       Default value: `false`.
+     - true
+
+Parameters for information type `param`
+'''''''''''''''''''''''''''''''''''''''
+
+.. list-table::
+   :header-rows: 1
+
+   * - Parameter
+     - Comments
+     - Sample
+
+   * - information
+
+       `string`
+
+       `mandatory`
+     - Name of the information whose value we want to retrieve.
+     - doc
+
+   * - variable
+
+       `string`
+     - Variable's name. If not specified, the information is retrieve in :term:`Tiramisu` Config.
+
+       It's better to use :term:`relative path` notation.
+     - _.my_variable
diff --git a/docs/format_content/family.rst b/docs/format_content/family.rst
new file mode 100644
index 000000000..d187a178f
--- /dev/null
+++ b/docs/format_content/family.rst
@@ -0,0 +1,285 @@
+.. _family:
+
+The families
+=============
+
+Synopsis
+---------
+
+.. glossary::
+
+   family
+   subfamily
+   
+       A family (or a subfamily) is simply a collection of variables that refer to
+       the same business model category. It's just a variables container.
+       Think of it as a container as well as a namespace.
+
+.. attention:: A family without a subfamily or subvariable will be automatically deleted.
+
+Naming
+---------
+
+It is with its name that we will be able to interact with the family.
+
+.. seealso:: 
+
+   A family is a variable. So have a look at the :ref:`variable naming convention `.
+
+Parameters
+---------------
+
+.. list-table::
+   :widths: 15 45
+   :header-rows: 1
+
+   * - Parameter
+     - Comments
+
+   * - **description**, **_description**
+
+       `string`
+     - Description of the family.
+
+       User information to understand the usefulness of the family.
+
+       .. seealso:: tutorial with a real world sample :doc:`description parameter <../tutorial/family>`
+
+   * - **help**, **_help**
+
+       `string`
+     - Additional help associated with the family.
+
+       .. seealso:: tutorial with a real world sample :doc:`help parameter <../tutorial/document>` (the tutorial focuses on variable, but the principle is the same for a family)
+
+   * - **mode**, **_mode**
+
+       `string`
+     - Family mode.
+
+       The mode is a way of classifying the importance, the level of expertise required, or the access rights to a family.
+
+       This parameter allows you to define the family mode, and also the default mode for variables or families included in this family.
+
+       .. attention:: Mode is not configured by default. You have to define mode level before use this parameter.
+
+       **Default value**: The default mode of a family is the smallest mode of the parent families, child variables, or child families that are contained in that family.
+
+       .. seealso:: tutorial with a real world sample :doc:`mode parameter <../tutorial/modes>` (the tutorial focuses on variable, but the principle is the same for a family)
+
+   * - **type**, **_type**
+
+       `string`
+     - possible values:
+
+       - `family` (**default value**)
+       - `dynamic`
+       - `sequence`
+
+   * - **hidden**, **_hidden**
+
+       `boolean` or :term:`calculation`
+     - Invisible family.
+
+       Enables us to *hide* a family as well as the variables or families included in this family.
+
+       This means that the family will no longer be visible in `read-write` mode, but only for calculations or in `read-only` mode.
+
+       **Default value**: `false`
+
+       .. seealso:: tutorial with a real world sample :doc:`hidden parameter <../tutorial/properties>`
+
+   * - **disabled**, **_disabled**
+
+       `boolean` or :term:`calculation`
+     - Disabled family.
+
+       Allows us to *deactivate* a family as well as the variables or families included in this family.
+
+       This means that the family will no longer be visible to the user but also to a :term:`calculation`.
+
+       **Default value**: `false`
+
+       .. seealso:: tutorial with a real world sample :doc:`disabled parameter <../tutorial/properties>`
+
+   * - **dynamic**, **_dynamic**
+
+       :term:`calculation` or a list of :term:`calculation` or `string`
+     - Dynamic identifiers.
+
+       .. important:: This parameter is only available for dynamically built family. See the explanations about this below.
+
+   * - **redefine**
+
+       `boolean`
+     - It is possible to define a family in one :term:`structure file` and change its behavior in a second :term:`structure file`. In this case you must explicitly redefine the family.
+
+       **Default value**: `false`
+
+   * - **exists**
+
+       `boolean`
+     - This parameter does two things:
+
+         - creates a family if it does not exist in another :term:`structure file` (otherwise do nothing), in this case the value of the parameter must be `true`
+         - in conjunction with the `redefine` parameter set to `true`, only modifies the behavior if it is pre-existing, in which case the parameter's value must be `false`.
+
+       **Default value**: `null`
+
+
+.. note::
+
+   If a subfamily or a subvariable already has the name of a parameter it is possible to use the "_" name.
+   You can have a look at the tutorial with a real world sample :doc:`of parameter with "_" <../tutorial/underscore_parameter>`.
+
+Short-hand declaration
+----------------------------
+
+Short-hand declaration is a way to declare a family in a single line.
+
+To create a family, just add a key with it's name and variables as values:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+    my_family:
+
+      my_variable:
+    ...
+
+By default, the description of the family is the family name.
+It's a best practice to description a family. Just add comment in same line of name, this comment is use as description:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+    my_family:  # This is a great family
+
+      my_variable:
+    ...
+
+But in short-hand notation, you can only define family name and description.
+
+.. attention:: Any other parameters will be considered as a variable. Do not use short-hand in this case.
+
+A family
+---------
+
+Here is a simple example:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+    my_family:
+      description: This is a great family
+      help: This family is great because we have great variables inside
+
+      my_variable:
+    ...
+
+.. seealso::
+
+   You can have a look at the tutorial with a real world sample:
+
+   - :doc:`family <../tutorial/family>`
+   - :doc:`help parameter <../tutorial/document>` (the tutorial focuses on variable, but the principle is the same for a family)
+
+A dynamically built family
+-----------------------------
+
+To create a :term:`dynamically built family`, you must create a fictitious family linked to a list of uniq identifiers.
+This list could be hard coded or resulting from a calculation.
+
+The name of this family is particular. You have to add `{{ identifier }}` string inside. It will be replace by each identifiers.
+
+Here is an simple example:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+    
+    my_{{ identifier }}_family:
+      description: 'A family for {{ identifier }}'
+      dynamic:
+        - one thing
+        - another
+
+      variable:
+        description: 'A variable for {{ identifier }}'
+    ...
+
+This will dynamically create two families:
+
+- "my_one_thing_family"
+- "my_another_family"
+
+.. seealso::
+
+   You can have a look at the tutorial with a real world sample :doc:`dynamically built family <../tutorial/dynamic>`
+
+.. _sequence_family:
+
+Sequence of homogeneous elements
+---------------------------------------
+
+A family with `type` set to `sequence` is a sequence of homogeneous elements.
+
+Let's start the explanation with a concrete example:
+
+.. code-block:: yaml
+
+   %YAML 1.2
+   ---
+   version: 1.1
+
+   accounts:
+     description: All accounts
+     type: sequence
+
+     login:
+       description: Account login
+       type: unix_user
+
+     secret:
+       description: Account secret
+       type: secret
+   ...
+
+What is expected, it's something like:
+
+.. code-block:: yaml
+
+    ---
+    accounts:
+      - login: foo
+        secret: 0hM%G0dW4a7ASecr3t
+      - login: bar
+        secret: NotGoodSecret
+
+It's what we call a Sequence of homogeneous elements.
+
+.. attention:: A sequence cannot contain other families.
+
+.. seealso::
+
+   You can have a look at the tutorial with a real world sample :doc:`Sequence of homogeneous elements <../tutorial/sequence>`
+
+A custom type family
+----------------------
+
+In short, a custom type is nothing more than a kind of a template for a family.
+Define a custom type family is much like defining families.
+
+This custom type family can be used as many times as desired and customized as you wish.
+
+.. seealso::
+
+   You can have a look at the tutorial with a real world sample :doc:`family custom type <../tutorial/family>`
diff --git a/docs/format_content/index.rst b/docs/format_content/index.rst
new file mode 100644
index 000000000..1c43fb9fd
--- /dev/null
+++ b/docs/format_content/index.rst
@@ -0,0 +1,18 @@
+The Rougail format
+=====================
+
+Now that we understand what can be described in a structured data file, let's see how to describe variables.
+
+The variable is described in Rougail format.
+
+.. toctree::
+   :titlesonly:
+   :caption: Rougail format content
+
+   variable
+   family
+   path
+   mutability
+   calculation
+   condition
+   validation
diff --git a/docs/format_content/mutability.rst b/docs/format_content/mutability.rst
new file mode 100644
index 000000000..593a4aa6e
--- /dev/null
+++ b/docs/format_content/mutability.rst
@@ -0,0 +1,129 @@
+.. _redefine:
+
+Redefine a variable
+===================
+
+We have already introduced the concept of :ref:`variable mutability `.
+To summarize, an :term:`integrator` allows the :ref:`structured data ` to evolve at any time.
+
+.. glossary::
+
+   redefine
+
+      A redefine is a redefinition of all or part of the parameters of a variable or a family as it was previously defined.
+
+.. note::
+
+   Adding a variable to a family is not considered redefining the family. This is implicitly permitted. Redefining a family requires modifying one or more of its parameters.
+
+.. seealso::
+
+   See the tutorial with a real world sample :ref:`redefine `.
+
+Explicit redefine
+~~~~~~~~~~~~~~~~~
+
+The redefinition is explicit.
+This means that if an :term:`integrator` defines the same tree twice for two variables, Rougail will consider that there is a naming conflict.
+
+To illustrate, we could create two :term:`structure files `:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable:  # A description
+    ...
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable:  # A redefined description
+    ...
+
+And the name conflict is detected:
+
+.. code-block:: bash
+   :class: terminal 
+
+   $ rougail -m variable.yml redefine.yml
+   ERROR: variable "my_variable" define multiple time in "variable.yml" and "redefine.yml"
+
+So we have to explicit redefine a variable like this:
+
+.. code-block:: yaml
+
+   %YAML 1.2
+   ---
+   version: 1.1
+   
+   my_variable:
+     redefine: true
+     description: A redefined description
+   ...
+
+Now we can see that the redefinition is correct:
+
+.. code-block:: bash
+   :class: terminal 
+
+    $rougail -m variable.yml redefine.yml -o doc
+    ┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+    ┃ Variable            ┃ Description              ┃
+    ┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩
+    │ my_variable         │ A redefined description. │
+    │  string   mandatory │                          │
+    └─────────────────────┴──────────────────────────┘
+
+The new description has been taken into account.
+
+Unify
+~~~~~
+
+When redefining a variable, we define the list of parameters that we wish to redefine.
+
+In other words the variable is unify (combine) from multiple variables declarations.
+
+The old parameters that were present before the redefinition are still present.
+
+If we modify the `redefine.yml` :term:`structure file`:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+    
+    my_variable:
+      redefine: true
+      type: integer
+    ...
+
+.. code-block:: bash
+   :class: terminal 
+
+   $ rougail -m variable.yml redefine.yml -o doc
+   ┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
+   ┃ Variable             ┃ Description    ┃
+   ┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
+   │ my_variable          │ A description. │
+   │  integer   mandatory │                │
+   └──────────────────────┴────────────────┘
+
+Here we can see that the variable has the original description, but the new type.
+
+Exception
+~~~~~~~~~
+
+We cannot change a parameter for a variable or a family implicitly.
+
+This is always true, unless you want to change the default value of a child of a custom type in a family.
+
+.. seealso::
+
+   See the tutorial with a real world sample :ref:`custom type `.
diff --git a/docs/format_content/path.rst b/docs/format_content/path.rst
new file mode 100644
index 000000000..0ecc81cd8
--- /dev/null
+++ b/docs/format_content/path.rst
@@ -0,0 +1,69 @@
+
+.. index:: path, variable's relative path, variable's full path
+
+.. _variablepath:
+
+Full or relative path
+=====================
+
+To access a variable, it is necessary to know which family or subfamily it belongs to.
+
+Let's create some variables to illustrate this point.
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_family:  # A family
+
+      my_sub_family:  # A family inside an other family
+
+        my_first_variable:  # My first variable
+
+        my_second_variable:  # My second variable
+
+      my_third_variable:  # My third variable
+
+    my_fourth_variable:  # My forth variable
+    ...
+
+So we have three variables.
+
+Here the full paths are:
+
+- `my_family.my_sub_family.my_first_variable`
+- `my_family.my_sub_family.my_second_variable`
+- `my_family.my_third_variable`
+- `my_fourth_variable`
+
+But in calculation it's often better to use :term:`relative path`.
+
+.. glossary::
+
+   relative path
+
+        In a calculation definition, a relative path defines the location of a variable relative to the family of the variable where the parameter is calculated.
+        Instead of starting from the root, it uses references like `_. (current family)`, `__. (parent family)`, `___. (sub parent family)` and so on.
+
+        Relative paths are shorter and portable across custom type.
+
+Now we can define the :term:`relative path` from the `my_first_variable` variable:
+
+- `_.my_second_variable`
+- `__.my_third_variable`
+- `___.my_fourth_variable`
+
+From the `my_third_variable`:
+
+- `_.my_sub_family.my_first_variable`
+- `_.my_sub_family.my_second_variable`
+- `__.my_fourth_variable`
+
+Finally from the `my_fourth_variable`:
+
+- `_.my_family.my_sub_family.my_first_variable`
+- `_.my_family.my_sub_family.my_second_variable`
+- `_.my_family.my_third_variable`
+
diff --git a/docs/format_content/validation.rst b/docs/format_content/validation.rst
new file mode 100644
index 000000000..d068bb914
--- /dev/null
+++ b/docs/format_content/validation.rst
@@ -0,0 +1,303 @@
+Value validations
+=================
+
+Synopsis
+-------------
+
+A verification is a complementary validation to the type which allows the content of a variable to be validated more precisely.
+
+The purpose of validation is to verify that the variable is of :ref:`good quality ` and/or that the variable is :ref:`consistent `.
+
+.. glossary::
+
+   validator
+
+       A validator is a Jinja code that parses a variable's value and checks
+       that this value corresponds to some stated criteria.
+       This is a `validator` parameter of our variable, and another `jinja` sub-parameter
+       contains validation code for the variable's value.
+
+.. seealso:: The tutorial with a real world sample :ref:`validators `
+
+Parameters
+--------------
+
+Depending on the types of calculation, the parameters will be different:
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Calculation type**
+     - **Comment**
+
+   * - **type**
+
+       `string`
+     - The value is `jinja`
+
+   * - **jinja**
+
+       `string`
+
+       `mandatory`
+     - Please set a Jinja template.
+
+   * - **params**
+
+       `dict`
+     - Additional parameters passed to the Jinja template (see below).
+
+   * - **return_type**
+
+       `string`
+     - A validation could returns the error message directly, so return_type is `string` (the default behavior).
+       Or a `boolean`, in this case if it's return `true` this means that the value is not valid.
+
+   * - **description**
+
+       `string`
+     - Additional information for the :ref:`documentation ` and the error message in case of return_type is a boolean.
+
+   * - **warnings**
+
+       `boolean`
+     - If `true` the validation did not raise, it only display a warning.
+
+
+Params
+~~~~~~
+
+There are two types of params:
+
+- the standard parameters (string, boolean, integer, float or null), in this case just do: "key: value"
+- advanced settings (with something like "key: {}":
+
+  - parameter via a variable
+  - parameter via an information
+  - parameter via an identifier: in a :ref:`dynamically built family ` returns the current identifier
+  - parameter via an index: in the case of a follower variable returns the current index
+  - parameter via :ref:`the current namespace name `
+
+Variable params
+"""""""""""""""
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Parameter**
+     - **Comments**
+     - **Sample**
+
+   * - **type**
+
+       `string`
+     - Type of parameter, which is variable.
+     - variable
+
+   * - **variable**
+
+       `string`
+
+       `mandatory`
+     - Variable's path.
+     - rougail.variable
+
+   * - **propertyerror**
+
+       `boolean`
+     - If access to the variable is not possible due to a property
+       (for example `disabled`) by default an error is returned.
+       If the attribute is `false`, the parameter is not passed to the Jinja template.
+
+       **Default value**: `false`
+     - `true`
+
+   * - **optional**
+
+       `boolean`
+     - If the variable is not defined the value is always `null`.
+
+       **Default value**: `false`
+     - `true`
+
+   * - **whole**
+
+       `boolean`
+     - In :term:`dynamically built family` only the value of the current index is retrieve. If this parameter is set to `true` it returns all
+       If this parameter is set to `true`, it returns the set of values for all indices.
+
+       **Default value**: `false`
+     - `true`
+
+Information params
+~~~~~~~~~~~~~~~~~~
+
+.. list-table::
+   :header-rows: 1
+
+   * - **Parameter**
+     - **Comments**
+     - **Sample**
+
+   * - **type**
+
+       `string`
+     - Type of parameter, which is information
+     - information
+
+   * - **information**
+
+       `string`
+
+       `mandatory`
+     - Name of the information whose value we want to retrieve.
+     - doc
+
+   * - **variable**
+
+       `string`
+     - By default, the information is a context information. It is possible to get a variable information. In this case just specify a path.
+     - rougail.variable
+
+Samples
+--------------
+
+Strict verification of values
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is a simple example of validating values:
+
+.. code-block:: yaml
+
+   %YAML 1.2
+   ---
+   version: 1.1
+
+   my_variable:
+     validators:
+       - jinja: |-
+           {% if my_variable is not none and not my_variable.islower() %}
+             {{ my_variable }} is not lowercase string
+           {% endif %}
+   ...
+
+A verification function must take into account 2 important aspects:
+
+- the value may not be entered (even if the variable is mandatory), the None value must be taken into account
+- if return_type is `string` and the value is invalid, a sentence must be returned with an explicit message.
+
+From now on only `null` and lowercase values will be allowed.
+
+Checking values with warning
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In the constraint, it is possible to specify the error level and put it as a warning:
+
+.. code-block:: yaml
+
+   %YAML 1.2
+   ---
+   version: 1.1
+
+   my_variable:
+     validators:
+       - jinja: |-
+           {% if my_variable is not none and not my_variable.islower() %}
+             {{ my_variable }} is not lowercase string
+           {% endif %}
+         params:
+           warnings: true
+   ...
+
+In this case a value with a capital letter will be accepted, but a warning message will appear.
+
+Verification with parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. code-block:: yaml
+
+   %YAML 1.2
+   ---
+   version: 1.1
+
+   my_hidden_variable:
+     disabled: true
+
+   my_variable:
+     validators:
+       - type: jinja
+         jinja: |-
+           {% if param1 is defined and my_variable == param1 %}
+             has same value as unknown_variable
+           {% endif %}
+           {% if param2 is defined and my_variable == param2 %}
+             has same value as my_hidden_variable
+           {% endif %}
+         params:
+           param1:
+             variable: unknown_variable
+             optional: true
+           param2:
+             variable: my_hidden_variable
+             propertyerror: false
+   ...
+
+An example with an identifier type parameter:
+
+.. code-block:: yaml
+
+   %YAML 1.2
+   ---
+   version: 1.1
+
+   my_dyn_family_{{ identifier }}:
+     type: dynamic
+     dynamic:
+       - val1
+       - val2
+     description: 'Describe {{ identifier }}'
+
+     my_dyn_var:
+       validators:
+         - jinja: |
+             {% if my_dyn_family_.my_dyn_var == param1 %}
+               forbidden!
+             {% endif %}
+           params:
+             param1:
+               type: identifier
+   ...
+
+In this example, we see a :term:`dynamically built family`. Two families will be created: `my_dyn_family_val1.my_dyn_var` and `my_dyn_family_val2.my_dyn_var`.
+
+The value of the variable within this family cannot be equal to the value
+of the identifier (`val1` and `val2` respectively).
+
+An example with an index type parameter:
+
+.. code-block:: yaml
+
+   %YAML 1.2
+   ---
+   version: 1.1
+
+   family:
+     type: sequence
+
+     leader:
+       default:
+         - val1
+         - val2
+
+     follower1:
+       type: integer
+       validators:
+         - type: jinja
+           jinja: |-
+             {% if family.follower1 == param1 %}
+               forbidden!
+             {% endif %}
+           params:
+             param1:
+               type: index
+   ...
diff --git a/docs/format_content/variable.rst b/docs/format_content/variable.rst
new file mode 100644
index 000000000..a8b1d3cd0
--- /dev/null
+++ b/docs/format_content/variable.rst
@@ -0,0 +1,608 @@
+.. _variable:
+
+The variables
+==============
+
+Synopsis
+---------
+
+.. glossary::
+
+   variable
+
+       A variable is an abstract black box (container) paired with an associated symbolic name, most often an option configuration, which contains some defined or undefined data setting referred to as a :term:`value`.
+
+   value
+
+       A value is a variable's setting.
+       Variable can have a default value, that is a setting defined in the :term:`structure file`,
+       or no value at all, then the value needs to be defined later by the :term:`operator`.
+
+.. discussion:: Discussion
+
+    The variable is, by definition, strongly typed.
+    Rougail uses static type definition and even type inference.
+    Indeed, the constistency handling system heavyly relies on the type system definition.
+    Variables may only be able to store a specified data type.
+    OK, variables are the containers for storing the values. It has something to do with typing.
+
+    But consitency handling system is is not just about strong typing. It is more than that.
+
+.. _namingconvention:
+
+Names
+------
+
+It is with its name that we will be able to interact with the variable.
+
+The name of a variable must be chosen carefully.
+It is the path that will allow users to retrieve their defined values.
+An obscure name will cause confusion.
+
+By design, you cannot use just any character to name your variable.
+
+The regular expression that validates our variable and family naming policy is:
+
+.. code-block:: python
+
+    re.compile(r"^[a-z0-9_]*$")
+
+You can see that it is mandatory to only use lowercase ASCII letters, numbers and the `"_"` (undescore) character. 
+The snake case typographic convention is therefore used.
+
+.. attention:: The name must not starts with `_` character.
+
+Parameters
+-------------
+
+.. list-table::
+   :widths: 15 45
+   :header-rows: 1
+
+   * - Parameter
+     - Comments
+
+   * - **description**
+
+       `string`
+     - Description of the variable.
+
+       User information to understand the usefulness of the variable.
+
+       .. seealso:: tutorial with a real world sample :doc:`description parameter <../tutorial/preliminary>`
+
+   * - **help**
+
+       `string`
+     - Additional help associated with the variable.
+
+       .. seealso:: tutorial with a real world sample :doc:`help parameter <../tutorial/document>`
+
+   * - **mode**
+
+       `string`
+     - Variable's mode.
+
+       The mode is a way of classifying the importance, the level of expertise required, or the access rights to a variable.
+
+       This parameter allows you to define the variable mode.
+
+       .. attention:: Mode is not configured by default. You have to define mode level before use this parameter.
+
+       **Default value**: The `default` mode of a variable is the mode of the parent family, but there is special cases:
+
+       - a variable with an automatically modified value or an automatic read-only variable is by default in the smaller mode
+       - if the variable is not in a family, the variable will have a medium mode by default
+       - a :term:`mandatory` variable without default value (calculate or not) will have the smaller mode
+
+       .. seealso:: tutorial with a real world sample :doc:`mode parameter <../tutorial/modes>`
+
+   * - **tags**
+
+       `list of strings`
+     - A tag allows you to specialize a variable.
+
+       A tag can have several functions:
+
+       - Additional information in the documentation
+       - Variable exclusion
+       - Variable selection
+       - and so on
+
+   * - **examples**
+
+       `list`
+     - List of examples to illustrate possible values for a variable
+
+       .. seealso:: tutorial with a real world sample :doc:`examples parameter <../tutorial/document>`
+
+   * - **test**
+
+       `list`
+     - The `test` parameter is a special parameter that allows :term:`structure file` designers to influence a test robot by specifying useful values to test.
+
+       Concretely, the content of this parameter is recorded in the `information` parameter of the corresponding `Tiramisu` option object.
+
+   * - **type**
+
+       `string`
+     - Type of the variable.
+
+       See the list of available type below.
+
+       .. seealso:: tutorial with a real world sample :doc:`type parameter <../tutorial/types>`
+
+   * - **params**
+
+       `object`
+     - Parameters to adjust type validation of the variable.
+
+       See the list of available parameters for each type below.
+
+       .. seealso:: tutorial with a real world sample :doc:`params parameter <../tutorial/types>`
+
+   * - **multi**
+
+       `boolean`
+
+     - The value of the variable is a list.
+
+       **Default value**: mostly `false`, but there is special cases:
+
+       - the default value is a list
+       - a variable with a variable :term:`multiple ` has default value
+
+       It possible to adjust multi parameters with **params**:
+
+       - multi_length: number of expected values for a multiple variable
+       - multi_min_length: maximum number of expected values for a multiple variable
+       - multi_max_length: minimum number of expected values for a minimum variable
+
+       .. seealso:: tutorial with a real world sample :doc:`multi parameter <../tutorial/multiple>`
+
+   * - **validators**
+
+       `list`
+     - Value validators.
+
+       The value of the variable will be considered invalid if the Jinja template return an error.
+
+       .. seealso:: tutorial with a real world sample :doc:`validators parameter <../tutorial/validators>`
+
+   * - **default**
+     - Default value(s) of the variable.
+
+       This value is typed, you must correctly fill out the YAML file to avoid defining a value with an incorrect type. For example, a `integer` must be a digit type, a :term:`multiple ` variable must be a `list` type, ...
+
+       For a non leading :term:`multiple ` variable, the first value defined in the list will also be the default value proposed if a new value is added to this variable.
+
+       .. seealso:: tutorial with a real world sample :doc:`default parameter <../tutorial/preliminary>`
+
+   * - **secret_manager**
+     - The variable use a secret manager to get value
+       .. todo:: document it
+
+   * - **auto_save**
+
+       `boolean`
+     - Variable with automatically modified value.
+
+       A variable with automatically modified value is a variable whose value will be considered as *modified* (that is, it is no longer the variable's default value).
+
+       For example, if the value of this variable comes from a calculation, the value will no longer be recalculated.
+
+       These variables are usually :term:`required ` variables. In fact, these variables are only automatically modified if they have a value.
+
+       **Default value**: `false`
+
+       .. seealso:: tutorial with a real world sample :doc:`auto_save parameter <../tutorial/auto_save>`
+
+   * - **mandatory**
+
+       `boolean` or :term:`calculation`
+     - Mandatory variable.
+
+       Variable whose value is `required`.
+
+       For a :term:`multiple ` variable, this means that the list shall not be empty (means `null` (`None`) or empty list for a i:term:`multiple `).
+
+       **Default value**: `true`
+
+       .. seealso:: tutorial with a real world sample :doc:`mandatory parameter <../tutorial/nullable>`
+
+   * - **empty**
+
+       `boolean` or :term:`calculation`
+     - The value `null` (`None`) is not allowed in :term:`multiple ` variable.
+
+       The `mandatory` control only if the length :term:`multiple ` variable is not 0. But the `null` value is not allowed. With empty parameter we can allowed it.
+
+       If `null` is an appropriate value, set empty: false.
+
+       **Default value**: `true`
+
+   * - **unique**
+
+       `boolean`
+     - The :term:`multiple ` variable accepts the same value several times.
+
+       If unique is set to `false`, a :term:`multiple ` variable only accepts the same value once in the list.
+
+       **Default value**: `false`
+
+   * - **hidden**
+
+       `boolean` or :term:`calculation`
+     - Invisible variable.
+
+       Enables us to *hide* a variable.
+
+       This means that the variable will no longer be visible in `read-write` mode, but only for calculations or in `read-only` mode.
+
+       When a variable is made invisible, the user will not be able to modify its value; if he has already succeeded in modifying it, this value will not be taken into account.
+
+       **Default value**: `false`
+
+       .. seealso:: tutorial with a real world sample :doc:`hidden parameter <../tutorial/properties>` (the tutorial focuses on family, but the principle is the same for a variable)
+
+   * - **disabled**
+
+       `boolean` or :term:`calculation`
+     - Disabled variable.
+
+       Allows us to *deactivate* a variable.
+
+       This means that the variable will no longer be visible to the user but also to a :term:`calculation`.
+
+       **Default value**: `false`
+
+       .. seealso:: tutorial with a real world sample :doc:`disabled parameter <../tutorial/properties>` (the tutorial focuses on family, but the principle is the same for a variable)
+
+   * - **frozen**
+
+       `boolean` or :term:`calculation`
+     - Read only variable.
+
+       Enables us to have an immutable variable's value.
+
+       This means that the variable will be visible but user will not allowed to change the value.
+
+       **Default value**: `false`
+
+
+   * - **redefine**
+
+       `boolean`
+     - It is possible to define a variable in one :term:`structure file` and change its behavior in a second :term:`structure file`. In this case you must explicitly redefine the variable.
+
+       **Default value**: `false`
+
+   * - **exists**
+
+       `boolean`
+     - This parameter does two things:
+
+         - creates a variable if it does not exist in another :term:`structure file` (otherwise do nothing), in this case the value of the parameter must be `true`
+         - in conjunction with the `redefine` parameter set to `true`, only modifies the behavior if it is pre-existing, in which case the parameter's value must be `false`.
+
+       **Default value**: `null`
+
+   * - **choices**
+
+       :term:`calculation` or a list of :term:`calculation` or data
+     - Available choices.
+
+       .. important:: This parameter is only available for variable with `choice` type.
+
+   * - **regexp**
+
+       `string`
+     - Validation with a regular expressions.
+
+       .. important:: This parameter is only available for variable with `regexp` type.
+
+Short-hand declaration
+----------------------------
+
+Short-hand declaration is a way to declare a variable in a condenced number of line.
+
+To create a variable, just add a key with it's name:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable:
+    ...
+
+You can add a default value:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable: my_value
+    ...
+
+Or a multi default value:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable:
+      - my_value_1
+      - my_value_2
+    ...
+
+By default, the description of the variable is the variable name.
+It's a good practice to describe a variable. Just add comment in same line of name, this comment is used as description:
+
+.. code-block:: yaml
+
+    %YAML 1.2
+    ---
+    version: 1.1
+
+    my_variable: my_value  # This is a great variable
+    ...
+
+But in short-hand notation, you can only define variable name, default value, multi and description.
+
+.. attention:: Any other parameters will create extra variables or families
+
+.. 
+.. .. glossary::
+.. 
+..     short-hand notation
+..     
+..         A short-hand notation in Rougail is the ability to define a variable in 
+..         a short-hand way, there are several example: 
+..         
+..         - a default value: 
+..         
+..         .. code-block:: yaml
+..         
+..             my_var: true 
+..             
+..         instead of:
+..         
+..         .. code-block:: yaml
+..         
+..             my_var:
+..               default: true
+
+
+Variable's types
+-----------------
+
+A variable **always has a type**. The system is **strongly** typed.
+
+Depending on the definition of the variable type, the defined variable will accept values of the associated type.
+
+Primitive Types
+'''''''''''''''''''
+
+.. list-table::
+   :widths: 15 25 20 15
+   :header-rows: 1
+
+   * - Value
+     - Comments
+     - Parameters
+     - Samples
+
+   * - string
+     - character string (default type)
+     -
+     - example
+
+       "1"
+
+       "true"
+
+   * - integer
+     - a integer
+     - `min_integer`: minimum integer allowed (unlimited by default)
+
+       `max_integer`: maximum integer allowed (unlimited by default)
+     - 42
+
+   * - float
+     - a floating number
+     -
+     - 1.42
+
+   * - boolean
+     - A boolean, if no value is defined the default value of this variable will be `true`, the variable will also be :term:`mandatory` by default
+
+       .. seealso:: tutorial with a real world sample :doc:`boolean type variable <../tutorial/types>`
+     -
+     - `true`
+
+       `false`
+
+Specialized type
+''''''''''''''''''
+
+.. list-table::
+   :widths: 5 45 45 5
+   :header-rows: 1
+
+   * - Value
+     - Comments
+     - Parameters
+     - Samples
+
+   * - secret
+     - a secret (like a password, a private key, etc.)
+
+       .. seealso:: tutorial with a real world sample :ref:`secret type variable `
+     - `min_len`: minimum characters length for the secret (unlimited by default)
+
+       `max_len`: maximum characters length for the secret (unlimited by default)
+
+       `forbidden_char`: forbidden characters (no character default)
+     - `hO_'hi`
+
+   * - mail
+     - a mail address
+     -
+     - test@rougail.example
+
+   * - unix_filename
+     - a file name in the Unix meaning
+     - `allow_relative`: this filename could be a relative path (`false` by default)
+
+       `test_existence`: this file must exist (`false` by default)
+
+       `types`: "file type allowed ("file", "directory")
+     - :file:`/etc/passwd`
+
+   * - date
+     - a date in the format `%Y-%m-%d`
+     -
+     - `2021-01-30`
+
+   * - unix_user
+     - a user in the Unix meaning
+
+       .. seealso:: tutorial with a real world sample :doc:`unix type variable <../tutorial/redefine>`
+     -
+     - test
+
+   * - ip
+     - any kind of IPv4 address
+     - `private_only`: only private IPs (`false` by default)
+
+       `allow_reserved`: allows reserved IPs (`true` by default)
+
+       `cidr`: IP must be in CIDR format (`false` by default)
+     - `1.2.3.4`
+
+   * - netmask
+     - mask of an IPv4 address
+     -
+     - `255.255.255.0`
+
+   * - network
+     - network address
+     - `cidr`: network must be in CIDR format (`false` by default)
+
+       `private_only`: private network are allowed (`false` by default)
+       
+       `allow_reserved`: reserved network are allowed (`false` by default)
+     - `192.168.1.0`
+
+   * - broadcast
+     - broadcast address
+     -
+     - `1.1.1.255`
+
+   * - domainname
+     - domain name
+     - `type`: type of domain name (`domainname` (by default), `netbios`, `hostname`)
+
+       `allow_ip`: the domain name can be an IP (`false` by default)
+
+       `allow_cidr_network`: the domain name can be network in CIDR format (`false` by default)
+
+       `allow_without_dot`: the domain name can be a hostname (`false` by default)
+
+       `allow_startswith_dot`: the domain name can starts by a dot (`false` by default)
+
+       `test_existence`: the domain name must exist (`false` by default)
+
+       .. seealso:: tutorial with a real world sample :doc:`domainname type variable <../tutorial/types>` or :doc:`a more complet domainname type variable <../tutorial/multiple>`
+     - `rougail.example`
+
+   * - web_address
+     - web address
+     - `type`: type of domain name (`domainname` (by default), `netbios`, `hostname`)
+
+       `allow_ip`: the domain name can be an IP (`false` by default)
+
+       `allow_cidr_network`: the domain name can be network in CIDR format (`false` by default)
+
+       `allow_without_dot`: the domain name can be a hostname (`false` by default)
+
+       `allow_startswith_dot`: the domain name can starts by a dot (`false` by default)
+
+       `test_existence`: the domain name must exist (`false` by default)
+
+       `allow_range`: can be range of port, for example 80:85 (`false` by default)
+
+       `allow_zero`: port 0 is allowed (false by default)
+
+       `allow_wellknown`: well-known ports (1 to 1023) are allowed (`true` by default)
+
+       `allow_registred`: registred ports (1024 to 49151) are allowed (`true` by default)
+
+       `allow_private`: private ports (greater than 49152) are allowed (`false` by default)
+
+       .. seealso:: tutorial with a real world sample :doc:`web_address type variable <../tutorial/webaddress>`
+     - http://rougail.example
+
+   * - port
+     - port
+     - `allow_range`: can be range of port, for example 80:85 (`false` by default)
+
+       `allow_zero`: port 0 is allowed (false by default)
+
+       `allow_wellknown`: well-known ports (1 to 1023) are allowed (`true` by default)
+
+       `allow_registred`: registred ports (1024 to 49151) are allowed (`true` by default)
+
+       `allow_private`: private ports (greater than 49152) are allowed (`false` by default)
+
+       .. seealso:: tutorial with a real world sample :doc:`port type variable <../tutorial/types>`
+     - 8080
+
+   * - mac
+     - MAC address
+     -
+     - 11:11:11:11:11:11
+
+   * - unix_permissions
+     - access rights to the file, directory, etc.
+     -
+     - 644
+
+   * - choice
+     - available choices
+
+       .. seealso:: tutorial with a real world sample :doc:`choice type variable <../tutorial/choice>`
+     -
+     -
+
+   * - regexp
+     - Validation with a regular expressions
+       
+       .. seealso:: tutorial with a real world sample :ref:`regexp type variable `
+     -
+     - r"^#(?:[0-9a-f]{3}){1,2}$"
+
+Default type
+''''''''''''''
+
+If the `type` parameter is not set, Rougail has to define a logical type to valid correctly values:
+
+- if `choices` or `regexp` parameter is set, Rougail will set the `choice` or `regexp` type
+
+.. seealso:: tutorial with a real world sample :doc:`choice deducted type <../tutorial/choice>` or :ref:`regexp deducted type `
+
+- if a default value is define, Rougail will infers default value type and set a primitive type to the variable
+
+.. seealso:: tutorial with a real world sample :doc:`type inference <../tutorial/types>`
+
+- if a variable calculation is define as default value, Rougail copy the type
+
+.. seealso:: tutorial with a real world sample :doc:`type copying <../tutorial/calculated>`
+
+- the default type is `string`
diff --git a/docs/gettingstarted.rst b/docs/gettingstarted.rst
deleted file mode 100644
index 894d12c35..000000000
--- a/docs/gettingstarted.rst
+++ /dev/null
@@ -1,191 +0,0 @@
-.. |Tiramisu| replace:: Tiramisu
-.. _tiramisu: https://forge.cloud.silique.fr/stove/tiramisu
-
-Getting started
-====================
-
-What is a consistency handling system ?
-------------------------------------------------
-
-.. questions:: Question: "OK, I have understood that the Rougail stuff enables me to take advantage of |Tiramisu|. But what is all this for? What is exactly a consistency handling system? And again, what is this |Tiramisu| library used for?"
-
-    *Answer*: Well, let's explain what |Tiramisu| is and how we are using the |Tiramisu| library.
-
-.. glossary::
-
-   Tiramisu
-
-        |Tiramisu| is a consistency handling system that has initially been designed
-        in the configuration management scope. To put it more simply,
-        this library is generally used to handle configuration options.
-
-        It manages variables and group of variables. In the Tiramisu scope we call
-        it *options* and *option descriptions*.
-
-In the Rougail scope, we call it :term:`variable`\ s and :term:`families`.
-In Rougail, the families and variables are located in the :term:`dictionaries`.
-
-And this is what we are going to explain in this page.
-
-The dictionaries
----------------------
-
-.. glossary::
-
-   dictionary
-   dictionaries
-
-       A dictionary in the Rougail meaning is a YAML file that describes variables
-       and their dependencies / consistencies.
-       There can be a lot of dictionary files located in many different folders.
-
-       Rougail reads all the dictionaries and loads them into a single object
-       that handles the variables consistency.
-
-.. image:: images/schema.png
-
-The main advantage is that declaring variables and writing consistency is as simple
-as writing YAML. With Rougail it is not necessary to write :term:`Tiramisu` code any more.
-It simplifies a lot of things.
-
-And rather than writing :term:`Tiramisu` code, we can declare variables and describe the relationships between variables in a declarative mode (that is, in a YAML file).
-
-Once the dictionaries are loaded by Rougail, we find all the power of the :term:`Tiramisu` configuration management tool.
-
-The YAML dictionaries format
------------------------------
-
-Before getting started with Rougail we need to learn the specifics of the YAML dictionaries file format (as well as some templating concepts).
-
-.. FIXME parler de jinja https://jinja.palletsprojects.com
-
-Here is a :term:`dictionary` example:
-
-.. code-block:: yaml
-   :linenos:
-
-    ---
-    version: '1.1'
-    proxy:
-      description: Configure Proxy Access to the Internet
-      type: family
-
-Line 3, we declare a **variable** named `proxy` with his `description` line 4 and his `type` line 5.
-
-The variables
------------------
-
-variable
-
-    Here is a second definition of a :term:`variable`: it is a declaration unit that represents a business domain metaphor,
-    the most common example is that a variable that represents a configuration option
-    in a application, but a variable represents something more that a configuration option.
-    It provides a business domain specific representation unit.
-
-.. note:: Dictionaries can just define a list of variables, but we will see that
-          we can specify a lot more. We can define variables **and** their relations,
-          **and** the consistency between them.
-
-In the next step, we will explain through a tutorial how to construct a list of variables.
-
-Families of variables
---------------------------
-
-.. glossary::
-
-   family
-   families
-
-       A family of variables is simply a collection of variables that refer to
-       the same business model category. It's just a variables container.
-       Think of it as a container as well as a namespace.
-
-A "hello world" with Rougail
-------------------------------
-
-We're gonna make the simplest possible example.
-
-.. prerequisites:: Prerequisites
-
-We assume that Rougail's library is installed on your computer (or in a virtual environment).
-
-.. exercise:: Let's make a Hello world
-
-Here is the tree structure we want to have::
-
-    workplace
-    ├── dict
-    │   ├── hello.yml
-    └── hello.py
-
-- Let's make a :file:`workplace` directory, with a :file:`dict` subfolder.
-- First, we need a :term:`dictionary`, so let's make the :file:`hello.yml` file
-  which is located in the :file:`dict` subfolder, with the following content:
-
-.. code-block:: yaml
-   :caption: The `hello.yaml` file
-
-    ---
-    version: '1.1'
-    hello:
-      default: world
-
-- Then we make a :file:`hello.py` in our root :file:`workplace` directory:
-
-.. code-block:: python
-   :caption: The :file:`hello.py` file
-
-    from rougail import Rougail, RougailConfig
-
-    RougailConfig['dictionaries_dir'] = ['dict']
-    rougail = Rougail()
-    config = rougail.get_config()
-    print(config.value.get())
-
-.. demo:: Let's run the :file:`hello.py` script
-
-We launch the script:
-
-.. code-block:: bash
-
-    python hello.py
-
-And we obtain the following result:
-
-.. code-block:: python
-
-    {'rougail.hello': 'world'}
-
-**Congratulations ! You have successfully completed your first Rougail script.**
-
-A "Hello,  " sample with a family
-------------------------------------------
-
-Let's continuing on our "Hello world" theme and add a :term:`family` container.
-
-.. code-block:: yaml
-   :caption: the :file:`hello.yml` file
-   :linenos:
-
-    ---
-    version: '1.1'
-    world:
-      description: Hello world family container
-      name:
-        description: Somebody to say hello
-        default: rougail
-
-Here, we have a family named `world`.
-This family contains a variable named `name`
-
-Again, let's validate this YAML file against Rougail's API:
-
-.. code-block:: bash
-
-    python hello.py
-
-We then have the output:
-
-.. code-block:: python
-
-    {'rougail.world.name': 'rougail'}
diff --git a/docs/helper_prerequisites.py b/docs/helper_prerequisites.py
new file mode 100755
index 000000000..bdd341067
--- /dev/null
+++ b/docs/helper_prerequisites.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python3
+"""
+Génère une section de documentation "prerequisites" pour un tutoriel Rougail,
+en utilisant une plage de versions (tags git) spécifiée en arguments.
+
+Usage:
+    python helper_prerequisites.py   
+
+Arguments:
+    start_version (str) : La version de début (tag git) pour la plage de tags.
+    end_version (str)   : La version de fin (tag git) pour la plage de tags.
+    branch (str)        : La branche du dépôt git à mentionner dans la documentation.
+
+Exemple:
+
+    ./helper_prerequisites.py v1.1_080 v1.1_085 1.1
+
+"""
+
+import sys
+
+def generate_prerequisites(start_version: str, end_version: str, branch: str) -> str:
+    """
+    Génère une section de documentation "prerequisites" pour une plage de versions donnée.
+
+    Args:
+        start_version (str): La version de début (tag git) pour la plage.
+        end_version (str): La version de fin (tag git) pour la plage.
+        branch (str): La branche du dépôt git à mentionner.
+
+    Returns:
+        str: La section de documentation formatée.
+    """
+    template = """.. prerequisites:: Prerequisites
+
+    - We assume that Rougail's library is :ref:`installed ` on your computer.
+
+    - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step
+      by checking out the corresponding tag of the `rougail-tutorials` git repository.
+      Each tag corresponds to a stage of progress in the tutorial.
+      Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps.
+
+    If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `,
+    this workshop page corresponds to the tags :tutorial:`{start_version} ` to :tutorial:`{end_version} `
+    in the repository.
+
+    ::
+
+       git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git
+       git switch --detach {start_version}
+"""
+    return template.format(
+        start_version=start_version,
+        end_version=end_version,
+        branch=branch
+    )
+
+def main() -> None:
+    """Point d'entrée principal du script."""
+    if len(sys.argv) != 4:
+        print("Erreur : Trois arguments doivent être spécifiés :   .")
+        print(f"Usage: {sys.argv[0]}   ")
+        sys.exit(1)
+
+    start_version = sys.argv[1]
+    end_version = sys.argv[2]
+    branch = sys.argv[3]
+    print(generate_prerequisites(start_version, end_version, branch))
+
+if __name__ == "__main__":
+    main()
+
diff --git a/docs/helper_type_along.py b/docs/helper_type_along.py
new file mode 100755
index 000000000..20a45ccd5
--- /dev/null
+++ b/docs/helper_type_along.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python3
+"""
+Génère une section de documentation "type-along" pour un tutoriel,
+en utilisant une version spécifiée en argument.
+
+Usage:
+    python generate_type_along.py 
+
+Arguments:
+    version (str) : La version (tag git) à utiliser dans la documentation.
+
+Exemple:
+    python generate_type_along.py v1.0.0
+"""
+
+import sys
+
+def generate_type_along(version: str) -> str:
+    """
+    Génère une section de documentation "type-along" pour une version donnée.
+
+    Args:
+        version (str): La version (tag git) à inclure dans la documentation.
+
+    Returns:
+        str: La section de documentation formatée.
+    """
+    template = """.. type-along:: For those who follow the tutorial with the help of the git repository
+
+    Now you need to checkout the :tutorial:`{version} ` version::
+
+          git switch --detach {version}
+"""
+    return template.format(version=version)
+
+def main() -> None:
+    """Point d'entrée principal du script."""
+    if len(sys.argv) != 2:
+        print("Erreur : Une version doit être spécifiée en argument.")
+        print(f"Usage: {sys.argv[0]} ")
+        sys.exit(1)
+
+    version = sys.argv[1]
+    print(generate_type_along(version))
+
+if __name__ == "__main__":
+    main()
diff --git a/docs/images/QuestionaryChoice.png b/docs/images/QuestionaryChoice.png
new file mode 100644
index 0000000000000000000000000000000000000000..428ded997ff39c7f332a811d3a52e323af50cbe4
GIT binary patch
literal 54010
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%0ABSz0i)OFiywV=vefG)ExOMZ?!
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�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

9c-hdCRJMDDZWeY;$G3tU;cCXRcV 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

Ue%$p4bCjCDCIX z<;{hrBPGS9K7T<+MB+nz{?g;Mw#+F7t>6W63r%m*&h=1lu=L+1-cNuT{T&LU0c9WI z=`>q3YX`E*KUkD24KG((t(MxAQi;OL>J4axeNJ<~Q)bj{kwZ3(n0~t)Cs#`+yix`L zwEw)(GJN{{GMSe&ldwQg1DQDv$&591mV>twn6Hh> z#dqW~O8aGzo#(!#;-{jUZyi($<{f=J*uLs0)|IsEeue+TV z|I9eAmSfL-Pz%#&lJTsT(D;3R=&Z$u!17f-rtF6k z9P>*9?FOHdR&o?%o)?azKn8NWRHn)o*dJz|^>AU&htmIiez-A=#;NJ5801BL$1##C z%$@*c{s2S}Qs3&F-bQ(43H}BP1UASJ`~~)h%z9A&W&-i!qF1_YMeUNIfLCi$1 zhATc8kED=O=+M*lpKd3kviAXbIU{LL2%WGo(L^BK7`zYxR!doH>h6{ubhrVK zA+W4|i+@`gg7eCNZ=HO_;WQ-dGV5<&P-oao7q8Zc__R*Z1-Pu?ZNv^)hvD3#@+qRJb{8=~b?) z3bK6R`Y#es<+s!IFa-zA8&#C5uP~l}0ta+U)kWo*R1;+fjef7OZaQL@ybN2{9VVeX z9JAPKUlf8K8XEsFRd|dx%wZZ&EZL&_hE?X3kQcgerG7GteXnAVV<;|%p;A>$3YB+u zX&{N1?I5I8zLG5h@EbM1`%4-wjptG*_id9lloOYC?5xsr@|gokh&lE83)9h^>?g$( zdtd-HjtwuyU+Ato>3td>)~_4|+MIGAZj{bT8t31loG5>R ze=D}rqJ(L|V_>$y5o5I=$`v`~r0q9QGU=8W@F}>pnl-&nu_uB13%lXHKjoMg1z}kI zV#kl=ij!wAsJrAG$nv!@jt?-PsoTi?npJ~N{{@K;Q>An%8$Za4w(@6+uboz5QbNbw zdR1%S5Lsg z**B(ppX}>j$nE-o-3&u@K25P_4TWKu{(A#@s>I;iprmDuZ1!J^1M0MqN-OJ~#bDkO ZA}L)X4w< literal 0 HcmV?d00001 diff --git a/docs/images/dessin.png b/docs/images/dessin.png new file mode 100644 index 0000000000000000000000000000000000000000..03f58659e788e706c0cb6b96aa0458dc70ec73ec GIT binary patch literal 24338 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 literal 0 HcmV?d00001 diff --git a/docs/images/dessin.svg b/docs/images/dessin.svg new file mode 100644 index 000000000..393c86364 --- /dev/null +++ b/docs/images/dessin.svg @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Read Write + Structure + hidden + disabled + Read Only + + + + + + \ No newline at end of file diff --git a/docs/images/read_write.png b/docs/images/read_write.png new file mode 100644 index 0000000000000000000000000000000000000000..a5540f3baad6de5abca1fc754bf6b106696a684d GIT binary patch literal 68087 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ÛL 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 literal 0 HcmV?d00001 diff --git a/docs/images/schema.png b/docs/images/schema.png deleted file mode 100644 index 9968ee2a2b873de45f3c854cf2586344c5ced11b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46516 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�{QLE511Gb`Zkkrs;Ad{6 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 diff --git a/docs/images/schema.svg b/docs/images/schema.svg deleted file mode 100644 index f94b83a46..000000000 --- a/docs/images/schema.svg +++ /dev/null @@ -1,1306 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IRAMISU - - - - - - - - - - - - - - - - - - - - - - - version: '0.10'# describe a first service with a single fileservices:- service:- name: my_servicefile:- engine: jinjatext: /etc/filename# describe a variable my_first_variable# and a family with a variable my_second_variablevariables:- variable:- name: my_first_variablevalue:- text: my_value- family:- name: my_familyvariables:- variable:- name: my_second_variabletype: numbermandatory: truevalue:- text: 1 - - - - - - version: '0.10'# describe a first service with a single fileservices:- service:- name: my_servicefile:- engine: jinjatext: /etc/filename# describe a variable my_first_variable# and a family with a variable my_second_variablevariables:- variable:- name: my_first_variablevalue:- text: my_value- family:- name: my_familyvariables:- variable:- name: my_second_variabletype: numbermandatory: truevalue:- text: 1 - Dictionary - - - - - diff --git a/docs/images/tiramisu_get_set.png b/docs/images/tiramisu_get_set.png new file mode 100644 index 0000000000000000000000000000000000000000..6699f1ee0988a59562b127ed3686ee864c4b4859 GIT binary patch literal 90320 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%0DPLXXGUZ)%q7X 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 literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst index 83027ef16..1415d194f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,54 +10,59 @@ Rougail .. image:: images/logo.png -- is a `delicious cooked dish `_ from the Mauritius and Reunion Islands, +- is a `delicious cooked dish `_ from the Mauritius and Reunion Islands, -- it is also a `Python3 `_ library which enables us to conveniently load application :term:`variable`\ s in a simple `YAML `_ format in such a way that the end user consumer can handle them consistently (that is, against an user-defined consistency). - -In other words, using Rougail in your application or your python libraries can tansform end user consumer defined consistency rules into highly consistent business objects. - -We then have to say that the handling system used to ensure the variables integrity is another python library, called :term:`Tiramisu`. Rougail is currently strongly affiliated with Tiramisu. - -.. note:: Rougail is currently intended to work in coordination with :term:`Tiramisu` and **is not** intended to be connected with any other consistency handling system. - -Explained differently, Rougail allows you to easily implement an integration of the powerful tiramisu consistency handling system. +- it is also a tool which enables us to conveniently load :term:`variable`\ s in `YAML `_ file format in such a way that the end user consumer can handle them consistently (that is, against an user-defined consistency). .. toctree:: :titlesonly: - :caption: Getting started + :caption: What is it all about - gettingstarted - tutorial + abstract + vac .. toctree:: :titlesonly: - :caption: The library - - library + :caption: Structured data + + structured_data/index + format_content/index + tutorial/index + +.. toctree:: + :titlesonly: + :caption: User data + + user_data/prerequisites + user_data/index + +.. toctree:: + :titlesonly: + :caption: Output + + output/index + +.. toctree:: + :titlesonly: + :caption: The library and the tools + configuration + cli + library/index + tiramisu .. toctree:: :titlesonly: - :caption: The dictionaries + :caption: Developper notes - dictionary - dict_convention - -.. toctree:: - :titlesonly: - :caption: The variables - - variable - family - fill - Value checks - condition - -.. toctree:: - :titlesonly: - :caption: Notes - + release developer + documentation + +.. toctree:: + :hidden: + + install .. rubric:: Index page diff --git a/docs/install.rst b/docs/install.rst new file mode 100644 index 000000000..73d0e11c9 --- /dev/null +++ b/docs/install.rst @@ -0,0 +1,35 @@ +.. _installation: + +Rougail library installation +====================================== + +Activate you virtual environment +------------------------------------ + +- Open a shell session + +- install the virtual environment: `python -m'venv' .venv` +- activate it `./.venv/bin/activate` (or `.venv\Scripts\activate.exe` under windows) + +Standard installation +--------------------------- + +You can use the `pip` python installer, here is the install command: + +.. code-block:: bash + + pip install rougail + +Installation of third-party libraries +------------------------------------------- + +First, download the :download:`requirements.txt file: ` + +.. literalinclude:: install/requirements.txt + :caption: The :file:`requirements.txt` requirements file + +Then in your virtual environment, recursively install the third-party libraries as follows: + +.. code-block:: bash + + pip install -r requirements.txt --extra-index-url https://test.pypi.org/simple/ diff --git a/docs/install/requirements.txt b/docs/install/requirements.txt new file mode 100644 index 000000000..579af01ba --- /dev/null +++ b/docs/install/requirements.txt @@ -0,0 +1,16 @@ +rougail==1.2.0rc3 +rougail-cli==1.0.0rc0 +rougail-output-ansible==1.0.0rc0 +rougail-output-display==1.0.0rc0 +rougail-output-doc==1.0.0rc0 +rougail-output-formatter==1.0.0rc0 +rougail-output-json==1.0.0rc0 +rougail-output-table==0.1.0rc0 +rougail-user-data-ansible==1.0.0rc0 +rougail-user-data-bitwarden==1.0.0rc1 +rougail-user-data-commandline==1.0.0rc2 +rougail-user-data-environment==1.0.0rc0 +rougail-user-data-questionary==1.0.0rc0 +rougail-user-data-yaml==1.0.0rc1 +tiramisu==5.2.0rc0 +tiramisu-cmdline-parser==1.0.0rc0 diff --git a/docs/library.rst b/docs/library.rst deleted file mode 100644 index b9a91d548..000000000 --- a/docs/library.rst +++ /dev/null @@ -1,233 +0,0 @@ -`Rougail`'s library description -================================= - -Rougail is a configuration management library that allows you to load variables in a simple and convenient way. - -In the following examples, we will use a specific configuration of Rougail. -You will find all the configuraiton options in :doc:`configuration`. - -To load the configuration you must import the `RougailConfig` class and set the `dictionaries_dir` values: - -.. code-block:: python - - from rougail import RougailConfig - - RougailConfig['dictionaries_dir'] = ['dict'] - -Let's convert a dictionary ------------------------------ - -As a reminder, a :term:`dictionary` is a set of instructions that will allow us to create :term:`families` and :term:`variables`. - -Let's start by creating a simple dictionary. - -Here is a first :file:`dict/00-base.yml` dictionary: - -.. code-block:: yaml - - --- - version: '1.1' - my_variable: - default: my_value - -Then, let's create the :term:`Tiramisu` objects via the following script: - -.. code-block:: python - :caption: the `script.py` file content - - from rougail import Rougail, RougailConfig - - RougailConfig['dictionaries_dir'] = ['dict'] - rougail = Rougail() - config = rougail.get_config() - print(config.value.get()) - -Let's execute `script.py`: - -.. code-block:: bash - - $ python3 script.py - {'rougail.my_variable': 'my_value'} - -Let's convert an extra dictionary -------------------------------------- - -.. index:: extras - -The default namespace for variables and families is `rougail`. It is possible to define other namespaces. These additional namespaces are called `extras`. - -.. FIXME: faire une page pour les extras - -Additional namespaces are defined during configuration. - -For example, here's how to add an `example` namespace: - -.. code-block:: python - - RougailConfig['extra_dictionaries']['example'] = ['extras/'] - -Then let's create an extra :term:`dictionary` :file:`extras/00-base.yml`: - -.. code-block:: yaml - :caption: the :file:`extras/00-base.yml` file content - --- - version: '1.1' - my_variable_extra: - default: my_value_extra - -Then, let's create the :term:`Tiramisu` objects via the following :file:`script.py` script: - -.. code-block:: python - :caption: the :file:`script.py` file content - - from rougail import Rougail, RougailConfig - - RougailConfig['dictionaries_dir'] = ['dict'] - RougailConfig['extra_dictionaries']['example'] = ['extras/'] - rougail = Rougail() - config = rougail.get_config() - print(config.value.dict()) - -Let's execute `script.py`: - -.. code-block:: bash - - $ python3 script.py - {'rougail.my_variable': 'my_value', 'example.my_variable_extra': 'my_value_extra'} - -Let's create a custom function ----------------------------------- - -We create the complementary :term:`dictionary` named :file:`dict/01-function.yml` so that the `my_variable_jinja` variable is :term:`calculated`: - -.. code-block:: yaml - - --- - version: '1.1' - my_variable_jinja: - type: "string" - default: - type: jinja - jinja: "{{ return_no() }}" - -Then let's define the :func:`return_no` function in :file:`functions.py`: - -.. code-block:: python - :caption: the :file:`functions.py` content - - def return_no(): - return 'no' - -Then, let's create the :term:`Tiramisu` objects via the following script: - -.. code-block:: python - :caption: the `script.py` file content - - from rougail import Rougail, RougailConfig - - RougailConfig['dictionaries_dir'] = ['dict'] - RougailConfig['extra_dictionaries']['example'] = ['extras/'] - RougailConfig['functions_file'] = 'functions.py' - rougail = Rougail() - config = rougail.get_config() - print(config.value.dict()) - -Let's execute `script.py`: - -.. code-block:: bash - - $ python3 script.py - {'rougail.my_variable': 'my_value', 'rougail.my_variable_jinja': 'no', 'example.my_variable_extra': 'my_value_extra'} - -The value of the `my_variable_extra` variable is calculated, and it's value comes from the :func:`return_no` function. - -Create your own type ----------------------- - -A variable has a type. This type enables the variable to define the values that are accepted by this variable. - -There is a series of default types, but obviously not all cases are taken. - -It's possible to create your own type. - -Here an example to a lipogram option (in a string, we cannot use "e" character): - -.. code-block:: python - :caption: the `lipogram.py` file content - - from tiramisu import StrOption - class LipogramOption(StrOption): - __slots__ = tuple() - _type = 'lipogram' - - def validate(self, - value): - super().validate(value) - # verify that there is any 'e' in the sentense - if 'e' in value: - raise ValueError('Perec wrote a book without any "e", you could not do it in a simple sentence?') - -To add the new lipogram type in Rougail: - -.. code-block:: python - >>> from rougail import Rougail, RougailConfig - >>> RougailConfig['dictionaries_dir'] = ['dict'] - >>> RougailConfig['custom_types']['lipogram'] = LipogramOption - -Now, we can use lipogram type. -Here is a :file:`dict/00-base.yml` dictionary: - -.. code-block:: yaml - --- - version: '1.1' - var: - type: lipogram - -.. code-block:: python - >>> rougail = Rougail() - >>> config = rougail.get_config() - >>> config.option('rougail.var').value.set('blah') - >>> config.option('rougail.var').value.set('I just want to add a quality string that has no bad characters') - [...] - tiramisu.error.ValueOptionError: "I just want to add a quality string that has no bad characters" is an invalid lipogram for "var", Perec wrote a book without any "e", you could not do it in a simple sentence? - -Upgrade dictionnaries to upper version ----------------------------------------- - -All dictionnaries has a format version number. -When a new format version is proposed, it is possible to automatically convert the files to the new version. - -We create a term:`dictionary` named :file:`dict/01-upgrade.yml` with version 1.0: - -.. code-block:: yaml - - --- - version: '1.1' - my_variable: - multi: true - my_dyn_family: - type: "dynamic" - variable: my_variable - a_variable: - - -.. code-block:: python - >>> from rougail import RougailUpgrade, RougailConfig - >>> RougailConfig['dictionaries_dir'] = ['dict'] - >>> upgrade = RougailUpgrade() - >>> upgrade.load_dictionaries('dict_converted') - -The term:`dictionary` named :file:`dict_converted/01-upgrade.yml` is in version 1.1: - -.. code-block:: yaml - - version: '1.1' - my_variable: - multi: true - my_dyn_family: - type: dynamic - a_variable: null - dynamic: - type: variable - variable: my_variable - propertyerror: false diff --git a/docs/library/custom_function.rst b/docs/library/custom_function.rst new file mode 100644 index 000000000..de58fbd4c --- /dev/null +++ b/docs/library/custom_function.rst @@ -0,0 +1,47 @@ +Let's create a custom function +============================== + +We create the complementary :term:`structure file` named :file:`dict/01-function.yml` so that the `my_variable_jinja` variable is :term:`calculated`: + +.. code-block:: yaml + + %YAML 1.2 + --- + version: 1.1 + + my_variable_jinja: + default: + type: jinja + jinja: "{{ return_no() }}" + ... + +Then let's define the :func:`return_no` function in :file:`functions.py`: + +.. code-block:: python + :caption: the :file:`functions.py` content + + def return_no(): + return 'no' + +Then, let's create the :term:`Tiramisu` objects via the following script: + +.. code-block:: python + :caption: the `script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ['dict'] + RougailConfig['extra_namespaces']['example'] = ['extras/'] + RougailConfig['functions_file'] = 'functions.py' + rougail = Rougail() + config = rougail.get_config() + print(config.value.dict()) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + {'rougail.my_variable': 'my_value', 'rougail.my_variable_jinja': 'no', 'example.my_variable_extra': 'my_value_extra'} + +The value of the `my_variable_extra` variable is calculated, and it's value comes from the :func:`return_no` function. diff --git a/docs/library/extra.rst b/docs/library/extra.rst new file mode 100644 index 000000000..8c99fb6d2 --- /dev/null +++ b/docs/library/extra.rst @@ -0,0 +1,45 @@ +Let's convert an extra namespace structural file +================================================ + +.. index:: extras + +The default namespace for variables and families is `rougail`. It is possible to define other namespaces. These additional namespaces are called `extras`. + +.. FIXME: faire une page pour les extras + +Additional namespaces are defined during configuration. + +For example, here's how to add an `example` namespace: + +.. code-block:: python + + RougailConfig['extra_namespaces']['example'] = ['extras/'] + +Then let's create an extra :term:`structure file` :file:`extras/00-base.yml`: + +.. code-block:: yaml + :caption: the :file:`extras/00-base.yml` file content + --- + version: '1.1' + my_variable_extra: + default: my_value_extra + +Then, let's create the :term:`Tiramisu` objects via the following :file:`script.py` script: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ['dict/'] + RougailConfig['extra_namespaces']['example'] = ['extras/'] + rougail = Rougail() + config = rougail.get_config() + print(config.value.dict()) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + {'rougail.my_variable': 'my_value', 'example.my_variable_extra': 'my_value_extra'} diff --git a/docs/library/index.rst b/docs/library/index.rst new file mode 100644 index 000000000..f35226b3b --- /dev/null +++ b/docs/library/index.rst @@ -0,0 +1,87 @@ +`Rougail`'s library description +================================= + +Rougail is a configuration management library that allows you to load variables in a simple and convenient way. + +In the following examples, we will use a specific configuration of Rougail. + + +.. FIXME: You will find all the configuration options in doc:`configuration` + find a document with all the configuration options + +To load the configuration you must import the `RougailConfig` class and set the `main_structural_directories` values: + +.. code-block:: python + + from rougail import RougailConfig + + RougailConfig['main_structural_directories'] = ['dict'] + +Let's convert a our first structural file +----------------------------------------- + +As a reminder, a :term:`structure file` is a set of instructions that will allow us to create :term:`families ` and :term:`variables `. + +Let's start by creating a simple structure file. + +Here is a first :file:`dict/00-base.yml` structure file: + +.. code-block:: yaml + + %YAML 1.2 + --- + version: 1.1 + + my_variable: my_value # my variable + ... + +Then, let's create the :term:`Tiramisu` objects via the following script: + +.. code-block:: python + :caption: the `script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ['dict'] + rougail = Rougail() + config = rougail.run() + print(config.value.get()) + +.. demo:: Let's execute `script.py`: + + .. code-block:: bash + + $ python3 script.py + {'rougail.my_variable': 'my_value'} + +The operator role +-------------------- + +The :term:`operator` role corresponds to the :term:`tiramisu` settings: + +.. image:: ../images/tiramisu_get_set.png + +.. index:: questionary + +But instead of coding in the end user developer way, the opterator will prefer using the Rougail CLI interface: + +.. image:: ../images/QuestionaryChoice.png + + +The Rougail CLI can output a rather complete view of the dataet: + +.. image:: ../images/UserDataOutput.png + +.. toctree:: + :titlesonly: + :caption: Use library + + user_data + output + parse + tags + rougailconfig_load_from_cli + extra + custom_function + own_type + upgrade diff --git a/docs/library/output.rst b/docs/library/output.rst new file mode 100644 index 000000000..89941a4f6 --- /dev/null +++ b/docs/library/output.rst @@ -0,0 +1,269 @@ +Display the result +================== + +After construct a configuration, loads user data, you can choose this configuration in different output format. + +First of create, let's create a structural file like this: + +.. code-block:: yaml + :caption: the :file:`dist/00-base.yml` file content + + %YAML 1.2 + --- + version: 1.1 + + my_variable: my value # My first variable + + my_boolean_variable: true # My boolean variable + + my_integer_variable: 1 # My integer variable + + my_secret_variable: + description: My secret variable + type: secret + default: MyVeryStrongPassword + ... + +Display in a console +-------------------- + +We can display configuration directly in the console: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.output_console import RougailOutputConsole + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.output"] = "console" + rougail = Rougail() + config = rougail.run() + config.property.read_only() + RougailOutputConsole(config).print() + +.. FIXME display console! + +console.key_is_description +'''''''''''''''''''''''''' + +By default, the key is the variable description, if you prefer have only the path: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.output_json import RougailOutputJson + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.output"] = "console" + rougail = Rougail() + config = rougail.run() + config.property.read_only() + RougailOutputJson(config).print() + + +.. FIXME display console! + +console.show_secrets +'''''''''''''''''''' + +Secrets are remplace by "*******", to display real secrets: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.output_console import RougailOutputConsole + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.output"] = "console" + RougailConfig["console.show_secrets"] = True + rougail = Rougail() + config = rougail.run() + config.property.read_only() + RougailOutputConsole(config).print() + +.. FIXME display console! + +console.mandatory +''''''''''''''''' + +Before display configuration, mandatories variables are check. If you don't want, add the parameter `console.mandatory` to False: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.output_console import RougailOutputConsole + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.output"] = "console" + RougailConfig["console.mandatory"] = False + rougail = Rougail() + config = rougail.run() + config.property.read_only() + RougailOutputConsole(config).print() + +.. FIXME display console! + +JSON +---- + +Your script can return a JSON object: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.output_console import RougailOutputConsole + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.output"] = "json" + rougail = Rougail() + config = rougail.run() + config.property.read_only() + RougailOutputConsole(config).print() + +Let's try this script: + +.. code-block:: bash + + $ python script.py + { + "my_variable": "my value", + "my_boolean_variable": true, + "my_integer_variable": 1, + "my_secret_variable": "MyVeryStrongPassword" + } + +ANSIBLE +------- + +It's possible to use Ansible has a output format. + +The goal is here to use Ansible has a dynamic user's inventories structure manage by Rougail. + +This output needs an extra namespace, named, by default, "hosts". This namespace define your hosts and groups. + +Let's create a single group "my_group" with one host "group1.net": + +.. code-block:: yaml + :caption: the :file:`hosts/00-hosts.yml` file content + + %YAML 1.2 + --- + version: 1.1 + + hostnames: + + my_group: + + hosts: + type: domainname + default: + - group1.net + ... + +Now we can generate Ansible inventory: + +.. code-block:: python + :caption: the :file:`script.py` file content + + #!/bin/env python + from rougail import Rougail, RougailConfig + from rougail.output_ansible import RougailOutputAnsible + + RougailConfig["main_namespace"] = "main" + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig['extra_namespaces']['hosts'] = ['hosts/'] + RougailConfig["step.output"] = "ansible" + rougail = Rougail() + config = rougail.run() + config.property.read_only() + RougailOutputAnsible(config).print() + +We will retrieved all ours variables associate to this group with all variables inside the namespace `main`: + +.. code-block:: bash + + $ python script.py + { + "_meta": { + "hostvars": { + "group1.net": { + "ansible_host": "group1.net", + "main": { + "my_variable": "my value", + "my_boolean_variable": true, + "my_integer_variable": 1, + "my_secret_variable": "MyVeryStrongPassword" + } + } + } + }, + "my_group": { + "hosts": [ + "group1.net" + ] + } + } + +We can now use our script as an inventory source in Ansible: + +.. code-block:: bash + + $ chmod +x script.py + $ ansible-inventory -i script.py --list + { + "_meta": { + "hostvars": { + "group1.net": { + "ansible_host": "group1.net", + "main": { + "my_boolean_variable": true, + "my_integer_variable": 1, + "my_secret_variable": "MyVeryStrongPassword", + "my_variable": "my value" + } + } + } + }, + "all": { + "children": [ + "ungrouped", + "my_group" + ] + }, + "my_group": { + "hosts": [ + "group1.net" + ] + } + } + +DOC +--- + +We can generate the documentation of all the Rougail variable: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.output_doc import RougailOutputDoc + + RougailConfig["main_namespace"] = "main" + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.output"] = "doc" + rougail = Rougail() + config = rougail.run() + config.property.read_only() + RougailOutputDoc(config).print() + +.. FIXME : display diff --git a/docs/library/own_type.rst b/docs/library/own_type.rst new file mode 100644 index 000000000..4da6e7aeb --- /dev/null +++ b/docs/library/own_type.rst @@ -0,0 +1,52 @@ +Create your own type +==================== + +A variable has a type. This type enables the variable to define the values that are accepted by this variable. + +There is a series of default types, but obviously not all cases are taken. + +It's possible to create your own type. + +Here an example to a lipogram option (in a string, we cannot use "e" character): + +.. code-block:: python + :caption: the `lipogram.py` file content + + from tiramisu import StrOption + class LipogramOption(StrOption): + __slots__ = tuple() + _type = 'lipogram' + + def validate(self, + value): + super().validate(value) + # verify that there is any 'e' in the sentense + if 'e' in value: + raise ValueError('Perec wrote a book without any "e", you could not do it in a simple sentence?') + +To add the new lipogram type in Rougail: + +.. code-block:: python + + >>> from rougail import Rougail, RougailConfig + >>> RougailConfig['main_structural_directories'] = ['dict'] + >>> RougailConfig['custom_types']['lipogram'] = LipogramOption + +Now, we can use lipogram type. +Here is a :file:`dict/00-base.yml` structure file: + +.. code-block:: yaml + + --- + version: '1.1' + var: + type: lipogram + +.. code-block:: python + + >>> rougail = Rougail() + >>> config = rougail.get_config() + >>> config.option('rougail.var').value.set('blah') + >>> config.option('rougail.var').value.set('I just want to add a quality string that has no bad characters') + [...] + tiramisu.error.ValueOptionError: "I just want to add a quality string that has no bad characters" is an invalid lipogram for "var", Perec wrote a book without any "e", you could not do it in a simple sentence? diff --git a/docs/library/parse.rst b/docs/library/parse.rst new file mode 100644 index 000000000..1a06c531d --- /dev/null +++ b/docs/library/parse.rst @@ -0,0 +1,260 @@ +Retrieve all variables and families +=================================== + +Rougail returns a :term:`Tiramisu` config. + +Let's retrieve our variables and families to manager this. + +First of all, create our structural file: + +.. code-block:: yaml + :caption: the :file:`dist/00-base.yml` file content + + %YAML 1.2 + --- + version: 1.1 + + my_variable: # a simple variable + - value1 + - value2 + + a_family: # a simple family + + my_variable: my_value # a simple variable inside the family + + a_dyn_family_{{ identifier }}: + description: a dynamic family for "{{ identifier }}" + dynamic: + variable: _.my_variable + + a_leadership: + description: a leader family + + a_leader: # a leader variable + a_follower: # a follower variable + ... + +Walk through our config +------------------------- + +Create our first script to walk through our config: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ["dist/"] + rougail = Rougail() + config = rougail.run() + + def walk(config): + for option in config: + print(option.description()) + if option.isoptiondescription(): + walk(option) + + if __name__ == '__main__': + walk(config) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + rougail + rougail.my_variable (a simple variable) + rougail.a_family (a simple family) + rougail.a_family.my_variable (a simple variable inside the family) + rougail.a_dyn_family_value1 (a dynamic family for "value1") + rougail.a_dyn_family_value1.a_leadership (a leader family) + rougail.a_dyn_family_value1.a_leadership.a_leader (a leader variable) + rougail.a_dyn_family_value1.a_leadership.a_follower (a follower variable) + rougail.a_dyn_family_value2 (a dynamic family for "value2") + rougail.a_dyn_family_value2.a_leadership (a leader family) + rougail.a_dyn_family_value2.a_leadership.a_leader (a leader variable) + rougail.a_dyn_family_value2.a_leadership.a_follower (a follower variable) + +We retrieve alls description of variables and families. + +Let us distinguish the variables of the families +------------------------------------------------ + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ["dist/"] + rougail = Rougail() + config = rougail.run() + + def walk(config, level=0): + for option in config: + if option.isoptiondescription(): + typ = "family" + else: + typ = "variable" + prefix = " " * level + print(f"{prefix}{typ}: {option.description()}") + if option.isoptiondescription(): + walk(option, level + 1) + + if __name__ == '__main__': + walk(config) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + family: rougail + variable: rougail.my_variable (a simple variable) + family: rougail.a_family (a simple family) + variable: rougail.a_family.my_variable (a simple variable inside the family) + family: rougail.a_dyn_family_value1 (a dynamic family for "value1") + family: rougail.a_dyn_family_value1.a_leadership (a leader family) + variable: rougail.a_dyn_family_value1.a_leadership.a_leader (a leader variable) + variable: rougail.a_dyn_family_value1.a_leadership.a_follower (a follower variable) + family: rougail.a_dyn_family_value2 (a dynamic family for "value2") + family: rougail.a_dyn_family_value2.a_leadership (a leader family) + variable: rougail.a_dyn_family_value2.a_leadership.a_leader (a leader variable) + variable: rougail.a_dyn_family_value2.a_leadership.a_follower (a follower variable) + +Or if we want more precision: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ["dist/"] + rougail = Rougail() + config = rougail.run() + + def walk(config, level=0): + for option in config: + if option.isoptiondescription(): + if option.isleadership(): + typ = "leadership" + elif option.isdynamic(): + typ = "dynamic family" + else: + typ = "family" + else: + if option.isleader(): + typ = "leader" + elif option.isfollower(): + typ = "follower" + else: + typ = "option" + if option.isdynamic(): + typ = f"dynamic {typ}" + prefix = " " * level + print(f"{prefix}{typ}: {option.description()}") + if option.isoptiondescription(): + walk(option, level + 1) + + if __name__ == '__main__': + walk(config) + +Let's execute `script.py`: + +.. code-block:: bash + + family: rougail + option: rougail.my_variable (a simple variable) + family: rougail.a_family (a simple family) + option: rougail.a_family.my_variable (a simple variable inside the family) + dynamic family: rougail.a_dyn_family_value1 (a dynamic family for "value1") + dynamic family: rougail.a_dyn_family_value1.a_leadership (a leader family) + dynamic option: rougail.a_dyn_family_value1.a_leadership.a_leader (a leader variable) + dynamic option: rougail.a_dyn_family_value1.a_leadership.a_follower (a follower variable) + dynamic family: rougail.a_dyn_family_value2 (a dynamic family for "value2") + dynamic family: rougail.a_dyn_family_value2.a_leadership (a leader family) + dynamic option: rougail.a_dyn_family_value2.a_leadership.a_leader (a leader variable) + dynamic option: rougail.a_dyn_family_value2.a_leadership.a_follower (a follower variable) + +Get variable values +------------------- + +If we want to walk to get variables and their values: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ["dist/"] + rougail = Rougail() + config = rougail.run() + + def walk(config): + for option in config: + if option.isoptiondescription(): + walk(option) + else: + print(f"{option.description()}: {option.value.get()}") + + if __name__ == '__main__': + walk(config) + +Let's execute `script.py`: + +.. code-block:: bash + + rougail.my_variable (a simple variable): ['value1', 'value2'] + rougail.a_family.my_variable (a simple variable inside the family): my_value + rougail.a_dyn_family_value1.a_leadership.a_leader (a leader variable): None + rougail.a_dyn_family_value1.a_leadership.a_follower (a follower variable): None + rougail.a_dyn_family_value2.a_leadership.a_leader (a leader variable): None + rougail.a_dyn_family_value2.a_leadership.a_follower (a follower variable): None + +Modify variable values +---------------------- + +Some variables are mandatories but hasn't value. Here we set alls values: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + RougailConfig['main_structural_directories'] = ["dist/"] + rougail = Rougail() + config = rougail.run() + + + def walk(config): + for option in config: + if option.isoptiondescription(): + walk(option) + else: + print(f"{option.description()}: {option.value.get()}") + + if __name__ == '__main__': + print("Mandatories variables without value:") + print(config.value.mandatory()) + config.value.set("rougail.my_variable", ["value 5", "value 6"]) + config.value.set("rougail.a_dyn_family_value_5.a_leadership.a_leader", "value 1") + config.value.set("rougail.a_dyn_family_value_5.a_leadership.a_follower", "value 2") + config.value.set("rougail.a_dyn_family_value_6.a_leadership.a_leader", "value 3") + config.value.set("rougail.a_dyn_family_value_6.a_leadership.a_follower", "value 4") + print("Mandatories variables without value:") + print(config.value.mandatory()) + walk(config) + + +Let's execute `script.py`: + +.. code-block:: bash + + Mandatories variables without value: + [, , , ] + Mandatories variables without value: + [] + rougail.my_variable (a simple variable): ['value 5', 'value 6'] + rougail.a_family.my_variable (a simple variable inside the family): my_value + rougail.a_dyn_family_value_5.a_leadership.a_leader (a leader variable): value 1 + rougail.a_dyn_family_value_5.a_leadership.a_follower (a follower variable): value 2 + rougail.a_dyn_family_value_6.a_leadership.a_leader (a leader variable): value 3 + rougail.a_dyn_family_value_6.a_leadership.a_follower (a follower variable): value 4 diff --git a/docs/library/rougailconfig_load_from_cli.rst b/docs/library/rougailconfig_load_from_cli.rst new file mode 100644 index 000000000..bebb22fad --- /dev/null +++ b/docs/library/rougailconfig_load_from_cli.rst @@ -0,0 +1,167 @@ +Load Rougail configuration from Rougail command line informations +================================================================== + +There is a lot you can do with the Rougail command line (rougail-cli), but sometimes you need to do a more advanced script. + +Rather than duplicating the configuration, why not load the information from the configuration file, environment variables, or command line options? + +We can loading a combination of source information but always in this order: + +- configuration file +- environment variables +- commandline options + +.. warning:: specific options reserve for command line (in namespace "cli") are not available in script + +Then let's create an structual file:term:`structure file` :file:`dist/00-base.yml`: + +.. code-block:: yaml + :caption: the :file:`dist/00-base.yml` file content + + \%YAML 1.2 + --- + version: 1.1 + + my_variable: my_value_extra # a simple variable + ... + +Command line configuration file +------------------------------- + +Create a command line configuration file :file:`.rougailcli.yml`: + +.. code-block:: yaml + :caption: the :file:`.rougailcli.yml` file content + + --- + main_structural_directories: # directories where are place structural file + - dist + step.output: json # output is not console but json + +Let's execute Rougail command line: + +.. code-block:: bash + + $ rougail + { + "my_variable": "my_value_extra" + } + +Then, let's create the :term:`Tiramisu` objects via the following :file:`script.py` script: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail + rougail = Rougail() + try: + config = rougail.run() + print(config.value.get()) + except Exception as err: + print(f"ERROR: {err}") + exit(1) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + + ERROR: option "Directories where structural files are placed" is mandatory but has no value + +As expected, the .rougailcli.yml file is not loaded because it is specific to the command line. + +Let's modifying the script to do this: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.cli.rougailconfig import load + load(RougailConfig, yaml_file=".rougailcli.yml") + rougail = Rougail() + try: + config = rougail.run() + print(config.value.get()) + except Exception as err: + print(f"ERROR: {err}") + exit(1) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + {: {: 'my_value_extra'}} + +Environment variables +--------------------- + +If we don't have .rougailcli.yml, it's possible to set option with environment variables, like this: + +.. code-block:: bash + + $ env ROUGAILCLI_MAIN_STRUCTURAL_DIRECTORIES=dist/ ROUGAILCLI_STEP.OUTPUT=json ROUGAILCLI_MAIN_NAMESPACE=test bin/rougail + { + "test": { + "my_variable": "my_value_extra" + } + } + +Do the same with a script: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.cli.rougailconfig import load + load(RougailConfig, env_prefix="ROUGAILCLI") + rougail = Rougail() + try: + config = rougail.run() + print(config.value.get()) + except Exception as err: + print(f"ERROR: {err}") + exit(1) + +Let's execute `script.py`: + +.. code-block:: bash + + $ env ROUGAILCLI_MAIN_STRUCTURAL_DIRECTORIES=dist/ ROUGAILCLI_STEP.OUTPUT=json ROUGAILCLI_MAIN_NAMESPACE=test python3 script.py + {: {: 'my_value_extra'}} + +Command line option +------------------- + +To reproduce this: + +.. code-block:: bash + + ./bin/rougail --main_structural_directories dist/ --step.output json --main_namespace=new_test + { + "new_test": { + "my_variable": "my_value_extra" + } + } + +Do this script: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.cli.rougailconfig import load + load(RougailConfig, commandline=True) + rougail = Rougail() + try: + config = rougail.run() + print(config.value.get()) + except Exception as err: + print(f"ERROR: {err}") + exit(1) + +.. code-block:: bash + + $ python3 script.py --main_structural_directories dist/ --step.output json --main_namespace=new_test + {: {: 'my_value_extra'} diff --git a/docs/library/tags.rst b/docs/library/tags.rst new file mode 100644 index 000000000..522d6f8f2 --- /dev/null +++ b/docs/library/tags.rst @@ -0,0 +1,112 @@ +Use tag informations +==================== + +When we set tags for a variable, it will add :term:`Tiramisu` properties and informations. + +We can filter those variables easily with tags. + +First of all, create our structural file: + +.. code-block:: yaml + :caption: the :file:`dist/00-base.yml` file content + + %YAML 1.2 + --- + version: 1.1 + + infra_name: my infra # Name of this infrastructure + + server1: # the first server + + internal_domain: + description: Server domaine name + type: domainname + tags: + - internal + + external_domain: + description: Domain name to access to this server for Internet + type: domainname + tags: + - external + + server2: # the second server + + address: + description: Server domaine name + type: domainname + tags: + - internal + ... + +Exclude variables with a specific tag +------------------------------------- + +To exclude variables with a specific tag is very easy. When the variable has tags, properties with same name are automaticly create. +So exclude a tag means exclude variable with a particular property. + +In this example we exclude variable with "internal" tag and display result of "server1" family: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from pprint import pprint + + RougailConfig['main_namespace'] = None + RougailConfig['main_structural_directories'] = ['dist'] + rougail = Rougail() + config = rougail.run() + print("without filter:") + pprint(config.option("server1").value.get()) + config.property.add('internal') + print("with filter:") + pprint(config.option("server1").value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + without filter: + {: None, + : None} + with filter: + {: None} + +Only variable with a specific tag +--------------------------------- + +It's more difficult to see only variable with a specific tag. + +We have to walk through the configuration and retrieve variable with the selected tag. +Tags are in properties but, are in information too. + +Here is a smal script that walk that the configuration and "print" option with "internal" tag: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig['main_structural_directories'] = ['dist'] + rougail = Rougail() + config = rougail.run() + + def walk(config): + for option in config: + if option.isoptiondescription(): + walk(option) + elif "internal" in option.information.get('tags', []): + print(option.description()) + + if __name__ == '__main__': + walk(config) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + server1.internal_domain (Server domaine name) + server2.address (Server domaine name) diff --git a/docs/library/upgrade.rst b/docs/library/upgrade.rst new file mode 100644 index 000000000..4778905df --- /dev/null +++ b/docs/library/upgrade.rst @@ -0,0 +1,42 @@ +Upgrade dictionnaries to upper version +====================================== + +All dictionnaries has a format version number. +When a new format version is proposed, it is possible to automatically convert the files to the new version. + +We create a term:`structure file` named :file:`dict/01-upgrade.yml` with version 1.0: + +.. code-block:: yaml + + --- + version: '1.0' + my_variable: + multi: true + my_dyn_family: + type: "dynamic" + variable: my_variable + a_variable: + + +.. code-block:: python + + >>> from rougail import RougailUpgrade, RougailConfig + >>> RougailConfig['main_structural_directories'] = ['dict'] + >>> upgrade = RougailUpgrade() + >>> upgrade.load_dictionaries('dict_converted') + +The term:`structure file` named :file:`dict_converted/01-upgrade.yml` is in version 1.1: + +.. code-block:: yaml + + version: '1.1' + my_variable: + multi: true + my_dyn_family: + type: dynamic + a_variable: null + dynamic: + type: variable + variable: my_variable + propertyerror: false + diff --git a/docs/library/user_data.rst b/docs/library/user_data.rst new file mode 100644 index 000000000..5f918d16f --- /dev/null +++ b/docs/library/user_data.rst @@ -0,0 +1,390 @@ +Load user data +=============== + +User data are values setup by user for configuration variables. + +There is differents types of user data for differents sources types. + +We can cumulate user data loader. + +For this section, we will use :file:`dict/00-base.yml` a structure file: + +.. code-block:: yaml + + %YAML 1.2 + --- + version: 1.1 + + my_variable: my value # My first variable + + my_boolean_variable: true # My boolean variable + + my_integer_variable: 1 # My integer variable + + my_secret_variable: + description: My secret variable + type: secret + + my_hidden_variable: + description: My hidden variable + hidden: true + ... + +Here is the first script which is load this file: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + rougail = Rougail() + config = rougail.run() + print(config.value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + {: 'my value', : True, : 1, : None} + +YAML +---- + +We want to load this YAML file with value define by user: + +.. code-block:: yaml + + --- + my_variable: a new value + + my_boolean_variable: false + + my_integer_variable: 10 + + my_secret_variable: MyVeryStrongPassword + +Here is the script which is load user data from the YAML file: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_yaml import RougailUserDataYaml + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["yaml"] + RougailConfig["yaml.filename"] = ["dist.yml"] + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataYaml(config).run() + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + {: 'a new value', : False, : 10, : 'MyVeryStrongPassword'} + +Set a secret in clear text file is not always a good idea. +This is why the `yaml.file_with_secrets` parameter allows you to define whether files define in `yaml.filename` can contain a secret and which one: + +- all: all file can contains secret +- first: only the first file can contains secret +- last: only the last file can contains secret +- none: no file can contains secret + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_yaml import RougailUserDataYaml + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["yaml"] + RougailConfig["yaml.filename"] = ["dist.yml"] + RougailConfig["yaml.file_with_secrets"] = "none" + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataYaml( + config, + ).run() + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + $ python3 script.py + {: 'a new value', : False, : 10, : None} + +Environment variables +--------------------- + +We can define use data from environment variables. The environment name is a "prefix" (ROUGAIL by default) with "_" and variable name in uppercase format. + +For example: + +- `my_variable` has `ROUGAIL_MY_VARIABLE` as a environment variable name +- `my_family.my_variable` has `ROUGAIL_MY_FAMILY.MY_VARIABLE` as a environment variable name + +Some shell doesn't allow dot in environment file. In this case use the command "env". + +For example: `env ROUGAIL_MY_FAMILY.MY_VARIABLE="value" ./script.py`. + +Here is the script: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_environment import RougailUserDataEnvironment + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["environment"] + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataEnvironment(config).run() + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + env ROUGAIL_MY_VARIABLE="a new value" ROUGAIL_MY_BOOLEAN_VARIABLE="False" ROUGAIL_MY_INTEGER_VARIABLE=10 ROUGAIL_MY_SECRET_VARIABLE="MyVeryStrongPassword" python script.py + {: 'a new value', : False, : 10, : 'MyVeryStrongPassword'} + +We can redefine the prefix with `environment.default_environment_name` (prefix is always uppercase characters): + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_environment import RougailUserDataEnvironment + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["environment"] + RougailConfig["environment.default_environment_name"] = "EX" + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataEnvironment(config).run() + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + env EX_MY_VARIABLE="a new value" EX_MY_BOOLEAN_VARIABLE="False" EX_MY_INTEGER_VARIABLE=10 EX_MY_SECRET_VARIABLE="MyVeryStrongPassword" python script.py + {: 'a new value', : False, : 10, : 'MyVeryStrongPassword'} + +If you define a `main_namespace` or `extra_namespaces`, the `environment.default_environment_name` is automaticly define with the name of the namespace in uppercase. And the separator is no more "_" but ".": + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_environment import RougailUserDataEnvironment + + RougailConfig["main_namespace"] = "main" + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["environment"] + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataEnvironment(config).run() + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + env MAIN.MY_VARIABLE="a new value" MAIN.MY_BOOLEAN_VARIABLE="False" MAIN.MY_INTEGER_VARIABLE=10 MAIN.MY_SECRET_VARIABLE="MyVeryStrongPassword" python script.py + {: {: 'a new value', : False, : 10, : 'MyVeryStrongPassword'}} + +Set a secret in clear variable environment is not always a good idea. +This is why the `environment.with_secrets` parameter allows you to reject secret from environment variable: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_environment import RougailUserDataEnvironment + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["environment"] + RougailConfig["environment.with_secrets"] = False + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataEnvironment(config).run() + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py`: + +.. code-block:: bash + + env ROUGAIL_MY_VARIABLE="a new value" ROUGAIL_MY_BOOLEAN_VARIABLE="False" ROUGAIL_MY_INTEGER_VARIABLE=10 ROUGAIL_MY_SECRET_VARIABLE="MyVeryStrongPassword" python script.py + {: 'a new value', : False, : 10, : None} + +Comand line parser user data +---------------------------- + +Value can be define directly with command line arguments: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_commandline import RougailUserDataCommandline + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["commandline"] + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataCommandline( + config, + ).run() + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py` to display help: + +.. code-block:: bash + + $ python script.py -h + usage: script.py [-h] --my_variable [MY_VARIABLE] --my_boolean_variable --no-my_boolean_variable --my_integer_variable [MY_INTEGER_VARIABLE] --my_secret_variable MY_SECRET_VARIABLE + + options: + -h, --help show this help message and exit + --my_variable [MY_VARIABLE] + my_variable (My first variable) (default: my value) + --my_boolean_variable + my_boolean_variable (My boolean variable) (default: True) + --no-my_boolean_variable + --my_integer_variable [MY_INTEGER_VARIABLE] + my_integer_variable (My integer variable) (default: 1) + --my_secret_variable MY_SECRET_VARIABLE + my_secret_variable (My secret variable) + {: 'my value', : True, : 1, : None} + + +And now with modified value: + +.. code-block:: bash + + $ python script.py --my_variable "a new value" --no-my_boolean_variable --my_integer_variable 10 --my_secret_variable MyVeryStrongPassword + {: 'a new value', : False, : 10, : 'MyVeryStrongPassword'} + +Boolean variable has a special behavour. To set False you need to add --no-VARIABLE, to set True you need to add --VARIABLE parameter. + +.. ansible,bitwarden,questionary + +Combine user data +------------------ + +You can combine user data, for example if you want to load data from environment and/or command line argument: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_environment import RougailUserDataEnvironment + from rougail.user_data_commandline import RougailUserDataCommandline + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["environment", "commandline"] + rougail = Rougail() + config = rougail.run() + + user_data = [] + user_data.extend(RougailUserDataEnvironment( + config, + ).run()) + user_data.extend(RougailUserDataCommandline( + config, + ).run()) + rougail.user_data(user_data) + print(config.value.get()) + +Let's execute `script.py` with environment variable and commandline arguments: + +.. code-block:: bash + + $ env ROUGAIL_MY_VARIABLE="a new value" ROUGAIL_MY_BOOLEAN_VARIABLE="False" python script.py --my_integer_variable 10 --my_secret_variable MyVeryStrongPassword + {: 'a new value', : False, : 10, : 'MyVeryStrongPassword'} + +If the value of a variable is define with an environment variable and commandline argument, the value is the value of the last user data define: + +.. code-block:: bash + + $ env ROUGAIL_MY_VARIABLE="not a new" python script.py --my_variable "a new value" --no-my_boolean_variable --my_integer_variable 10 --my_secret_variable MyVeryStrongPassword + {: 'a new value', : False, : 10, : 'MyVeryStrongPassword'} + +Manage errors and warnings +-------------------------- + +Recreate a script with environnement variable support which is display the return of user_data function: + +.. code-block:: python + :caption: the :file:`script.py` file content + + from rougail import Rougail, RougailConfig + from rougail.user_data_environment import RougailUserDataEnvironment + + RougailConfig["main_namespace"] = None + RougailConfig["main_structural_directories"] = ["dist/"] + RougailConfig["step.user_data"] = ["environment"] + RougailConfig["environment.with_secrets"] = False + rougail = Rougail() + config = rougail.run() + + user_data = RougailUserDataEnvironment( + config, + ).run() + print(rougail.user_data(user_data)) + +Try to load the value an unknown variable: + +.. code-block:: bash + + $ env ROUGAIL_UNKNOWN_VARIABLE="a value" python script.py + {'errors': [], 'warnings': ['variable or family "unknown_variable" does not exist, it will be ignored when loading from environment variable']} + +As you can see, a warnings is return. + +Try to load the value of an hidden variable: + +.. code-block:: bash + + $ env ROUGAIL_MY_HIDDEN_VARIABLE="a value" python script.py + {'errors': [], 'warnings': ['variable "my_hidden_variable" (My hidden variable) is hidden, it will be ignored when loading from environment variable']} + +Finally if a try to change the value of a secret, which is not allowed: + +.. code-block:: bash + + $ env ROUGAIL_MY_SECRET_VARIABLE="MyVeryStrongPassword" python script.py + {'errors': ['the variable "my_secret_variable" contains secrets and should not be defined in environment variable'], 'warnings': []} + +An error is generated. diff --git a/docs/output/ansible.rst b/docs/output/ansible.rst new file mode 100644 index 000000000..894e6dd83 --- /dev/null +++ b/docs/output/ansible.rst @@ -0,0 +1,230 @@ +Generate Ansible inventory +========================== + +.. note:: + + | **Path**: ansible + | `*disabled*` + | **Disabled**: when the variable "select for output" (step.output) is accessible and hasn't the value "ansible". + + + +.. list-table:: + + * - Variable + - Description + + * - **ansible.output** + + `choice `__ `mandatory` + + **Command line**: + + --ansible.output + + **Environment variable**: ROUGAILCLI_ANSIBLE.OUTPUT + - Output type. + + **Choices**: + + + + - inventory **← (default)** + + - doc + + * - **ansible.host_namespace** + + `string `__ `mandatory` + + **Command line**: + + --ansible.host_namespace + + **Environment variable**: ROUGAILCLI_ANSIBLE.HOST_NAMESPACE + - Namespace with host values. + + **Default**: hosts + +Doc configuration +----------------- + +.. note:: + + | **Path**: ansible.doc + | `*disabled*` + | **Disabled**: when the variable "Output type" (ansible.output) hasn't the value "doc". + + + +.. list-table:: + + * - Variable + - Description + + * - **ansible.doc.project_name** + + `string `__ `mandatory` + + **Command line**: + + --ansible.doc.project_name + + **Environment variable**: ROUGAILCLI_ANSIBLE.DOC.PROJECT_NAME + - Ansible project name. + + * - **ansible.doc.author** + + `string `__ `mandatory` + + **Command line**: + + --ansible.doc.author + + **Environment variable**: ROUGAILCLI_ANSIBLE.DOC.AUTHOR + - Ansible author name. + + * - **ansible.doc.output_format** + + `choice `__ `mandatory` + + **Command line**: + + --ansible.doc.output_format + + **Environment variable**: ROUGAILCLI_ANSIBLE.DOC.OUTPUT_FORMAT + - The output format of the generated documentation. + + **Choices**: + + + + - console **← (default)** + + - asciidoc + + - html + + - github + + - gitlab + + - restructuredtext + + - json + + * - **ansible.doc.collection_type** + + `choice `__ `mandatory` + + **Command line**: + + --ansible.doc.collection_type + + **Environment variable**: ROUGAILCLI_ANSIBLE.DOC.COLLECTION_TYPE + - Collection contents. + + **Choices**: + + + + - auto **← (default)** + + - playbooks + + - roles + +Playbooks informations +~~~~~~~~~~~~~~~~~~~~~~ + +.. note:: + + | This family contains lists of variable blocks. + | **Path**: ansible.doc.playbooks + | `*disabled*` + | **Disabled**: if the content is a role. + + + +.. list-table:: + + * - Variable + - Description + + * - **ansible.doc.playbooks.name** + + `string `__ `multiple` `unique` + + **Command line**: + + --ansible.doc.playbooks.name + + **Environment variable**: ROUGAILCLI_ANSIBLE.DOC.PLAYBOOKS.NAME + - Playbook name. + + Playbooks are placed in the playbooks/ directory. By default, the description of the "type" is used as the playbook name in the generated example. It is possible to customize this description here. + + * - **ansible.doc.playbooks.description** + + `string `__ `mandatory` + + **Command line**: + + --ansible.doc.playbooks.description + + **Environment variable**: ROUGAILCLI_ANSIBLE.DOC.PLAYBOOKS.DESCRIPTION + - Playbook description. + +Inventory configuration +----------------------- + +.. note:: + + | **Path**: ansible.inventory + | `*disabled*` + | **Disabled**: when the variable "Output type" (ansible.output) hasn't the value "inventory". + + + +.. list-table:: + + * - Variable + - Description + + * - **ansible.inventory.no_namespace_in_vars** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --ansible.inventory.no_namespace_in_vars + + - --ansible.inventory.no-no_namespace_in_vars + + + + **Environment variable**: ROUGAILCLI_ANSIBLE.INVENTORY.NO_NAMESPACE_IN_VARS + - Remove namespace name in host vars. + + **Default**: false + + * - **ansible.inventory.export_warnings** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --ansible.inventory.export_warnings + + - --ansible.inventory.no-export_warnings + + + + **Environment variable**: ROUGAILCLI_ANSIBLE.INVENTORY.EXPORT_WARNINGS + - Displays warnings inside Ansible exportation datas. + + **Default**: true diff --git a/docs/output/display.rst b/docs/output/display.rst new file mode 100644 index 000000000..c7f11e044 --- /dev/null +++ b/docs/output/display.rst @@ -0,0 +1,87 @@ +Display variables and values +============================ + +.. note:: + + | Find all the variables and their values in your configuration (structural and user data). Additional informations are available, such as the default value, the location where the value is loaded, etc. + | **Path**: display + | `*disabled*` + | **Disabled**: if display is not set in "select for output" (step.output). + + + +.. list-table:: + + * - Variable + - Description + + * - **display.output_format** + + `choice `__ `mandatory` + + **Command line**: + + --display.output_format + + **Environment variable**: ROUGAILCLI_DISPLAY.OUTPUT_FORMAT + - The output format for displaying variables. + + **Choices**: + + + + - console **← (default)** + + - github + + - gitlab + + * - **display.show_secrets** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --display.show_secrets + + - --display.no-show_secrets + + + + **Environment variable**: ROUGAILCLI_DISPLAY.SHOW_SECRETS + - Show secrets instead of obscuring them. + + **Default**: false + +Specific configuration for console output +----------------------------------------- + +.. note:: + + | **Path**: display.console + | `*disabled*` + | **Disabled**: when the variable "The output format for displaying variables" (display.output_format) hasn't the value "console". + + + +.. list-table:: + + * - Variable + - Description + + * - **display.console.max_width** + + `integer `__ + + **Command line**: + + --display.console.max_width + + **Environment variable**: ROUGAILCLI_DISPLAY.CONSOLE.MAX_WIDTH + - Maximum number of characters per line. + + Null means unlimited. + + **Validator**: the minimum value is 50 diff --git a/docs/output/doc.rst b/docs/output/doc.rst new file mode 100644 index 000000000..c566a7264 --- /dev/null +++ b/docs/output/doc.rst @@ -0,0 +1,381 @@ +Generate documentation from structural files +============================================ + +.. note:: + + | The structural files contain all the information related to the variables. This output generates the documentation for all or some of these variables. + | **Path**: doc + | `*disabled*` + | **Disabled**: if "select for output" (step.output) is not doc. + + + +.. list-table:: + + * - Variable + - Description + + * - **doc.output_format** + + `choice `__ `mandatory` + + **Command line**: + + -do, --doc.output_format + + **Environment variable**: ROUGAILCLI_DOC.OUTPUT_FORMAT + - The output format of the generated documentation. + + **Choices**: + + + + - console **← (default)** + + - asciidoc + + - html + + - github + + - gitlab + + - restructuredtext + + - json + + * - **doc.tabular_template** + + `choice `__ `mandatory` `*disabled*` + + **Command line**: + + -dm, --doc.tabular_template + + **Environment variable**: ROUGAILCLI_DOC.TABULAR_TEMPLATE + - Generate document with this tabular model. + + The variables are documented with a tabular view. A template selection allows you to choose the content of each column. + + **Choices**: + + + + - two_columns **← (default)** + + - three_columns + + - four_columns + + - five_columns + + - six_columns + + + + **Disabled**: "the output format of the generated documentation" (doc.output_format) in json is not compatible with this variable. + + * - **doc.contents** + + `choice `__ `multiple` `mandatory` `*hidden*` `unique` + + **Command line**: + + -dc, --doc.contents + + **Environment variable**: ROUGAILCLI_DOC.CONTENTS + - Generated content. + + You can generate three type of document. All variables ("variables"), an example file in YAML format ("example") or change log ("changelog"). + + **Choices**: + + + + - variables **← (default)** + + - example + + - changelog + + + + **Hidden**: "the output format of the generated documentation" (doc.output_format) in json is not compatible with changelog or example "generated content" (doc.contents). + + * - **doc.title_level** + + `integer `__ `mandatory` + + **Command line**: + + -dt, --doc.title_level + + **Environment variable**: ROUGAILCLI_DOC.TITLE_LEVEL + - Starting title level. + + **Default**: 1 + + * - **doc.default_values** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --doc.default_values + + - --doc.no-default_values + + + + **Environment variable**: ROUGAILCLI_DOC.DEFAULT_VALUES + - Modify values to document all variables. + + To document homogeneous elements type or dynamic family variables, it is sometimes necessary to generate values, which can change the values in the configuration. Be careful if you reuse this configuration. + + **Default**: true + + * - **doc.true_color** + + `boolean `__ `mandatory` `*disabled*` + + **Command line**: + + + + - --doc.true_color + + - --doc.no-true_color + + + + **Environment variable**: ROUGAILCLI_DOC.TRUE_COLOR + - Display documentation in console always with true color terminal. + + **Default**: false + + **Disabled**: when the variable "the output format of the generated documentation" (doc.output_format) hasn't the value "console". + +The variables in this family are documented in another file +----------------------------------------------------------- + +.. note:: + + | If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables. + | This family contains lists of variable blocks. + | **Path**: doc.other_root_filenames + + + +.. list-table:: + + * - Variable + - Description + + * - **doc.other_root_filenames.root_path** + + `string `__ `multiple` `unique` + + **Command line**: + + --doc.other_root_filenames.root_path + + **Environment variable**: ROUGAILCLI_DOC.OTHER_ROOT_FILENAMES.ROOT_PATH + - This file contains child variables of the family. + + * - **doc.other_root_filenames.root_doc_path** + + `string `__ + + **Command line**: + + --doc.other_root_filenames.root_doc_path + + **Environment variable**: ROUGAILCLI_DOC.OTHER_ROOT_FILENAMES.ROOT_DOC_PATH + - Name of the file. + + + +.. list-table:: + + * - Variable + - Description + + * - **doc.document_a_type** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --doc.document_a_type + + - --doc.no-document_a_type + + + + **Environment variable**: ROUGAILCLI_DOC.DOCUMENT_A_TYPE + - Documentation a structural type. + + **Default**: false + +Variables and changelog documentation +------------------------------------- + +.. note:: + + | **Path**: doc.tabulars + | `*disabled*` + | **Disabled**: if "the output format of the generated documentation" (doc.output_format) is json or "generated content" (doc.contents) hasn't variables or changelog. + + + +.. list-table:: + + * - Variable + - Description + + * - **doc.tabulars.without_family** + + `boolean `__ `mandatory` + + **Command line**: + + + + - -df, --doc.tabulars.without_family + + - -ndf, --doc.tabulars.no-without_family + + + + **Environment variable**: ROUGAILCLI_DOC.TABULARS.WITHOUT_FAMILY + - Do not add families in documentation. + + **Default**: false + + * - **doc.tabulars.with_commandline** + + `boolean `__ `mandatory` + + **Environment variable**: ROUGAILCLI_DOC.TABULARS.WITH_COMMANDLINE + - Add command line informations in documentation. + + **Default**: false + + * - **doc.tabulars.with_environment** + + `boolean `__ `mandatory` + + **Command line**: + + + + - -de, --doc.tabulars.with_environment + + - -nde, --doc.tabulars.no-with_environment + + + + **Environment variable**: ROUGAILCLI_DOC.TABULARS.WITH_ENVIRONMENT + - Add environment variable informations in documentation. + + **Default**: false + + * - **doc.tabulars.environment_prefix** + + `string `__ `*disabled*` + + **Command line**: + + -dv, --doc.tabulars.environment_prefix + + **Environment variable**: ROUGAILCLI_DOC.TABULARS.ENVIRONMENT_PREFIX + - Environment variables prefix name. + + **Validator**: should only use uppercase characters + + **Default**: ROUGAIL + + **Disabled**: when the variable "add environment variable informations in documentation" (doc.tabulars.with_environment) has the value "false". + +Changelog documentation +----------------------- + +.. note:: + + | **Path**: doc.changelog + | `*disabled*` + | **Disabled**: if changelog in not in "generated content" (doc.contents). + + + +.. list-table:: + + * - Variable + - Description + + * - **doc.changelog.previous_json_file** + + `string `__ `mandatory` + + **Command line**: + + -dp, --doc.changelog.previous_json_file + + **Environment variable**: ROUGAILCLI_DOC.CHANGELOG.PREVIOUS_JSON_FILE + - Previous description file in JSON format. + + To generate the changelog, you need to compare the old list of variables (in json format) with the current variables. + +Examples configuration +---------------------- + +.. note:: + + | **Path**: doc.examples + | `*disabled*` + | **Disabled**: if example is not in "generated content" (doc.contents). + + + +.. list-table:: + + * - Variable + - Description + + * - **doc.examples.comment** + + `boolean `__ `mandatory` + + **Command line**: + + + + - -dx, --doc.examples.comment + + - -ndx, --doc.examples.no-comment + + + + **Environment variable**: ROUGAILCLI_DOC.EXAMPLES.COMMENT + - Add description of variables and families when generate examples. + + **Default**: false + + * - **doc.examples.comment_column** + + `integer `__ `mandatory` `*disabled*` + + **Command line**: + + --doc.examples.comment_column + + **Environment variable**: ROUGAILCLI_DOC.EXAMPLES.COMMENT_COLUMN + - Comment in examples starts at column. + + **Default**: 30 + + **Disabled**: when the variable "add description of variables and families when generate examples" (doc.examples.comment) has the value "false". diff --git a/docs/output/formatter.rst b/docs/output/formatter.rst new file mode 100644 index 000000000..43772bf2e --- /dev/null +++ b/docs/output/formatter.rst @@ -0,0 +1,29 @@ +Reformat the structure files +============================ + +.. note:: + + | The structure file will be formatted according to a set of rules: empty line between each variable, short-hand notation whenever possible, attribute order, re-indentation (especially for Jinja2 templates), ... + | **Path**: formatter + | `*disabled*` + | **Disabled**: if formatter is not set in "select for output" (step.output). + + + +.. list-table:: + + * - Variable + - Description + + * - **formatter.line_width** + + `integer `__ `mandatory` + + **Command line**: + + --formatter.line_width + + **Environment variable**: ROUGAILCLI_FORMATTER.LINE_WIDTH + - Maximum line size. + + **Default**: 120 diff --git a/docs/output/index.rst b/docs/output/index.rst new file mode 100644 index 000000000..5e45e4bf5 --- /dev/null +++ b/docs/output/index.rst @@ -0,0 +1,17 @@ +Output modules +====================== + +Rougail is a collections of modules in order to adjust functionalities to your needs. + +:term:`Output` is one of category of subjects. The goal is to display, export or document variable and value to meet the needs of the :term:`integrator` or :term:`operator`. + +.. toctree:: + :titlesonly: + :caption: Available output + + display + table + doc + formatter + ansible + json diff --git a/docs/output/json.rst b/docs/output/json.rst new file mode 100644 index 000000000..36f0ad8ed --- /dev/null +++ b/docs/output/json.rst @@ -0,0 +1,3 @@ +Export variables and values to JSON +=================================== + diff --git a/docs/output/table.rst b/docs/output/table.rst new file mode 100644 index 000000000..68ea628e2 --- /dev/null +++ b/docs/output/table.rst @@ -0,0 +1,98 @@ +Displays the data in a table +============================ + +.. note:: + + | The goal is not to display all the variables in the configuration, but only a selection using the labeling mechanism. + | **Path**: table + | `*disabled*` + | **Disabled**: if table is not set in "select for output" (step.output). + + + +.. list-table:: + + * - Variable + - Description + + * - **table.first_column** + + `choice `__ `mandatory` + + **Command line**: + + --table.first_column + + **Environment variable**: ROUGAILCLI_TABLE.FIRST_COLUMN + - Content of the first column. + + **Validator**: Tag name must not have the same name has first column + + **Choices**: + + + + - description + + - namespace + + + + **Default**: First column is description if "Tag names" (table.columns) has only one value, otherwise it's namespace. + + * - **table.columns** + + `string `__ `multiple` `mandatory` `unique` + + **Command line**: + + --table.columns + + **Environment variable**: ROUGAILCLI_TABLE.COLUMNS + - Tag names. + + Each tag creates a column. The content of the columns comes from the variables with the defined tags. + + * - **table.output_format** + + `choice `__ `mandatory` + + **Command line**: + + --table.output_format + + **Environment variable**: ROUGAILCLI_TABLE.OUTPUT_FORMAT + - Tag names. + + **Choices**: + + + + - console **← (default)** + + - github + + - asciidoc + + - html + + - rst + + * - **table.header** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --table.header + + - --table.no-header + + + + **Environment variable**: ROUGAILCLI_TABLE.HEADER + - Add header in table. + + **Default**: true diff --git a/docs/readme.txt b/docs/readme.txt new file mode 100644 index 000000000..d52e0ab4d --- /dev/null +++ b/docs/readme.txt @@ -0,0 +1,22 @@ +Building the doc locally +============================ + +install +--------- + +First, install a python virtual environment:: + + python -m venv .venv + source .venv/bin/activate + +Then install the sphinx libraries:: + + pip install -r requirements.txt + +The generatef html output is located in the `docs/build/html` subfolder, +you can modify the target or the output type in the :file:`docs/Makefile`. + +scraps +--------- + +`variable `_ diff --git a/docs/release.rst b/docs/release.rst new file mode 100644 index 000000000..51a384f76 --- /dev/null +++ b/docs/release.rst @@ -0,0 +1,215 @@ +Release procedure +================= + +We are using Comitizen. + +We are automating vi semantic versionning (SemVer) + CHANGELOG with Commitizen + +Goal +---- + +With each release, a single command (``cz bump --changelog``) will +automatically: + +- Analyze your commits (Conventional Commits) +- Calculate the new version (patch, minor, major) +- Update the version in your files +- Generate/update the CHANGELOG.md - Create the release commit and Git tag + +Installation +------------ + +.. code:: bash + + # Global installation or within your virtual environment + pip install commitizen + + # Verify installation + cz version + +Working with Conventional Commits +--------------------------------- + +Creating standardized commits +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Two methods: + +**Method 1: Interactive guide (recommended for beginners)** + +.. code:: bash + + cz commit + +An assistant guides you step by step: 1. Choose the change type +(``fix``, ``feat``, ``docs``, etc.) 2. Enter the message 3. Describe the +scope (optional) 4. Indicate breaking changes (if any) + +**Method 2: Manually** + +.. code:: bash + + # Bug fix → patch (0.1.0 → 0.1.1) + git commit -m "fix: fix connection timeout" + + # New feature → minor (0.1.0 → 0.2.0) + git commit -m "feat: add OAuth2 authentication" + + # Breaking change → major (0.1.0 → 1.0.0) + git commit -m "feat: new REST API + + BREAKING CHANGE: removed v1 endpoints" + +Commit types and version impact +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++-----------------------+-----------------------+-----------------------+ +| Commit type | Incrementation | Example | ++=======================+=======================+=======================+ +| ``fix:`` | **patch** (+0.0.1) | ``f | +| | | ix: fix display bug`` | ++-----------------------+-----------------------+-----------------------+ +| ``perf:`` | **patch** (+0.0.1) | ``per | +| | | f: optimize queries`` | ++-----------------------+-----------------------+-----------------------+ +| ``feat:`` | **minor** (+0.1.0) | ``f | +| | | eat: add PDF export`` | ++-----------------------+-----------------------+-----------------------+ +| ``BREAKING CHANGE:`` | **major** (+1.0.0) | any type + | +| (in message) | | ``BREAKING CHANGE:`` | ++-----------------------+-----------------------+-----------------------+ + +-------------- + +The magic command - Creating a release +-------------------------------------- + +When you’re ready to publish a new version: + +.. code:: bash + + # Analyzes commits since last tag and executes the release + cz bump --changelog + +What this command does exactly: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. **Analyzes** all commits since the last Git tag +2. **Calculates** the next version (patch/minor/major) +3. **Updates** the version in all listed files +4. **Generates/updates** the ``CHANGELOG.md`` (adds the new entry at the + top) +5. **Automatically commits** the changes with the message: + ``"bump: version X.Y.Z"`` +6. **Creates a Git tag** (format ``vX.Y.Z``) + +Concrete execution example: +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code:: bash + + $ cz bump --changelog + INFO: Starting version bump from 1.0.0 to 1.1.0 + INFO: Updating version in pyproject.toml + INFO: Updating version in src/my_project/__init__.py + INFO: Generating CHANGELOG.md + INFO: Created commit: bump: version 1.1.0 + INFO: Created tag: v1.1.0 + +-------------- + +Managing the auto-generated CHANGELOG +------------------------------------- + +The ``CHANGELOG.md`` file will look like this: + +.. code:: markdown + + ## v1.1.0 (2024-01-15) + + ### Feat + + - add OAuth2 authentication + - add PDF export + + ### Fix + + - fix connection timeout + + ## v1.0.0 (2024-01-10) + + ### Breaking Changes + + - removed v1 endpoints + + ### Feat + + - first version of REST API + +**You can customize the template** by adding to ``pyproject.toml``: + +.. code:: toml + + [tool.commitizen] + # ... existing configuration ... + changelog_template = "custom_changelog_template.j2" # Custom Jinja2 template + +-------------- + +Pushing the release to Git +-------------------------- + +After ``cz bump --changelog``, you have a commit and a tag locally. Push +them: + +.. code:: bash + + # Push the commit and tags + git push --follow-tags + +-------------- + +Useful daily commands +--------------------- + ++-----------------------------------+-----------------------------------+ +| Command | Purpose | ++===================================+===================================+ +| ``cz commit`` | Interactive guide to create a | +| | conventional commit | ++-----------------------------------+-----------------------------------+ +| ``cz bump --changelog`` | **The main command**: bumps | +| | version + CHANGELOG | ++-----------------------------------+-----------------------------------+ +| ``cz check`` | Checks if your last commit | +| | follows the convention | ++-----------------------------------+-----------------------------------+ +| ``cz version`` | Displays current version | +| | (according to Commitizen) | ++-----------------------------------+-----------------------------------+ +| ``cz changelog`` | Generates only the CHANGELOG | +| | without bumping | ++-----------------------------------+-----------------------------------+ +| ``cz bump --prerelease alpha`` | Creates a pre-release version | +| | (e.g., 1.0.0-alpha.1) | ++-----------------------------------+-----------------------------------+ + +-------------- + +Summary: The ideal workflow in 3 steps +-------------------------------------- + +.. code:: bash + + # 1. During development: standardized commits + git add . + cz commit # or git commit -m "feat: ..." + + # 2. When you're ready for a release + cz bump --changelog + + # 3. Push to Git + git push --follow-tags + +**And that’s it!** Version bumped, CHANGELOG generated, tag created, all +automated. diff --git a/docs/requirements.txt b/docs/requirements.txt index 87f1fb7c4..6c073861a 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,81 +1,3 @@ -alabaster==0.7.13 -asttokens==2.4.1 -attrs==23.1.0 -Babel==2.13.1 -certifi==2023.7.22 -charset-normalizer==3.3.2 -click==8.1.7 -colorama==0.4.6 -comm==0.2.0 -debugpy==1.8.0 -decorator==5.1.1 -docutils==0.18.1 -exceptiongroup==1.1.3 -executing==2.0.1 -fastjsonschema==2.18.1 -greenlet==3.0.1 -idna==3.4 -imagesize==1.4.1 -importlib-metadata==6.8.0 -ipykernel==6.26.0 -ipython==8.17.2 -jedi==0.19.1 -Jinja2==3.1.2 -jsonschema==4.19.2 -jsonschema-specifications==2023.7.1 -jupyter-cache==1.0.0 -jupyter_client==8.6.0 -jupyter_core==5.5.0 -livereload==2.6.3 -markdown-it-py==3.0.0 -MarkupSafe==2.1.3 -matplotlib-inline==0.1.6 -mdit-py-plugins==0.4.0 -mdurl==0.1.2 -myst-nb==1.0.0 -myst-parser==2.0.0 -nbclient==0.9.0 -nbformat==5.9.2 -nest-asyncio==1.5.8 -packaging==23.2 -parso==0.8.3 -pexpect==4.8.0 -platformdirs==4.0.0 -prompt-toolkit==3.0.40 -psutil==5.9.6 -ptyprocess==0.7.0 -pure-eval==0.2.2 -Pygments==2.16.1 -python-dateutil==2.8.2 -PyYAML==6.0.1 -pyzmq==25.1.1 -referencing==0.30.2 -requests==2.31.0 -rpds-py==0.12.0 -six==1.16.0 -snowballstemmer==2.2.0 -Sphinx==7.2.6 -sphinx-autobuild==2021.3.14 -sphinx-copybutton==0.5.2 -sphinx-lesson==0.8.15 -sphinx-minipres==0.2.1 -sphinx-rtd-theme==1.3.0 -sphinx-rtd-theme-ext-color-contrast==0.3.1 -sphinx-tabs==3.4.4 -sphinx-togglebutton==0.3.2 -sphinxcontrib-applehelp==1.0.7 -sphinxcontrib-devhelp==1.0.5 -sphinxcontrib-htmlhelp==2.0.4 -sphinxcontrib-jquery==4.1 -sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.6 -sphinxcontrib-serializinghtml==1.1.9 -SQLAlchemy==2.0.23 -stack-data==0.6.3 -tabulate==0.9.0 -tornado==6.3.3 -traitlets==5.13.0 -typing_extensions==4.8.0 -urllib3==2.0.7 -wcwidth==0.2.9 -zipp==3.17.0 +sphinx +sphinx-lesson +sphinxnotes-strike diff --git a/docs/rw_ro_modes.rst b/docs/rw_ro_modes.rst new file mode 100644 index 000000000..ff5111e3c --- /dev/null +++ b/docs/rw_ro_modes.rst @@ -0,0 +1,77 @@ +:orphan: + +Read-write or read-only modes +================================== + +The read-write mode +-------------------- + +When you are in the design phase, your are designing the structure file or +setting values is some user data files, you have the role of :term:`integrator` +or :term:`operator`. Then you need to have access to all the data, even +those which are :term:`hidden` or :term:`disabled`\ . + +In this phase, the configuration shall be in `RW` mode. + + +.. glossary:: + + read-write + + In the read-write mode (RW mode), all settings are accessible and can + be modified. For example, a variable which has the `frozen` property + can be modified. A `hidden` or `disabled` variable is accessible. + + We are in the rôle of an :term:`integrator` or an :term:`operator`. + We are therefore in a situation where we are **using** this configuration. + +The read-only mode +-------------------- + +Once the configuration has beed designed, it is used. +The situation is different. The configuration behaves as a system. + +.. glossary:: + + read-only + + In the read-only mode (RO mode), the configuration cannot be modified. + We are **using** a configuration. + + In the usage mode, we are therefore in a situation where the configuration + cannot be changed. The configuration's data are immutable. + + +RO or RW mode? +--------------- + +Here is an image which summarizes these explanations: + +.. image:: images/read_write.png + + +How to enable + +By default in `rougail-cli`, the `RO` mode is activated. + +If you need to enable the `RW` mode, there is an `rougail-cli` option: + +.. code-block:: bash + + env ROUGAIL_MANUAL.USE_FOR_HTTPS=true rougail -m structfile/proxy2.yml -u yaml environment --yaml.filename userdata/proxy.yml -o json --json.read_write + +The output is: + +.. code-block:: json + + { + "manual": { + "http_proxy": { + "address": "toto.fr", + "port": "8888" + }, + "use_for_https": true + } + } + + diff --git a/docs/structured_data/data_integrity.rst b/docs/structured_data/data_integrity.rst new file mode 100644 index 000000000..48da272be --- /dev/null +++ b/docs/structured_data/data_integrity.rst @@ -0,0 +1,86 @@ +Data integrity +=============== + +Data integrity refers to the fact that data must be reliable and accurate throughout its lifecycle. + +This means that the value must be: + +- of high quality +- appropriate to the overall context + +Isolated variable +----------------- + +.. _data_quality: + +Data quality +~~~~~~~~~~~~ + +The values of the variables must be individually of good quality. + +.. toctree:: + :titlesonly: + + typing + variable_validation + +.. _access_control: + +Access control +~~~~~~~~~~~~~~ + +.. toctree:: + :titlesonly: + + mode + variable_properties + +.. _overall_coherence: + +Overall coherence +----------------- + +.. glossary:: + + conherence + + An isolated variable can be considered to be of quality + but become inconsistent depending on the context. + + Overall coherence is initially managed by personalized validators + which will validate the value of a variable in relation to others. + But it also depends on the availability of the variable depending on the context. + +.. _consistency: + +Consistency +~~~~~~~~~~~ + +.. glossary:: + + consistency + + Consistency is validating the value of a variable in relation to other + variables in the :term:`context`. + This does not only concern the variables themselves, such as their type. + Of course there is a typed base validation. + + The aim is to validate a variable in a :term:`configuration`, + the :term:`structured data` and the :term:`user data` based on the situation. + + This is what we call a "context"—meaning the dataset to which a variable is linked. + + For example, if a minimum value and then a maximum value are requested, + the minimum must be lesser than the maximum. This is not type consistency, + but this is yet consistency. + +Context access control +~~~~~~~~~~~~~~~~~~~~~~ + +Access control occurs as soon as an attempt is made to access a variable. + +Remember, we talked about the :ref:`hidden variable ` and :ref:`disabled variable ` variables. + +These properties become fully meaningful when managing overall consistency. + +Why ask for the domain name of a service if we haven't activated that service just before? diff --git a/docs/structured_data/documentation.rst b/docs/structured_data/documentation.rst new file mode 100644 index 000000000..806f1f74b --- /dev/null +++ b/docs/structured_data/documentation.rst @@ -0,0 +1,71 @@ +.. _data_documentation: + +Data documentation +================== + +Documentation is an integral part of the definition of :term:`structured data`. + +In a sense, we talk about :term:`structured data` and not `schema` in Rougail because the documentation is an full part of the variable definition. + +More broadly, considering the use of a :term:`VaC` tool has the advantage of eliminating the need to manage documentation oneself. + +A lot of useful information for the :term:`operator` is naturally present when defining our variables. I'm thinking of its type, the constraints applied, its default value, the mode level, etc. + +But it is still necessary, as an :term:`integrator`, to guide the :term:`operator`. + +Describe the variable +--------------------- + +Describing the variable you create is not mandatory but it is highly recommended. +Even a very well-chosen variable name does not replace a description. + +.. glossary:: + + description + + A description allows you to describe the expected value(s) of a variable concisely and clearly. + It is designed to be clear precise and short. + +The description is used in different places in Rougail. + +Examples include: + +- warning/error message +- different output + +Additional help to understand the variable +------------------------------------------ + +Help is a property that only concerns documentation. + +.. glossary:: + + help + + A help helps to clarify any ambiguity about the variable’s purpose. + It can be long and detailed. + +.. seealso:: tutorial with a real world sample :doc:`help <../tutorial/document>` + +Give examples of possible value +------------------------------- + +Often a good example is more effective than a long text. + +Don't hesitate to guide the :term:`operator` with relevant examples. + +Examples is a property that only concerns documentation. + +.. seealso:: tutorial with a real world sample :doc:`examples <../tutorial/document>` + +Specialized variables +----------------------- + +In a context of value presentation, :term:`tagging ` can be very useful. The :term:`tags ` allow you to display variable values without knowing the list of variable paths. + +.. glossary:: + + tag + + A tag is just a name. + Adding a tag is a way to attach additional information or label to variables. diff --git a/docs/structured_data/images/schema.png b/docs/structured_data/images/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5f3804f0abac2f6da6b64333a2857761272282 GIT binary patch literal 38305 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


$LewDaFW0rYqzr;CCK#8FawP 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IRAMISU + + + + + + + + + + + + + + + + + + + + + + + version: '0.10'# describe a first service with a single fileservices:- service:- name: my_servicefile:- engine: jinjatext: /etc/filename# describe a variable my_first_variable# and a family with a variable my_second_variablevariables:- variable:- name: my_first_variablevalue:- text: my_value- family:- name: my_familyvariables:- variable:- name: my_second_variabletype: numbermandatory: truevalue:- text: 1 + + + + + + version: '0.10'# describe a first service with a single fileservices:- service:- name: my_servicefile:- engine: jinjatext: /etc/filename# describe a variable my_first_variable# and a family with a variable my_second_variablevariables:- variable:- name: my_first_variablevalue:- text: my_value- family:- name: my_familyvariables:- variable:- name: my_second_variabletype: numbermandatory: truevalue:- text: 1 + Structure file + + + + + \ No newline at end of file diff --git a/docs/structured_data/index.rst b/docs/structured_data/index.rst new file mode 100644 index 000000000..cf3820a63 --- /dev/null +++ b/docs/structured_data/index.rst @@ -0,0 +1,10 @@ +The structure file and data +============================ + +.. toctree:: + :titlesonly: + :caption: Rougail format's integrity and documentation + + structured_data + documentation + data_integrity diff --git a/docs/structured_data/mode.rst b/docs/structured_data/mode.rst new file mode 100644 index 000000000..953ed7c16 --- /dev/null +++ b/docs/structured_data/mode.rst @@ -0,0 +1,52 @@ +.. _structured_data_mode: + +Mode +==== + +By default, the :term:`mode` is not configured. It is an optional feature. + +Definition +--------------- + +Let's start by defining what we want to do with the :term:`modes `. + +.. questions:: What do you mean by "mode"? + + You know, in many applications, in the user interfaces, there are two editing modes: + a basic mode and an advanced mode. + This way, standard users aren't overwhelmed by an overly complex business view, + while domain experts can access more complex views that suit better to their needs. + +We designed this mode concept with that idea in mind. +Of course, it can have a broader meaning, and it is possible to define +much more varied modes (beyond just "basic" or "expert"). + +.. glossary:: + + mode + + At the start of the project, the mode was used to set to variables + some complexity levels. Some variables were seen as "basic", + some other as "normal" (the standard mode) and some variables were seen as "advanced" + (the advanced mode). + + It was a way of classifying the variables as follows: + we could have a view grouping the usual variables (normal mode) + and a view of so-called expert (advanced) variables. + + Regarding variable documentation, we can therefore have + a variables documentation designed for the usual user, + and a variables documentation designed for advanced users. + +Default behavior +------------------ + +By default, the mode is not configured. It is an optional feature. +We'll present a common example, but you'll need to define your own :term:`modes ` according to your needs. + +Here is our classic use case of :term:`mode` definition. We'll use three :term:`modes `: + +- `basic`: automatically sets mandatory variables without default values (in this case, the actor adapting the configuration will have to enter values) and manually sets variables that the actor defining the variables deems necessary. +- `standard`: automatically sets all other variables +- `advanced`: sets variables that the actor defining the variables decides to include. These variables are intended for a knowledgeable audience who know what to do. + diff --git a/docs/structured_data/structured_data.rst b/docs/structured_data/structured_data.rst new file mode 100644 index 000000000..87cfcabc1 --- /dev/null +++ b/docs/structured_data/structured_data.rst @@ -0,0 +1,194 @@ +The structure file +======================= + +What contains exactly a :term:`structure file`? +------------------------------------------------- + +.. glossary:: + + structure file + + A structure file in the Rougail meaning is a YAML file that describes variables + and their dependencies. + There can be a lot of structure files located in many different folders. + + Rougail reads all the structure files and loads them into a single object + that represents the whole :term:`context`. + +A :term:`structure file` is a YAML file whose structure is described in this documentation page. + +A structure file contains a set of variables, usable in your application, for example in a template +to generate configuration files. + +:term:`Families ` and :term:`variables ` can be defined in several structure files. These structure files are then aggregated. + +File naming convention +-------------------------- + +.. _filenamingconvention: + +The structure files in a given folder +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For the sake of clarity, we put the structured data in separate files. +It's a good way to organize your rougail structures this way, +in the real world we need separate files for different topics. + +For example some files like this: + +A file named :file:`firefox/00-proxy.yml` structure file and file named :file:`firefox/10-manual.yml` + +:: + + . + └── firefox + ├── 00-proxy.yml + └── 10-manual.yml + +.. note:: We of course could have put everything in one file. + Again, it is better to separate the structures in different files + for reasons of ordering and clarity. + +Ordering your structure files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The order in which files are loaded is important in Rougail. +In a given folder, files are loaded in alphabetical order. + +Furthermore, for better readability of the order in which files are +loaded into a folder, we have adopted a convention. +To facilitate classification, we have defined a standard notation for structure file names: + +:: + + XX-.yml + +Where `XX` is a two digits integer followed by an hyphen, and `` is a name that describes +the structure that is in this file. We advise you to adopt this convention as well. + +File naming convention +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There is no restriction to the `` name part of file name. But it is preferable to only use +lowercase ASCII letters, numbers and the `"_"` (undescore) character. + +.. FIXME: et le moins "-" aussi non ? + +.. _namespace: + +Separation of structures into namespaces +---------------------------------------- + +.. glossary:: + + namespace + + A namespace is a way to organize and group related variables under a unique name. + +It enables us to: + +- avoid naming conflicts +- permit logical grouping: related variables can be grouped together +- scope control: namespaces limit the visibility of variable to the namespace itself + +By default there is no namespace. + +.. _defaultnamespace: + +The default namespace +~~~~~~~~~~~~~~~~~~~~~ + +The families and variables contained in these structure files are ordered, by default, in the `rougail` namespace. It is possible to change the name of this namespace with the :term:`variable namespace ` parameter of the :ref:`configuration `. + +This namespace (the default namespace) is a bit special, it can access variables in another namespace. + +The extra structure files +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +An extra is a different namespace. The idea is to be able to classify the variables by theme. + +Extra namespaces must be declared :ref:`when configuring Rougail `. + +In this namespace we cannot access variables from another `extra` namespace. +On the other hand, it is possible to access the variable of the default namespace. + +The header of a structure file +----------------------------------- + +A basic structure file is composed of: + +- a YAML 1.2 standard header +- a version attribute + +.. code-block:: yaml + + %YAML 1.2 + --- + version: 1.1 + ... + +The structure file processing +---------------------------------- + +The :term:`structure files ` contain information that will be used by the consistency handling system for structure validation. +This is what we call :term:`structured data` writen in :term:`Rougail format`. + +.. figure:: images/schema.png + :alt: The Rougail process + :align: center + + The Rougail process from structure files to :term:`Tiramisu` valition handler object + +A variable-first DSL +----------------------- + +All of the declaring variables and writing consistency is as simple as writing YAML. + +We can declare variables and describe the relationships between variables in a declarative style (that is, in a YAML file). + +Once the structure files are loaded by Rougail, the :term:`Tiramisu` consistency management tool can check the consistency of the variables between them. + +.. glossary:: + + DSL + + A DSL stands for **Domain-Specific Language**, it is a programming or markup language designed for a specific application domain. + Unlike general-purpose languages (like Python or Java), DSLs are optimized for a narrow set of problems, offering concise syntax and specialized features tailored to their domain. + + Rougail format + + The Rougail format (or :term:`structured data`) is a DSL (Domain-Specific Language) designed for describing variables and their consistency. + +Declarative abstraction +----------------------- + +The variables are described using a declarative model. +This means that the user simply defines the desired final state of the variable. +:term:`Tiramisu` will then determine the actions necessary to reach that state. + +In other words, the user defines the variable schema, which will then be applied deterministically. + +The language is a mix of YAML 1.2 and Jinja Templating. + +Each variables are declared in a mapping object in YAML (the keys are variable properties). + +There is an execption. That what we call the short-hand declaration. + +.. glossary:: + + Short-hand notation + + Shorthand notation allows you to condense as much information as possible when creating a variable. + Generally, the declaration is done on a single line (or at most, a very small number of lines). + + Of course, it's not possible to fully customize the variable with this notation. + + Use shorthand notation whenever possible. This makes the file easier to read. + +Versioned format +---------------- + +The format can evolve. This means that parameters can be added, removed, or modified. +When writing structured data, you must always specify the format version. +You must also ensure that your Rougail version is compatible with your format version. + diff --git a/docs/structured_data/typing.rst b/docs/structured_data/typing.rst new file mode 100644 index 000000000..37a68f0b8 --- /dev/null +++ b/docs/structured_data/typing.rst @@ -0,0 +1,191 @@ +Typing +====== + +The typed variable concept refers to associating a data type with a variable, which defines what kind of values the variable can hold and what operations can be performed on it. + +Typed variables are a fundamental feature in Rougail. Type validation is the first and most important quality check. + +Strongly-typed +-------------- + +Rougail is a strongly-typed DSL. + +This means that loading user data requires attention to the variable types. + +The :term:`integrator` define the variable type and the :term:`operator` has to conform with it. + +.. For untyped user data (such as environment variables), the value type will be adapted during preprocessing. + +Dynamicaly-typed +---------------- + +During the structured data definition, the type is dynamic. + +That is to say, the :term:`integrator` can change the type of the variable at any time. + +However, the :term:`operator` who adapts the value does not have the possibility of redefining the type of the variable. + +.. seealso:: :ref:`the variable mutability ` + + +Type inference +-------------- + +Type inference is the process where Rougail automatically figures out the types without explicit annotations. +In fact, the variable type comes from the type of its default value. + +The type inference is in particular use with the :term:`short-hand notation`. + +Variables typing +---------------- + +Standard types +~~~~~~~~~~~~~~ + +Rougail accepts the following standard types: + +- `string` (default type of a variable) +- `integer` +- `float` +- `boolean` + +.. FIXME: est-ce que integer et float -> number type ???? + +.. seealso:: :ref:`the variable documentation ` + +Specialized types +~~~~~~~~~~~~~~~~~ + +But we will also find a whole series of specialized types: + +- IP +- domainname +- port +- MAC +- secret +- ... + +.. seealso:: :ref:`the variable documentation ` + +A variable with a list of possible values +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Sometimes a variable can only hold a finite list of possible values. We call it a variable with a list of possible values. + +.. seealso:: The tutorial with a real world sample about :doc:`a variable with a list of possible values <../tutorial/choice>` + +Type parameters +~~~~~~~~~~~~~~~ + +For certain types, there are a number of parameters that can be used to further type the variables. + +.. seealso:: :ref:`the variable documentation ` + +.. _nullable_variable: + +Custom type +~~~~~~~~~~~ + +It is not possible to create every possible type of variable. + +Therefore, it is necessary to provide a simple way to create these custom types. + +There are two ways to create a type: + +- creating a :term:`Tiramisu` type +- creating a type from an existing variable, have a look at the tutorial with a real world sample :doc:`custom type <../tutorial/customtype>`. + +Nullable variable +~~~~~~~~~~~~~~~~~ + +The `null` type (or `None` in Python) does not exist in Rougail. + +All variables, regardless of their type, can be nullable (see the remarks on the list type below). + +Even if all types can accept this value, by default, they do not. + +In reality, the variable not nullable with the value to `null` is not accessible in `read-only` mode (which is the case during the output steps). +In `read/write` mode, the access is indeed granted. + +.. seealso:: The tutorial with a real world sample about a :doc:`nullable variable <../tutorial/nullable>` + +The `list` type +~~~~~~~~~~~~~~~ + +A list is not a type either. +It is a property of a variable. There is no such thing as a container type (like a python `list` type for instance). +This means that all type can have multiple values in a list but it can only contain values of an unique type. + +A multiple variable could be nullable. This means that `null` can be accepted as a value in the list (not permitted by default). +But the multiple variable could also be without value (not permitted too by default). + +.. seealso:: The tutorial with a real world sample about a :doc:`multiple variable <../tutorial/multiple>` + +Families typing +--------------- + +The `mapping` type +~~~~~~~~~~~~~~~~~~ + +A mapping is a collection of key: value pairs. + +This is a JSON example: + +.. code-block:: json + + { + "my_variable": "my_value" + } + +In Rougail the mapping type is called a :term:`family`. +It is a container designed to hold variables. + +The whole :term:`configuration` tree structure is handled by the families definitions. +It is possible to create subfamilies. + +.. seealso:: :ref:`the family documentation ` + +.. _dynamically_built_family: + +The dynamically built family +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A dynamically built family is a special family. + +.. glossary:: + + dynamically built family + + A dynamically built family is a fictitious family linked to a list of unique identifiers. + + This means that families will appear or disappear folling the :term:`context`. + +.. seealso:: :ref:`the dynamically built family documentation ` + +Homogeneous elements sequence +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. glossary:: + + sequence + homogeneous elements sequence + + A specific type of mapping, called a `sequence`, allows you to have a list of homogeneous objects. + + For example, if I want to be able to create an unlimited number of users associated with a secret, you can't use lists; I need a list of objects. + + In JSON we will have: + + .. code-block:: json + + [ + { + "user": "login1", + "secret": "MySecret" + }, + { + "user": "login2", + "secret": "MySecret" + } + ] + diff --git a/docs/structured_data/variable_properties.rst b/docs/structured_data/variable_properties.rst new file mode 100644 index 000000000..f7de65d98 --- /dev/null +++ b/docs/structured_data/variable_properties.rst @@ -0,0 +1,43 @@ +Properties +========== + +Access control is achieved through `properties`. + +.. glossary:: + + property + + A property is a state (`disabled`, `mandatory`, `frozen`, `hidden`...) + of a family, a subfamily or a variable. + These properties change the usual behavior of a variable or family. + +The properties can be defined permanently or according to the result of a calculation. + +There are two main properties. + +.. _hidden: + +Hidden variable +--------------- + +A `hidden` variable is a variable whose value cannot be modified by the :term:`operator`. + +This could be an internal variable used by the :term:`integrator` that is not supposed to change. + +Or a variable that only makes sense in a particular context. Therefore, this variable can be hidden and then unhidden depending on the context. + +.. _disabled: + +Disabled variable +----------------- + +A `disabled` variable is a variable that will not be accessible to any of the actors (:term:`integrator` and :term:`operator`). + +This property is generally used dynamically to remove access to the variable depending on the context. + +A picture is worth a thousand words: + +.. image:: ../images/dessin.png + + +.. index:: overall coherence diff --git a/docs/structured_data/variable_validation.rst b/docs/structured_data/variable_validation.rst new file mode 100644 index 000000000..36dd8fdf2 --- /dev/null +++ b/docs/structured_data/variable_validation.rst @@ -0,0 +1,8 @@ +Validation +=========== + +Type validation is the first and most important check. +But it is possible to add additional validations. + +For example, one might want numbers, but only odd numbers. + diff --git a/docs/tiramisu.rst b/docs/tiramisu.rst new file mode 100644 index 000000000..79ccb7321 --- /dev/null +++ b/docs/tiramisu.rst @@ -0,0 +1,41 @@ +Link between Rougail and Tiramisu +====================================== + +Is Rougail using Tiramisu? +------------------------------------- + +We have to say that the handling system used to ensure the variables integrity is another python library, called :term:`Tiramisu`. Rougail is currently strongly affiliated with Tiramisu. + +.. note:: Rougail is currently intended to work in coordination with :term:`Tiramisu` and **is not** intended to be connected with any other consistency handling system. + +Explained differently, Rougail allows you to easily implement an integration of the powerful :term:`Tiramisu` consistency handling system. + +What is a consistency handling system? +------------------------------------------- + +.. questions:: Rougail, Tiramisu: What is it all about? + + **Question**: OK, I have understood that the Rougail library allows me to take advantage of the :xref:`tiramisu` consistency handling library. But what is all this for? What is exactly a consistency handling system? And again, what is this :xref:`Tiramisu library ` used for? + + **Answer**: Well, we will explain in details what this :xref:`tiramisu` library is and what Rougail is. + + In (very) short: + + - Rougail is the YAML consistency description of a :term:`context`\ 's situation + - Tiramisu is the consistency engine linter + +.. glossary:: + + Tiramisu + + :xref:`tiramisu` is a consistency handling system that has initially been designed + in the configuration management scope. Until now, + this library is generally used to handle configuration options. + + It manages variables and group of variables. In the Tiramisu scope we call + it *options* and *option descriptions*. + + Here is the :xref:`tiramisu documentation `. + +In the Rougail scope, we call it :term:`variables ` and :term:`families `. +In Rougail, the families and variables are located in the :term:`structure files `. diff --git a/docs/tutorial.rst b/docs/tutorial.rst deleted file mode 100644 index c1941368f..000000000 --- a/docs/tutorial.rst +++ /dev/null @@ -1,832 +0,0 @@ -Tutorial: a real world sample -============================== - -.. demo:: Demonstration : configuring (the setting of) your favorite web browser - - This tutorial shows to you an example of Rougail use on - how to set a proxy in the `Mozilla Firefox `_ browser. - -More precisely, this tutorial aims at reproducing this Mozilla Firefox settings page: - -.. image:: images/firefox.png - -.. important:: Here we are in the configuration validation use case, - that is the values entered by the user have to be validated. - It's a common use case, but not the only one. - -Let's explain this use case. - -The Firefox proxy configuration -------------------------------------------- - -The `proxy` family -------------------- - -Let's create our first :term:`dictionary`. - -.. prerequisites:: Let's create a folder named `dict` and a dictionary file inside - -We will put our dictionary files in this folder. - -Then let's put our first dictionary file in this folder, named :file:`00-proxy.yml` - -.. code-block:: yaml - :caption: the :file:`00-proxy.yml` file - :linenos: - - --- - version: '1.1' - proxy: - description: Proxy configuration in order to have access to the internet - type: family - -We can see that we have defined a :term:`family` here, and this family is *empty* -(that is, the family container contains no variable yet). - -.. admonition:: If a family is empty - - We need to specify the :term:`family` type (line 5) here because if we don't, - the Rougail's type engine will infer it by default as a :term:`variable`. - -It's because we don't have set any :term:`variable` inside. - - -.. note:: The variables will be created in several files for educational purposes. - Obviously all the variables can be put in the same file. - - -The proxy's configuration type ----------------------------------- - -In the Firefox configuration, it is possible to define several configuration modes, -from no proxy at all (`no proxy`) to a kind of automatic configuration mode from a file (`set up proxy configuration from a file`). - -We're gonna create a first variable in this family with "Proxy mode" as the description. -Let's create a second :file:`dict/01-proxy_mode.yml` file. - -.. code-block:: yaml - :caption: the :file:`001-proxy_mode.yml` file - :linenos: - - --- - version: '1.1' - proxy: - proxy_mode: - description: Proxy mode - type: choice - choices: - - No proxy - - Auto-detect proxy settings for this network - - Use system proxy settings - - Manual proxy configuration - - Automatic proxy configuration URL - default: No proxy - -The `proxy_mode` variable requires a value (that is, `None` is not an option). -It shall have a value, but what if the user *does not* specify any value? -There is line 13, a possibility of setting a default value, wich is `No proxy` as the default. - -The `proxy_mode` setting is "choice" (`type: choice`) means that -there is a list of available values that can be selected. -We say that the `proxy_mode` variable is *constrained* (by choices). - -Line 8 to 12, we have the list of the possible (authorized) values: - -- No proxy -- Auto-detect proxy settings for this network -- Use system proxy settings -- Manual proxy configuration -- Automatic proxy configuration URL - -Now let's test our first two dictionaries: - - ->>> from rougail import Rougail, RougailConfig ->>> from pprint import pprint ->>> RougailConfig['dictionaries_dir'] = ['dict'] ->>> rougail = Rougail() ->>> config = rougail.get_config() ->>> config.property.read_only() ->>> pprint(config.value.get(), sort_dicts=False) -{'rougail.proxy.proxy_mode': 'No proxy'} - -The manual mode ------------------- - -.. questions:: OK then. What happens when you select the "Manual proxy configuration"? - -A good configuration design is to place all the proxy's manual configuration in a :term:`family`. -Let's create the :file:`dict/02-proxy_manual.yml` dictionary: - -.. code-block:: yaml - :caption: the the :file:`dict/02-proxy_manual.yml` file - - --- - version: '1.1' - proxy: - manual: - description: Manual proxy configuration - type: family - disabled: - type: jinja - jinja: | - {% if rougail.proxy.proxy_mode != 'Manual proxy configuration' %} - the proxy mode is not manual - {% endif %} - -Well, if the user selects the "Manual proxy configuration" proxy mode, we want to see a new subfamily (that is, a new set of configuration variables) called `manual` to appear (which is disabled). - -.. glossary:: - - subfamily - - A subfamily is just a family inside a family, a family that contains a family. - -.. questions:: What about this `Jinja` type? - -If the :term:`Jinja` template returns some text, then the family will be `disabled`. Otherwise it is accessible. -Deactivating a family means that we will not be able to access it as well as the variables or families included in this family. - -.. note:: If the Jinja template does not return any text, the variable will be **enabled**. - Here we are using the Jinja condition statement. - -.. glossary:: - - Jinja - - `Jinja `_ is a template engine. - we are using Jinja in a classical way, that is, Jinja allows us to handle different cases, - for example with the `if` statement. - -The HTTP proxy configuration ------------------------------- - -In this family let's add a *subfamily* named `http_proxy`, containing the address and port configuration variables. - -Let's create the :file:`dict/03-proxy_manual_http_proxy.yml` dictionary: - -.. code-block:: yaml - :caption: the the :file:`dict/02-proxy_manual.yml` file - :linenos: - - --- - version: '1.1' - proxy: - manual: - http_proxy: - description: HTTP Proxy - address: - description: HTTP address - type: domainname - port: - description: HTTP Port - type: port - default: '8080' - -Both variables `address` and `port` have particular types (respectively `domainname` line 9 and `port` line 12) to validate the values configured by the user. - -.. note:: No need to specify the type of the `http_proxy` as a family type, because here we have declared variables inside of it. - -Duplicating the HTTP configuration to HTTPS ---------------------------------------------- - -We then want to offer the user the possibility of providing the same proxy for the HTTPS requests. Let's create the :file:`dict/04-proxy_manual_http_use_for_https.yml` file: - -.. code-block:: yaml - :caption: the :file:`dict/04-proxy_manual_http_use_for_https.yml` file - - version: '1.1' - proxy: - manual: - use_for_https: - description: Also use this proxy for HTTPS - type: boolean - -This variable is a `boolean` type, its default value is `True`. - -HTTPS proxy configuration detail ------------------------------------ - -Let's add a new subfamily named `ssl_proxy`, containing the `address` and `port` variables. - -Let's create the :file:`dict/05-proxy_manual_ssl_proxy.yml` file: - -.. code-block:: yaml - :caption: the :file:`dict/04-proxy_manual_http_use_for_https.yml` file - :linenos: - - --- - version: '1.1' - proxy: - manual: - ssl_proxy: - description: HTTPS Proxy - hidden: - type: variable - variable: rougail.proxy.manual.use_for_https - address: - description: HTTPS address - type: domainname - default: - type: jinja - jinja: | - {% if rougail.proxy.manual.use_for_https %} - {{ rougail.proxy.manual.http_proxy.address }} - {% endif %} - port: - description: HTTPS Port - type: port - default: - type: jinja - jinja: | - {% if rougail.proxy.manual.use_for_https %} - {{ rougail.proxy.manual.http_proxy.port }} - {% endif %} - - -Depending on the value of the `rougail.proxy.mandatory.use_for_https` variable, this family will appear or disappear (the `hidden` setting line 7). Unlike earlier, this time it is not necessary to use a Jinja function. - -Let's notice that the family is not disabled because the variables will need to remain accessible (yet in `read-only` mode). - -The address and port variables are copied from HTTP to HTTPS if `rougail.proxy.use_for_https` is set to `True`. - -Now let's test all of it: - ->>> from rougail import Rougail, RougailConfig ->>> from pprint import pprint ->>> RougailConfig['dictionaries_dir'] = ['dict'] ->>> rougail = Rougail() ->>> config = rougail.get_config() ->>> config.property.read_only() ->>> pprint(config.value.get(), sort_dicts=False) -{'rougail.proxy.proxy_mode': 'No proxy'} - -At this time the proxy is not configured yet, so we do not see any variables. -Let's look at what happens if we try to access the `rougail.proxy.manual` variable if we are not in manual mode: - -.. code-block:: python - - >>> pprint(config.option('rougail.proxy.manual').value.get(), sort_dicts=False) - -We have an error (with the message defined in the Jinja template): - - -.. code-block:: shell - - tiramisu.error.PropertiesOptionError: cannot access to - optiondescription "Manual proxy configuration" because - has property "disabled" (the mode proxy is not manual) - - -Let's configure the proxy in manual mode - ->>> config.property.read_write() ->>> config.option('rougail.proxy.proxy_mode').value.set('Manual proxy configuration') ->>> config.option('rougail.proxy.manual.http_proxy.address').value.set('proxy.example') ->>> pprint(config.value.get(), sort_dicts=False) - -We can see that the returned variables does have the desired values: - -.. code-block:: python - - {'rougail.proxy.proxy_mode': 'Manual proxy configuration', - 'rougail.proxy.manual.http_proxy.address': 'proxy.example', - 'rougail.proxy.manual.http_proxy.port': '8080', - 'rougail.proxy.manual.use_for_https': True} - -Let's set the `read_only` mode and have a look at the configuration again: - -.. code-block:: python - - >>> config.property.read_only() - >>> pprint(config.value.get(), sort_dicts=False) - {'rougail.proxy.proxy_mode': 'Manual proxy configuration', - 'rougail.proxy.manual.http_proxy.address': 'proxy.example', - 'rougail.proxy.manual.http_proxy.port': '8080', - 'rougail.proxy.manual.use_for_https': True, - 'rougail.proxy.manual.ssl_proxy.address': 'proxy.example', - 'rougail.proxy.manual.ssl_proxy.port': '8080'} - -In the `read_only` mode, we can see that the HTTPS configuration appears. - -.. note:: We can see that `rougail.proxy.manual.http_proxy` values have been copied - in `rougail.proxy.manual.ssl_proxy` too. - -Changing values programmatically --------------------------------------- - -We are going to use the :term:`Tiramisu` API to manipulate programmatically the different variables. - -First, let's set `rougail.proxy.manual.use_for_https` to `False`. It is now possible -to configure the HTTPS: - -.. code-block:: python - - >>> config.property.read_write() - >>> config.option('rougail.proxy.manual.use_for_https').value.set(False) - >>> config.option('rougail.proxy.manual.ssl_proxy.address').value.set('other.proxy.example') - >>> pprint(config.value.get(), sort_dicts=False) - {'rougail.proxy.proxy_mode': 'Manual proxy configuration', - 'rougail.proxy.manual.http_proxy.address': 'proxy.example', - 'rougail.proxy.manual.http_proxy.port': '8080', - 'rougail.proxy.manual.use_for_https': False, - 'rougail.proxy.manual.ssl_proxy.address': 'other.proxy.example', - 'rougail.proxy.manual.ssl_proxy.port': '8080'} - -The value of the variable `rougail.proxy.manual.ssl_proxy.address` has actually been modified. -But if this variable is hidden again, then the value comes back to the default value: - -.. code-block:: python - - >>> config.option('rougail.proxy.manual.use_for_https').value.set(False) - >>> config.property.read_only() - >>> pprint(config.value.get(), sort_dicts=False) - {'rougail.proxy.proxy_mode': 'Manual proxy configuration', - 'rougail.proxy.manual.http_proxy.address': 'proxy.example', - 'rougail.proxy.manual.http_proxy.port': '8080', - 'rougail.proxy.manual.use_for_https': False, - 'rougail.proxy.manual.ssl_proxy.address': 'proxy.example', - 'rougail.proxy.manual.ssl_proxy.port': '8080'} - -SOCK's proxy configuration -------------------------------- - -Let's add a new :term:`subfamily` named `socks_proxy` with the `address`, -`port` and `version` variables. - -Let's create the :file:`dict/06-proxy_manual_socks_proxy.yml` file: - -.. code-block:: yaml - :caption: the :file:`dict/06-proxy_manual_socks_proxy.yml` file - - --- - version: '1.1' - proxy: - manual: - socks_proxy: - description: SOCKS Proxy - address: - description: SOCKS Address - type: domainname - port: - description: SOCKS Port - type: port - version: - description: SOCKS host version used by proxy - type: choice - choices: - - v4 - - v5 - default: v5 - -There's nothing new to learn with this file. - -The automatic detection mode ------------------------------- - -Let's add a new variable named `auto`. - -Let's create the :file:`dict/07-proxy_auto.yml` file: - -.. code-block:: yaml - :caption: the :file:`dict/07-proxy_auto.yml` file - - --- - version: '1.1' - proxy: - auto: - type: web_address - description: Automatic proxy configuration URL - disabled: - type: jinja - jinja: | - {% if rougail.proxy.proxy_mode != 'Automatic proxy configuration URL' %} - the proxy mode is not automatic - {% endif %} - -The `web_address` type imposes a value starting with `http://` or `https://`. -This variable is activated when the proxy is in automatic mode. - -The proxy's exceptions ---------------------------- - -Finally, let's add a variable containing proxy exceptions. - -Let's create the :file:`dict/07-proxy_no_proxy.yml` file: - -.. code-block:: yaml - :caption: the :file:`dict/07-proxy_no_proxy.yml` file - :linenos: - - --- - version: '1.1' - proxy: - no_proxy: - description: Address for which proxy will be desactivated - multi: true - type: "domainname" - params: - allow_ip: true - allow_cidr_network: true - allow_without_dot: true - allow_startswith_dot: true - disabled: - type: jinja - jinja: | - {% if rougail.proxy.proxy_mode == 'No proxy' %} - proxy mode is no proxy - {% endif %} - mandatory: false - -This `no_proxy` variable is much like a `domainname` type except that we add -a `params` line 7, we authorize the : - -- IP -- CIDR networks -- machine names (without `'.'`) -- sub-domaines like `.example` - -There can be multiple exceptions to the proxy, so the variable is :term:`multi` (line5). -This variable is only accessible if no proxy is defined (`disabled`). - -.. glossary:: - - multi - - A multi is a multiple variable, that is a variable that can have multiple values. - - -The `no_proxy` variable do not requires a value (that is, `None` is an option), -there is line 19 this statement `mandatory: false` which means that this variable is not mandatory. - - -Let's test it: - - ->>> from rougail import Rougail, RougailConfig ->>> from pprint import pprint ->>> RougailConfig['dictionaries_dir'] = ['dict'] ->>> rougail = Rougail() ->>> config = rougail.get_config() ->>> config.property.read_write() ->>> config.option('rougail.proxy.proxy_mode').value.set('Manual proxy configuration') ->>> config.option('rougail.proxy.manual.http_proxy.address').value.set('proxy.example') ->>> config.option('rougail.proxy.no_proxy').value.set(['.example', '192.168.1.1']) ->>> config.property.read_only() ->>> pprint(config.value.get(), sort_dicts=False) - -It outputs: - -.. code-block:: python - - {'rougail.proxy.proxy_mode': 'Manual proxy configuration', - 'rougail.proxy.manual.http_proxy.address': 'proxy.example', - 'rougail.proxy.manual.http_proxy.port': '8080', - 'rougail.proxy.manual.use_for_https': True, - 'rougail.proxy.manual.ssl_proxy.address': 'proxy.example', - 'rougail.proxy.manual.ssl_proxy.port': '8080', - 'rougail.proxy.manual.socks_proxy.address': None, - 'rougail.proxy.manual.socks_proxy.port': None, - 'rougail.proxy.manual.socks_proxy.version': 'v5', - 'rougail.proxy.no_proxy': ['.example', '192.168.1.1']} - -But not possible to put an invalid value: - -.. code-block:: python - - >>> config.option('rougail.proxy.no_proxy').value.set(['.example', '192.168.1.1', 'not valid']) - [..] - tiramisu.error.ValueOptionError: "not valid" is an invalid domain name for "Address for which proxy will be desactivated", could be a IP, otherwise must start with lowercase characters followed by lowercase characters, number, "-" and "." characters are allowed - - -The authentification request --------------------------------- - -Nothing special when creating the authentication request. To do this, let's create a `dict/08-proxy_prompt_authentication.yml` file: - - -.. code-block:: yaml - :caption: the :file:`dict/08-proxy_prompt_authentication.yml` file - :linenos: - - --- - version: '1.1' - proxy: - prompt_authentication: - description: Prompt for authentication if password is saved - type: boolean - default: true - disabled: - type: jinja - jinja: | - {% if rougail.proxy.proxy_mode == 'No proxy' %} - proxy mode is no proxy - {% endif %} - -The proxy SOCKS v5's DNS ------------------------------- - -The DNS variable for the SOCKS v5 proxy only appears if the proxy is configured and the version of the SOCKS proxy selected is `v5`. - -Let's create a `dict/09-proxy_proxy_dns_socks5.yml` file: - -.. code-block:: yaml - :caption: the :file:`dict/09-proxy_proxy_dns_socks5.yml` file - :linenos: - - --- - version: '1.1' - proxy: - proxy_dns_socks5: - description: Use proxy DNS when using SOCKS v5 - type: boolean - default: false - disabled: - type: jinja - params: - socks_version: - type: variable - variable: rougail.proxy.manual.socks_proxy.version - propertyerror: false - jinja: | - {% if rougail.proxy.proxy_mode == 'No proxy' %} - the proxy mode is no proxy - {% elif socks_version is undefined or socks_version == 'v4' %} - socks version is v4 - {% endif %} - -The difficulty here is that the `rougail.proxy.manual.socks_proxy.version` variable -can be deactivated (and therefore not usable in a calculation). - -.. FIXME definir ce qu'est une calculation - -In this case, we will add a parameter (here called `socks_version`) which will contain, -if there is no property error, the value of the variable. -Otherwise the parameter will not be passed to the Jinja template. - -This is why it is necessary to test in the Jinja template whether the `socks_version` variable really exists. - -The DNS over HTTPS ----------------------- - -Finally we will configure DNS over HTTPS in the 10-proxy_dns_over_https.yml file: - -Let's create a `dict/10-proxy_dns_over_https.yml` file: - -.. code-block:: yaml - :caption: the :file:`dict/10-proxy_dns_over_https.yml` file - :linenos: - - --- - version: '1.1' - proxy: - dns_over_https: - description: DNS over HTTPS - enable_dns_over_https: - description: Enable DNS over HTTPS - type: boolean - default: false - provider: - description: Use Provider - type: choice - choices: - - Cloudflare - - NextDNS - - Custom - default: Cloudflare - disabled: - type: jinja - jinja: | - {% if not rougail.proxy.dns_over_https.enable_dns_over_https %} - Enable DNS over HTTPS is False - {% endif %} - custom_dns_url: - description: Custom DNS URL - type: web_address - disabled: - type: jinja - params: - provider: - type: variable - variable: rougail.proxy.dns_over_https.provider - propertyerror: false - jinja: | - {% if provider is not defined or provider != 'Custom' %} - provider is not custom - {% endif %} - validators: - - type: jinja - jinja: | - {% if rougail.proxy.dns_over_https.custom_dns_url.startswith('http://') %} - only https is allowed - {% endif %} - -.. FIXME : define validators - -The only particularity here is that we added additional validation (validators) to the `custom_dns_url` variable. Only an address starting with `https://` is allowed (not `http://`). - ----- - -The FoxyProxy type's proxy configuration --------------------------------------------- - -Here is now the integration of part of the Firefox FoxyProxy plugin. - -The idea is to have a namespace specific to FoxyProxy and to find in it part of the settings that we will have made in the main namespace. - -This is what the page looks like: - -.. image:: images/foxyproxy.png - -It is possible, in this plugin, to specify an unlimited number of proxies. -Our `proxy` family will no longer be of the `family` type as before but of another type : the :term:`leadership` type. - -.. FIXME: expliquer ce qu'est le type leardership - -Here is the complete content of the FoxyProxy type proxy configuration -(to be put in the `foxyproxy/00-base.yml` file): - -.. code-block:: yaml - :caption: the :file:``foxyproxy/00-base.yml`` file - :linenos: - - --- - version: '1.1' - proxy: - _type: leadership - title: - description: Title or Description - multi: true - color: - description: Color - type: - type: choice - choices: - - HTTP - - HTTPS/SSL - - SOCKS5 - - SOCKS4 - - PAC URL - - WPAD - - System (use system settings) - - Direct (no proxy) - default: Direct (no proxy) - address: - description: IP address, DNS name, server name - multi: true - disabled: - type: jinja - jinja: | - {% if foxyproxy.proxy.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %} - proxy does not need address - {% endif %} - default: - type: jinja - params: - firefox_address: - type: variable - variable: rougail.proxy.manual.http_proxy.address - propertyerror: false - jinja: | - {% if firefox_address is not undefined %} - {{ firefox_address }} - {% endif %} - port: - description: Port - type: port - default: - type: jinja - params: - firefox_port: - type: variable - variable: rougail.proxy.manual.http_proxy.port - propertyerror: false - jinja: | - {% if firefox_port is not undefined %} - {{ firefox_port }} - {% endif %} - disabled: - type: jinja - jinja: | - {% if foxyproxy.proxy.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %} - proxy does not need port - {% endif %} - username: - description: Username - type: unix_user - mandatory: - type: jinja - jinja: | - {% if foxyproxy.proxy.password %} - username is mandatory - {% endif %} - disabled: - type: jinja - jinja: | - {% if foxyproxy.proxy.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %} - proxy does not need username - {% endif %} - password: - description: Password - type: secret - disabled: - type: jinja - jinja: | - {% if foxyproxy.proxy.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS5', 'SOCKS4'] %} - proxy does not need password - {% endif %} - url: - type: web_address - disabled: - type: jinja - jinja: | - {% if foxyproxy.proxy.type not in ['PAC URL', 'WPAD'] %} - proxy does not need url - {% endif %} - - -A few comments: - -- in the `foxyproxy.proxy` :term:`leader` family there is a variable named `type` (line 4), this may conflict with the `type` attribute (specified line 10). In this case, to specify the type we use the `_type` attribute -- a :term:`follower` variable can also be multiple - (which is the case for `foxyproxy.proxy.address`) -- `foxyproxy.proxy.username` (line 62) becomes :term:`mandatory` if `foxyproxy.proxy.password` - is specified, in fact a password without a username is meaningless - -Let's test it: - ->>> from rougail import Rougail, RougailConfig ->>> from pprint import pprint ->>> RougailConfig['dictionaries_dir'] = ['dict'] ->>> RougailConfig['extra_dictionaries']['foxyproxy'] = ['foxyproxy/'] ->>> rougail = Rougail() ->>> config = rougail.get_config() ->>> config.option('rougail.proxy.proxy_mode').value.set('Manual proxy configuration') ->>> config.option('rougail.proxy.manual.http_proxy.address').value.set('proxy.example') ->>> config.option('foxyproxy.proxy.title').value.set(['MyProxy']) ->>> config.option('foxyproxy.proxy.type', 0).value.set('HTTP') ->>> config.option('foxyproxy.proxy.color', 0).value.set('#00000') ->>> config.property.read_only() ->>> pprint(config.value.get(), sort_dicts=False) - -The output is: - -.. code-block:: python - - {'rougail.proxy.proxy_mode': 'Manual proxy configuration', - 'rougail.proxy.manual.http_proxy.address': 'proxy.example', - 'rougail.proxy.manual.http_proxy.port': '8080', - 'rougail.proxy.manual.use_for_https': True, - 'rougail.proxy.manual.ssl_proxy.address': 'proxy.example', - 'rougail.proxy.manual.ssl_proxy.port': '8080', - 'rougail.proxy.manual.socks_proxy.address': None, - 'rougail.proxy.manual.socks_proxy.port': None, - 'rougail.proxy.manual.socks_proxy.version': 'v5', - 'rougail.proxy.no_proxy': [], - 'rougail.proxy.proxy_dns_socks5': False, - 'rougail.proxy.dns_over_https.enable_dns_over_https': False, - 'foxyproxy.proxy.title': [{'foxyproxy.proxy.title': 'MyProxy', - 'foxyproxy.proxy.color': '#00000', - 'foxyproxy.proxy.type': 'HTTP', - 'foxyproxy.proxy.address': ['proxy.example'], - 'foxyproxy.proxy.port': '8080', - 'foxyproxy.proxy.username': None, - 'foxyproxy.proxy.password': None}]} - -The choice we made here is to make `foxyproxy.proxy.username` :term:`mandatory` if a password is specified in the `foxyproxy.proxy.password` variable. - -It makes sense to have a username without a password (in this case the password will be requested when connecting to the proxy). But the opposite does not make sense. - -From a user point of view this may seem disturbing (if you enter the password, you have to return to the previous option to specify the password). - -It is possible to reverse the logic. If the `foxyproxy.proxy.username` variable is set, the `foxyproxy.proxy.password` variable becomes editable. - -None of this two variables needs to be :term:`mandatory`. - -If you prefer this option, here is a second extra dictionary :file:`foxyproxy/01-redefine.yml` which will redefine the behavior only of the `foxyproxy.proxy.username` and `foxyproxy.proxy.password` variables: - - - - -.. code-block:: yaml - :caption: the :file:`foxyproxy/01-redefine.yml` file - :linenos: - - --- - version: '1.1' - proxy: - username: - redefine: true - # suppress mandatory constrainte - mandatory: false - password: - redefine: true - hidden: - type: jinja - jinja: | - {% if not foxyproxy.proxy.username %} - no username defined - {% endif %} - - -**It's up to you to play now !** diff --git a/docs/tutorial/auto_save.rst b/docs/tutorial/auto_save.rst new file mode 100644 index 000000000..9984030d1 --- /dev/null +++ b/docs/tutorial/auto_save.rst @@ -0,0 +1,62 @@ +Auto save value +=============== + +.. objectives:: Objectives + + A default value is a value that can be recalculated at different times. It can be useful to consider the default value as a modified value. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_210 ` + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_210 + +The :ref:`configuration` is loaded into :term:`Tiramisu`. In this case, the default values are cached upon the first access to the variable. However, sometimes this value will be recalculated. +If the default value is random, this can cause problems. Indeed, the value can change over time. + +The `auto_save` property allows you to say that the calculated value will be considered as modified (therefore not recalculated) on the first access to this variable. + +Remember, we just performed a random calculation for the variable `color`: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_201/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: Calculate the default variable `color`. + +We just need to set the `auto_save` property to true on this variable: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_210/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: Auto_save for the variable `color`. + +Test this variable with this Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_210/config/02/cmd_ro.txt + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_210/config/02/output_ro.html + +As you can see, the value is the color of the modified variables. + +.. note:: + + We do not save this value. It is therefore stored in memory. When the Rougail CLI closes, this value is forgotten. It will be recalculated if you run the command again. + +.. keypoints:: Key points + + We can auto save a variable. diff --git a/docs/tutorial/calculated.rst b/docs/tutorial/calculated.rst new file mode 100644 index 000000000..d5a0e09a0 --- /dev/null +++ b/docs/tutorial/calculated.rst @@ -0,0 +1,275 @@ +Calculated default value for a variable +============================================ + +.. objectives:: Objectives + + In this section we will reuse the value of a variable for the default value of another variable. + + We will first build the `https_proxy` family which will be used to illustrate this functionality. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_040 ` to :tutorial:`v1.1_041 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_040 + +HTTPS family +------------- + +We have split the definition of the `manual` family into two specific files, +the :file:`10-manual.yml` and the :file:`20-manual.yml` structure file: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_040/tree.html + +.. + + +We will continue to complete the :file:`20-manual.yml` structure file, +with variables entirely equivalent to those found in the `http_proxy` family from the :file:`10-manual.yml` structure file. +Until now, we only had the `use_for_https` :ref:`boolean variable in this structure file `. +Now we are going to define an address and a port in the `https_proxy` family: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_040/firefox/20-manual.yml + :linenos: + :language: yaml + :caption: The updated `manual` family in the :file:`firefox/20-manual.yml` structure file with the `https_proxy` family. + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: # HTTPS Proxy + + address: + description: HTTPS address + type: domainname + params: + allow_ip: true + + port: + description: HTTPS Port + type: port + default: 8080 + +.. _tutorial_calc_variable: + +A default value calculated from another variable +-------------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_041 ` version:: + + git switch --detach v1.1_041 + +.. discussion:: A contextualized default value + + A contextualized default value is a default value that changes according to the overall context of the configuration. + A contextualized default value can come from, as we see here, a copy of the value of another variable. + +The dynamic setting of a default value can be expressed this way: the default value is a pointer to another variable's value. +Here, the defaut value of `manual.https_proxy.address` points to the value of `manual.http_proxy.address`. + +This is the same thing for the default value of the `manual.https_proxy.port` variable, +which points to the `manual.http_proxy.port` value. + +.. note:: In the following we will see that the `manual.https_proxy.address` type is `domainname`. + Indeed, this `domainname` type comes from the type of the variable it points to. + +Reminder: here is the HTTP :file:`firefox/10-manual.yml` structure file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_041/firefox/10-manual.yml + :linenos: + :language: yaml + :caption: The :file:`firefox/10-manual.yml` structure file with the `http_proxy` family and the `disabled` property + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: # Manual proxy configuration + + http_proxy: # HTTP Proxy + + address: + description: HTTP address + type: domainname + params: + allow_ip: true + + port: + description: HTTP Port + type: port + default: 8080 + ... + + +And here is the :file:`firefox/20-manual.yml` structure file where the calculated default values are: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_041/firefox/20-manual.yml + :linenos: + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with the `hidden` property on the `https_proxy` family. + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: # HTTPS Proxy + + address: + description: HTTPS address + default: + variable: __.http_proxy.address + + port: + description: HTTPS Port + default: + variable: __.http_proxy.port + ... + +We can see here that the `address` variable's default value is conditionned by the `__.http_proxy.address` variable's value. +The target variable is `manual.http_proxy.address`. + +.. seealso:: The `__.` is a :term:`relative path` notation and means the parent path of the current subfamily path. + + In the python quasi algorithmic notation we could say that: + + .. code-block:: python + + __.http_proxy.address == http_proxy.address + + This is true only because in our use case `http_proxy.address` is located + in the same `manual` subfamiliy than `https_proxy.address`. + + Have a look at the :ref:`variablepath` page for more details. + + +We then say that the `manual.https_proxy.address` and the `manual.https_proxy.port` default values are *calculated*. + +.. glossary:: + + calculated + + We say that a variable's value or a default variable's value is calculated + when there is a pointer which refers to another variable's value. + + :ref:`Other types of calculations exists `, in which this type of behavior does not occur + (the "pointer" behavior, notably type copying). + +The other types of calculation we will be explained later in this tutorial. + +We're going to load some :term:`user data ` to see what happens: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_041/config/01/config.yml + :linenos: + :language: yaml + :caption: The :file:`config/01/config.yml` user data + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: false + https_proxy: + address: https.proxy.net + +Let's launch the Rougail CLI on it: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_041/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +We have this result: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_041/config/01/output_ro.html + :class: output + +.. +
╭────────────── Caption ───────────────╮
+    │ Variable Default value               │
+    │          Modified value              │
+    │          (⏳ Original default value) │
+    ╰──────────────────────────────────────╯
+    Variables:
+    ┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy 
+    configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No 
+    proxy)
+    ┗━━ 📂 manual (Manual proxy configuration)
+        ┣━━ 📂 http_proxy (HTTP Proxy)
+        ┣━━ 📓 address (HTTP address): http.proxy.net ◀ loaded from the YAML 
+        file "config/01/config.yml"
+        ┗━━ 📓 port (HTTP Port): 3128 ◀ loaded from the YAML file 
+            "config/01/config.yml" (⏳ 8080)
+        ┣━━ 📓 use_for_https (Also use this proxy for HTTPS): false ◀ loaded from 
+        the YAML file "config/01/config.yml" (⏳ true)
+        ┗━━ 📂 https_proxy (HTTPS Proxy)
+            ┣━━ 📓 address (HTTPS address): https.proxy.net ◀ loaded from the YAML 
+            file "config/01/config.yml" (⏳ http.proxy.net)
+            ┗━━ 📓 port (HTTPS Port): 3128
+    
+ +Notice that the default value is not changed when some values are settled from the :term:`user data file `. + +The `https_proxy` variable's value is indeed modified, but the default value is still a calculated value (so the default value is indeed the value of the variable `http_proxy.address`, i.e., `"http.proxy.net"`), while the value defined by the user is `https.proxy.net`. + +With the standard output of the Rougail CLI, the terminal display output, we can see the default value of the variable. + +By interpreting the results of this standard output, we can see that even if a value has been assigned to this variable +(meaning the default value is not used) the variable's default value is not changed, but rather its actual value. + +.. keypoints:: Key points progress + + **summary** + + We have learned how to set the default value of the `https_proxy.address` variable + with the value of the `http_proxy.address` variable. We did the same + `https_proxy.port` and the `https_proxy.port` variables. + + **notation** + + We have learned a notation very usefull for the subfamilies traversal: + + - the `_.` notation means the current path of the family you're currently in + - the `__.` notation means the parent path of the current subfamily path. + + Have a look at the :ref:`variablepath` page for more details. + diff --git a/docs/tutorial/choice.rst b/docs/tutorial/choice.rst new file mode 100644 index 000000000..fd0c6e591 --- /dev/null +++ b/docs/tutorial/choice.rst @@ -0,0 +1,224 @@ +.. _tutorial_choice: + +A variable with possible values +================================== + +.. objectives:: Objectives + + We will learn how to define variables with predefined available values. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_010 ` in the repository: + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_010 + +A variable with a list of possible values +--------------------------------------------- + +In the firefox browser, the proxy mode can be set by this way: + +.. image:: images/firefox_02.png + +A list of possible values for the `proxy_mode` variable is proposed. +With Rougail there is the possibility of defining a list of available values +with the `choices` variable's parameter: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/firefox/00-proxy.yml + :linenos: + :language: yaml + :caption: The `proxy_mode` variable with the `choice` parameter + :name: RougailDictionaryChoiceType + +.. + --- + proxy_mode: + description: Configure Proxy Access to the Internet + choices: + - No proxy + - Auto-detect proxy settings for this network + - Use system proxy settings + - Manual proxy configuration + - Automatic proxy configuration URL + default: No proxy + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Let's run the Rougail CLI with these available values: + +.. code-block:: text + :class: terminal + + rougail -m firefox/ + +We have an output like this one: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_010/config/01/output_ro.html + :class: output + +.. +
╭────────────────────────── Caption ──────────────────────────╮
+    │ Variable                           Default value            │
+    │ Undocumented variable              Modified value           │
+    │ Undocumented but modified variable (Original default value) │
+    │ Unmodifiable variable                                       │
+    ╰─────────────────────────────────────────────────────────────╯
+    Variables:
+    ┗━━ 📓 proxy_mode: No proxy
+    
+ +`No proxy` is an available variable's value. We say that the `proxy_mode` variable is *constrained* +by the possibilities of the `choice` parameter. + +.. type-along:: Let's add some user data to this structure + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/03/config.yml + :linenos: + :language: yaml + :caption: A user data specification + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +If we run the Rougail CLI with this user data: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/03/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/03/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/03/output_ro.html + :class: output + +.. +
╭────────────── Caption ───────────────╮
+    │ Variable Modified value              │
+    │          (⏳ Original default value) │
+    ╰──────────────────────────────────────╯
+    Variables:
+    ┗━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/03/config.yml" (⏳ No proxy)
+    
+ +As we set the `proxy_mode` variable from a user data file, +we now have specified a value which is **not** a default value, and +the output of the Rougail CLI explicitly shows that a user data value has been entered, +it shows which user data file this value comes from, and it also indicates +what the default value is for information purposes. + +.. type-along:: The constraints that come with the choices + +The `proxy_mode` variable's possible values is *constrained*. + +We have the list of the possible (authorized) values: + +- `No proxy` +- `Auto-detect proxy settings for this network` +- `Use system proxy settings` +- `Manual proxy configuration` +- `Automatic proxy configuration URL` + +.. questions:: Question + + What happens if I set a value that is not available in the choices? + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/04/config.yml + :linenos: + :language: yaml + :caption: A (false) user data specification + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +If we run the Rougail CLI with this user data: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/04/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/03/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/04/output_ro.html + :class: output + +We can see here that Rougail warns us about an invalid value that is not in the available choices, +that's why this value will not be used and it falls back to the original default value. + +But maybe this is not the behavior you need. Maybe you need to stop everything if Rougail detects that +something is going wrong, maybe you need some kind of a strict mode. + +Indeed, this warning can be transformed into an error. + +If we run the Rougail CLI with this `--cli.invalid_user_data_error` parameter: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/04/cmd_invalid.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_data_error + +Then we have an `error` output instead of a `warning` output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/config/04/output_invalid.html + :class: output + +.. +
🛑 ERRORS
+    ┗━━ the value "foo" is an invalid choice for "proxy_mode" (Configure Proxy Access to the Internet), only "Auto-detect proxy settings for this network", "Automatic proxy configuration URL", "Manual proxy 
+        configuration", "No proxy" and "Use system proxy settings" are allowed, it will be ignored when loading from the YAML file "config/04/config.yml"
+    
+ + + +.. keypoints:: Key points progress + + Indeed, in the Firefox configuration, it is possible to define several configuration modes, + from no proxy at all to different kind of automatic or manual configuration modes. + The choices, the list of available values for a variable, can help us to handle this situation. + + **Progress** + + To sum up, we have arrived at this point in writing a structure file like this: + + **Structure description file** + + .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/firefox/00-proxy.yml + :linenos: + :language: yaml + :caption: A Rougail structure file with a variable named `proxy_mode`, with a default value. + +.. + + .. raw:: text + + --- + proxy_mode: + description: Configure Proxy Access to the Internet + choices: + - No proxy + - Auto-detect proxy settings for this network + - Use system proxy settings + - Manual proxy configuration + - Automatic proxy configuration URL + default: No proxy + diff --git a/docs/tutorial/customtype.rst b/docs/tutorial/customtype.rst new file mode 100644 index 000000000..e734aef44 --- /dev/null +++ b/docs/tutorial/customtype.rst @@ -0,0 +1,558 @@ +.. _tutorial_custom_type: + +Custom type +============ + +.. objectives:: Objectives + + In this sections we are going to learn how to create custom types with Rougail. + In short, a custom type is nothing more than a kind of a template for a variable or a family. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_080 ` to :tutorial:`v1.1_085 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_080 + +HTTP Proxy with "proxy" type +-------------------------------- + +Let's look now at the possibilities for adding types. +This feature is essential for having a truly adaptable tool. + +.. note:: It is actually possible to add types, + but that involves adding predefined types to the :term:`Tiramisu` underlying consistency library itself, + and that’s a different matter altogether. There is a simpler way to achieve this with the Rougail type definition feature. + +It is possible in Rougail to create custom types in a very simple way, it is much like defining variables or families. + +Our folder structure will be expanded a bit: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_080/tree.html + +Notice that we have now a new :file:`types` folder in our tree structure. +This is where we will place our new `proxy` type definition. + +.. note:: Choosing the :file:`types/proxy/00-type.yml` file name is not mandatory. + You can name this folder whatever you want. + It is simply a good practice to separate structure files from type definition files. + We will see later on how to indicate to Rougail that a file contains a type declaration. + +In accordance with our :ref:`naming policy `, we have created a file named :file:`00-type.yml` +inside the `proxy` folder. +Let's examine this more closely this :file:`types/proxy/00-type.yml` type definition file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_080/types/proxy/00-type.yml + :language: yaml + :caption: The :file:`types/proxy/00-type.yml` type structure file that defines our new `proxy` type. + +.. + %YAML 1.2 + --- + version: 1.1 + + proxy: + + address: + description: Proxy address + type: domainname + params: + allow_ip: true + + port: + description: Proxy port + type: port + default: 8080 + ... + +The new type named `proxy` is declared the same way we declare a family. +It's more or less like a family declaration except it will be used as a type definition. +If you remember, it's mostly the content as the family `manual.http_proxy` in `firefox/10-manual.yml` file of this tutorial. + +.. questions:: How do we use a new type? + + Very simply. In the usual way: we will add a `type` parameter in our family declaration. + +Let's modify the existing family using this new `proxy` type: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_080/firefox/10-manual.yml + :language: yaml + :caption: The :file:`firefox/10-manual.yml` structure file with less code due to the `proxy` type definition + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + description: Manual proxy configuration + disabled: + variable: _.proxy_mode + when_not: Manual proxy configuration + + http_proxy: + description: HTTP Proxy + type: proxy + ... + +We can see that the type declared for the `http_proxy` family is now `type: proxy`. +It's perfectly natural in the Rougail style. + +Due to the type definition we can "omit" some settings in the structure file +such as the `domainname` type and the `allow_ip` parameter. +And the `address` variable it is not necessary to be specified at all in the structure file +because it's in the type definition. + +In order to use our new type we need to declare it to Rougail otherwise the new type is not available. +The Rougail CLI has the `--types` type declaration command line option for this purpose. +Let's launch the Rougail CLI with this command line parameter: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_080/config/01/cmd_ro.txt + :class: terminal + +The CLI output is entirely standard and does not specifically mention the call to a new type. +The result is the same as usual, as if the type declaration were omitted, which is what we want. +We want the same behavior as usual. + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_080/config/01/output_ro.html + :class: output + +HTTPS and SOCKS Proxy with "proxy" type +--------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_081 ` version: + + git switch --detach v1.1_081 + +With this use of a type, it is possible to define our HTTPS and SOCKS Proxy in a much more conscious way: +It's very practical. In fact, the type definition adds nothing else to the structural logic. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_081/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with less code due to the `proxy` type definition + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: + description: HTTPS Proxy + type: proxy + hidden: + variable: _.use_for_https + + socks_proxy: + description: SOCKS Proxy + type: proxy + ... + +Now we have two families with the `proxy` type: `https_proxy` and `socks_proxy`. + +But we haven't recovered everything we had before. +Using a type definition is fine, but we still need to find exactly the configuration situation +we had before using the type definition. + +Add a variable in a family with custom type +-------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_082 ` version:: + + git switch --detach v1.1_082 + + +In the `socks_proxy` family definition, we need to added a new variable, the `version` variable: + +.. code-block:: yaml + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + +You can see that what we call a type definition in Rougail is very flexible, because it is perfectly possible +to add to what has been defined in the type. +The type definition here is therefore not only a template but much more an extensible schema. + +Redefine default value in custom type variable +----------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_083 ` version:: + + git switch --detach v1.1_083 + +In this section we are going to make an implicit :ref:`redefinition ` of variables default values. + +.. note:: + + We've always said that the redefine is explicit. But there's an exception here. + There are two types of redefine for a custom type, an implicit and an explicit. + An implicit redefinition is a redefinition which has not been declared with the `redefine` attribute. + An explicit redefinition is a redefinition which has been declared with the `redefine: true` attribute. + + Only default values can be implicitly redefined (and only in the type definitions), all other attributes + need to be explicitely redefined. + +In the type definition file, we are now setting default values for the `address` and `port` variables: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_083/types/proxy/00-type.yml + :language: yaml + :caption: The :file:`types/proxy/00-type.yml` type definition file with the default values for `address` and `port` + +.. + %YAML 1.2 + --- + version: 1.1 + + proxy: + + address: + description: Proxy address + type: domainname + params: + allow_ip: true + default: + variable: __.http_proxy.address + + port: + description: Proxy port + type: port + default: + variable: __.http_proxy.port + ... + +But we don't want theses default values for HTTP definition. We can :term:`redefine` these type settings in the structure file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_083/firefox/10-manual.yml + :language: yaml + :caption: The :file:`firefox/10-manual.yml` structure definition file with the **redefined** default values for `address` and `port` + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + description: Manual proxy configuration + disabled: + variable: _.proxy_mode + when_not: Manual proxy configuration + + http_proxy: + description: HTTP Proxy + type: proxy + + address: + default: null + + port: + default: 8080 + ... + +This means that the default values for these variables will now be those defined +in the structure file if the values are defined (and not in the type definitions file). + +Let's have a closer look at the behavior here. + +Let's launch the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_082/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_082/config/01/output_ro.html + :class: output + +We can see in the output that + +- the default values of the `port` variable, which is `8080` in the structure file, comes from the strucure file. +- the default values of the `address` variable is not set because it is `null` by default in the structure file, + so there is not such thing as a default value set for this variable. + +.. questions:: What happens if the default value in the type definition is not suitable for us? + +If we hadn't defined a value in the userdata file, the Rougail CLI would have returned the following error: + +:: + + 🛑 Caution + ┗━━ Manual proxy configuration + ┣━━ HTTP Proxy + ┃ ┗━━ Proxy address: 🛑 mandatory variable but has no value + ┗━━ SOCKS Proxy + ┗━━ Proxy address: 🛑 mandatory variable but has no value + +Therefore, the default value that was taken into account is indeed that of the structure file, and not that of the type definition. + +.. note:: We can see that the Rougail behavior is always very simple, there is no such thing as an MRO + (Method Resolution Object) that try fallback to the default value defined in the type definition file. + The Rougail behavior is much more simple and transparent. + +.. type-along:: kinematics of setting the `address` value + +Let's take the time to explain how the value of the variable `manual.http_proxy.address` is determined using the type definition. + +The :file:`10-manual.yml` structure file defines the :file:`manual.http_proxy` family +which is defined with the help of the `proxy` type: + +.. code-block:: yaml + + http_proxy: + description: HTTP Proxy + type: proxy + +In the :file:`types/proxy/00-type.yml` file we have the `proxy` type definition and its default value setting: + +.. code-block:: yaml + + default: + variable: __.http_proxy.address + +This default value setting point to the `http_proxy.address` value in the :file:`firefox/10-manual.yml` structure file: + +.. code-block:: yaml + + address: + default: null + +Which is `null` by default but in the :file:`config/01/config.yml` user data file we have the `http.proxy.net` value set: + +.. code-block:: yaml + + manual: + http_proxy: + address: http.proxy.net + +In the CLI standard output we can see that the `http_proxy.address` variable value is +finally set by the user data file: + +:: + + ┗━━ 📂 manual (Manual proxy configuration) + ┣━━ 📂 http_proxy (HTTP Proxy) + ┃ ┣━━ 📓 address (Proxy address): http.proxy.net ◀ loaded from the YAML + ┃ ┃ file "config/01/config.yml" + + +Redefine other parameter in custom type for HTTP +-------------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_084 ` version:: + + git switch --detach v1.1_084 + +In this sections we are going to make explicit :term:`redefinitions `. + +Note here that, in order to allow for the genericity of a type declaration, +we have omitted to specify the variable descriptions in the type declaration. +We will therefore need to enter these descriptions in the structure file. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_084/types/proxy/00-type.yml + :language: yaml + :caption: The :file:`types/proxy/00-type.yml` type definition file with the default definitions and no description + +.. + %YAML 1.2 + --- + version: 1.1 + + proxy: + + address: + type: domainname + params: + allow_ip: true + default: + variable: __.http_proxy.address + + port: + type: port + default: + variable: __.http_proxy.port + ... + +So, as the `address` and `port` variables don't have any `description` attribute, +we need to add one. It is something like an extension of the type definitions here +in the structure file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_084/firefox/10-manual.yml + :language: yaml + :caption: The :file:`firefox/10-manual.yml` structure definition file with explicit redefinitions + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + description: Manual proxy configuration + disabled: + variable: _.proxy_mode + when_not: Manual proxy configuration + + http_proxy: + description: HTTP Proxy + type: proxy + + address: + redefine: true + default: null + description: HTTP proxy address + + port: + redefine: true + default: 8080 + description: HTTP proxy port + ... + +.. note:: Transforming an implicit defintion into an explicit redefinition is very simple; you just need to add the `redefine: true` attribute: + +Let's launch the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_083/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_083/config/01/output_ro.html + :class: output + +.. + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ + ┃ loaded from the YAML file "config/01/config.yml" (⏳ No proxy) + ┗━━ 📂 Manual proxy configuration + ┣━━ 📂 HTTP Proxy + ┃ ┣━━ 📓 HTTP proxy address: http.proxy.net ◀ loaded from the YAML file + ┃ ┃ "config/01/config.yml" + ┃ ┗━━ 📓 HTTP proxy port: 3128 ◀ loaded from the YAML file + ┃ "config/01/config.yml" (⏳ 8080) + ┣━━ 📓 Also use this proxy for HTTPS: false ◀ loaded from the YAML file + ┃ "config/01/config.yml" (⏳ true) + ┣━━ 📂 HTTPS Proxy + ┃ ┣━━ 📓 HTTPS proxy address: https.proxy.net ◀ loaded from the YAML file + ┃ ┃ "config/01/config.yml" (⏳ http.proxy.net) + ┃ ┗━━ 📓 HTTPS proxy port: 3128 + ┗━━ 📂 SOCKS Proxy + ┣━━ 📓 SOCKS proxy address: http.proxy.net + ┣━━ 📓 SOCKS proxy port: 3128 + ┗━━ 📓 SOCKS host version used by proxy: v5 + +We can see in the output that the `address` and `port` variables have default values, +and descriptions ("HTTP proxy address", "HTTP proxy port") that weren't present in the +type definition file. + +Redefine other parameter in custom type for HTTPS and SOCKS +----------------------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_085 ` version:: + + git switch --detach v1.1_085 + +We're going to do exactly the same modification with the `socks_proxy` family, +that is we will base the `socks_proxy` family on the type definition. + +Following the same reasoning, we add a in the structure file some `description` attributes to the `socks_proxy` family +and also add some explicit redefinition attribute (`redefine: true`). + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_085/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with the `redefine` and the `description` attribute + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: + description: HTTPS Proxy + type: proxy + hidden: + variable: _.use_for_https + + address: + redefine: true + description: HTTPS proxy address + + port: + redefine: true + description: HTTPS proxy port + + socks_proxy: + description: SOCKS Proxy + type: proxy + + address: + redefine: true + description: SOCKS proxy address + + port: + redefine: true + description: SOCKS proxy port + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + ... + + +.. keypoints:: Key points + + - the very practical aspects of type declaration + - type usage in the Rougail CLI + - more conscious family definition + - using a type for an extended family definition + - we can redefine things in the structure file and it overloads the type definition file + - implicit or explicit redefinitions + + We have seen how the definition of type, used effectively, allows for a new expressiveness. + diff --git a/docs/tutorial/document.rst b/docs/tutorial/document.rst new file mode 100644 index 000000000..663b6ac0e --- /dev/null +++ b/docs/tutorial/document.rst @@ -0,0 +1,261 @@ +.. _documented_variable: + +A full documented variable +============================== + +.. objectives:: Objectives + + You’ve no doubt wondered, on more than one occasion, how to do this or that; + even if you have the documentation, it’s not clear enough. + + What would make it clear is a good example. + + With Rougail, you can add examples into the structural specifications of a variable or a family, illustrative examples. + That is what we will look at in this section. Documentation through examples. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_120 ` to :tutorial:`v1.1_121 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_120 + + +Examples +----------- + +How to define example usage? All you need to do is add an `examples` parameter to the structural definition of your variable. +Let's give some usage examples of how to use our `no_proxy` variable: + + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_120/firefox/40-no_proxy.yml + :language: yaml + :caption: The :file:`firefox/40-no_proxy` structure definition file with an `example` parameter + +.. + %YAML 1.2 + --- + version: 1.1 + + no_proxy: + description: Address for which proxy will be desactivated + examples: + - .mozilla.org + - .net.nz + - 192.168.1.0/24 + type: domainname + params: + allow_ip: true + allow_cidr_network: true + allow_without_dot: true + allow_startswith_dot: true + multi: true + mandatory: false + disabled: + variable: _.proxy_mode + when: No proxy + ... + +.. attention:: Note: the `examples` parameter does not specify default values. **It's just examples, it's not a setting**. + +If we launch the Rougail CLI on user data: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_120/config/03/config.yml + :language: yaml + :caption: The :file:`config/03/config.yml` user data file with an `example` parameter but no value set + +.. + --- + proxy_mode: Automatic proxy configuration URL + auto: https://auto.proxy.net/wpad.dat + +we can see that the `no_proxy` variable has no user data settings. + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_120/config/03/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ --types types/proxy -u yaml -yf config/01/config.yml + +We do indeed obtain the value empty list `[]` for the `no_proxy` variable: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_120/config/03/output_ro.html + :class: output + +.. + ╭────────────── Caption ───────────────╮ + │ Variable Default value │ + │ Modified value │ + │ (⏳ Original default value) │ + ╰──────────────────────────────────────╯ + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Automatic proxy configuration URL ◀ loaded from the YAML file "config/03/config.yml" + ┃ (⏳ No proxy) + ┣━━ 📓 Automatic proxy configuration URL: https://auto.proxy.net/wpad.dat ◀ loaded from the YAML file "config/03/config.yml" + ┗━━ 📓 Address for which proxy will be desactivated: [] + +.. type-along:: If we set some user data values + +Just to be thorough, let's look at what happens in a case where there is a value for `no_proxy` entered in the user data file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_120/config/02/config.yml + :language: yaml + :caption: The :file:`config/03/config.yml` user data file with some value set + +We launch the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_120/config/02/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ --types types/proxy -u yaml -yf config/02/config.yml + +And we have the `no_proxy`'s expected value. No trace in the output of the examples settings of the variable: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_120/config/02/output_ro.html + :class: output + +.. + ╭────────────── Caption ───────────────╮ + │ Variable Modified value │ + │ (⏳ Original default value) │ + ╰──────────────────────────────────────╯ + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Automatic proxy configuration URL + ┃ ◀ loaded from the YAML file "config/02/config.yml" (⏳ No proxy) + ┣━━ 📓 Automatic proxy configuration URL: https://auto.proxy.net/wpad.dat ◀ + ┃ loaded from the YAML file "config/02/config.yml" + ┗━━ 📓 Address for which proxy will be desactivated: + ┣━━ example.net ◀ loaded from the YAML file "config/02/config.yml" + ┗━━ 192.168.1.0/24 ◀ loaded from the YAML file "config/02/config.yml" + +In all cases, we can see that none of the values ​​cited in the examples (`.mozilla.org`, `.net.nz`) appear. + + +.. type-along:: In that case, is there a use for these examples? + +This examples parameter is useful when generating variable documentation. That's where the examples appear. + +If we launch the Rougail CLI for the documentation generation: + +.. code-block:: bash + + rougail -m firefox --types types/proxy -o doc --doc.output_format html + +We have this output: + +.. raw:: html + :class: output + + + + + + + + + +
Variable Description
auto
web address mandatory disabled
Automatic proxy configuration URL.
Validators:
  • well-known ports (1 to 1023) are allowed
  • +
  • registred ports (1024 to 49151) are allowed
  • +
  • type domainname
  • +
  • the domain name can be a hostname

Disabled: when the variable "proxy_mode" hasn't the value "Automatic proxy configuration URL"
no_proxy
domainname multiple disabled unique
Address for which proxy will be desactivated.
Validators:
  • type domainname
  • +
  • the domain name can starts by a dot
  • +
  • the domain name can be a hostname
  • +
  • the domain name can be an IP
  • +
  • the domain name can be network in CIDR format

Examples:
  • .mozilla.org
  • +
  • .net.nz
  • +
  • 192.168.1.0/24

Disabled: when the variable "proxy_mode" has the value "No proxy"
+ +.. + ├─────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────┤ + │ no_proxy │ Address for which proxy will be desactivated. │ + │ domainname multiple disabled unique │ Validators: │ + │ │ • type domainname │ + │ │ • the domain name can starts by a dot │ + │ │ • the domain name can be a hostname │ + │ │ • the domain name can be an IP │ + │ │ • the domain name can be network in CIDR format │ + │ │ Examples: │ + │ │ • .mozilla.org │ + │ │ • .net.nz │ + │ │ • 192.168.1.0/24 │ + │ │ Disabled: when the variable "proxy_mode" has the value "No proxy" │ + └─────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────┘ + +we can see that this time the examples (`.mozilla.org`, `.net.nz`) appear. + +Help +------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_121 ` version:: + + git switch --detach v1.1_121 + +Could we define personalized assistance, in the same way that we defined examples? + +Yes, very simply: we add a `help` parameter to our `no_proxy` variable: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_121/firefox/40-no_proxy.yml + :language: yaml + :caption: The :file:`firefox/40-no_proxy` structure definition file with an `example` parameter + + +In the same way, this help `"Connections to localhost, 127.0.0.1/8 and ::1 are never proxied"` will appear in the documentation: + +.. raw:: html + :class: output + + + + + + + + + +
Variable Description
auto
web address mandatory disabled
Automatic proxy configuration URL.
Validators:
  • well-known ports (1 to 1023) are allowed
  • +
  • registred ports (1024 to 49151) are allowed
  • +
  • type domainname
  • +
  • the domain name can be a hostname

Disabled: when the variable "proxy_mode" hasn't the value "Automatic proxy configuration URL"
no_proxy
domainname multiple disabled unique
Address for which proxy will be desactivated.
Connections to localhost, 127.0.0.1/8 and ::1 are never proxied.
Validators:
  • type domainname
  • +
  • the domain name can starts by a dot
  • +
  • the domain name can be a hostname
  • +
  • the domain name can be an IP
  • +
  • the domain name can be network in CIDR format

Examples:
  • .mozilla.org
  • +
  • .net.nz
  • +
  • 192.168.1.0/24

Disabled: when the variable "proxy_mode" has the value "No proxy"
+ +.. type-along:: The difference between the `description` parameter and the `help` parameter + +The help section serves as supplementary documentation regarding the description parameter. +Please do not mix the :term:`description` parameter and the :term:`help` parameter's variable usage. + +A :term:`description` allows you to describe the expected value(s) of a variable concisely and clearly. +It is designed to be clear precise and short, much like the help of some +command-line utility when you type the command with the `--help` or `-h` option. + +A :term:`help` helps to clarify any ambiguity about the variable’s purpose. It can be long and detailed. + +We can set :term:`help` attribute to a variable or to a family. + +.. keypoints:: Key points + + - We have seen how to give examples, simply with the `examples` parameter + - We have seen how to specify a help, simply with the `help` parameter + diff --git a/docs/tutorial/dynamic.rst b/docs/tutorial/dynamic.rst new file mode 100644 index 000000000..3809c2a19 --- /dev/null +++ b/docs/tutorial/dynamic.rst @@ -0,0 +1,398 @@ +.. _tutorial_dynamic: + +A dynamically built family +========================== + +.. objectives:: Objectives + + In this section we will learn how to create a dynamically built family. + + In a dynamically built family, instead of duplicating the definition of + identical variables in several families, they can be generated automatically. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_060 ` to :tutorial:`v1.1_061 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_060 + +We handled the HTTPS mode in the previous section. But there's more modes to handle. +Let's turn back to the firefox's configuration page: + +.. image:: images/soksv5.png + +We see that we need to handle the SOCKS configuration in addition to the HTTPS configuration. +Moreover, we can see that these two groups of variables (also known as family) are similar in the structure: +they both have a host and a port. + +There are two proxies that are to be configured : + +- the HTTPS proxy +- the SOCKS proxy + +As they have the same structure, would it be possible to define the two of them +in one shot? + +.. note:: It's not the place here to describe what the HTTP and SOCKS protocols are. + The interesting point here is that they are very similar in our firefox's + configuration and that we can do batch processing. + +.. index:: dynamically built family + +Family: A dynamically built family +------------------------------------- + +With Rougail, it is possible to create some kind of a model of family. +Kind of a generic family declaration. +We call this generic family creation process a dynamic creation because as we will see below, +these families exist at the very moment we define their **identifiers**. + +First, here is what we need to make (without identifiers): + +.. code-block:: yaml + + https_proxy: + description: HTTPS Proxy + ... + + address: + description: HTTPS address + ... + + port: + description: HTTPS Port + ... + + sock_proxy: + description: SOCKS Proxy + ... + + address: + description: SOCKS address + ... + + port: + description: SOCKS Port + ... + +Now with identifiers, we have the ability to declare our families this way: + +.. code-block:: yaml + + "{{ identifier }}_proxy": + description: "{{ identifier }} Proxy" + dynamic: + - HTTPS + - SOCKS + ... + + address: + description: "{{ identifier }} address" + ... + + port: + description: "{{ identifier }} port" + ... + +.. type-along:: What is exactly an identifier? + +If you used the YAML declaration tool named `Ansible `_, +the variable used to iterate over multiple values in a task is called an **`item`**. +We call it an identifier. + +It is a symbol used in the context of a loop. For example: + +.. code-block:: yaml + :caption: A code example of an ansible loop + + - name: Loop example with 'item' + ansible.builtin.debug: + msg: "The current value is {{ item }}" + loop: + - value1 + - value2 + - value3 + +This code will output: + +.. code-block:: text + + The current value is value1 + The current value is value2 + The current value is value3 + +In the Rougail context, we name this item an identifier because it is an item +that allow us to define dynamically family names. + +.. glossary:: + + identifier + + In the :ref:`dynamically built family creation field ` we call an identifier + an item that defines a family name. An item is a variable on which an iteration + on keywords will be carried out. + + An :term:`identifier` is a local variable, used only for creating multiple + iterations, used for creating multiple families in only one declaration. + + It allows us to declare very similar families in a more generic way. + +Here is the syntax we are using that allows the declaration of multiple families at one time: + +.. code-block:: yaml + + "{{ identifier }}_proxy": + description: "{{ identifier }} Proxy" + dynamic: + - HTTPS + - SOCKS + +This identifier is a parameter that enables us to create two families named `https_proxy` and `socks_proxy`: + +.. code-block:: yaml + + https_proxy: + description: "HTTPS Proxy" + + socks_proxy: + description: "SOCKS Proxy" + +.. attention:: Be careful when choosing your identifiers items: pay attention that the family + names that will be dynamically created have not been declared before in some other + YAML structure file. + + Here the family name is: `"{{ identifier }}_proxy"`. + + If you define a dynamically built family with the `https` identifer that will + build a `https_proxy` family and if this familiy already exists, + then rougail will raise a family/variable override warning. + + When choosing a dynamically built family name, rougail will replace spaces, accents, uppercases... + by valid character and put all in lowercase. Have a look at the :ref:`naming convention `. + + As you can see here, the identifier is `HTTPS`, but the name clearly contains `https` (in lowercase). + +Here is our dynamically built familiy in situation in the :file:`firefox/20-manual.yml` structure file. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_060/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with the dynamically built families + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + '{{ identifier }}_proxy': + description: '{{ identifier }} Proxy' + hidden: + variable: _.use_for_https + dynamic: + - HTTPS + - SOCKS + + address: + description: '{{ identifier }} address' + default: + variable: __.http_proxy.address + + port: + description: '{{ identifier }} port' + default: + variable: __.http_proxy.port + ... + +Here is the user data file on which we will launch the Rougail CLI: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_060/config/01/config.yml + :language: yaml + :caption: The :file:`config/01/config.yml` user data file + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: false + https_proxy: + address: https.proxy.net + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_060/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_060/config/01/output_ro.html + :class: output + +.. + rougail -m firefox/proxy.yml -u yaml --yaml.filename config/proxy.yml + ╭─────────────────── Caption ────────────────────╮ + │ Variable Default value │ + │ Unmodifiable variable Modified value │ + │ (Original default value) │ + ╰────────────────────────────────────────────────╯ + Variables: + ┗━━ 📂 Manual proxy configuration + ┣━━ 📂 HTTP Proxy + ┃ ┣━━ 📓 HTTP address: ... (loaded from the YAML file "userdata/proxy.yml") + ┃ ┗━━ 📓 HTTP Port: ... (8080 - loaded from the YAML file "userdata/proxy.yml") + ┣━━ 📓 Also use this proxy for HTTPS: true + ┣━━ 📂 HTTPS Proxy + ┃ ┣━━ 📓 HTTPS address: ... + ┃ ┗━━ 📓 HTTPS port: ... + ┗━━ 📂 SOCKS Proxy + ┣━━ 📓 SOCKS address: ... + ┗━━ 📓 SOCKS port: ... + +We can see that the dynamically built families that have been created: + +- an `HTTPS Proxy` family +- a `SOCKS Proxy` family + +and, as we expected, containing an address and a port. + +A conditional disabled variable with dynamic identifier +-------------------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_061 ` version:: + + git switch --detach v1.1_061 + +Here is the final version of the HTTPS and SOCKS structure file, we have added +a new variable named `version`, with the `choice` type, with a default value, +and which has the `disabled` property if the :term:`configuration` is in the `SOCKS` situation. +We will look at this in more detail below. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/firefox/20-manual.yml + :language: yaml + :caption: The final :file:`firefox/20-proxy.yml` structure file + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + '{{ identifier }}_proxy': + description: '{{ identifier }} Proxy' + hidden: + variable: _.use_for_https + dynamic: + - HTTPS + - SOCKS + + address: + description: '{{ identifier }} address' + default: + variable: __.http_proxy.address + + port: + description: '{{ identifier }} port' + default: + variable: __.http_proxy.port + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + disabled: + type: identifier + when: HTTPS + ... + +The disabled `property` is assigned here to the `version` variable +in the case where the identifier is `HTTPS`. + +This means that when the current dynamically built family is determined by the identifier `HTTPS`, the variable `version` is disabled +(therefore considered as non-existent) and when the identifier is `SOCKS` the variable is present (it is accessible). + +.. + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + disabled: + type: identifier + when: HTTPS + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/config/01/config.yml + :language: yaml + :caption: The :file:`config/01/config.yml` user data file + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: false + https_proxy: + address: https.proxy.net + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +The Rougail CLI outputs this: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_061/config/01/output_ro.html + :class: output + +.. + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No proxy) + ┗━━ 📂 Manual proxy configuration + ┣━━ 📂 HTTP Proxy + ┃ ┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file "config/01/config.yml" + ┃ ┗━━ 📓 HTTP Port: 3128 ◀ loaded from the YAML file "config/01/config.yml" (⏳ 8080) + ┣━━ 📓 Also use this proxy for HTTPS: false ◀ loaded from the YAML file "config/01/config.yml" (⏳ true) + ┣━━ 📂 HTTPS Proxy + ┃ ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ http.proxy.net) + ┃ ┗━━ 📓 HTTPS port: 3128 + ┗━━ 📂 SOCKS Proxy + ┣━━ 📓 SOCKS address: http.proxy.net + ┣━━ 📓 SOCKS port: 3128 + ┗━━ 📓 SOCKS host version used by proxy: v5 + +.. keypoints:: Key points + + - We now know how to declare a dynamically built family, with setting its identifier. + - we have a new use case for the `disabled` property. + We know how to disable a dynamically built variable based on a familiy identifier. + diff --git a/docs/tutorial/family.rst b/docs/tutorial/family.rst new file mode 100644 index 000000000..b66bd59da --- /dev/null +++ b/docs/tutorial/family.rst @@ -0,0 +1,276 @@ +Group variables inside families +================================= + +.. objectives:: Objectives + + We will learn how to: + + - create a :term:`family` + - gather :term:`variable`\ s into a :term:`family` + - make a variable within a variable, which turns this variable container into being a family + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_020 ` to :tutorial:`v1.1_022 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_020 + +.. type-along:: Let's recap how far we've come + +We have this choice variable in its structure definition file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/firefox/00-proxy.yml + :linenos: + :language: yaml + :caption: The `proxy_mode` choice variable in the :file:`firefox/00-proxy.yml` structure file + +.. + --- + proxy_mode: + description: Configure Proxy Access to the Internet + choices: + - No proxy + - Auto-detect proxy settings for this network + - Use system proxy settings + - Manual proxy configuration + - Automatic proxy configuration URL + default: No proxy + +.. We're gonna put it in a :term:`family`. + +In short, let's describe our `proxy_mode` variable like this: + +.. confval:: proxy_mode + :type: `choice` + :default: No proxy + + Proxy mode's settings + +Now we will define new variables, and other structure definitions. +For the sake of clarity, we will put the structure definitions in separate files. +Please have a look at the :ref:`file naming and organizing convention `. + +Here we made a :file:`firefox/00-proxy.yml` structure file and we're gonna make +a new structure file named :file:`firefox/10-manual.yml`:: + + . + └── firefox + ├── 00-proxy.yml + └── 10-manual.yml + +Creating a new family +----------------------- + +Let's create a family named `manual` which obviously corresponds to the proxy's manual configuration choice. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_020/firefox/10-manual.yml + :language: yaml + :caption: A family structure file description named `manual` in a :file:`firefox/10-manual.yml` file + :name: RougailManualFamily + +.. + --- + manual: + description: Manual proxy configuration + type: family + +We can see that we have defined a :term:`family` here, and this family is *empty* +which means that this family is a container variable that contains no variable yet. + +.. warning:: + + If a family is empty, we need to specify the :term:`family` type here because if we don't, + the Rougail's type engine will infer it by default as a :term:`variable`. + We have to force the family type inference. + + It's because we don't have set any :term:`variable` inside yet. When we will have a variable inside of this family, + we will make a YAML block (to create a block in YAML, you just need to indent the lines) and the Rougail's type inference engine will implicitely infer the variable's container as a family type. + +.. important:: + + Any family that has been declared in a structure file but is empty (i.e., contains neither :term:`variables ` nor :term:`subfamilies `) is not taken into account by the low level :term:`Tiramisu ` consistency engine. + +Or a sub family +---------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_021 ` version:: + + git switch --detach v1.1_021 + +.. glossary:: + + sub family + + A sub family is a family inside a family. + +Creating a family hierarchy of families (family inside a family) is very easy: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_021/firefox/10-manual.yml + :language: yaml + :caption: A rougail structure description file with a hierarchy. + :name: RougailFirstFamilyHierarchy + +.. + --- + manual: + description: Manual proxy configuration + type: family + + http_proxy: + description: HTTP Proxy + type: family + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Here in our use case we used the :term:`short-hand declaration mode ` +to declare our `manual` family: + +.. code-block:: yaml + + manual: # Manual proxy configuration + +And the `http_proxy` family lives inside of this `manual` family. +We therefore created a hierarchy of families. + +Putting a variable inside of a family or a sub family +----------------------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_022 ` version:: + + git switch --detach v1.1_022 + +We are going to put a variable inside of a family or a sub family + +Let's create a variable in the `http_proxy` family. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_022/firefox/10-manual.yml + :language: yaml + :caption: An `address` variable in the `http_proxy` family + :name: RougailVariableInSubFamily + +.. + --- + manual: + description: Manual proxy configuration + type: family + + http_proxy: + description: HTTP Proxy + type: family + + address: + description: HTTP address + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Now that the :confval:`address` variable is declared, the :term:`operator` can set :term:`a value ` to it. + +In short, let's describe our `address` variable like this: + +.. confval:: address + :default: None + + This is the HTTP address of the proxy + +We have reached the definition of the address in the `http_proxy` family; there will be other variables to define in this family. + +.. image:: images/firefox_manual_family.png + +.. type-along:: Assigning a user value + +Now we need to set a value ​​for the :confval:`address` variable, +otherwise we will get an error if we try to access this variable: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_022/config/01/output_ro.html + :class: error-box + +.. +
🛑 ERRORS
+    ┣━━ The following variables are mandatory but have no value:
+    ┗━━   - manual.http_proxy.address (HTTP address)
+    
+ +.. type-along:: Let's set user values in a user data file + +Here is a user data file sample: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_022/config/02/config.yml + :language: yaml + :caption: A user file named :file:`config/03/config.yml` with a value set for the `address` variable + :name: RougailAddresseVariableUserValue + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: example.net + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Let's validate the consitency of the :term:`configuration`: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_022/config/02/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml + +Everything is OK: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_022/config/02/output_ro.html + :class: output + +.. +
╭──────── Caption ────────╮
+    │ Variable Default value  │
+    │          Modified value │
+    ╰─────────────────────────╯
+    Variables:
+    ┣━━ 📓 Configure Proxy Access to the Internet: No proxy
+    ┗━━ 📂 Manual proxy configuration
+        ┗━━ 📂 HTTP Proxy
+            ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file "config/02/config.yml"
+    
+ +Let's recap about the user data. We can see in this Rougail CLI output that: + +- the `proxy_mode` value is set by default by the :term:`integrator` +- the `address` value is has been set by an :term:`operator` + +.. keypoints:: Let's review the key points + + **Keywords** + + - we know how to define :term:`variable`\ s inside of a family + - we now know what a :term:`mandatory` variable is and why it is necessary to assign values to the variables + - we kwow how to set a variable's :term:`user value ` + - we have the big picture : the :term:`configuration`, which is (the structure files + the user data files) + + **Progress** + + - we have a :term:`family` named `manual` and a sub family named `http_proxy` + - And we have now two variables: :confval:`proxy_mode` and :confval:`address`. + +.. seealso:: + + The full documentation about a :term:`family`. diff --git a/docs/tutorial/images/QuestionaryChoice.png b/docs/tutorial/images/QuestionaryChoice.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff335e29aad124d81a849c8437b57ecacf276d2 GIT binary patch literal 24587 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 literal 0 HcmV?d00001 diff --git a/docs/images/firefox.png b/docs/tutorial/images/firefox.png similarity index 100% rename from docs/images/firefox.png rename to docs/tutorial/images/firefox.png diff --git a/docs/tutorial/images/firefox130.png b/docs/tutorial/images/firefox130.png new file mode 100644 index 0000000000000000000000000000000000000000..34e6c08413aa9f1f5330b9ee594f0d0b97740408 GIT binary patch literal 120951 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

Sf4^sDuq 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®Y-2??M6^xi{vVRGPP&2 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�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

s{Bj&o9rKw?+Thum} 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 Xa(e^?At>9QuA4NdgM_@ZUyf@xR{7~= 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 literal 0 HcmV?d00001 diff --git a/docs/tutorial/images/firefox_manual_https.png b/docs/tutorial/images/firefox_manual_https.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ca7aa087e56162d687ef027eacd6842e065ed9 GIT binary patch literal 121030 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�={Wr|E|j(NDT_%E-< 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%0AHMLfJr48lf#v?4nR?T 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�={Wr|E|j(NDT_%E-< zv;!rv+ZHFqjF=yWS-0Jlj*J)toz#eP?ME-7GI4vB!*d>|=KJkx+Btj)DMQsPG*UAZ zHQnm+F@7kED8<`PSTENU7Y#Mobq_%%f?dhJFLP*i=Hh6wx0Fb=OwHJBMhd@OJ4W}V zCIW#11SD|kKm-jSXu4HxQ+;d0`hVL66fF}Z=r4O>jE$#+C?rykp9>rEOm@Hb%_R_D zzZUrs{ck{hea}*KWoH+-xX_Fb+m6V*A^c1|mtSh+wIY1NHa4@x%+Kyx zGrApEP-Zf(jokx>ougRq58lWLBtBDwF?p@`yW*fRkF`&27#7c9Ke-(Efy&4eSu={!#bq;-zNeG7D z5hLhN4R-to>a0|JeXisP1n3ecqd4Hu~-Kg2#?>M%r zx8!cfsrqEDhK7AkGJ@67Gj1dn&;N&un>&2GA>(zvb!Hng%v8aBmzwJYAZq6xN#zhy zf6e2A*~7Kg`%<9Zb=3dh9enp+y`M!dVVrBo)zJXp)l~BI{l>YH$@&SyWNhH8F-V_4 z&o|6BRVj3zMl#V-43A8h+T&l#ib0edYb^RQMab^z)C>xl>@N1Sy=-mwgXkL#*WpC- zV~+NUR}2UQ^Adm9ooQ(P9Xvf-J60BXsGNYI*>&$?`7+S%+A_a^C9P~^);{O$(T(L_ z_J6`z0A!Rh02@0yLCBPgD7jw|5s}QUOV(BLeDqtvDF5nr&v>Y1F`D)P3EnQE2Gnve zRda&=qe+4vnDE;b?ldnP$)JQ$g7b>j3G!UAP~7+w=5*>M&3~}uR7{VWpPZajzc^x* z&{;8mFE_ulW9@F$)SFj%W}kvu>+IP>7)!)>eEj1i83SH-RLrXa>dVNI+-oUNMgpUl zY0d{T4-L=NPiVd$7@%yn-u3lz`hIkT^4x(3Broqt`3M=TB{+QD>^PHL#y#Ae<2Fhb zy|@?J`B;6Gg9?g%+?eyLCD@`+m{{CIOPnN{{4M;-)2oF!|iU{N~XrSXW4`JC`C&cRr9b&G#?6 zfzBb4R&np$5#0~~^PVX2sx=GXYkOT$ddMA`KSKkE_^ohd6;(9okaGW_VxrI?0U{BB zFUcW~vZnX}Jhqh$-h(XGjUG#Dqp!GEpIG!0nC;8?rtZ^LA!R^u$wNEoHy`I{>?w1O zcky>oJIsqe6{}ToxMfvx;D!1)KWF~ayaIR&vD%-}`FYSqCUnnbGN|^bphJ+o8Z~|b zK#A9kWg0d&3+DD&f&ymO=Sa(IZe19{N7rd6qRE4$hpTz3rMh#N*^b4@l?>$!JpYn~ zgUXeM_JzAeYDLAx`s5X!>wDE?3qoAWTKhfglLR>GA=noHFeoUruzUIPbl{5~um*YH z0oKHD)4=OcB4UOL#yJe6Y2|6MQ?LKH@_uT|x3i$z{Nk7!AS`}_iQ$Gb-yXBR!PQ4v zmmZEfv44CVrF45_bo3EMlP!mhMa-{Z0C2od9U+*qp=B5sP-c1dd?lq(P~( zwM9-`-MzkkQv-7wzGFWODBU3&Zhe$b=9~nV8+NMZsT}$Qh5dr=7$OxSm@+k10 zi67YJEL}#x{>MKc9;9T>G5h^2$;=PQ-b`IqvioIdvW%;xZ4H!Z%s$q-!RV z1(KywJw4l8q4}kaf0Kt+7om?cpErl9uCl2#4r9=mj&VH5Ml-Bi>_8R*${2stX<0A; zqhO5_CVcbq;X^XAq`pWvZNFk7^wz}VV&1PFNDUuo+rEq}kS<`@v#gyMVl3&i1+{b> zr!ruAy)LhIl%#i*OK1wlmO;S#x;vWb{n5DQ3S!|1LHDI7XqqRzn!&n!0l$bRJ=-rweez&J?q(}=0%kKUR+8% z^obr98S7Fx*3cQZ1RWWXiv90U(xXviiv=*-Hk0MdYYPpMiATE<@Hp8#-p zvU!iA7XUcBnyyLtC<$6JAqfeHNPHkDd6L9Azd^pClw$U8gpe!YHgvhZUXSnWUD>>+OIny!Un?__WN4c4;~H#2ceVX^y)F|azW0zNLd zIJ)C2e2s9%C<%xssP58=ih6JE`Igv5DyZ|@v&vtmy1x0&aDuyxL|{x$6e`|pH1kMz zg*AE`SpP)?q<%5vxI|~&>^66{jVL}j;a4u5KO2{rxYqw_n1L<~Yv*uC4{*jvMT~m9 z`{5BEeRtVFMzex2HQBkiPfeM>5*lVo!SXSz^V$wA`y1Cqa9BOAjRk_SY&_{P&U}emBXpyS2VVkzY~E$ zf?4Zw;5BW1aY=6N+A~L>BAHLN%)JTglEg$&;F-(TH#=6ni)%ucaRVizNAr3v4dQ_5 z>uART_L8H2yanFI3JmXda6y!o4Sz&r@J3ZdGl02b!J4D&#AveA$6e zf68r23SkKm&x196JiV6Im-xigmxk&J=)XI|V^1C3-6Q8et~%I1hnS27H?Nv%BarW9 zsQm(bsw9`ZX2ye$1{l^pzVMEY3)#WqOcAEeJ}zRTs#|4N_G1(@^Ur}7KOp!YUKw)T zP4zz{@iv~>*k9fCHI*T0me1pRB$0Z~*v&3sq;9b+^?B!j>X8{UcRqhH=7?x~gWD?(FJh902N? z9Kv43kZicTJgzQPm>4wjX^gRvm3i&)XF^60+Jv{!>l5H%6ny6h=PVD zmhq2v{O~-%oBR}^@y)VZ$V}!H5OgfM&}~&hit2agoMnToL*=$3q>f` z>EEU$lNgTr_^uuFY-;R}krTCo%gt?zBXo;Oq0mTyFsH?JQSaKa)Rh4`sL|23;e$TiD&pd&Jk)0P$E$-I z;*!nZENH32&Osc>kWuNY5YTnm8$K8<=LD4=x1pHaqZUVle_MOQp{>|V#%KI7yLG~_ z30sDxSQp9HJ$qTM`SlqWR{VG*D0x|&S}seI;~_tSeth59cmtzaQbsbt7Y_`~$up1= z|H9nOtJcdKKRBp1_4q7=uCQK~2S9!&i`qa?|6I`GVk`FOZ|EEB<_v+3J->#w{Tp-d z^0wXm9n&4MH?XB6V4W|!&1+FzBRltiY@C6^EtA~ zHzb@mv!D0u@M^mTe+*y_ zI&p7Q?}f8xa`Qu9dX81X)}=qR`?-e{x(BGr28~a|0jqQn1du;4I=sP8mJFwPkrqP( zvz+>QVr1j|bU$v(zKDKrp|aUg99VJNDhJz;kvc0lI*+l(hcwlPvoU_AYYW4!Fh21Y z$+fsey+L+#K|aXiGsl)Ay7>3@rZSK|JueNr1OQ1r+p4N;t@LG}v$v~%?*;jj2 zOn+YRTu{?M4rXP-Yv>@G1+$6C6I<$Gz*8v8v^k}V2EVzE+jE2{VK(J&)K0vMw5xe4c5OrJ zMf07VI=@uq7L!xDC&HtAqIj zqtxs?AZGXsP_Fug0kh0}%ncKqFK4I<& ziYM21dj%VVrF57BqHkdwy~5R{dJQ;(!s4dpk6(yJlY5FPBU>{!_XjQU zBMlQBA)Pl68em#?X&5guI z;Wka>_ZCbJ%wvvmFJNIF3S|31b7oYq5ZdFYWv)!k;S^Nt=wrG z92OQd%}ccTHRDQ|eV>j0Ly%8XO2x8LO;a9yvZe=Q{qw!6Pd*q;dNu8HPuByRr{-xK zWcgp5`{^R87nVGwpyT@Vc8AD;(VpM#MpIYAD{?=K0r3g1|6fG^ngJB5k8i@NrD~4i zBft1x|MUM%!v9ay{MrAl9{{2hZo#-`Mv+=Z~td?!vFlY|D#ah|0iGge+dGq4OK;NC{`b9E6WmUu5EdW{)N0rWd!zH(D>ESb-}>f% z-9bYxNU2^D$O23JQphz*x*aRF8Sd_?Lk{&oiEGI zXl|@yYirwQTmARt!8s+&U#RTNoShTHHo7D=C3eJ>m1BO+Rx}=Y#`qb@b6)rl)5@Kv z_A|OWyIsQBz=1I&;AI&o)Uuu(qOb~-%qVkD0!zux)r`@L;qT-Y%kHTZA{a9liBCY3GURp9WY95zB zH6f++C{stP05C5=+jZPaIN@SJUw5=Rv}@BfUrv386ebf9jEoNKM3S?IaE>q(#8lM3 z-mqL&tmoi6CtgePAiY>T`3WyCZ)@|>))g%*z3<8}#qlm0-K?A0HT_+z`qjqKVS5=` zHA3~SQH=kF@RobBV7y|64L!~#v9|c0ct!KZ#>s>I!w8EtA7kz+r`0AZJbLZcfNI@6 zXOC^n99n)TCO)& z6zayu7SFW5@C(q~i|v9I=}Fcn=$0D9Q|16x_;Wx8vch+Nmp4s*=c{<~*j&8U#HJGS-P_?bj_6$xy6 zf*sDyEkUcH+nDEiY?m7Q+}f@WoUK5%WH08Z+e0}}r~k#UL={`ker^4)lg>eQs#}Av z1<%#@^3W|ub(rxS)`VQND7X65akkq$+LlYSVuPRr(eHvMGn*eA5UtW1 zxUJGx46AcJ_WRy%kf6V=Ki62e0o0VqEhg5>95sYpPF?j2_eJj zX^}3NjWrTDp)R%*NX(p{-`HhWz6RkQZ@)jX9b=1rqQUii#g~gP8>lU&cq8>rVizO} z^tp!HmALz727b@wY*0~brAZC#MP0NdBAwBFMB=1;@}hW3BF8*!l#XS4%P1H2M02W?y9 zaVcbH;pK1MxOQ#sk@^B*A6%mVj9FM%fJ}ZoB_x-f-KaKIjpwo0rS@u);c5UG0VDy+ zz{Un=8kWTx?MOWM+LH6(KSViG$+N$NeHh6HU5$&VxTf;$c*Q8ioZ-B^Jk0qn1!XdjP~Emd^$%w&l<310%9huRC5?VQ;N_Le88hU|D8|{O00PLE>e)sB)k4mKt4T9FaK&s!qd;vtd>WCmSjz=QVFP3LS1|5#-Pb4T8M3M#S^zEqQ zD1$u(Kn+$~$z!d5@hlMxxaa;dn<`0(Kmf9FBSx{`t_mPjP%DWsgIsQWS0ADL614DA zlky_LzB`9UeYzK0U!+XSegyQzRMav-kt;Uc2Vvsu41uM)$UIH!-|W$kfAqQqpyy!L7Mo@ZxUlFMTvOl zZ_W3Vc$j36P+Pl@(AE`;jyH;%LG4$S@z^fU(8HlQL@-$Wi+-9Wrb5C@td#K1DxAumj-O+P@o2hzvvc89hcEEG%pYX=Tiozye zcqDA?>^7!bd2Pr1R!5BV;!ldaEf>FxPmlnVeOH^xF05+?tS|JyISL{VfO7Dwgi3x$HG$q@Mn;zPRP>F75=Otfo5G zI?Sf!r3x;cj{~O!=+j9^6f)Ou#VCS)yph@G98k=l3qE1G6+sd9y|eQQ@SAP@vg*_T z%i*!Ut6maUTSbe{IB!7Qyeqd*CDNs1zFY~ddu&_68^7Bl| zB?RSenSfsHMBSB1E5EpN_XfI$8%p{gj<)(V)QEI#PBo6J7m`7ulW?M=6xMl>p>6E# z?Y`Ln6jKW{{EJ&XDk{owXnP!PB&tiXoR4et*-G-te87Q+(gxfp0|Nw?(O3FIHniHF z^+4!mvE2eR-Cj9{b(Ld4Q08<0-?NZTyN+nxkDuvZb{YBe=Oz^y6^wGA_(VcfpIl66 zD1MrQ$x^qcIvtrc5dmkalCnw~d#B(;q;kPHeRA{Aaz$BL zkO?j8r}yYHea^+jokG>Tq~nz0_47jQc+jBs7JGxBKZH~D}t6y?w>F?jq9=~wDN7SFk zT!Qa$G!zdFJ3DzrWU%ivr}r1KLlC1gv^ZSc#clm_<|WUX@muFbBM7{}g?s9-F;e(r zMBygOTA|vCw;Z$5&2w+asa4*TBZ+hym_2C_UG!^z^&*?i7b= ziWt|Gd13squaV@ZJU-nbH@JoY`cEBv`dl=O6c%W2j%26Nu@a3(r;^+`38h(>_!Ru{ z#DoMHN{Y|P#>@?}6K%W*4e2%_Fxpo3$(syq%4svX;OnP=Qm%JU!nt?%+8fB0vp%Ad z8(tQ`jXvxXzaz-9!cVVUJI?hkqxXWbMDDArW1pOff^lseR<@>f^E*$So8uu@cMae9i5=!aS^WF17xHuH>otf z$|l46AmZi|r+IoO-Hj~w$jrWtZ%UZTm0cbeq9C8sZ>~!%9u&uCkL(taNq@>p!5->! zQNqVye+a9id_k5axekNaU@aLgl*RPZX-bqZBj7s2IGpG8=i5Kp?WQUXzX9Am_=&A zcSh%9eO5kYzG2OtZ@s?CUuUGrk%~kKNpL#LQi1uIc%`2DC(&O`pN`voX_;tz)Oa|@ zD3z1CcKB+8$Y7P==%*_3^W*jNQCI0CQfcgJ7zE@3#+HNGNvY1YB=pQ((iqd~AapZ$ zC3X|%VBXUh3OTojH=I4c@R^fYJSw8tM$0D31CMShT=e}cvmeF0L(%yVW?93ZB{v2! zL)<=$j&?bmh)C=<$1P`i?7J7}Kf2jRBKOfzpT-B#fMDJi%FBn;oxu&g(=DW#T(Jxi zsU!jou;3 z-PC)iGC^kYURF|8{f&tw1a8QPL<8*^lD)XP@5>&04+0{4$%$e@5soh^#%^>y>=JKI_L$kO93owyo=^J0Iw?shHLrlEahh$Y)t6!H?;V7eRy}KVuDdhGqBfI*}Re>>$Q0*)3F z_u(nGhI+)M&_Uvwxh*fI4EFDfE)uIpEJDrMr=@D~|3ccQdeVll*bvza7WnU3&*)}9@n27x zsh%-iAf78mqh{8wQ*GY57HMM46QINvRy9C=N~%t?Wy{8S)l2;R*+5zbhL)c{sodP% z%bG2=7Jr$QL(1%%cAR`g-`lR`?|XY}nh2RX&0sX1sM`G!={awbdR&s}R1`j9>w3Fb z--8<61eTt<2QEZ{b0Y1mlM2A>H*yDq@}{+QHl+n`ci6O8`=I7jax3bClM@% z?}fIvKaGFsGp`7OKT2#vbmTr~GBa=eG%qZFUR9K#$q6IpZ=`Zd4;4OiIW;^!jvA@R zF>%)}I;yiR-Y?AgT6{W-j8;uz$6Yw!HU_vKdo$b(<|XEtxVk*)p{sb8Xj%iLcNyGD-WuS)yg#>q-Qv&Eo!q-Ny4lXNLa_|GOK8 zaXtKTUrSJdxycn{8~$~~R$#^O=tA1FyI|mhVe%O{B?YKODNbfNwrKB#oSCm&Zr!blh(5I(amnwMyRAhLuk_-iRK`3$l#|Ixrcj3JM~Z|8;m6re`*(+# z+&+*|ivLKnUd~h&K4M&`k9d*(PU?DZy!2dJVqn?0FnPa;uN%Js?tZJdG_03VyUb=u zidHs4(u{`@AVgcMR_YRGu3X9S>cnS$gfaF1A`ESVo{!`|t6iQ7b5da06xHJ=N6E4! zR&DRk*?ezFgIp53;D=ul&S=aW86{-sKnsoVSt5zz%9MmMwax)kT}+@VYO zFxUMpUCJyoGD^yu(cKw+jr$Lh7aCzygV9s!{V9L0X?=VF)6M?}JM7qjPpO7eBF{bYY7<L`5oDRpA zOOXnqf|2xY?u5uBm9wRtLa_8kmjxOPZH{`fvaTk5WyrBQV^hEYkI0V^8kJ1_>N8nb zyh4>OE+TEeG}$ciV(U%ffzwczr)#sj=_ZyFHiaXn56mlsS@-rGj{aQyNfSDFzQhpU zA`!vz5y;_A$d>CagwD!B`Z42gtFgCOZk4WizU z$u?25PU-r2r?M}EU;?bG+|2F`I9elcCck!S`Hvk62INJOgd+#slXsF#>TT^d>|MDP}pjuPlI>j=lV?7xDr^!$gA` zaH=JImKO(CVL%AkSt39Ex_;4V_cCp1{|uG^>naNofG^AH>cTay%n12UF+$0wgrOg( z8L@p~>WhCU7c4ARqhRu$noSm87xo zaOGiJ0r);|rgDSPMT%P1LyWo5-Zst9=2SL+{}#9gds4*1U!n=0Mr!s zPwa}vv8PT4NbP*|k1OC+m`*NwKtRoJxz6W`ZD+U52W2`FEw~6zm5vp)g!k(d78SFI zfr+Tf;8SK;4yHQup zd5e)EU5(x4sWbj%qN}n(o<4wnK|?sXhH(ie!%3-LddpUh@J7PMy?1ABe&hjVYnd}8 zk(NKwC;e0o=5%B`xxrA;q8kSSEa+b`@hbu_LR-a>@GW~-jWedSx<0~z^#i11-4Ee+ zAzE}H=8C;|x|t>0Btwm}ZyvsF!GmsnSFD`r@+BVD?G!|F?+&L?g zqjbh$VctuOOUR%{rWsXJF}4h8tF>M)i?5jZQk}au`A3*PmjBI45eX{{F4EH*11;T8 zbEjUu0{;RN+SS_eRj(qFGjL-Va5c=YKX=|{4<)N<*KOld2Kw=O9d`e7dfU4xG?XG)t>W!aL0pn4IB7T-R7=hCIVivN$W zw*ZT3joOAO0g(m)X(<(vl2TeikrD%uF6r*>6ahhz5)cp&acHDNKtT`zk?sbGVQ3iQ zTjPoAzy9;R@5jaQ+K1VDX3yUHd7icIb+7w=|FCr3{mc_h6>J z?bOsxej}-g_*t`T?2JKl(~4v58!~=FN(xDvXU3|v&b71nHJClwyy%#%-y-@M9BSXd ztswgquKK8-y%Q^P3DxJy)KA~|5+fPDO-!JjB!d`$->JAuUSV`$XS2ILK#T#$*D+hO zXk)e@;vjG>BSW;y$zqOyHH;nq?-z{Ua{jf)e>eWwh3!8Z|K0b$fBDZr|Gv$C_x<-T z|MNlr%h5Nn4@&$}u&VUb#NMbi)t&YOfkPXCuP5q(kMS&wh@i7zk*w@Is}v7 z!(1=iwcF}_LSt1WgkTSSnTRcp9B4jZ9>#0XfK!2x6h@a;R>nT$?jym>u*bfR&tsxl zDM?Hk$};Ld(?-ZQx0^vpuhadM92;^qOuD7Q6`q!+2dPc%c#KTb!rJ1m_; z6D7@nbU|#`G>a_4r+K4RuA_ymMt&Rf zKuneYkRG!CUJJaeU*6iT<4r$*5^*TC4lT9o;pUf>9Vb|=wFkH*rJ}i%?sreFk?Q0< zeY`Bm8y_LlLsr`|vE?pHKD}PP>gmhezB%2kC$CYgjTP+YQ6J7nOL%yZ5QjPyr>Og! ze-lCCsArZ5=ti@SX~bGpj*_NJf3D&6k>Z2$H2lj*>b-Xz@AJ*mN@QN=d`OuyqI#Tn zA6Lr5ccK<)-88B9W4c&paEhW%pX}iy$x@a50Tc~C{|gzNMDMf!ya{Z zty#S~gC9qu4SQni$0c7qo0n4_iS^ckQX>BiS0cFnsSG-joiN8Q)l5*CsW;ENF&{8( z9ZCSEF^;^7MQ0O@nb^IozICs}Fod1e>$}+LBs%&$hB#Zh;8xsuV7Czl1t1ViFhybG z@V{7UYcj;ivKS{!%?&gz2}ziLv{ZxL!vEsV_UC!0=@zo0TYcqf?}-eptSGNuEr5o= zq~x^bpEDhSC$Fwwf6#8WbvdD9uR*#dFnUMz%?f>fAW)|tv$CZM z7#@bQ+l7!@vhAgKG66<(muaH3v?Xd{O?hab`{3(*=b#skJ}VtqB3h{X&jN519DFt+ zi%^!_Fh!&2w{CR#)-8Gx`7F0<0VR^F2jKGlxzt23w{$)Vvw@eKg9w zut@8D=oS?pv3#ZAU1jZ?53-LQfk-I05;511<=j7u@*svbn`IMiAx@=`zIl16MCp5l zezm}C0a_mP=fAstp$QKI1#}yw{NFzH@$w?_uJwktmltztZ-wbBFpD0YMTTJ3Wf@IV03)5*nPS@j zMB(>0!A>d6952uj%5!Q-8j* z8G})9?{sT#4w9IInfll+`RdGJd} zL?95hrq^#+)R3lT$!NT)#plfHj7(e8n|nL}-MA8VqF>dcja*#tVAA7Pr3zv-blRlW zwWEEVI0&)k#jAqGy@cSV-DANh`F{Av59T^%GB|*Z@hp^;GIa|<)_Sk}9pG3BuQh5r zu`Gd|+HWPNVHy#Hh06uzS&zc}VmZ;wMFi~GE#Oh8rT0Xd+zf%0R*tjQ!+I2mMHI@$ zoj_#O|2wmD@U&nKphx;w?y?2RS_=&vADeb}`BrFunQ3-f{Mv}E+Q&)=p=?-OmuX35qI|(H zU^kd1Y)H#zP!^R!6`(5N>`dV6D*(wR-2BXO&64U0lB9sb6?o2IN`BF*lT+PmK^?6) z+y26nEe%*{3?5TY`&z-T8K&JP!~V44?EB_2j#i zo6vZw`$OmHSSiQnX$SZ)h9Fi*1KkqILggSBlbkLawlT8zX92U94_47cZ`91m3HNI= z7>Mwvw>(Sg%7Y;P*Au;0FaQrRNq7r(?C5xzUa|@eq%H`}QSH+SDHpxq(OJ)_m5y1* z79rKSErs$&=fmvY4%=kj&z}&UvrGvC;Y27%K`jOnxlo_a+zRWjqOU%CZpa@1ugp1n zmXF#(qz3dlP#9vaJ#j0DzWTVx#N3<=QbVvV0%t2?UR^lO7Ws;+JuNP06fvvpP0|-) zq;-)2hc%K?UL(Md<=PwlBHGfAKr@jM-DWS!t7bSiq%|4Rm22q0A6RB??uhzwj?k6+ zGAXp?_u2@-%3^=4frU>%dHKBZ__N@o(G8qVW zd+ExCZh22fX$Z*9UNt1tyi+{73KEF7q#iHTTT0I@jIFuJYRt)Xa=Qa|O&Shi3xXV% zHR0}O>m7_^Ro{eaN3Oi+F)3OWnoXf_4l*+EQSr60>#lwEVaiPm3NGZD) z1AHpBDc)@1_0_cHg@#6$qZ*$mvnYE`vu3@ zFgsStXn4=8hupG#Li@gc)SC(bXLv~1S(Cr5wQ%c*d-^1(aAm_|oL`ky;6;Gv=t2DX z6{m)>qV+)5{1txHt@e`-djNeH0(gJj+)RTz0nR|oi7e4)v&!+E%omrnIY)D`>3WP(G?zE( z@2=+=mW}d@B?VX}4ULOuy&J-d|3>|DxqPR%c~;i=Eg2}7fXXRQM|P*lOhqaMyuIk% zYDs|lO&X3XQajGAw|;qCV8%VWS6(Wk4H^PCD1C<}C(W;3!vs52>(!Q-!o;{Kh1oFG zrFBeg&KKNCFP_Z!byi9g-8ykW25Xzt#uNwA_EH|5YxVB0oHV%~!E?ufe^`sG7`AEK zb(V-U82%6GUPY+#__Tj2zCy3DzecIUJu z>{O4lt#6hNOB`Vrgo;p;W{q31B;hRds8*T0g?StT^(luTBX_Zy(>w9cZ)Jv&&7>SJ!yiA588X4w66xeifPLu=bl# z8zG{oc$@VbrArqyY)T?Ng`a3eP_DX(r*!4Is@=>M^{&^y+)*#d2s1Tch%mST=x6kl z96vls0Z*wrdDpA_Y{3ef2{-bDUAhuT2E#UxQ6nYjinZ5}BKC;FK z?B4R6m?FS;KY;e z!JO9TP1C^gej6iOSEj+Du4%aC?ThCyRi(appQ*L?gCAEqcE|@@y$Si|&XI@cASPg% z1F)$>00C3A4z;}`WN4`;k@M#e_~UTq_iD$KT} zbjvF{az5b^G>e7Y`aI#lqg*^pimxe4{(^1^8U@>4b1#;9!o$;QOo1tb4t@9lv#p_p z2Nr2~3;q0o6!*>R$vj{gy}v&cc;y-MYsGAAg}CXO>;$#=xt2b%kDBrowmVVh@tUR` zBs|_C1~Wg<vWY5QXgC=^G&l^s}=y&kxFM04|uBbfAwdC+A zyqm!ss@*En-;*yujYn=!s1I1t2o3df~vfrkeiPTett+quhJso~@@M$ytjop@{6-`TF4Wjb zl9IRzadDmJ?-lh!{?DjJaCkU_6|gdB=Tg)LHEbxkK97!_89OMu!`XK^q4Ndjgs-a5wk`sbdiE`ShmV$WS@t~uEokhQVl)KQNF>s6a z$ISQP3%d1!AaoT8&1hA6ys)(YvU&uI_0XzY>#V@#XF)k%=1tI5njPoiC`hC~%6_#= zjeSgg2K-t{ceI%fZee#R;=<&89O-u_K4gCW{K+~7lo05V5(j%?yYF3K;7JY{J=RCf zj_PWLaVL}7@vsL}CNPNG%@8z?^+bznYGRU;mA3cVAbwg6n}bjinorpiyRv;pyLKIC zd`CPs5J zWrzD&D});ZQ~~s33BDb>bX$k2y}d^LtW6EuMfBS-HK@(u6W~Mh97)oE4=fKqtX#dD zN_>dNn~sif!otJ&C4>l72jjYFi)%{5P!CMT=RpMSLqGQ+m2dIzDpX(-?n3)%=e{frmR1?#ChjM`&#K4N-iYtv6zbQz*+gCHHPSyA>KvLVRpjQvK%ZXeHg>!%AqO7l zo(~_0Dm#bM;^+Jh>L$?iDoaY&1qGjjj~Ku5-uGEYIckMhEX`P2n9r0~FKE+t(gnmB zRTX!KgV{n7L_Scj67fcuL_F%5In;Y<1~Qh!eTvgeOv|dNqTN)~rJx9r*cob7L8Ll3 z?I6Z~(`?7FVNlQ+a}q$TK$B$E1m2Ilb{A`E$AeXglBn%DjZfc6mtWuP=v1ZzV9Q1Pn z2WC-ThLxi*eCIB3{J90jZ+*9CN(e!r34GR=ZL*(U0AsbOVfH^Sdc{aiNR$_=u3 z2&d#?2W_;njP;gK)cGubspY+-M9Hf!5evA6hr(YUmiFT4BXWwiVIN#v+;-asrH?ka z{SIGdNTw1K-MF zVVfs6_Yy^92tW!ix)vM`Hid0I+BXYzmR`)l1swNxKIo~`q#NV)qHn=5{+9G|r6$_vzSsfqc+3D}gPju_O zj^#5z1_G5(REMoWT~bx`e185BFap4>$!E8$XqI7eKXs8y0zllOxl7V32cyY-Wniba z-(~Mr)CgR)^rxVAs_(mVo`{x6?UkXy!(gae8Dwy_Io#?Pz@RxFxW-x}+phz41f|1pBgH@G+iV z#DVq>U;H4}Df^QJ$cF9Vv8yiZ_9!}4a#^E(=ihKUl84cGFNwTbX6!#;bHxY#V1 zF9Qf3lUCc>Cy`3~iWppv#kIW+Y2USi{bpJ}2LI#7r!4ec_zj2ljl@slQHlPj=-|OR zEX*^VWsbj?>HC9+hi6)}(G!#G>(*@l3>@^|Mwj)?&VJCs5+WHFUCk3!hTUKO%0>Mi(F+s!D?GQlEYk#ZQ>W6gg5b~q>uAXsqBvz znD&qKiAhMBfje*?(#DD#b$ch_aFj$%odbMu8p7pCAp2=Q6wZ+W0QU< zP2Nbq07w-bpd??1{(+X{M8HhYxIbtx8$Ef9qn45WrNY|zcHxJ9tIS>tV<#(079WQ* z723z?A_~-JRMb?bauRvjD9_?zfi>QQ_a5%Yj~|ynBReV>HNDqYsx30l%VYCa zGT3#0_FpH~D)L!<8W9vC3UAi1gRsxmESl{r@+Z1}y>EP8SM3srSTr7O)9#Np9@9)5 zc8M>o#Ljjac;d$M?0oFAtGw7d8J=;pZ@xcJ*$@ptN8M(J@_yRn0b@w*^Iu0ZU$*v- z7X8mDcNXjy*dNjQAiYnYgM727-{MyB@GG%Foj-j2^z8p64GI>9;L5 zZak4^%QP9>TCYX6Aor$YPxh@r&myF6Iey!y5PfPYk|y zbCnD`8*!W`Bbe!__xd7SX;-n;{VnO!mvRQ^?$d+Q z^|RMS?RchcOCMS8HJ+kIPeY^+`lMUGf2XFQp~0ro($Z~iZocoHta3B>_?Q}|;>NJ) zOj%4d#K2laXMaHYi2c_mVb&g~1%3E{kwubfq|Grt=vgZrwyAPJNfhd(wv5_0o=cJe z!bN4{u{!3%A8cPbgbBiTvJHq`a^!e-W~RG^COj7z{4mqwo<9+x4qTwS|_GWXv_ zqJApV7FQJm-`sJ&;}JXqos!pLPz_S;rO*3?ulA%%T@Ut<2(v#~^9R7Te0O?n@2zFZ z&W*&P-E!8(g9WnUx^l0qQsB}k0X2pBpyq=W%XkaDY!eJjfGtatZT8;0y36TvL{&89 z43l2n$)WXSYNDZ`v1W1m#=SVZe-;GE@JgDK6XYp_c6h>mihJ1039MX8ZV*p-12j{O zkV1y>y*u%EiJfP^m<4}q2g87qfX2n+Fe8^19>WT&hOJ$13=BsZd18Wtz{%*2vdVcD z7}&~$?rWWrnF+)}@F)Xzo8sqDmH%jE|76cU0y^>erkg`)9S%CCanCQO#6YP7MmQUD zEC_`Yfm`@~>m{i$6iUDc-RMsct+>^M2B37xK@9WYH1|ZWPp(wlobW#tgsImAhHaP; zWK+0_y!9c|ak79)<6!|iDL6Eg^Vf%pABSPE{!VRqLn`AHBMRl$2D`WYu1w|~ zkh~rl7iR=>H5-QbV}Cq&8spQ@ZXk`B(;a*%Qy=;lALY$T<3Si4>1dgBtaA_SzX7KTuH@B0HNZ zYHMpZdsuP9=Xb^9lKOh@#9+L4@s{ulj|%ONw9n>JTb4(=i&9ZYzr`-xD3BY4RBS2C zajF7vIN*pB4Mss7!$t(;QzPT1FTy1X>0bN-G}y`gucEb!EwgSdi(AtL2FFg_HF&ZC zm!*b!8d5$mCoS&mhM$Y=gIqz(*^Q>gjy3Ivp^+a2OxE)oYy5#WBH^oi&K@fWcd(m} z=JP>SZbUwojzJ#xNpB6tVnSA^f!r=?JfVj`XrsWOJ`~DmAodECZ-djrQ=hE8QECQ& zbhy)`oRYoj?YcP8FEeI460FHw(dfgOI~<3oPJ<)-Fh?Ij@a5ZcgwlS-$@V4Gib11q zDb{<-{f*$OV&1#NhiLT2=l0CRJ0hvBjO)bx5MkEXz12sSzqh)HS+6kn36PfL>t*fp z&j5JA!fFxf)qDizuSbcECkxZpP~8#8#)Is1OK-KigD$!mwSkYN4@%atbTKQbyt=sB zsB;m43bh03%N8{6eA%%Ug-I0o^OA-b|DE{$=3Ep1MtAwS(Y6R!&>)$ENml~Js(fkM z;pRrpB$^F4{Zji=n|g^wkF59G?EPuM8`oob{v3h6v{ms%0AHMLfJr48lf#v?4nR?T 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 z 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 z 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%0DbP%6gCoA{{5ls{(ySz@5L#N2 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

?(dj-AmS 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

%T_{=7+v)OqQ_8jDi94;WVE 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


8sIkz3Wm|q8TFR~TV7B|Ah6KQS2_rcx z>uU~iN8CHR6ZpOdc~6*KksYp-xDwGmu7J;&Q-x7rqvw!1Mi&e@~Aw6H;R#YM$ zg!9nBV%pFl*Nq zmD=(h@>6ywcD@i1BkKXSMXB#L9t5(wWMFq*Sh?}E?Sbc=ApvNwohrEj9KG~zP-esMC4S}P|cJzt=c$1)6W1uWb&(C&2c ziij1u%D%vj5MkakN>m-Wx31;$)!0TxS&ESQ;v5131DDP|eG2FBNhTt23p*P5|65oc z#DQJDO~?8gtj=$<>+cN^E4}wI^kv9#7{R3=H}A zP`W(w0&B8Rct^hWaz1^*(< zD){DWj41q`5o;F*`hfRFvgaUT=RqtC8oFtZaIOAusB{EjO~H$&oTWzc26`*pVkQniQnoqrJw0Wgon=7A6-WhV9sP=>>KL<6^9 z?W+_SZuAk$B>Z{1n-EHnxPUJG8Z~LOxPQ6C^C48z9$=3gWSSj$%@c^5&CPxjE65Y=4T;iXDm#8`>Zt z=07Tu|3Pn|^tvN8{thDvKY9Ai*ZZL!i~-EyKTJ1Yo+%^c*rf8Og*M2BdKhrjD6(*x zA9yVJa$TFVWc*{*xPKlc254YlD&s|A|Bi|T>*%6(k97~WRx>S@xZ!{tj=OOBoOgNEkw@Z)*D@)+9u#L zt3{ImNuxC8QrpnWI`6u?4+EiQ?4f)1QR)ef8aKZ{sR|xBZKJ%}Gg!X?FU8sW?Y3MW_0>%7; z0z|j_K+sXJkdw#>z6kI(_~sy<@i-w4-|YKUTa#aw;l<%r7CWKZ6|Jj#G&Oa63cs{7 z`)gstX(3U?7l*jL@OK-uEILya=ktWGQa`4?hio!^g?&Hy5t1ZFj)60<;rlv?cX*L7 z%ShvxSm9!gDM=(MZa_tYlh4)Tp(*!xH- z8rivU{o#}H*FBSB81c7e7?M)-5)+ssB9w0{sZ^Dx5cTKcLX^Y!rA=E*1#dr)@u)ot z3(*7oPdI3|0<%t~(-?$`J5b;9^Jf1VI^78c`aqkrSKh$ zVUz9+=1&4q!%9|lZwhx2({U0Q;0mmO38@Wj^Df{mZV!)aT6uWb*jy_drnFUl8it zE=HQ)hz8Lg+d@6_6l~Cq+c#OD3mB@}ZE`5GMw%d?I%S0RQ(=f+x)d?9)HtDO^QbuM6?P~cRXf)mZ;<T|+#{Nymc@cSaREm45ojAirXJL-B@l)jU^#hj^yocueD`7!B=$kMnGRjic_)Q)o) z!q<@Ds+x*0tnI#eWdZZF+$4Z+veQdsmC7qz)!akj3p;v-;lbC1y3Q9gS-BsNqy3x_ z`pMD2Jk$v|paIpj?MOmmf9Gm8)?^qp7+aQ8gDy~t{yWM$P2wLJ#?@&#gjTuIuby{! z@GR1S@(mOl0!scTh6U8|_nn18FiapfLso(%Mff%{5b8o5@9Hh@au<8pmV0SAt+ecu zmZhb>_KGV&?iwjYsm4+xad2%TJMi;Oa@W}5`!#w z5v0WAz(hsH1Mq6#*)>v8{Fn3DOaHS6Vq8uS9~jcz z+Pw&-r!*i^)+o9=@T2v;k43jYM=na$RDJ(?2B1u@LIHZo*ttPn^i!iu1`M+egcBsU z%#HqL-Uhzo9!~ozP0@`W(~*}-tBZz~F?EkQ<6_z<`tA=PPWwB%MNfiVZ!@tUr88F} zl{D(_NH~ywks0>e{(4wYD)9S2=8?YeTIu5{nxjW4fN&p=Jq zEyg(A{6*y31L3c=-wF6m+}O)@DGx_cpJpfefiRSmTqN#6Oqk3alNesk2>Q7iGDfIV zJ|s`ZW#QFDhAA`Gk?!KA&d(BD9}5j)th11c*ZXr2UQ1)A|#kKQxctK5hVTNyUj2c zobGEmHgV`j)uF*=7@-Akxf&XH2g>yNl&EYFnOOyiC=~k-ie50AjoVlG7!B08>Bvql z!goWm6lGmM9IhGYZOY~EF^}-rfK~6%rDQ#kz9zzYSRxdNNN9_1(L>Ll zS8yl7tJXuNClSuBU1**1(Lw^ik;gY`*KYi_BX3_LZWx+OICx`*zl~!b^cA3;=7w=i zaL%2*U;lA?`2KS}I@p&54!c=FfQMVE_OHG4@fEWWGwQ~++|jS{(Gd`QmV zwZ6vee`ap;Wr~~(WF(E}-guCRvI(loT&j%!5o8M<47F90YO2T0j@BRD57kTJjtlJk z9A*bZsY-)4H)QzRM%ru@82!^3U3Hbo0>=Bt~{T1IkQevJ|AukSBbCPHs5MDd-cUn=cD={ zb*viOqxB#D+Jd~MuGGiI^V8mTD_8ekKhnkYRGdiU3oKSmE~}YsrmIQ*+SLGCIlk;y zgM**83um}2B*W?`>I&b`t+)68B*){sq8YLp)bl~}c!$8}8oV1SJ_yt=g-J?oAM{bF zSrOI}q8B22`(S{ToU=XxffiqUD66O5F}SaR7bt$n=pDa#pim&cE+@--#Hd3G^9L46 zLdGS}c(apv&Es*?!e}C5E!#@Is^kzw=w*GB$M`A(l9pH*1TfK^NE;*Yk1i(x6pt!R z%=1~!sc>-pa6C~u%mG3eU=2J?1rKg`Q$mWkIL$m`Zu(E5;)(kS@$)4G^ZNwg4aD+L zag81ST6>h89q1QPeM0NBF}7ON1stjcOZEx5s>Xj zXQj?0@w4sYgv(t>KHyjpmA(t~3x(iV@v8+uIFtsRs$B1!cX>4>i`<$swNSi5>L}V zqMP6)?pqU)vJO_KnYW3ZbOj8%7)?^)44HI>T0c4a$&1ixrPVam4K_VZc)wgCPk7$@ z+&+tt@||qINrC`wX$6s+JQtc+6CmCv_ZNrlr_!tZhhqlBU=9)Ve5S`)pK^PRvA@^?A1C>mcgr| zzCzS@QWl`9b1vLZ+2i2A2>EC`Z$>Ej9QksmRIDV$%iZ(Hy(saF47p!7@1tEjlT5ll zr}$17CJ~0teaWYp%8!N~UhRv)5CRNRw;g4#T}3S1pD0=3#SZNwbFRj>W~R+CKDa)w*H`l&;=!Jjx70s-Y{h5ve$pp* z15oqa!WHoE?uWea78d=#eVmkf#=7&$%h=e(Bqbvlj2BVpQlF$UWhk02kNtHZkK|ZV zAX&mT!qi)!e!eJlk}Og;98nrAE=A6_bgZR1E?i+%(xD;Ys3w?fF=MluRMUX;ER*`G zNlD!)axpujUXMX+x>4kj3Mv@vVe9U#X0-N#TjImMo#^MG zAQptCVoQxW>cbC<`zA?n-KN~czb#`~M^k3kOK4X{r!Io<9M#lb-$%Oojc(0H!;JCq zJU1bTUz+>!VoP2w&JaJTL17Yfl72-}D_`C&1oZ@F_f-4fYl&F=tX86)$kL|gG<;C0xuY3{`=;!`25eiuFz5kNYsrk?g;T=@BxfCI}o z;7Q_X0`H9?Q~A*5HXP+;TS`GvWhnLGC#5T^x#v>frgdcBkv>gul>~!;SZx#eT~Qt6 z)ou4Acosf%wTPpGzmo8?RMjYMq9@JJ^wrizykUNE8xplEn%Y;@>g2dXZWsOJ#e*8B zMHg(=LaNK8~FTye1c0JZG7c% z80v?~~J>ze#S*si}5nmP@&3QxtnsUbTO*Nw(+o^1`Mn4LiSnyCzabS&7Z!uQrlB!Cb zvTOT=i##OvFNU^PYL+GR;EAonv|3H**sPs_A4DXAm$c|^jp^?27t%*D^;7QpY-Nn* zXL7hwh6?12w7zSx)bW$fChxZ;v|G1(-y+4K?}Vi7eG&h9gfpataK>MaRrj{C8wgGc zZ{v2@PGNthi6GU&e}ZK7T=H7TEr|T;jo6e?pkpEy(Ye`hAANX8J9O{mL1BXzpC$Tx z3^@y`vc~oz+2cu=ds)jHChyE5S#8(j^Mu!#`-u+hqXk6LK_eIOqLH2;l8PUmK8vWc zCbfT9Mss-Ra9Q!ivPOlAs=xaynR68iQT+X7&B9B#hhdNc1#I|17~(MgkITS8o9=?p zdhe$08~N*aw2Eg4*&gVLin_x(p@%K%q7Q$kDkmY8DNX&09|}=lx!DB!Z&$4CI35WW z?umn^tb&a08x%Du0xR&sBCoX+4E?Ffs$e`}n}@y*c4TpalbF$N{tdWLp+ zp>bq4p~ZSL01)E1U*JfOs`@%z3|-9AJJk8TnV?JYRVJ1vAyqmHikO)8N~&&5Ue zMpr)|Y$HjIYAO5Oa0vRV7>{435w3G%_@IWH^j&wj^A%+D+#pA z78&1nm^pLYK}UWkp?#(<*?kjX@A5vHzr6H|C(bld@%hh*z2xnzY#vMJhhY12iXD+p ztj<@2QvM-hEX4YB#UXE{i$y}KMf-@I*6bdyYhtSA6Ec^F0(uo7m_R69!`6QWsi57bZpIT(;-;jXU$; z7FXpzH@3a_k?J4cAapmz5+regVLY`=|_cJ zij9-9UX0|H@N0H0wi=_I{8H}FGxaDE^--5F&;VG4>Jh4we%NQ->4N_96J$03uv8IYld-(-GIEVkJnjSecYkObQ78iR%{&4_E>cyj`8r0tk`HC`kLHU zp<}eob|y_#;HTYE$h(nOKZh$`KZXiNjlu+3eebasP374hXB@q?6Z;c|b2pN-&|G8$ zJxYaGL*o>VFdZb!z6V*SDFBkaJrt{QzIf1giZS{a}JrmBV{~`RcCovkFCa+ z>K#{O=dCOwCRbmR&MNAjnWm3)Bsoi(>D_b>hC+~cL>jC=egF7f(P+Fnj)3h8FH0GF zaQJS)le>&I^u1)x<{}0MD~?0ZuA=_;=C~4TlIwf(+9XNsQ=ZJt$r7usL>j0vAna2< ze$DG93I??jGOftg_cY=GH0I}^5T0L!U{B_nU|XbJOrNaHnh(hDfcylT%U!Z}Xe{PH z$#4McoEioA;Td-}oENg=Wb-___*Q$K4jSh3?Ys3&x*TA$sjGWA_tHnfSX500x`!k7 zh&uArtYGG^XcY5pH@YAe1qpUd>}wE6HQU|`P)GJi!EVpc{3Vi~r3Jmy-3mAPNv2I1 zKFL>nJ{~a$Vx4#@5%SJ@RmKai!!=eI<$Jhf(+1CDr}UJr@4TK)b&a~nj3CTZDt1@} z#1mdXcz2hv#9#>ebR+z-3EO+WN((Y34#xJqje3wsqvD9qu>jo4vx}CcH!lJW6lT0k zfcIvj-)7%z9#q-*W@Hm=CCj8#3jQ1<+5!x&lXq;=t5%g>9#Y&slV79mxl}-B$5KJd zt!++&O7I@B@_!{^3*9;h%w`c+L@&cPRkhun(b@TszEbS*aBz@<6Cn1oG|@}h0lPT1 zU^)gbaQ7u2Uv3XTIBLTJFI~*%gTOu_)7uaSt|Mh?g;OgaWnb@D9)XO98O zfr~~MCU8Rylr~ajW7RNtBn#@zk2vJ$w&&Ha%=zO-^v@EZN&G~*K5IKa7e264e#mRF zz35^x!b0cApR&rIWp8HvK1dvD8OZD^UL@vdThtWMk)_R-xz?j@WRVS87hAq6Or7aY$#kl-1YpYJo231lNa-Wr6Jmx}$C#D^`B_;SiHJes zvYQFzNG8O|UxpZOc*}y`pz^y`O=o!ZjbI8`&*1PxZ)kt^k{nD!uG9YRT>t4d;E_rI zQ9RKH*TRA!u^&}iAl&=C1plZk*7!S#F;3|V)at~wSF{yuj18<+nx3FfUtgt46Hyn;r_hd)i|poFHHFEA zQw6vs!OwPZcbl(vSU&xnn>=w)>i<}4Zi{lXn^(4{rbuu4i@d~|dG;h)S+T8Dj%SoQ zNDP$SA_J!tU^X*YMoo$#Hp|d5+}}*tEVX%Soja;Fs}cpQd!7hg zTg7*+&kN7bciLqnXXZXR?0<85>rv-!#?&_)L10(9NZmwTM_m{3#E5%B{!flrN6v^s z6k+>-`C6zWiP|^c)pB)pR?_I3;07inLHr5jWp#bE%-CVY6ospm%pT@U&R)%B(tE5b zrak62I`u4{-$wsIskFHbZS)c+IprQ@5CT{3{c=T20mn?*0-}hGi8xqw1RN=>DAFm? zeM%h#!5CwT`vMfqL9Lke%ep;7X<(0|AmXs%Bqf`GB?l(K@0)7TYNrIUDYCl+-F&jn zSFHt=dp5cC(kYgDDL!PD;$%U|oI$ZFExM@F}bI`<)i6SL za~9M9vafG>Oge#OE=Wk0K#~<++tIQcXf27dTl+VMKL0t6?xwKy5tFMoThnD=+kMcI zX2aSlldgfMFPejgp8(@t$t^+3fPRGKI~ooEK8nh**jx=JxTm9nsmYVr3}Z}GuzI(K zp%3tufBLNO@F=8Q;)$3qQar>qMUVtPlwc|#VDi$!r+v{-E8y&Dx7}VJG*b30MJ}|o z1m0`jPyg?ml9sBCZP;k_zyOQ0gX+}1ubjMxF}*L4n0~N1+6V(L{fBM8rMIH0RS92P zM2V(g{pLMiL{md^M2x;|UD{azyxq0oU1}Hq zr9t?*J8V^dpe|z%?&g!)86W$IV%wzDieG=qUs++&lW|ldQ9d;_dxz!d@Ezbw)I6su zd{h+E&2%aaJX1Xmx5~sE;h7VqGSKR=C8#Ct6n*>UAGhCqTEbas?I^NhfdxXREEybx zI%Ngf0a}ZyVlO%4o+!xJ7W%D7h-FiJpFa;ochjT1cPbDK5&sh!L0Hbne^HDiM37nG zslSw!Gf$?vugSY;T-ol~Lnw z|G7(Xwh~G_?n@t)4Qa3{<8xyFC8Qo%(dnedUyj;?s9r|mBuIE{UwJxyV6zue5ztv` z+w70Hly0~z1A2*_?c^INaTG!GWIBzZFnFru%u<`SZ9+GxY?xiFPcz0Y%OI-@6VLv1 zl0$r9DnF4y#AZX;qs&^dgq$z*a&49S+R;Qb&c@)zQ|z6C6NWT~${pDCeky7x8OUw_o#(6{kg7+iOdt~>&> z5{gMP-;Yy9CEyHkHkdo#vs}N=SHYS&VgZz6u9Z;TYR{elFFGVX+3x34)sm~mudXmO zXm1)OxM%v#Wi$RB)!p=}FP@sxEOPsJoTM^;yVU-a0&2nrrqtDzcXs~cV5ln;_TGQB zuXg3F8L3u-n=f}6Z&cZ-wLa$xisR{CEza9zdM*bO(&&vh?rLAw_M$RA%fB6VjGU!j zBBd_FvT!Q3%D2I)dH=OdCJX$hxkVA-r|7jjE47ngmL4*8b!|(BQeK|*sm4!+{;NIJ zW)pDfXU*npr2Dg5%yRVD&=`n~x^#WjAbYjob+K%#(d^hYP`N_=;+mBKP&pU$WZO~s zHJ`AMMT2N)s2zO`*(ve1amuUZaxliGys@FWeAQ!VW2SvT`DF^KIdM0WV%5S^#yvOA zZP*EMwC5lTTW?zUBBoV4Ml~*Ba_^I2;yFH0p#&-O*tNTETLPsV|IUQ|=wQ#gZdX*} zQE>>PrZ=-XEQ)Jd2Krtc)83eRbbN5Tm2vYxALHd3bDr~CZ<%1Wv!O_6s@pF6`SM(I z_WWo!ul!VLj@1K?)Ue^ra^bfA3Sr>~C$iuIxqCyp%?}eyNESMZ-rmU>X0~#J%Inj@IU}LtzAnmTE z>*~+=%kz#x`syyR1_mLSy`{~5wSrlO0!ht|r$-PB8)(YL+^0W6TBm3unOECE*?g~LKCYi);^y7Vlt+Bl9H(7*_nb?Vz?=-rJ7PrfYsbKL}+5gIyk$jydv=& zWl2#>WEGR5jp3g*>iyznNsv~9sq3%NVGeDSPpqHF11Fk~^t zXK_@y%G`}|%&iEv)8ut4xkxKc-PG*z^!V-ddc@Q+n&zS87%%hV5!e&z4UX(ueUrKj zG=w&OGGQQ?6v*-?N~Ba1i~oDbEEI8qg`U(F`HWhXGi&dhW#OiyX! zZlkF#hgoszg}nWl({xHBs%016b%NL0GJ3t_%jMSO*uRN-oHvFmRJ-9x+lB~fK`18L zFnXpg)0oKYk7&f|vcs0=UumbH=S9_?Yp139xb=1EsevX(2xLdjU}aO?>&OhA#B8n1 zc(k>3a5}uPKb^OgP&W=UJbk;wV?T@4v$PII$!gGH>8_P&s&b-xW4fN!)%-C5D1*^T z8{ITru6xgrGm?>-f6vz~m{HUPX>}pBqDXAIUljjQBJJ9 zf3?IZ^SE@~uF+Sty*H5+*bUv1ngFo$Fy`L`W#v$D%DWS za|-y=YQe_a#}&bF1i6#?uX1PH5IcrYK?Tx9BO`aS0Iy0@FR>2dB73=GU-qu$O?JF< z`iT9f;wGpwcSW_KWSJ90H50nHyS*bYC#viW^HoV&GUhxpn-fn1|Az89I7(kpul6tpP!W1?^8LVlzWl+f#m2pF zRS*zc7Vb$mA9l5hD%_-TDmaUKHwW^UJg|H5`Z%<7+SCDgUPWj#A{9Nh;OBKp6)_*% z^Q-(id8#DN+6&!wNS;slO-bm-(SZ1k` zd&ablYIj=d;nQ&1aE+;ZJlc1F4IK;bR1#px*2IdKe~Xx^B6W%bhv;me!1WZ)YPUlGut1DEQw!cXfbkrFr1Z_1UB5>dJ);VZ1J5qmf2_auq=Zd z&UZO-Z6%Uzbrqi;o%~B$mlJ%guWTUWyRn%+s>rkpms^~;Fbug}$MQh@*(YfC^FFW< z!A%b9&C=aPKKxZ8+*yW6-VSD@O%9gwJMWxl9==9=MyB+IDtIQo-N5O5qAqZHCS2cRDc+~N$ zz3y8hGH}f*9u*$!i534%Uj#LeOQ(I~baPn8_(#*on7=;TK#SKgyL!MeH)?g7vP*@r z)XqTB6i+1R;LxN4XSem^q{FFrQK12Q60F#Oa zyXLzPJ!U_zni(>CnfbM9Nd@{xy?QWMhf}cpR3t`#HH2>oHse|O85XAQL5S@=6rqo% zKPT=4e)07c(lP38@@zIn8^_=9=yVpGR|7d@;VA2NeIoxZ^W_*UJMS?uBN2GZz{nW) zAEd1`utd8tm*QLXnZIa!MeSl{+e06^TH$Dac1OW|!|{+~(T zA#)B`E+;u|WZZ=Z8W07pYd>^MS`LJKL}v;`u+aE%Cp~f<=MV=v$2s>t+u7+0NT?`r z4rkdgv06AC76A(uVkufGI%X4rP7MZ^*u58y<>cjQCI8#{F+tX-9-v=u={8&xW0RKI z!8T<u`+iMOy93&_##JlSoO4afr%)cI$7E9y z+U;82Pn2|ZxDg$gr%g2cbbGMHu*aYb&u+6q|96@OM1yP;8jE-yopIJo(e^&Dv*#A} z4lq3XmHOjL`oFq_v@}d`NWJqhw)rXAX3jk9V5bQ3QvaMX$ywNJG~WX z!iEJItF+wDJ!&<{E{)3}<|{eKnY{$^h||-Ze97OK1O0YfW?tfHBPYD;WTERQ8uv`o zQ9CU{bP_XHE+(MXLC$eBw!4adH1;yc^uAt;59=PCP6P)9N)F@VVLDgwbMRNEILm*pP8uev)5}>Y82=_j#Y#WUg+$-G$gy{EqwGQqH+u0D zIj5MRjO%D}>Q7Pwh2_viPyFP_{0S7!Jw4+>cCN!2b-t&%v3F|N^a7vC3DW!CMf$x6 zcsRvP0cSku=f*x5kp~>hhlvwYJ$(~E9tp#dm9g~STa2iF3SR3`S?~?pmB^!cefKy~ z>pA|jqlUtqh;awm{+y(vV?MM85!;oW&usa&jRwpw_=wls?_jMN3j_Qja{HZq7KxWdl+5myF*|6X>JYgmq?dTNegb zeNLwL1ikT@Xd8zXDPCx3R@;UNa)P0gc8|U<(x832AtmpjORGQnZg!>lZ58URJ@?3x zj+G7hE*GLuy8?SJ)>bXwZn-$Wi>%2W{Ll_MQ*VrvDy*&f@h*v9rQUF~!F~q$fBD%- zUh=cV4>ya3JFx~1D#Gy_sAB$ z(ux>411bx^4?yK(S@;&D`p<~O%B+QmgJ0radPg9kNv?|C*Se(J_#18j(R76srr0MUXK0Q{ z%N%8GG0A``*#DHGZSmNnY_}m(yw4$bgVN0^kZMxyNYa7AgDoQ8G$Cf_zRT+7(PZNo z6guffe=a{FRE1z-H~vMf^tDrQ8gBjr*4+zYaTlNPQ-Zg<;tju97Wi6q>;dx)z1m=e z<#NGY894H?Z2z2yRzB4n%g_VtxiB&-nEE;AZOCOSAq_jyj(=p2_8 zntk$_Q>?(tmMdkMIRq*q3*QJ@|HY*r-;>1Ljp5&f)RA$-UPWJK(tZJcXcR8|$<(p* zhNl3PeIzADqtdEuWK{~WO~<=VP^|krJ)09cAt%ba(NhvBxwyvvSk-BH!~OE@BKJke z8-^uYh1oMl=U<84Es*1HfLo%Ew}^M*k4$0Vp-O@_dQF$Ex}KoTS`@Z1Z*+Bfzbu$b z*5ITcwh;guSjI(o#C#a*YiwBiGv9ixx~=PYk(ZfU-E2b-D%|a;InGvgQ%2;_NFo}( zET`X-Xcx*G_3{pQ$Q=rJ;J$dqC&(e>m@=vH4EQW$kTurGj7A)fy5Ng?+a)VvH6Hke zF5*k@a-+e~+EMzKxTTcfs5XtxdoUN^;O|wix z@4)iFzIhzj$V<-%9jtpTv&-#j&ncPp{0*G#V$FJEhO46iOey8b3>u}SZnH!TQ}s3A7TURS4LPUz$C@NXkZ!&XM{&IuANkSb zg#&s>btD8bgI%%~ZxbE04!8hTp5wkc^c*VOo;Z~4JQ*Y6HDzXI+DkQIEjT?!P@!Bk zeO^ zy7>&5PHglS94HN%36!e;knlQ*>Gv?Eq}UHG)|px2Dl!f34CBSO+g`;z&SSD}qn(TI z1z*HfW0r{M4~YY}t;!ttNF$0s`Q(47PABQkv`$V47168R5c+ggxjom1AiA8E(P!@v z;htLAO8vKu+rLs-KJH5+mlDi;eg5Ppi4sp4u=({mx0{Ji)=C!EbVJ2T#JAMCP^7?_0{SK9=3uo7>NvXq8f|@x4Fqo|F}< zaSmi8Lp$Ua%JLqS=RiFhi}#_!Zzi>gmbVK5#pTM-X+I|W-}Vn zj{fCOJJ%{Z@D@f&n6SL$$NdrYe;SpBKMu<>JMjsSEW~!8h`!+_$Zmk~ZflKkdMjx} zouZHAsZjgeU^R@hIU7e>O|eh{o#SfUwA3;d^JDZIgUYr>ed&9Y&^ikHeVacmRhkNq z-DU3U;49Z*rb!71aYh+UhPlR^UGFTd!Be(<`qb=%XD8mXUsU3s=f!M+m&bVgAuq2X zMK~RUbYB{C#*`O&-H7|qFt-s@?0RNkb6l6nYf!d%=z<|l6v|yykbiycKPlnq zAhzWWOf~oi?dBxw;5digu2lYcKn=v%1J7 z?*85MKVC;s8B`9m-ojmBab55OM^dJ80G0WBH0lhVAXpTvdL2HQ6SMZuu@QBQPztBqT24q*?S|!9vZ<;8R{^P$HwkTi>Dw6$?lee_>^XG$ z=?cH_7>x9BXY_i2Sm8L?oB!?y2`8iU>_+RK0!pV>GupqBxsKIqrp==yxbXrSIc*G3 zTLIqn*Y^(Cm0G!H>NMx|oDB8?QYova#}>zS!;76Oj9w!tFCI?sI6t;`1gX>IJ02T4 z*mc=?wvWRITD$rMx6XHA?qm8d;tZFMb%yOu>t~OosH^Y^S!YA|Um}KashGuPfv+#s z$PtnH+VSC<{5YVk0$-=eh<47sSE#8WPmte7nA{#SY+x|DM!;zc(uQ>f7B^ z!1?peo}It=obR$^qw==rNK&LaH^zvR&#q8ri7!~-7pwTY%LQX#%OKaWDpbV7H>B@T z&Dkd;F>3Ewg?rM&P#})%1tv(c9=gmyLe`=|UGp)0+~R7ohlp<;P~q|srRGi?^@Zdj;+nR zN^Mhg?Fh6UJ{za;+A_tn?n<5=dYx3_QF;j?d-?IH%gb9}{~c93iKO82OYq*sf2Ci1 zb#V7pOCuEx9HYg3^e0)zA1C_!32wSm{->8RMfN(vzbF6cf2zK4NcZ34zu5YJmw=y4{(Ce3 z4JiB@I=}ZWwqJ`k@(Ecg68M}50EgYx(3|2yG|{>h$=QGIw{a?j{9;#$Z1;pLO%?%-GOdHufw zLXGq6Y1B~Z7&P^vYZ-Cn1c*=cf9D7ZTNar6=g`gq2WLutW#&3<07Fbgh1G79;Z!Vb zg}q9~|K~y?=Sw8ZC751K{ESndFHYn6Z1$HHZyMgWXtkbgB#<-JlseKj z{I_2JE?JWE^vyyCO$^_UWh*o*JM&L##k5aAl8yQjU)6Gzqtc=X7beN`@vvSOpHg@I z(Em;UP@!uGyBuKxcyu1CSO`C>^OB@JiAl`k8e@=Wlu;ioT?WI(@b}s4WluH)-Ix-e z3WOCL9BbZ8J~67gG}Xg?Th61#UG?0@>>eSVy>shKJB^*Wn_=a@YYATgT7CmN%G&os zqTg5dMhwaip{L&02CPg-<9-3X!^7y~EZ|R;Eu$fAvm5gsP=po6?Mq%dsrK!i2jmcI zlcZb5voHg(%w^IGNB`C(SM7?C^Dk5;x=S=Om7+Avf0yPy92QDM*iv(Snd$@~0hl_+xAn3PT&?EmK-TFtaJypq$ zjOg_Zx1;Zf-kE)wN~CrCYaI|V5M&y(f3a%^?2|xio1jOlrmn5da`V?o0gvjPMy%qA z39WKFUNOM=FGnG<5fRE}4sqQLRJSeK^74*n_c#NdWT1Wj-}}UbEq1Gv=MFJHV*)>J z&j755Bs-yBb3xB0&(BR=Jdz@eb0qmbe`--9tLT=wI5Ik0k=j+eC0><@D4m10rC@`g z-Nj7~S>7$U5NzZco(}Qju}snSRxw-ZIw(oV7zKxych!eeN@ z?_tMtVvQs8`Ee`dA|@G5LQ z;EAIPdd1WQJDqsmjeALoa|&Ql8@&0ci|8$M(>X%B@g@PEJpSVk_1l`Aozv*9admRg z^Y=bosf(>yDd&eP0b17~tXhB_8s(Mc?g!um23dQHp{GHU*au%yuP2JnPyq&bTRZ=F z8!+Ly>F3PpS#-{S!xVcc#^X~l3nQb~nIQVnwNLL=iW`L@Ru{B(tH{!0d*IoS&(5=h zzn+ot-UO_BUmK_87R`@O{syH+u4G~^9s zAhh`kpZbBak%*t9Uha?m9>)XItmfz`Kj9IEl*3iVx}9I*vpcMl8?=ZpNH6q=%;Cfz z{eZq;qd#YU=A7Af2d;2|A)mH2@tw{VU}ih;*z;rs^>tS&S3fBsp@{Xh!{m}{(sCE} zakh^9j%2I2owD`@6|PD~eLuIV5m(w-V+#8+jHS-=r!Zjxda)`vb7G?L*}Cjv8A&lz z?;}_72k>CD`Z}+KSh4XZ;-2ayUN0bGWPI@^nR`|_OPSENl3Oi zw4fyl`C|QLQu!$cZvPwa;q!h}w(ij6j?%ROe+)={<#K>UUHa^iZ(I5NJ!*x{I4kL~ z%){NgN9HafLLa@>Q*~31{^;!z^oOg5bYS41-llQzJc<`z2m#IY%-w6`U?KeFse%j9 zN{T?QHM|Ufm>uX&nS#kuU$g%$KdGKr8AUt4mr&YAny1}2`lKliNA;KvT)hjAJwu}R zU9hCJjZV0cR+oPC^Sw0Ku_SBb26g=ilbbjA7O`SN_WuQ|0#yAT+b?)C@JkNr);aDw z%h>zMd9d~kNJQj;TRY-)x<$3!P}c1 zL`39Dn^z}x-*cDO8D8VP_0s!ngy13~a=%>b_}pB=k3$`=*K^jld?zCE*tLb5-SL2z zZBUkXG90IlP`4R#YzDfd3B|M3z?XOm%a_9|botev*KZtvuU!G!r1foqx2-yztP0(& zUVorp*$qPE$=cjuw-o`{1@{#Z5s};3_MX}f+Osyq*=3($FQ^(nR}n6^a<>DJ%B^$@ zGejPX8=Rmt)nkG5Y-TWwmu0H?7wYc@RG1M%~?qv@eOsW40On zwjuUf+u!DY-M-*#{(j5EE+4dhyITd|BJyS2!AUO>5fQn8PZ3Zk^bnET(6Qro?$h5- z`g=}9o(kuDD1G6H^etEU-St&B3cy7k7=7>+5fOQ~^ge!jT6ZFH8}}`A*0D@P xL_`Es0WKmUA|mqHDU=bB+t9H?L`3A~{(pvo%ib{+>4N|O002ovPDHLkV1jsqt1|!q literal 0 HcmV?d00001 diff --git a/docs/tutorial/images/integrator.png b/docs/tutorial/images/integrator.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b869901edbdffe4a1b675a5a9c5c35a708ff1d GIT binary patch literal 10910 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 literal 0 HcmV?d00001 diff --git a/docs/tutorial/images/operator.png b/docs/tutorial/images/operator.png new file mode 100644 index 0000000000000000000000000000000000000000..a45b096f2a3e0af8f715fa657a196d644d6fd00e GIT binary patch literal 7190 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 literal 0 HcmV?d00001 diff --git a/docs/tutorial/images/practice_twovars.png b/docs/tutorial/images/practice_twovars.png new file mode 100644 index 0000000000000000000000000000000000000000..858f19274c1f36ceae6d828e572b1258dde93265 GIT binary patch literal 19254 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 ZyECRH?(IkfxB?CB<_$IZLRpjG{|g~0io^f_ literal 0 HcmV?d00001 diff --git a/docs/tutorial/images/soksv5.png b/docs/tutorial/images/soksv5.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ca7aa087e56162d687ef027eacd6842e065ed9 GIT binary patch literal 121030 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�={Wr|E|j(NDT_%E-< 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%0AHMLfJr48lf#v?4nR?T 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 browser + use case. + +More precisely, this tutorial aims at reproducing :term:`variable`\ s behind this Mozilla Firefox settings page: + +.. image:: images/firefox.png + +We'll call the variables **configuration options** since that's what the variables represent in this use case. + +.. attention:: We are not coding a Firefox plugin here. + We are just going to handle some of the Firefox configuration settings + with Rougail. We are just validating them. + + The configuration option values entered by the user have to be: + + - validated + - consitent + - conform + +Let's dive into this **configuration options validation** use case. + +.. prerequisites:: Important advice + + It is advisable to follow this tutorial with the help of the corresponding :tutorial:`Rougail git repository tutorial `. + You can instead copy/paste or download the different file contents that are explained in this tutorial step and save the files to your computer. + However, if you use the git Rougail tutorial repository, you will have all the necessary files distributed in the correct tree structure, + which is in our opinion much more practical. + + :: + + git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git + +.. toctree:: + :titlesonly: + :caption: The Firefox tutorial + + preliminary + choice + family + types + calculated + properties + dynamic + jinja + customtype + nullable + webaddress + multiple + document + practice1 + propertyerror + modes + practice2 + validators + namespace + sequence + regexp + auto_save + underscore_parameter + variable_propertyerror + redefine diff --git a/docs/tutorial/jinja.rst b/docs/tutorial/jinja.rst new file mode 100644 index 000000000..4f859bec1 --- /dev/null +++ b/docs/tutorial/jinja.rst @@ -0,0 +1,674 @@ +.. _tutorial_jinja: + +Playing with Jinja +==================== + +.. objectives:: Objectives + + In this section we will learn how to create new ways of calculation. + + Up to now, our only way of dynamically (that is, during the runtime) calculating + a value is to point on another variable's value. But this is not the only way. + + We will learn how to insert `Jinja templating language `_ into our structure files. + Please note that we do not intend to template our YAML files. + That is a completely different activity. + We will simply insert YAML code to calculate the value of a variable, a property, or a parameter. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_070 ` to :tutorial:`v1.1_073 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_070 + + +.. type-along:: preliminary thoughts about calculation + +Let's reason on the previous HTTPS proxy configuration's manual mode settings: + +.. code-block:: yaml + + use_for_https: + default: true + + https_proxy: + type: family + description: HTTPS Proxy + hidden: + variable: _.use_for_https + +We see here that the `https_proxy` family is hidden +depending on the value of another variable. This is what we saw previously, +how to hide a variable. + +We will code the same behavior in a somehow different way: + +.. code-block:: yaml + + https_proxy': + description: HTTPS Proxy + hidden: + jinja: |- + {% if _.use_for_https %} + HTTPS is same has HTTP + {% endif %} + +This code has the same result and yes, it's done in a more complicated way. +We have replaced this simple `hidden` property variable parameter by +a Jinja parameter. The hidden process is done by a calculation. + +The fact is that it has same result, but it opens more possibilities, +this is what we are going to work on in this section. + +.. glossary:: + + calculation + + A calculation is the act of calculating the value of a variable or a property of a variable. + This calculation can be a redirection of the value of an existing variable (or property), + or it can be a custom calculation using the Jinja templating language. + +.. type-along:: Why the Jinja templating engine ? + +We are going to embed some `Jinja templating code `_ in our structure file. + +.. glossary:: + + Jinja + + `Jinja `_ is a template engine. + we are using Jinja in a classical way, that is, Jinja allows us to handle different cases, + for example with the `if` statement. + + +.. questions:: What about a `Jinja` calculation? + +The :term:`Jinja` templating language enables some complex calculation. +For example we can code more complex behavior for hiding or disabling a variable, that is +not only depending on the value of another variable as we saw before. + +A conditional hidden family with Jinja +--------------------------------------- + +Here we are going to use the Jinja conditional (testing) statement. + +Here is our structure file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with some Jinja code in the `hidden` property + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + '{{ identifier }}_proxy': + description: '{{ identifier }} Proxy' + hidden: + jinja: |- + {% if _.use_for_https %} + HTTPS is same has HTTP + {% endif %} + dynamic: + - HTTPS + - SOCKS + + address: + description: '{{ identifier }} address' + default: + variable: __.http_proxy.address + + port: + description: '{{ identifier }} port' + default: + variable: __.http_proxy.port + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + disabled: + type: identifier + when: HTTPS + ... + +In this Jinja code, we are testing the `use_for_https` variable: + +.. code-block:: jinja + + {% if _.use_for_https %} + HTTPS is same has HTTP + {% endif %} + +If this variable is set to `true`, the `"HTTPS is same has HTTP"` expression +will appear. + +.. note:: Have a look at the `Jinja website's test section `_ + for a closer look about testing a variable. + +.. type-along:: Let's set our `use_for_https` variable to `false` + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/config/01/config.yml + :language: yaml + :caption: The :file:`config/01/config.yml` user data file with the `use_for_https` set to `false` + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: false + https_proxy: + address: https.proxy.net + +Nothing special appears when we launch the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/config/01/output_ro.html + :class: output + +.. + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No proxy) + ┗━━ 📂 Manual proxy configuration + ┣━━ 📂 HTTP Proxy + ┃ ┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file "config/01/config.yml" + ┃ ┗━━ 📓 HTTP Port: 3128 ◀ loaded from the YAML file "config/01/config.yml" (⏳ 8080) + ┣━━ 📓 Also use this proxy for HTTPS: false ◀ loaded from the YAML file "config/01/config.yml" (⏳ true) + ┣━━ 📂 HTTPS Proxy + ┃ ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ http.proxy.net) + ┃ ┗━━ 📓 HTTPS port: 3128 + ┗━━ 📂 SOCKS Proxy + ┣━━ 📓 SOCKS address: http.proxy.net + ┣━━ 📓 SOCKS port: 3128 + ┗━━ 📓 SOCKS host version used by proxy: v5 + +We can see that the value of the `https_proxy.address` is `https.proxy.net`, +that is the value loaded in the :file:`config/01/config.yml` user data file. + + +.. type-along:: Let's set our `use_for_https` variable to `true` + +If we set the `use_for_https` variable to `true` in the :file:`config.yml` user data file + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/config/02/cmd_ro.txt + :class: terminal + +and we then launch again the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/config/02/output_ro.html + :class: output + +.. + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/02/config.yml" (⏳ No proxy) + ┗━━ 📂 Manual proxy configuration + ┣━━ 📂 HTTP Proxy + ┃ ┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file "config/02/config.yml" + ┃ ┗━━ 📓 HTTP Port: 3128 ◀ loaded from the YAML file "config/02/config.yml" (⏳ 8080) + ┣━━ 📓 Also use this proxy for HTTPS: true ◀ loaded from the YAML file "config/02/config.yml" (⏳ true) + ┣━━ 📂 HTTPS Proxy + ┃ ┣━━ 📓 HTTPS address: http.proxy.net + ┃ ┗━━ 📓 HTTPS port: 3128 + ┗━━ 📂 SOCKS Proxy + ┣━━ 📓 SOCKS address: http.proxy.net + ┣━━ 📓 SOCKS port: 3128 + ┗━━ 📓 SOCKS host version used by proxy: v5 + +This time we can see that this time the value of the `https_proxy.address` is `http.proxy.net`, +that is the same value as the `https_proxy.address` value, because the `https_proxy.address` variable is hidden. + +And in addition notice that we also have a warning: + +:: + + 🔔 Warning + ┗━━ Manual proxy configuration + ┗━━ HTTPS Proxy + ┗━━ HTTPS address: 🔔 family "HTTPS Proxy" has property hidden, + so cannot access to "HTTPS address", + it will be ignored when loading from the YAML file "config/01/config.yml" + +This warning is an alert. It tells us that the `https_proxy.address` variable is unreachable +(because it is hidden) and that this variable's setting **is not used** in the current :term:`configuration`. + +The `--cli.root manual.https_proxy` Rougail CLI parameter enables us to focus on the problem, +The root here is the `manual.https_proxy` family. + +.. note:: Running the Rougail CLI command with a root parameter means that + only data concerning the root family will appear in the command output. + +let's launch the Rougail CLI with this parameter: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/config/02/cmd_root.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.root manual.https_proxy + +It gives us this partial, but much more readable output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_070/config/02/output_root.html + :class: output + +.. type-along:: Launching the Rougail CLI in the :term:`read write mode` + +Let's launch the Rougail CLI in :term:`read write mode` and with the `--cli.root manual.https_proxy` root parameter. + +.. code-block:: bash + :class: terminal + + rougail -m firefox/ --cli.root manual.https_proxy -u yaml \ + -yf config/02/config.yml --cli.read_write + +This time we don't have only a warning as in the `RO` mode. In the `RW` mode, we have an error: + +.. code-block:: bash + + ERROR: cannot access to optiondescription "HTTPS Proxy" + because has property "hidden" + (HTTPS is same has HTTP) + +.. note:: Note that we can see the "HTTPS is same has HTTP" string (the one that was present in the Jinja code) + as an explanation inside the error message. + +Jinja with a description +----------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_071 ` version:: + + git switch --detach v1.1_071 + +It is preferable to include a description related to the Jinja calculation. +That allows the calculation performed by the Jinja code to be understood rapidely +without having to read the code itself. +This is useful for the :term:`integrators ` who review these :term:`structure files `. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_071/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with a description added to the Jinja code + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + '{{ identifier }}_proxy': + description: '{{ identifier }} Proxy' + hidden: + jinja: |- + {% if _.use_for_https %} + HTTPS is same has HTTP + {% endif %} + description: in HTTPS case if "_.use_for_https" is set to "true" + dynamic: + - HTTPS + - SOCKS + + address: + description: '{{ identifier }} address' + default: + variable: __.http_proxy.address + + port: + description: '{{ identifier }} port' + default: + variable: __.http_proxy.port + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + disabled: + type: identifier + when: HTTPS + ... + +This description will appear `in the documentation output for the family `_ + +With this rougail command: + +.. code-block:: bash + + rougail -m firefox -o doc --doc.output_format html > readme.html + +It outputs an HTML report, here is a part of it about the `https_proxy` with the `hidden` property: + +.. raw:: html + :class: output + + manual.https_proxy
+ + Hidden: in HTTPS case if "manual.use_for_https" is set to "true"
+ + Identifiers: +
  • HTTPS
  • + +We can see that the hidden explanation for the `manual.https_proxy` family +is the `hidden` property's description. + +Jinja with a parameter +--------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_072 ` version:: + + git switch --detach v1.1_072 + +Regarding dynamic families as in the use case we are dealing with, here is an interesting Rougail feature: +it is possible to retrieve the family identifiers and declare them as parameters in the Jinja calculation. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_072/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with an identifier type parameter in the hidden property + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + '{{ identifier }}_proxy': + description: '{{ identifier }} Proxy' + hidden: + jinja: |- + {% if my_identifier == 'HTTPS' and _.use_for_https %} + HTTPS is same has HTTP + {% endif %} + description: in HTTPS case if "_.use_for_https" is set to "true" + params: + my_identifier: + type: identifier + dynamic: + - HTTPS + - SOCKS + + address: + description: '{{ identifier }} address' + default: + variable: __.http_proxy.address + + port: + description: '{{ identifier }} port' + default: + variable: __.http_proxy.port + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + disabled: + type: identifier + when: HTTPS + ... + +We have added an `identifier` type parameter to the `hidden` property: + +.. code-block:: yaml + + hidden: + params: + my_identifier: + type: identifier + +Thus we can refine our Jinja code and hide the `https_proxy` dynamic family, +that is only in the case where the identifier is `HTTPS`. + +.. code-block:: yaml + + hidden: + jinja: |- + {% if my_identifier == 'HTTPS' and _.use_for_https %} + HTTPS is same has HTTP + {% endif %} + +In this Jinja code, we can understand that only the `https_proxy` dynamic family +will be hidden when the `_.use_for_https` variable is set to `true`. + +Let's set the `_.use_for_https` variable to `true`. +We have a warning: + +.. code-block:: text + + 🔔 Warning + ┗━━ Manual proxy configuration + ┗━━ HTTPS Proxy + ┗━━ HTTPS address: 🔔 family "HTTPS Proxy" has property hidden, + so cannot access to "HTTPS address", it will be ignored + when loading from the YAML file "config/01/config.yml" + +It's helpful to run this command in read/write mode: + +.. code-block:: bash + :class: terminal + + rougail -m firefox/ --cli.root manual.https_proxy -u yaml \ + -yf config/01/config.yml --cli.read_write + +because at that moment we get an error: + +.. code-block:: bash + :class: output + + ERROR: cannot access to optiondescription "HTTPS Proxy" + because has property "hidden" (HTTPS is same has HTTP) + +So the Jinja code worked well since the `https_proxy` family is hidden only when +the `use_for_https` variable is set to `true` and the identifier is HTTPS +(the `socks_proxy` family, however, is not hidden). + +Jinja could returns a boolean +--------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_073 ` version:: + + git switch --detach v1.1_073 + +So far, we have used a Jinja expression that could have a `true` value, +otherwise it returned nothing (i.e., None, that is a `false` value): + +.. code-block:: jinja + + {% if my_identifier == 'HTTPS' and _.use_for_https %} + HTTPS is same has HTTP + {% endif %} + +We have implicitly used the truthiness capabilities of Jinja, because the +`HTTPS is same has HTTP` expression is interpreted by Jinja as the `True` value and +the `""` (empty string) expression is interpreted by Jinja as the `False` value. +This behavior is known as implicit boolean coercion (or truthiness). + +.. type-along:: The truthiness of python or Jinja + +In Python or in Jinja, **every value has an inherent Boolean interpretation**—it +can be treated as either `True` or `False` in contexts that expect a Boolean +(like `if`, `while`, or logical operators). +This is often referred to as “truthiness.” +However, **not every value is an instance of the `bool` type**; +the `bool` type itself has only two instances: `True` and `False`. + +.. rubric:: Truthiness Rules + +- A value is considered **falsy** if it evaluates to `False` in a Boolean context. +- Otherwise, it is **truthy**. + +.. rubric:: Common Falsy Values + +- `None` +- `False` +- Zero of any numeric type: `0`, `0.0`, `0j`, `Decimal(0)`, `Fraction(0, 1)` +- Empty sequences/collections: `''`, `[]`, `()`, `{}`, `set()`, `range(0)` +- Objects that define `__bool__()` returning `False`, or `__len__()` returning `0` + +Everything else is truthy, including: + +- Non‑zero numbers +- Non‑empty strings, lists, tuples, dictionaries, etc. +- Most user‑defined class instances (unless they override `__bool__` or `__len__`) + +.. rubric:: Using truthiness in Code + +You can directly use any value in a conditional: + +.. code-block:: python + + if some_value: + print("Truthy") + else: + print("Falsy") + +.. type-along:: Jinja calcluation without truthiness + +This is truthiness capability is entirely possible with Rougail +but, in programming language theory, +it is a form of **implicit** type conversion +where a value of any type is automatically +interpreted as a boolean in contexts that expect one (e.g., conditionals). + +We like things to be declared explicitly. +It is a better practice to simply avoid this implicit coercion +and instead: + +- return a boolean value as the result of the Jinja expression +- explicitly declare that this expression shall return a boolean type + +Here is a Jinja code that return a boolean value: + + +.. code-block:: jinja + + {{ my_identifier == 'HTTPS' and _.use_for_https }} + +And in order to declare explicitly the use of this explicit non-truthiness pratice, +we add a `return_type` parameter in the `hidden` property: + + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_073/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with an explicit boolean declaration + + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + '{{ identifier }}_proxy': + description: '{{ identifier }} Proxy' + hidden: + jinja: |- + {{ my_identifier == 'HTTPS' and _.use_for_https }} + return_type: boolean + description: in HTTPS case if "_.use_for_https" is set to "true" + params: + my_identifier: + type: identifier + dynamic: + - HTTPS + - SOCKS + + address: + description: '{{ identifier }} address' + default: + variable: __.http_proxy.address + + port: + description: '{{ identifier }} port' + default: + variable: __.http_proxy.port + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + disabled: + type: identifier + when: HTTPS + ... + +.. questions:: What about the error message? + + If no text is returned by the Jinja calculation, what about the error message (in case of an error)? + + In case of an error, it is the Jinja's description that will appear. + + In our example: `in HTTPS case if "_.use_for_https" is set to "true"` + +.. keypoints:: Key points + + We have seen that the `disabled` or `hidden` properties could be calculated. + The default values can be calculated too. We'll see a bunch of examples later on. + + **progress** + + - calculation with a Jinja type calculation: we can hide a family + - we know how to describe a calculation + - we know how to output some documentation (markdown HTML) of the :term:`configuration` + - we can calculate with a dynamic family identifer + - we can set an explicit boolean Jinja expression in a Jinja calculation + + **keywords** + + - Jinja type calculation for a hidden property + - Jinja calculation's description + - identifier type parameter + + Here we have come to the possibility of making any kind of calculations based on the state of the :term:`configuration`. + This is an important feature to manage the stateful aspect of a configuration. + diff --git a/docs/tutorial/modes.rst b/docs/tutorial/modes.rst new file mode 100644 index 000000000..0d0baf88d --- /dev/null +++ b/docs/tutorial/modes.rst @@ -0,0 +1,90 @@ +Modes +========= + +.. objectives:: Objectives + + For information on the concept we will be using in this section, please refer to + the definition of the :term:`mode` in the documentation, + and you can read all the :ref:`description of the modes in the structuring data point of view `. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_150 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_150 + +A variable in avanced mode +--------------------------- + +To specify the various possible modes, we must declare them on the command line +with the `--modes_level` command line option: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_150/config/01/cmd_ro.txt + +.. + rougail -m firefox/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml + + +Next, we can set a mode parameter with a value from the list: `basic`, `standard`, `advanced`. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_150/firefox/55-proxy_dns_socks5.yml + :language: yaml + :caption: The `proxy_dns_socks5` variable in the :file:`firefox/55-proxy_dns_socks5.yml` file + +.. + %YAML 1.2 + --- + version: 1.1 + + proxy_dns_socks5: + description: Use proxy DNS when using SOCKS v5 + mode: advanced + default: false + disabled: + jinja: |- + {{ _.manual.socks_proxy.version is propertyerror or _.manual.socks_proxy.version == 'v4' }} + return_type: boolean + description: |- + if "_.manual.socks_proxy.version" is accessible and equals "v4" + ... + +Here, we have set the mode to `advanced` for the `proxy_dns_socks5` variable +because we want to classify it as a variable intended for use by advanced users. + +.. questions:: What is it actually used for? + + Well, to begin with, reading the structure file provides a clear piece of information: + this variable is intended to be manipulated by an experienced user. + +Furthermore, if you integrate Rougail as a library into your business applications, +you will have access to different types of views corresponding to each mode. + +A useful application within Rougail itself involves filtering the display of certain +variables when generating documentation, based on the mode. + +In our case, this makes it possible to generate documentation for standard users +where the `proxy_dns_socks5` won't be present, +and a different, more detailed documentation for advanced users +where the `proxy_dns_socks5` will be explained in detail. + +.. seealso:: Look at the :ref:`different ways to document a variable with Rougail ` + in this tutorial. + +.. keypoints:: let's review the key points + + We have seen the benefits of assigning modes to a variable to define + documentations targeted at specific users. diff --git a/docs/tutorial/multiple.rst b/docs/tutorial/multiple.rst new file mode 100644 index 000000000..e818065b6 --- /dev/null +++ b/docs/tutorial/multiple.rst @@ -0,0 +1,235 @@ +Variable with multiple values +================================ + +.. objectives:: Objectives + + We will introduce the concept of multiple type variable. + It is more or less some kind of a container of variable's values. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_110 ` to :tutorial:`v1.1_111 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_110 + +.. _tutorial_not_mandatory_list: + +A conditional disabled non mandatory variable with type domainname and parameters +----------------------------------------------------------------------------------- + +In order to fit with our use case, we need a variable that takes as its value the domain names authorized to pass through the proxy, if it is enabled. We already used before in this tutorial the `domainname` type, which perfectly matches our needs here. +We will just need to add certain parameters associated to this `domainname` type, as we will see. +We're gonna put it in another :term:`structure file` named :file:`firefox/40-no_proxy.yml`. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_110/firefox/40-no_proxy.yml + :language: yaml + :caption: The :file:`firefox/40-no_proxy.yml` structure file with the domains that are allowed to pass through the proxy + +.. + %YAML 1.2 + --- + version: 1.1 + + no_proxy: + description: Address for which proxy will be desactivated + type: domainname + params: + allow_ip: true + allow_cidr_network: true + allow_without_dot: true + allow_startswith_dot: true + mandatory: false + disabled: + variable: _.proxy_mode + when: No proxy + ... + +This `no_proxy` variable is a `domainname` with some additional parameters, we authorize +values like: + +- IP +- CIDR networks +- machine names (without `'.'`) +- sub-domaines like `.example` + +To clarify things, let's launch the Rougail CLI + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_110/config/02/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ --types types/proxy -u yaml -yf config/02/config.yml + +On this :term:`user data`: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_110/config/02/config.yml + :language: yaml + :caption: Automatic proxy configuration :file:`config/02/config.yml` user data file with a pass through domain name + +.. + --- + proxy_mode: Automatic proxy configuration URL + auto: https://auto.proxy.net/wpad.dat + no_proxy: 192.168.1.0/24 + +We then have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_110/config/02/output_ro.html + :class: output + +.. + ╭────────────── Caption ───────────────╮ + │ Variable Modified value │ + │ (⏳ Original default value) │ + ╰──────────────────────────────────────╯ + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Automatic proxy configuration URL ◀ loaded from the YAML file "config/02/config.yml" (⏳ No proxy) + ┣━━ 📓 Automatic proxy configuration URL: https://auto.proxy.net/wpad.dat ◀ loaded from the YAML file "config/02/config.yml" + ┗━━ 📓 Address for which proxy will be desactivated: 192.168.1.0/24 ◀ loaded from the YAML file "config/02/config.yml" + +We can see the address for which proxy will be desactivated in the output. + +.. note:: + + We had said that a variable with a mandatory parameter set to false was a :ref:`nullable variable `. + This is true only for a non :term:`multi` variable. + + The value of a :term:`multi` variable which is not :term:`mandatory` will allow the empty list `[]`. + The :term:`mandatory` properties does not means that the `null` value is acceptable (that is the `empty` properties). + +A variable with multiple values +----------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_111 ` version:: + + git switch --detach v1.1_111 + +It's easy to find out what the next step is: we would now need some kind of a container type, +which would allow us to set not only one domain name but a list of domain names for which the proxy will be disabled. + +Making this change requires adding one line, just one, to our variable, +have a look at the `multi: true` parameter: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_111/firefox/40-no_proxy.yml + :language: yaml + :caption: The :file:`firefox/40-no_proxy.yml` structure file with the pass through domains set to `multi` + +.. + %YAML 1.2 + --- + version: 1.1 + + no_proxy: + description: Address for which proxy will be desactivated + type: domainname + params: + allow_ip: true + allow_cidr_network: true + allow_without_dot: true + allow_startswith_dot: true + multi: true + mandatory: false + disabled: + variable: _.proxy_mode + when: No proxy + ... + + +.. questions:: Question + + + What difference does it make? + + First, note that the `no_proxy` variable is still a `domainname` type. + The type hasn't changed. + +There's a big difference: now it is important to note that the values ​​of the variable +must be a list containing strings, and not a single string. +Therefore, the contents of the :term:`user data` file need to be changed. + +Now let's launch the Rougail CLI with the `no_proxy` variable containing a list: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_111/config/02/config.yml + :language: yaml + :caption: Automatic proxy configuration :file:`config/02/config.yml` user data file with a pass through domain name + +.. + %YAML 1.2 + --- + version: 1.1 + + no_proxy: + description: Address for which proxy will be desactivated + type: domainname + params: + allow_ip: true + allow_cidr_network: true + allow_without_dot: true + allow_startswith_dot: true + multi: true + mandatory: false + disabled: + variable: _.proxy_mode + when: No proxy + ... + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_111/config/02/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ --types types/proxy -u yaml -yf config/02/config.yml + +Now we have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_111/config/02/output_ro.html + :class: output + +.. + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Automatic proxy configuration URL ◀ loaded from the YAML file "config/02/config.yml" (⏳ No proxy) + ┣━━ 📓 Automatic proxy configuration URL: https://auto.proxy.net/wpad.dat ◀ loaded from the YAML file "config/02/config.yml" + ┗━━ 📓 Address for which proxy will be desactivated: + ┣━━ example.net ◀ loaded from the YAML file "config/02/config.yml" + ┗━━ 192.168.1.0/24 ◀ loaded from the YAML file "config/02/config.yml" + +.. questions:: Answer to the question + + So, the difference it makes is: yes, we have a list now. + + We call this a :term:`multiple ` variable. + +.. glossary:: + + multi + + A multiple variable, in short, a multi, is a variable that has a list of values. + + Note that we have more than just a simple container here. + The real challenge is maintaining the consistency of the :term:`configuration` + exactly the same way as if we only had one value to manage. + + A multi is a multiple variable, that is a variable that can have multiple values. + +.. keypoints:: Key points + + We have now some kind of a container facility named `multi`, that can be applied + to a variable simply by setting the `multi: true` parameter. + diff --git a/docs/tutorial/namespace.rst b/docs/tutorial/namespace.rst new file mode 100644 index 000000000..63ab60b99 --- /dev/null +++ b/docs/tutorial/namespace.rst @@ -0,0 +1,172 @@ +.. _tutorial_namespace: + +Namespaces +============ + +.. objectives:: Objectives + + We are going to need a new tool, the concept of :term:`namespaces `. + + And our use case is going to evolve. + We're going to use a Firefox add-on called `Foxy Proxy `_. + In this context we will have a new way of organizing our structure files. + + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`1.1_180 ` to :tutorial:`1.1_181 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach 1.1_180 + +.. note:: The purpose here is not to teach how to use the Foxy Proxy addon, + but rather to explain that using this Firefox plugin will require us + to make decisions about how to organize our variables. + + We will store them in namespaces. + + +Namespace +------------ + +The :term:`namespaces ` are a new, completely different way of separating and organising our :term:`structure files `. +We're gonna see how. +We will begin by adding a parameter to our Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_180/config/01/cmd_ro.txt + +.. + rougail -m firefox/ -s Firefox --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml + +Now let's pay attention to the `-s` parameter. This namespace option has the value `Firefox`. +What does this imply? + +So far, to assign our :term:`user data` to a structure file like this one: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_180/firefox/60-dns_over_https.yml + :language: yaml + :caption: The `firefox/60-dns_over_https.yml` structure file + +.. + %YAML 1.2 + --- + version: 1.1 + + dns_over_https: # DNS over HTTPS + + enable_dns_over_https: false # Enable DNS over HTTPS + + provider: + description: Use Provider + choices: + - Cloudflare + - NextDNS + - Custom + default: Cloudflare + disabled: + variable: _.enable_dns_over_https + when: false + + custom_dns_url: + description: Custom DNS URL + type: web_address + validators: + - jinja: |- + {{ _.custom_dns_url.startswith("http://") }} + return_type: boolean + description: must starts with 'https://' only + disabled: + jinja: |- + {{ _.provider is propertyerror or _.provider != 'Custom' }} + return_type: boolean + description: if "_.provider" is not "Custom" + ... + +We had to enter :term:`user data` of this new shape: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_170/config/02/config.yml + :language: yaml + :caption: user data settings with the `dns_over_https` family + +.. + --- + dns_over_https: + enable_dns_over_https: true + +But now that we have defined a namespace, we need to populate our :term:`user data` in this shape: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_180/config/01/config.yml + :language: yaml + :caption: user data settings about the `dns_over_https` family with the `firefox` namespace + +.. + --- + firefox: + dns_over_https: + enable_dns_over_https: true + +Notice the difference: we have now a `firefox` namespace. +Contrary to a misinterpretation we might have upon first reading, it is not a family. +It's a namespace. + +.. questions:: What is the purpose of creating a namespace? + + Well, this allows for logical grouping. We'll be able to clearly separate + the user data related to our Foxy Proxy plugin. + +New "FoxyProxy" namespace +---------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`1.1_181 ` version:: + + git switch --detach 1.1_181 + +.. image:: images/foxyproxy.png + +We can see in the FoxyProxy widget that it is possible to add as many proxies as needed. + +So our use case enables us to handle variables related to the Foxy Proxy plugin +that should be stored in a separate namespace. + +.. type-along:: Handling multiple namespaces + +It is perfectly possible to define multiple namespaces with Rougail. +In the Rougail CLI, the `-s` option is reserved for the main namespace. +If we need to add a namespace named FoxyProxy, we must use the `-xn FoxyProxy` option. +However, we also need to specify the parameter that indicates the location +of the structure files corresponding to this namespace. +The `-xd 0 foxyproxy/` option is used to specify the relevant file or folder, +here, the :file:`foxyproxy` folder: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_181/config/01/cmd_ro.txt + +.. + rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml + +The additional namespace is therefore specified via the two command-line options: + +.. code-block:: shell + + -xn FoxyProxy -xd 0 foxyproxy/ + +.. keypoints:: let's review the key points + + We learned how to create a namespace for our use case, and even how to use + multiple namespaces—that is, how to implement several logical separations. diff --git a/docs/tutorial/nullable.rst b/docs/tutorial/nullable.rst new file mode 100644 index 000000000..17c59f9f3 --- /dev/null +++ b/docs/tutorial/nullable.rst @@ -0,0 +1,211 @@ +.. _tutorial_nullable: + +Nullable variable +========================== + +.. objectives:: Objectives + + Now in this section we would like to make it possible that it is not necessary to specify a value + for a variable. + + With Rougail, it is possible for a variable's settings to have no value (nothing, null, None), + that is, neither a default value nor a user assigned value. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_090 ` to :tutorial:`v1.1_091 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_090 + + +Variable with the value "null" +------------------------------------ + +.. note:: It is important to keep in mind that in Rougail a variable is :term:`mandatory` by default, + meaning that it must either have a :term:`default value` set or a :term:`user data` value assigned for example in a :term:`user data file`\ . + This is Rougail's default behavior. + + Besides, note that the explicit keyword to express the setting "no value, nothing" in YAML is the `null` explicit keyword. + +Here is how we are going to specify a "no value" (nothing, `null`) as a possible setting for the `address` variable in the `socks_proxy` family. + +There are a few things to set in the variable. We need to: + +- explicitely disable the default :term:`mandatory` behavior of the `address` variable (just by setting it to `false`), +- redefine the `address` variable inside the `socks_proxy` because this family uses the `proxy` type definition, +- finally removes the `address` default value as determined in the `proxy` type definition. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_090/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with the `mandatory` set to `false` and the `null` (nothing) setting + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: + description: HTTPS Proxy + type: proxy + hidden: + variable: _.use_for_https + + address: + redefine: true + description: HTTPS proxy address + + port: + redefine: true + description: HTTPS proxy port + + socks_proxy: + description: SOCKS Proxy + type: proxy + + address: + redefine: true + description: SOCKS proxy address + default: null + mandatory: false + + port: + redefine: true + description: SOCKS proxy port + default: 1080 + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + ... + + +Some more, maybe usefull, explanations about our `address` variable in the `socks_proxy` family: + +- Allowing the "no value, nothing" behavior is easy, we just add the `mandatory: false` attribute, +- we explicitely need to set the `redefine: true` attribute because in the type `proxy` type setting + we didn't set the `mandatory` attribute to false, this is then a type redefinition, +- finally we can set the `default: null` that means that we can set no value to our address variable. + +Note too that is is necessary to redefine (to set a `redefine` attribute) as soon as you +modify the type definition. Here we have set a default value to our `socks_proxy`'s `port` variable. +We need then to redefine not only because of the `description` attribute but because of the default value too. + + +Variables disabled when condition is null +-------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_091 ` version:: + + git switch --detach v1.1_091 + +.. questions:: Question + + But actually, why did we want a variable to be non-mandatory? + +Well, what we need is to be able to :term:`disable ` either the `port` and the `version` in case of the `address` has no value set: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_091/firefox/20-manual.yml + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with the `disabled` set in case of the `address` has no value set + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: + description: HTTPS Proxy + type: proxy + hidden: + variable: _.use_for_https + + address: + redefine: true + description: HTTPS proxy address + + port: + redefine: true + description: HTTPS proxy port + + socks_proxy: + description: SOCKS Proxy + type: proxy + + address: + redefine: true + description: SOCKS proxy address + default: null + mandatory: false + + port: + redefine: true + description: SOCKS proxy port + default: 1080 + disabled: + variable: _.address + when: null + + version: + description: SOCKS host version used by proxy + choices: + - v4 + - v5 + default: v5 + disabled: + variable: _.address + when: null + ... + +For the `disabled` property to trigger, the condition `when: null` must appear, +pointing to the `_.address` variable, that is the `socks_proxy.address` variable. + + +.. note:: The `_.` is a :term:`relative path` notation and means the current path (of the current family). + + In the python quasi algorithmic notation we could say that: + + .. code-block:: python + + _.address == socks_proxy.address + + This is true only because in our use case `socks_proxy` is located on the root path. + +.. keypoints:: Key points + + As one of the main objectives of Rougail is to determine if a variable has a value, + therefore the value of a variable is in principle *required*. + We say that a value is :term:`mandatory` by default. + However, it is possible to change this default behavior with the `mandatory: false` parameter + explicitely declared in a variable. + In this section we learned how to define a variable as having no value; it's possible with Rougail. + + In this section we also continued using some type redefinition, which we learned in the previous section. + And we have :term:`disabled` a variable depending this on + the presence or absence of a value. + + diff --git a/docs/tutorial/practice1.rst b/docs/tutorial/practice1.rst new file mode 100644 index 000000000..2a455e440 --- /dev/null +++ b/docs/tutorial/practice1.rst @@ -0,0 +1,145 @@ +Practice +================================ + +.. objectives:: Objectives + + Now it's your turn. + Try making some Rougail. + At the same time, if you get stuck, you have the solutions in the Rougail tutorial + code repository. + + There is nothing new in the two next Firefox variables. So it is the time to practice what we've learned until now. + + This page is divided in two parts for each variable: + + - Explain what we want to implement + - Propose to you a solution + + The best for you is to do this job on your own and compare your work to our propositions. + +Here are the two variables in the Firefox configuration's widget: + +.. image:: images/practice_twovars.png + +These two variables are highlighted here in the lower part of the Firefox configuration's widget: + +.. image:: images/firefox130.png + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`1.1_130 ` to :tutorial:`1.1_131 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach 1.1_130 + +A conditional disabled boolean variable +------------------------------------------------------------- + +What do we want to be implemented +''''''''''''''''''''''''''''''''''' + +.. exercise:: Exercice + + You need to think about: + + - choose a file name that respect the :ref:`file naming and organizing convention ` + - define an appropriate variable name, have a look at our :ref:`variable naming convention ` + - the Firefox description is in negative mode, which is not a good practice for us, we rewrite it in positive mode + - the variable is a boolean with the default value `true` (the opposite of unchecked option) + - the variable is available for all proxy mode choice by user, so disable it only when the `proxy mode` is "No proxy" + +Our solution +''''''''''''''''''''''''''''''' + +Please unroll the "Solution" widget to see our solution: + +.. solution:: Solution + + .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_130/firefox/50-prompt_authentication.yml + :language: yaml + :caption: The :file:`firefox/50-prompt_authentication.yml` a conditional disabled boolean variable + + - Here we choosed to name the new structure file `firefox/50-prompt_authentication.yml`, + the file containing the `prompt_authentication` variable definition + - this variable is `true` by default + - this variable shall be :term:`disabled` if the `proxy_mode` variable is set to `"No proxy"` + +.. + %YAML 1.2 + --- + version: 1.1 + + prompt_authentication: + description: Prompt for authentication if password is saved + default: true + disabled: + variable: _.proxy_mode + when: No proxy + ... + +A Jinja conditional disabled boolean variable +------------------------------------------------- + +What do we want to be implemented +''''''''''''''''''''''''''''''''''' + +.. exercise:: Exercice + + You need to think about: + + - the choice of a file name that respect the :ref:`file naming and organizing convention ` + - define an appropriate variable name, have a look at our :ref:`variable naming convention ` + - the `description` parameter will be the Firefox description + - the variable is a boolean with the default value `false` (unchecked option) + - the variable is only available with the `"Manual proxy configuration"` proxy mode and when the proxy socks version is not v4 + + +Our solution +''''''''''''''''''''''''''''''' + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_131 ` version:: + + git switch --detach v1.1_131 + +Please unroll the "Solution" widget to see our solution: + +.. solution:: Solution + + .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_131/firefox/55-proxy_dns_socks5.yml + :language: yaml + :caption: The :file:`firefox/55-proxy_dns_socks5.yml` a Jinja conditional disabled boolean variable + + - Here we choosed to name the new structure file `firefox/55-proxy_dns_socks5.yml`, + the file containing the `proxy_dns_socks5` variable definition + - this variable is `false` by default + - this variable shall be :term:`disabled` if the `proxy_mode` variable is not set to `"Manual proxy configuration"` and Socks version is `v4`. + +.. + %YAML 1.2 + --- + version: 1.1 + + proxy_dns_socks5: + description: Use proxy DNS when using SOCKS v5 + default: false + disabled: + jinja: |- + {{ _.proxy_mode != "Manual proxy configuration" or _.manual.socks_proxy.version == 'v4' }} + return_type: boolean + description: |- + if "_.proxy_mode" is not "Manual proxy configuration" + or "_.manual.socks_proxy.version" is "v4" + ... diff --git a/docs/tutorial/practice2.rst b/docs/tutorial/practice2.rst new file mode 100644 index 000000000..af72cdc21 --- /dev/null +++ b/docs/tutorial/practice2.rst @@ -0,0 +1,220 @@ +Practice +================================ + +.. objectives:: Objectives + + Now it's your turn again. + Try making some Rougail. + At the same time, if you get stuck, you have the solutions in the Rougail tutorial + code repository. + + There is nothing new in the three next Firefox variables. So it is the time to practice what we've learned until now. + + This page is divided in two parts for each variable: + + - Explain what we want to implement + - Propose to you a solution + + The best for you is to do this job on your own and compare your work to our propositions. + +Here are the two first variables in the Firefox configuration's widget: + +.. image:: images/practice_threevars.png + +The third appears only if we enable DNS over HTTPS with a custom providers, we have to set a `Custom DNS URL`. + +These three variables are highlighted here in the lower part of the Firefox configuration's widget: + +.. image:: images/firefox160.png + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`1.1_160 ` to :tutorial:`1.1_162 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach 1.1_160 + +A boolean variable +------------------ + +What do we want to be implemented +''''''''''''''''''''''''''''''''''' + +.. exercise:: Exercice + + You need to think about: + + - choose a file name that respect the :ref:`file naming and organizing convention ` + - define an appropriate family and variable name, have a look at our :ref:`variable naming convention ` + - we will set the variable in a family (with others variable later) to separate this purpose + - the family and variable `description` parameter will be the Firefox description + - the variable is a :ref:`boolean ` with the default value `false` (unchecked option) + - the family and variable are always available, it's not directly related to the proxy choice + +Our solution +''''''''''''''''''''''''''''''' + +Please unroll the "Solution" widget to see our solution: + +.. solution:: Solution + + .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_160/firefox/60-dns_over_https.yml + :language: yaml + :caption: The :file:`firefox/60-dns_over_https.yml` a boolean variable + + - Here we choosed to name the new structure file `firefox/60-dns_over_https.yml`, + the file containing the `dns_over_https` family and the `enable_dns_over_https` variable definition + - this variable is a :ref:`boolean ` with the default value `false` + +.. + %YAML 1.2 + --- + version: 1.1 + + dns_over_https: # DNS over HTTPS + + enable_dns_over_https: false # Enable DNS over HTTPS + ... + +A choice variable +----------------- + +What do we want to be implemented +''''''''''''''''''''''''''''''''''' + +.. exercise:: Exercice + + You need to think about: + + - this variable will be in the same file as the first one + - define an appropriate variable name, have a look at our :ref:`variable naming convention ` + - we will set the variable in the previous family + - the variable `description` parameter will be the Firefox description + - the variable is a :ref:`choice ` with the following proposal: `Cloudflare`, `NextDNS` and `Custom` + - this variable shall be :ref:`disabled ` if the `enable_dns_over_https` variable is `false`. + +Our solution +''''''''''''''''''''''''''''''' + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_161 ` version:: + + git switch --detach v1.1_161 + +Please unroll the "Solution" widget to see our solution: + +.. solution:: Solution + + .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_161/firefox/60-dns_over_https.yml + :language: yaml + :caption: The :file:`firefox/60-dns_over_https.yml` a choice variable + + - Here we choosed to name the new structure file `firefox/60-dns_over_https.yml`, + the file containing the `dns_over_https` family and the `enable_dns_over_https` variable definition + - this variable is false by default + - this variable is :ref:`disabled ` if `enable_dns_over_https` is `false` + +.. + %YAML 1.2 + --- + version: 1.1 + + dns_over_https: # DNS over HTTPS + + enable_dns_over_https: false # Enable DNS over HTTPS + + provider: + description: Use Provider + choices: + - Cloudflare + - NextDNS + - Custom + default: Cloudflare + disabled: + variable: _.enable_dns_over_https + when: false + ... + + +A web_address variable +---------------------- + +What do we want to be implemented +''''''''''''''''''''''''''''''''''' + +.. exercise:: Exercice + + You need to think about: + + - this variable will be in the same file as the two others + - define an appropriate variable name, have a look at our :ref:`variable naming convention ` + - we will set the variable in the previous family + - the variable `description` parameter will be the Firefox description + - the variable is a `web_address` + - this variable shall be :ref:`disabled ` if the `provider` variable is not `Custom` + - the variable `provider` could be :ref:`disabled ` too + + +Our solution +''''''''''''''''''''''''''''''' + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_162 ` version:: + + git switch --detach v1.1_162 + +Please unroll the "Solution" widget to see our solution: + +.. solution:: Solution + + .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_162/firefox/60-dns_over_https.yml + :language: yaml + :caption: The :file:`firefox/60-dns_over_https.yml` a choice variable + + - Here we choosed to name the new structure file `firefox/60-dns_over_https.yml`, + the file containing the `custom_dns_url` variable definition + - this is a :ref:`web_address ` variable + - this variable is :ref:`disabled ` if `provider` has :ref:`an access property error ` and `provider` has not the value "Custom" + +.. + %YAML 1.2 + --- + version: 1.1 + + dns_over_https: # DNS over HTTPS + + enable_dns_over_https: false # Enable DNS over HTTPS + + provider: + description: Use Provider + choices: + - Cloudflare + - NextDNS + - Custom + default: Cloudflare + disabled: + variable: _.enable_dns_over_https + when: false + + custom_dns_url: + description: Custom DNS URL + type: web_address + disabled: + jinja: |- + {{ _.provider is propertyerror or _.provider != 'Custom' }} + return_type: boolean + description: if "_.provider" is not "Custom" + ... diff --git a/docs/tutorial/preliminary.rst b/docs/tutorial/preliminary.rst new file mode 100644 index 000000000..632f3c9f4 --- /dev/null +++ b/docs/tutorial/preliminary.rst @@ -0,0 +1,380 @@ +Getting started +==================== + +Presentation of the Firefox configuration options +-------------------------------------------------- + +At first glance we can see that we have a selection of five configuration options that we need to fill in, they are highlighted here in this screenshot: + +.. image:: images/firefox_01.png + +We'll learn in this tutorial how to set the values of the configuration options in a clean way with the Rougail library. + +.. objectives:: Objectives of this section + + We will learn how to: + + - create a :term:`structure description file ` + - add a :term:`structure file ` format version in the structure file + - add a :term:`variable` in the structure file and set its default :term:`value` + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_000 ` to :tutorial:`v1.1_003 ` + in the repository: + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_000 + +Creating a structure file +-------------------------- + +.. demo:: The folder structure + + Here is the tree structure we want to have:: + + rougail-tutorials + └── firefox + └── 00-proxy.yml + +- Let's make a :file:`rougail-tutorials` directory, with a :file:`firefox` subfolder. +- First, we will create a :term:`structure file `, so let's create a :file:`00-proxy.yml` file + located in the :file:`firefox` subfolder. + +This is an empty Rougail :term:`structure description file: ` + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_000/firefox/00-proxy.yml + :language: yaml + :caption: An empty Rougail structure file with only the YAML header and the version number + :name: RougailStructVersion + +.. + --- + version: 1.1 + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +This `version` specification is just the Rougail YAML's format version specification. +YAML files are loaded using a version 1.2 file parser. It is recommended (but not mandatory) to specify this in the file header, especially for linters. +By now, we have an empty structure file with the format specification in it. + +Let's add our first variable +------------------------------ + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_001 ` version:: + + git switch --detach v1.1_001 + + +- A variable is defined at a minimum by its name. +- A :term:`variable` lives in the :term:`structure description file `. + +Here we define a variable named `proxy_mode`: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_001/firefox/00-proxy.yml + :language: yaml + :caption: A Rougail structure file with only one variable in it + :name: RougailDictionaryFirstVariableName + +.. + --- + proxy_mode: + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Let's run the Rougail CLI utility command in a terminal: + +.. code-block:: text + :class: terminal + + rougail -m firefox/ + +Well, we notice that we have an error: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_001/config/01/output_ro.html + :class: error-box + +.. + 🛑 ERRORS + ┣━━ The following variables are mandatory but have no value: + ┗━━ - proxy_mode + +It's because this first defined variable is :term:`mandatory` and needs to have a value set **but** there's no value yet. + +We can therefore deduce the fact that: + +.. admonition:: Fact + + Once defined, an option configuration :term:`value` is :term:`mandatory` by default. + That is to say, it is absolutely necessary to assign a value to this variable. + +Rougail expects the `proxy_mode` configuration option's value to be set. + +.. glossary:: + + mandatory + + A variable is mandatory when a value is required, that is, `None` **is not** a possible value. + It **must** have a defined value. + +.. seealso:: To go further, have a look at the :tiramisu:`mandatory option ` + according to the :xref:`Tiramisu ` underlyning consistency system. + You will learn that it is actually possible to disable the mandatory property behavior, + but you need to declare it explicitely. + +Describe the variable +------------------------- + +Let's add a variable's description, which is not mandatory but which is usually a good practice. + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_002 ` version:: + + git switch --detach v1.1_002 + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_002/firefox/00-proxy.yml + :language: yaml + :caption: A Rougail structure file with a variable and a description + :name: RougailStructFirstVariableDescription + +.. + --- + proxy_mode: # Configure Proxy Access to the Internet + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +You have two way to define a variable's description: + +- the verbose way: + + .. code-block:: yaml + + proxy_mode: + description: Configure Proxy Access to the Internet + + +- or a short-hand way, setting the description using the "`#`" YAML comment notation: + + .. code-block:: yaml + + proxy_mode: # Configure Proxy Access to the Internet + +If we launch the Rougail CLI command: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_002/config/01/cmd_rw.txt + +we have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_002/config/01/output_rw.html + +.. +
    ╭──────────────────── Caption ─────────────────────╮
    +    │ Undocumented but modified variable Default value │
    +    ╰──────────────────────────────────────────────────╯
    +    Variables:
    +    ┗━━ 📓 Configure Proxy Access to the Internet: null
    +    
    + +We can see here that the variable's description string "Configure Proxy Access to the Internet" is used +to refer to the `proxy_mode` variable. + +.. note:: The description is used in UI tools and outputs instead of the variable name. + The goal here is to provide an explanation of the variable for the user, + not to show the technical name of the variable as defined by the :term:`integrator`. + +Set a default value +--------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_003 ` version:: + + git switch --detach v1.1_003 + +We will learn different ways to set a value, the first way is setting a *default* value. + +.. glossary:: + + default value + + A default value is a variable value that is predefined, that's why this value is placed + right in the structure file. + +Let's add a default value to this `proxy_mode` variable. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_003/firefox/00-proxy.yml + :language: yaml + :caption: A Rougail structure file with a default value for the variable + :name: RougailDictionaryVariableDefault + +.. + --- + proxy_mode: No proxy # Configure Proxy Access to the Internet + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +The `proxy_mode` variable requires a value, that's why we have set a `No proxy` default value. + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_003/config/01/output_ro.html + :class: output + +.. +
    ╭─────── Caption ────────╮
    +    │ Variable Default value │
    +    ╰────────────────────────╯
    +    Variables:
    +    ┗━━ 📓 Configure Proxy Access to the Internet: No proxy
    +    
    + +As we have set the `proxy_mode`'s value as `No proxy` by default, +The chosen value is indicated in the Rougail's CLI output as the default choice. + +- here is the short-hand default setting and description: + +.. code-block:: yaml + + proxy_mode: No proxy # Configure Proxy Access to the Internet + +- and there is the verbose way of setting a default value: + +.. code-block:: yaml + + proxy_mode: + description: Configure Proxy Access to the Internet + default: No proxy + +There are some other :term:`short-hand ways ` with Rougail that you may encounter +as you read the Rougail's documentation and tutorial. + +.. admonition:: How to set a value -- the assignment + + A default value has been set, great. This raises a question about what a normal value is. + + Now then how can I assign a normal value to a variable? + +.. type-along:: The different Rougail roles and setting a variable's value + +So far we have only talked about the actor that writes the :term:`structure files `\ . +The one who writes the structure file plays the *role* of the *integrator*. + +Now we will talk about the one that defines the values. His role is called the operator role. + +It is the operator's responsibility to set the user data variables values. +The operator does not handle the structure files, +he is responsible of other files called the :term:`user data files `. + +.. important:: For now, we don't know how to disable the default `mandatory` settings, + so if neither a default value nor a user value are set for a given variable, Rougail will raise an error. + +.. exercise:: Folder structure update + + Now we add a user data file named :file:`config/config.yml` in our project:: + + rougail-tutorials + ├── firefox + │ ├── 00-proxy.yml + └── config + └── config.yml + +.. type-along:: How to set a user data value + +If the integrator has not set any default value in his structure file, +it's up to the operator to do the job in the `config.yml` file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_003/config/02/config.yml + :language: yaml + :caption: A Rougail user data file :file:`config/config.yml`, with a value set. + :name: RougailConfigDefaultValue + +.. + --- + proxy_mode: No proxy + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +The operator needs to add the `-u yaml -yf config/config.yml` options to the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_003/config/02/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml + +which gives us this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_003/config/02/output_ro.html + :class: output + +.. +
    ╭──────── Caption ────────╮
    +    │ Variable Modified value │
    +    ╰─────────────────────────╯
    +    Variables:
    +    ┗━━ 📓 proxy_mode: No proxy ◀ loaded from the YAML file "config/02/config.yml"
    +    
    + +Now the `proxy_mode`'s new `No proxy` value is the same as the default value but we see in the Rougail CLI output that the value +comes from the :file:`config/02/config.yml` user data file. From now on this `proxy_mode` variable's value +is a user data value and not a default value (even if it's actually the same value). + +.. type-along:: Structure values and user data values + +We can see with the Rougail CLI utility where the values come from. +It can come from an integrator's setting or from an operator's setting. + +.. admonition:: Reminder + + - the integrator works on structure files, he can define default value for variables + - the operator works on user data files, he only can set user data values for variables + +Most of the time, the integrator and the operator are one and the same person, +here we are talking about roles and not necessarily about people. + +.. type-along:: User data files are where the user values live + +We need to set the values in separate files, called `user data files`. + +.. glossary:: + + user data file + + A user data file is a file where only :term:`user data` are set. + + A user file is a file where there are only user data in it, users can set values, called user values -- + that is variable's values that have been set by an :term:`operator`\ . + + see also :term:`user data` + +.. keypoints:: Key points progress + + **Keywords** + + - :term:`structure file `: structure description file + - :term:`variable`: an option's name which has a value + - a variable's description + - a variable's mandatory value + - a variable's default value + - a variable's user value + - the :term:`integrator` and :term:`operator` roles + - a :term:`configuration` diff --git a/docs/tutorial/properties.rst b/docs/tutorial/properties.rst new file mode 100644 index 000000000..17c7fab14 --- /dev/null +++ b/docs/tutorial/properties.rst @@ -0,0 +1,801 @@ +Define access to variable or family +========================================== + +.. objectives:: Objectives + + In this section we will see what a disabled variable or family is, and why it can be interesting + to assign the `disabled` :term:`property` to a variable or a family. + Then we'll see the same thing for the `hidden` :term:`property`. + We'll also learn the difference between disabling and hiding families or variables. + + We will: + + - create a `disabled` family + - use a new family or variable's :term:`property`: the `hidden` :term:`property` + +Disabling and hiding are two families or variables :term:`properties `. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_050 ` to :tutorial:`v1.1_053 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_050 + +.. _tutorial_disabled: + +A disabled family +------------------ + +Here we are going to assign the `disabled` property to the `manual` family: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_050/firefox/10-manual.yml + :language: yaml + :caption: The `manual` family has the `disabled` property set in this :file:`firefox/10-manual.yml` structure file + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + description: Manual proxy configuration + disabled: true + + http_proxy: # HTTP Proxy + + address: + description: HTTP address + type: domainname + params: + allow_ip: true + + port: + description: HTTP Port + type: port + default: 8080 + +Notice that we have this `disabled: true` property assigned to the `manual` family. +Let's launch the Rougail CLI on this structure file (whith an empty user data file): + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_050/config/01/cmd_ro.txt + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml + +The Rougail CLI outputs this: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_050/config/01/output_ro.html + :class: output + +We can deduce from the Rougail CLI output that the `manual` family is not taken into account by Rougail. +So what does this disabled property exactly? + +.. glossary:: + + disabled + + The disabled property is a property that can be assigned to a variable or a family. + It makes the :term:`configuration` act as if the variable or family that has this property has not even been defined. + It simply doesn't exist (it is deactivated) for the whole configuration. + +.. note:: Note that if a family has been disabled, all variables and sub-families that it contains are disabled. + +And if we try to assign values to variables that have been disabled, here is what happens: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_050/config/02/config.yml + :language: yaml + :caption: In this :file:`config/02/config.yml` user data file, we assign values to variables that have been disabled + +If we launch the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_050/config/02/cmd_unknown.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.unknown_user_data_error + +.. note:: The `--cli.unknown_user_data_error` option changes the behaviour of the Rougail CLI's standard output: + when an unknown (or disabled or hidden) variable is declared in the :term:`user data file ` + then it appears in the output as an error instead of a warning. + +It outputs: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_050/config/02/output_unknown.html + :class: output + +.. +
    🛑 Caution
    +    ┗━━ manual (Manual proxy configuration)
    +        ┣━━ http_proxy (HTTP Proxy)
    +        ┣━━ address (HTTP address): 🛑 family "manual" (Manual proxy 
    +        configuration) has property disabled, so cannot access to "address" 
    +        (HTTP address), it has been loading from the YAML file 
    +        "config/02/config.yml"
    +        ┗━━ port (HTTP Port): 🛑 family "manual" (Manual proxy configuration) 
    +            has property disabled, so cannot access to "port" (HTTP Port), it 
    +            has been loading from the YAML file "config/02/config.yml"
    +        ┗━━ use_for_https (Also use this proxy for HTTPS): 🛑 family "manual" 
    +            (Manual proxy configuration) has property disabled, so cannot access to 
    +            "use_for_https" (Also use this proxy for HTTPS), it has been loading 
    +            from the YAML file "config/02/config.yml"
    +    
    + +We can see that the Rougail CLI is warning us about the variables that we are trying to assign values on which are disabled. +Because it is not logical. We are trying to assign values to variables that are not taken into account in the :term:`configuration`. + +The point is that we disable them in order to expose the fact that we don't use them, +but it's not just that: if we fill them in, there might be a problem in the overall integrity of the whole :term:`configuration`. +We shall fill and use in these variables in the `Manual proxy configuration` use case context only. +Otherwise, **we need to disable them when they are not used**. + +In a practical point of view, if we fill them in, Rougail CLI will output a warning and the :term:`operator` will see it. +He will wonder : "oh, what am I doing?", I shall fill and use in these variables only in the `Manual proxy configuration` context. + +A conditional disabled family +------------------------------ + +Let's look again at our use case. We have a choice between five options +in order to set the proxy mode: + +.. image:: images/firefox_01.png + +These five choices are: + +- No proxy +- Auto-detect proxy settings for this network +- Use system proxy settings +- Manual proxy configuration +- Automatic proxy configuration URL + +Actually if the `Manual proxy configuration` is not selected, we don't need to set +these `address` and `port` variables, there is no point in setting them in +four out of our five use cases. + +.. important:: We need to **disable** variables or families that are not used + in a given usage context. + +Disabling variables one by one can be replaced by disabling a whole family. +If we don't choose the manual mode, we need to **disable** the whole `manual` family, it will disable +all the subfamilies and the variables in it. + +Note that we've placed theses variables in the `http_proxy` +subfamily. We can then disable it or even the parent `manual` subfamily in order to +disable the `http_proxy` family and all the variables that are placed in it, because +the `manual` family variables shall be used only in the manual proxy use case context. + +Notice the `disabled: true` parameter set in the `manual` family: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_050/firefox/10-manual.yml + :linenos: + :language: yaml + :caption: The `http_proxy` subfamily in the :file:`firefox/10-manual.yml` structure file is disabled here + +.. + --- + manual: + description: Manual proxy configuration + disabled: true + + http_proxy: + description: HTTP Proxy + + address: + description: HTTP address + type: domainname + params: + allow_ip: true + + port: + description: HTTP Port + type: port + default: 8080 + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_051 ` version:: + + git switch --detach v1.1_051 + +What could be usefull here is a *dynamically* disable or enable the `manual` family. +The idea in this section is to dynamically set the enable/disable property according to the chosen use case context. + +In rougail, we can set a property's value **depending on** the value of another variable. +**The property's value is conditioned by** another variable. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_051/firefox/10-manual.yml + :linenos: + :language: yaml + :caption: The :file:`firefox/10-manual.yml` structure file. The `manual` family dynamically enabled or disabled + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + description: Manual proxy configuration + disabled: + variable: _.proxy_mode + when_not: Manual proxy configuration + + http_proxy: # HTTP Proxy + + address: + description: HTTP address + type: domainname + params: + allow_ip: true + + port: + description: HTTP Port + type: port + default: 8080 + +Now the `disabled` property has some parameter defined. First, let's explaine the `variable` parameter. +This parameter specifies the target variable. The value of this target variable +will be used to dynamically enable or disable our `manual` family. + +We can see here that the `manual` family disabled or enabled property is contitionned by the `_.proxy_mode` variable's value. +The target variable is `_.proxy_mode`. + +.. seealso:: The `_.` is a :term:`relative path` notation and means the current path of the family you're currently in. + + In the python quasi algorithmic notation we could say that: + + .. code-block:: python + + _.proxy_mode == proxy_mode + + This is true only because in our use case `proxy_mode` is located on the root path. + + Have a look at the :ref:`variablepath` page for more details. + + +Now regarding the `when_not` parameter, this means that if the target variable's value +is `Manual proxy configuration` then the `manual` familiy **will not** be disabled +(that is, it will be **enabled**). + +Regarding as the default value use case, the `proxy_mode`'s variable is `No proxy` by default. +The `manual` familiy is then **disabled by default**. + +Let's launch the Rougail CLI on an empty user value file: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_051/config/01/cmd_ro.txt + +.. + rougail -m firefox/ -u yaml -yf config/01/config.ym + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_051/config/01/output_ro.html + +.. +
    ╭──────────────────── Caption ─────────────────────╮
    +    │ Undocumented but modified variable Default value │
    +    ╰──────────────────────────────────────────────────╯
    +    Variables:
    +    ┗━━ 📓 Configure Proxy Access to the Internet: No proxy
    +    
    + +We can see that the `manual` family and all the variables into it are not present. + +.. type-along:: Dynamically enabling the `manual` family + +Now we are going to choose the **manual mode**, that is the `Manual proxy configuration` +value for the `proxy_mode` variable, and things will become slightly different. + +If the manual mode for the proxy is not selected, then the `manual` family is disabled. +On the other hand, if the manual proxy's configuration mode is selected, +then the `manual` family **is enabled**: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_051/config/02/config.yml + :linenos: + :language: yaml + :caption: The `proxy_mode`'s manual setting in the :file:`config/02/config.yaml` user data file + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: false + +Let's launch the Rougail CLI to verify this: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_051/config/02/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml + +It outputs: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_051/config/02/output_ro.html + :class: output + +.. +
    ╭────────────── Caption ───────────────╮
    +    │ Variable Modified value              │
    +    │          (⏳ Original default value) │
    +    ╰──────────────────────────────────────╯
    +    Variables:
    +    ┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy 
    +    configuration ◀ loaded from the YAML file "config/02/config.yml" (⏳ No
    +    proxy)
    +    ┗━━ 📂 manual (Manual proxy configuration)
    +        ┣━━ 📂 http_proxy (HTTP Proxy)
    +        ┣━━ 📓 address (HTTP address): http.proxy.net ◀ loaded from the YAML
    +        file "config/02/config.yml"
    +        ┗━━ 📓 port (HTTP Port): 3128 ◀ loaded from the YAML file
    +            "config/02/config.yml" (⏳ 8080)
    +        ┗━━ 📓 use_for_https (Also use this proxy for HTTPS): false ◀ loaded from
    +            the YAML file "config/02/config.yml" (⏳ true)
    +    
    + +.. rubric:: Explanation + +Here the `disabled` property **depends on** the value of the `proxy_mode` variable. +It is the `variable` parameter that allows you to define the name of the target variable on which the `disabled` property depends. + +Please remember that this activation/deactivation of the `manual` family +depends on the value of the `proxy_mode` variable. Here we have +chosen the `Manual proxy configuration` value, so the `address` and `port` variables appear. + +A hidden family +------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_052 ` version:: + + git switch --detach v1.1_052 + +Let's introduce a new property here: + +.. glossary:: + + hidden + + A variable or family's property is hidden if its value **shall not be seen** in a given :term:`context`. + Anyway, these variables can be used if the context evolves. + + This is the main difference between the `hidden` and the `disabled` properties: + + - with the `disabled` property, the variables are *deactivated* + - with the `hidden` property, the variables are just not seen when loading the user data. + +Now we can set a `hidden` property to the `https_proxy` family: + +Here is our new :file:`20-manual.yml` structure file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_052/firefox/20-manual.yml + :linenos: + :language: yaml + :caption: The :file:`firefox/20-manual.yml` structure file with the `hidden` property on the `https_proxy` family. + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: + description: HTTPS Proxy + hidden: true + + address: + description: HTTPS address + default: + variable: __.http_proxy.address + + port: + description: HTTPS Port + default: + variable: __.http_proxy.port + ... + +.. confval:: https_proxy.address + :type: `domainname` + + This is an address setting for the manual HTTPS configuration + +.. confval:: https_proxy.port + :type: `port` + + This is a port setting for the manual HTTPS configuration + +We have now a `hidden` property assigned to the `https_proxy` family, which is +hiding these two variables. + +.. questions:: Why a `hidden` property? + + Here is a detailed explanation of this choice of the `hidden` property: + + We are in a use case where we want the HTTP mode configuration to be identical to the HTTPS mode configuration, so: + + - we need to have access to the HTTP mode configuration details + - this HTTP configuration will be duplicated using references to the default values, + so there is no need to request intervention from the :term:`operator` + to fill in the details of the default HTTPS configuration + - however, the :term:`operator` may want to have access to the HTTPS mode configuration if he wishes to, + in order to assign customised values to it. + Therefore, the :term:`operator` must obviously be able to access this HTTPS configuration. + +If we launch the Rougail CLI on the this user data + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_052/config/01/config.yml + :linenos: + :language: yaml + :caption: The :file:`config/01/config.yml` user data file with the `hidden` property on the `https_proxy` family. + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: false + https_proxy: + address: https.proxy.net + +Let's launch the Rougail in read only (`RO`) mode first: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_052/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_052/config/01/output_ro.html + :class: output + +.. +
    🔔 Warning
    +    ┗━━ manual (Manual proxy configuration)
    +        ┗━━ https_proxy (HTTPS Proxy)
    +            ┗━━ address (HTTPS address): 🔔 family "https_proxy" (HTTPS Proxy) has 
    +                property hidden, so cannot access to "address" (HTTPS address), it 
    +                will be ignored when loading from the YAML file 
    +                "config/01/config.yml"
    +
    +    ╭────────────── Caption ───────────────╮
    +    │ Variable Modified value              │
    +    │          (⏳ Original default value) │
    +    ╰──────────────────────────────────────╯
    +    Variables:
    +    ┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy 
    +    configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No
    +    proxy)
    +    ┗━━ 📂 manual (Manual proxy configuration)
    +        ┣━━ 📂 http_proxy (HTTP Proxy)
    +        ┣━━ 📓 address (HTTP address): http.proxy.net ◀ loaded from the YAML
    +        file "config/01/config.yml"
    +        ┗━━ 📓 port (HTTP Port): 3128 ◀ loaded from the YAML file
    +            "config/01/config.yml" (⏳ 8080)
    +        ┗━━ 📓 use_for_https (Also use this proxy for HTTPS): false ◀ loaded from
    +            the YAML file "config/01/config.yml" (⏳ true)
    +    
    + +Now let's launch the Rougail CLI in read write mode (`RW`) on the same user data: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_052/config/01/cmd_rw.txt + :class: terminal + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_052/config/01/output_rw.html + :class: output + +.. type-along:: The read only mode view and the read write mode view + +.. FIXME: à unifier avec l'autre définition de ro et rw dans la page dédiée rougail/rw_ro_modes.html + +.. glossary:: + + read only mode + + We call this mode the `RO` mode. In this mode it is impossible to modify the values of the variables. + This is the standard configuration usage mode. + + read write mode + + We call this mode the `RW` mode. In this mode you can edit the variables, even these that have + been hidden or disabled. + +Why these modes ? In this way, the :term:`operator` or the :term:`integrator` don't have to +add or pop familiy properties each time we pass from one use (editing mode) to another +(configuration using mode) to an other. Swithching modes with setting properties is not a good idea. +It's better to change the read write and the read_only mode inside a Rougail CLI session. + +.. note:: During a standard Rougail CLI session, the default usage is the read only mode. + We can switch at any time tho the read write mode by adding the `--cli.read_write` + Rougail CLI parameter. + +In the both `RO` and `RW` modes of the Rougail CLI session, we have this warning: + +:: + + 🔔 Warning + ┗━━ manual (Manual proxy configuration) + ┗━━ https_proxy (HTTPS Proxy) + ┗━━ address (HTTPS address): 🔔 family "https_proxy" (HTTPS Proxy) has + property hidden, so cannot access to "address" (HTTPS address), it + will be ignored when loading from the YAML file + "config/01/config.yml" + +We are warned that the `https_proxy` family has the `hidden` property. + +Note that this is only in the read only mode that the variables that lives in the `https_proxy` familiy are +set as **unmodifiable variable**: + +:: + + ┗━━ 📂 https_proxy (HTTPS Proxy) + ┣━━ 📓 address (HTTPS address): http.proxy.net + ┗━━ 📓 port (HTTPS Port): 3128 + +It is logical that we don't have this unmodifiable setting in the read write mode, +because the read/write mode is designed to be an editing mode. + +.. questions:: Question: shall we use the `disabled` property here? + + Is it relevant to use the :term:`disabled property ` here? + + **answer**: No! Because we *need* to use these variables at any :term:`context` of the proxy's manual configuration use case, + we simply have to point their values ​​in one direction or another depending on this or that context, + that's why it is absolutely not a question of disabling them. The `manual.https_proxy.address` + and the `manual.http_proxy.port` variables shall not be disabled in the manual mode. + +A conditional hidden family +---------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_053 ` version:: + + git switch --detach v1.1_053 + +Now we will focus on configuring the HTTPS mode in case of `"Manual proxy configuration"` value has been chosen, +let's have a look at our use case again: + +.. image:: images/firefox_manual_https.png + +Let's have a look at the HTPPS configuration corresponding structure file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_053/firefox/20-manual.yml + :linenos: + :language: yaml + :caption: the :file:`firefox/20-manual.yml` structure file + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + + https_proxy: + description: HTTPS Proxy + hidden: + variable: _.use_for_https + + address: + description: HTTPS address + default: + variable: __.http_proxy.address + + port: + description: HTTPS Port + default: + variable: __.http_proxy.port + ... + +We have added a new variable, named `use_for_https` here: + +.. confval:: use_for_https + :type: `boolean` + :default: `true` + + This is a setting that enables to reuse or not the HTTP proxy configuration for HTTPS + +The variable that drives the hidden/show behavior is the `use_for_https` variable because the `hidden` property has +a `variable` target parameter that points to it: `variable: _.use_for_https`. + +.. prerequisites:: Reminder + + The underscore and the point before the variable (`_.use_for_https`) points to the variable that lives in the same + family. + +Let's introduce a new Rougail concept here: + +.. glossary:: + + context + + A :term:`configuration` is highly statefull and can change at any moment. + Sometimes somes minor changes in the :term:`user data ` may involve chain reactions + in the whole :term:`configuration`. + The **context** is the state of the user data at one moment, the set of the values of the variables + at a given moment. + + This term refers in Rougail to the ability of a system to handle + the *statefull* state of a configuration. + It expresses the transition between one situation to another situation, + that is, the deeply **statefull** aspects of a data set. + +Do we want to reuse, for the HTTPS mode, the same configuration as for the HTTP mode? +Well, it depends on the :term:`context`. + +.. questions:: Question: how does it work? + + How will this variable drive the reuse of HTTP data to HTTPS data? + +With this :confval:`use_for_https` boolean variable, there are two possibilities, and only two: + +- The http proxy's configuration will be reused for the https proxy's configuration +- The http proxy's will not be reused for the https proxy's configuration + +Here is an example with different user values for handling HTTP and HTTPS: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_053/config/01/config.yml + :linenos: + :language: yaml + :caption: User data in the user data file :file:`config/01/config.yml` with `use_for_https` as false + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: false + https_proxy: + address: https.proxy.net + +If we launch the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_053/config/01/cmd_ro.txt + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_053/config/01/output_ro.html + +.. +
    ╭────────────── Caption ───────────────╮
    +    │ Variable Default value               │
    +    │          Modified value              │
    +    │          (⏳ Original default value) │
    +    ╰──────────────────────────────────────╯
    +    Variables:
    +    ┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy 
    +    configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No
    +    proxy)
    +    ┗━━ 📂 manual (Manual proxy configuration)
    +        ┣━━ 📂 http_proxy (HTTP Proxy)
    +        ┣━━ 📓 address (HTTP address): http.proxy.net ◀ loaded from the YAML
    +        file "config/01/config.yml"
    +        ┗━━ 📓 port (HTTP Port): 3128 ◀ loaded from the YAML file
    +            "config/01/config.yml" (⏳ 8080)
    +        ┣━━ 📓 use_for_https (Also use this proxy for HTTPS): false ◀ loaded from
    +        the YAML file "config/01/config.yml" (⏳ true)
    +        ┗━━ 📂 https_proxy (HTTPS Proxy)
    +            ┣━━ 📓 address (HTTPS address): https.proxy.net ◀ loaded from the YAML
    +            file "config/01/config.yml"
    +            ┗━━ 📓 port (HTTPS Port): 8080
    +    
    + +Notice that we have this `use_for_https` `boolean` type variable, its default value is `True`. +We want to offer the possibility of providing an identical or possibly different proxy configuration for the HTTP and for the HTTPS protocols. + +Here is an example with identical HTTP and HTTPS proxy configuration: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_053/config/02/config.yml + :linenos: + :language: yaml + :caption: User data in the user data file :file:`config/02/config.yml` with `use_for_https` as true + +.. + --- + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: http.proxy.net + port: 3128 + use_for_https: true + +Let's launch the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_053/config/02/cmd_ro.txt + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_053/config/02/output_ro.html + +.. +
    🛑 Caution
    +    ┗━━ manual (Manual proxy configuration)
    +        ┗━━ https_proxy (HTTPS Proxy)
    +            ┗━━ address (HTTPS address): 🛑 mandatory variable but is inaccessible 
    +                and has no value
    +    
    + +Which is logical, HTTPS proxy variables have no values set yet. +We are going to see how to point HTTPS variables to HTTP variables. + +.. keypoints:: Key points progress + + **summary** + + We have now the ability to build *contextual settings*: + + - if the `proxy_mode` variable's value is not `'Manual proxy configuration'` the `manual` family is disabled + - if the `proxy_mode` variable's value is `'Manual proxy configuration'` then the `manual` family is enabled + - if the `use_for_https` variable's value is `true`, the HTTP configuration will be reused in the HTTPS situation + and the `https_proxy` family will be hidden + - if the `manual.https_proxy.address` has no value set, the defaut value is the same as the `manual.http_proxy.address`'s value + (same behavior with the HTTP port and the HTTPS port variable) + + And yes, we did it. We have arrived at the end of the proxy's manual configuration's section. + + **Keywords** + + - We now know what a *property* is, we have seen in details the :term:`disabled` property, + - We can target a variable's value in the `disabled` property's value, + we call it a variable based contextual disabled family, + - The :term:`hidden` property can be set to a family, + - The fact that a property can be set dynamically, + - The conditional dependency of a `hidden` property can depends on a `boolean` variable, + - We know what a calculated default value is. + diff --git a/docs/tutorial/propertyerror.rst b/docs/tutorial/propertyerror.rst new file mode 100644 index 000000000..74884fcac --- /dev/null +++ b/docs/tutorial/propertyerror.rst @@ -0,0 +1,57 @@ +.. _tutorial_propertyerror: + +The Jinja propertyerror test +============================ + +.. objectives:: Objectives + + In a :ref:`Jinja-type calculation `, it is possible to test if a variable is accessible (there is no :ref:`access_control` problem). + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_140 ` in the repository: + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_140 + +For now, the variable `proxy_dns_socks5` defines these access controls as follows: + +- if the `proxy_mode` variable is not set to `"Manual proxy configuration"` +- if socks version is `v4`. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_131/firefox/55-proxy_dns_socks5.yml + :language: yaml + :caption: The :file:`firefox/55-proxy_dns_socks5.yml` + +In principle it works, but is that really what we want? We mean, do we want to disable it based on the proxy_mode variable? + +No, we actually want to make this variable available if the socks version is accessible and equals v4. + +Disabled a variable when an other variable is disabled +------------------------------------------------------- + +The most suitable syntax in Jinja for checking the status of a variable is to use the `concept of a test `_. + +Rougail offers a custom test that will verify correct access to the variable. + +This test is call `propertyerror`. + +Here is how one could write the Jinja using this feature: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_140/firefox/55-proxy_dns_socks5.yml + :language: yaml + :caption: The :file:`firefox/55-proxy_dns_socks5.yml` structure file with some Jinja code in the `hidden` property + +.. keypoints:: Key points + + We have seen that we can use the test `propertyerror` in Jinja template. diff --git a/docs/tutorial/redefine.rst b/docs/tutorial/redefine.rst new file mode 100644 index 000000000..f3ea5865e --- /dev/null +++ b/docs/tutorial/redefine.rst @@ -0,0 +1,110 @@ +.. _tutorial_redefine: + +Redefine variable +================= + +.. objectives:: Objectives + + When we said that a :ref:`variable is immutable ` when an :term:`integrator` defined it in structured data, we said that it had to be done explicitly. + Let's see how that works. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_240 ` to :tutorial:`v1.1_241 ` + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_240 + +Username is mandatory if a password is set +------------------------------------------ + +We now have two new variables following the same pattern as the :ref:`previous three one `: + +- A variable with the new type `unix_username` `username`, this variable is accessible in type HTTP, HTTPS/SSL, SOCKS4 or SOCKS5 +- A variable with the new type `secret` `password`, this variable is accessible in type HTTP, HTTPS/SSL, SOCKS4 or SOCKS5 + +Nothing really new from now. But we haven't said everything! +In fact, we have to deal with a new situation. We have three :ref:`coherence ` :ref:`configuration ` choices: + +- either we fill in the username/password pair +- we fill only the username +- or leave it blank + +Defining only a password makes no sense. + +There are several ways to solve this case. +Let's assume that if the :term:`operator` sets a password, they must also enter a username. The password can be `null`. + +In Rougail format, we would say that the password is :ref:`nullable ` and that the username has a :ref:`variable calculation ` to determine if it is :ref:`nullable `. +If the password is empty, the username is :ref:`nullable `; otherwise, it is not. + +Here's how to do it: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_240/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: The :file:`foxyproxy/00-foxyproxy.yml` + +Now let's test with the following user data file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_240/config/02/config.yml + :linenos: + :language: yaml + :caption: The :file:`config/02/config.yml` user data + +If we launch the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_240/config/02/cmd_ro.txt + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_240/config/02/output_ro.html + +.. note:: + + The value of a variable of type secret is replaced by asterisks (`*`) when it is displayed. + +Redefine it to password is hidden if an username is not set +----------------------------------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_241 ` version:: + + git switch --detach v1.1_241 + +Another solution is to say to ourselves: the username is never mandatory (just like the password) but the password is hidden if the username is empty. + +We could modify the structure file as we have been doing since the beginning of this tutorial. +Perhaps it's time to illustrate how to :term:`redefine` a variable. + +Redefine means that the variable is unify (combine) from multiple variables declarations. + +So we will create a new file with, inside, the same variable name. + +First of all, we will to redefine the mandatory attribute of the `username` variable. + +Secondly we will added a new calculation in the :ref:`hidden` parameters. + +Here is the final result of this file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_241/foxyproxy/10-redefine.yml + :language: yaml + :caption: The :file:`foxyproxy/10-redefine.yml` + +.. keypoints:: Key points + + Redefine a variable involves changing some of its parameters with new ones. diff --git a/docs/tutorial/regexp.rst b/docs/tutorial/regexp.rst new file mode 100644 index 000000000..17860011b --- /dev/null +++ b/docs/tutorial/regexp.rst @@ -0,0 +1,126 @@ +.. _tutorial_regexp: + +Regexp type with calculation +============================ + +.. objectives:: Objectives + + Regexp is a :ref:`variable specialize type ` which allows for easy validation of a variable from a regular expression. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_200 ` to :tutorial:`v1.1_201 ` + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_200 + +A regexp variable +----------------- + +We have already seen the :ref:`validator mechanism ` for managing the :ref:`quality of data values `. + +This mechanism is undeniably interesting and powerful. +But for strings that can be validated using a regular expression, it is preferable to use this type. +In this specific case, nothing beats this particular type. + +Obviously, the values assigned to a regexp type variable must be of type string. + +Here we will add a `color` variable which will allow us to quickly identify the current proxy via a color code. The expected value is a hex color code (like those used in CSS or HTML). + +This regrex must validate that the string begins with a hash symbol (#) followed by a RGB triplet in hexadecimal format (so 3 or 6 lowercase hexadecimal digits (0–9, a–f)). + +Here are some examples: `#a3f09c` or `#a3f`. + +The regular expression is `^#(?:[0-9a-f]{3}){1,2}$`. + +Let's write this variable: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_200/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: The regexp variable `color`. + +Now let's test with the following user data file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_200/config/02/config.yml + :linenos: + :language: yaml + :caption: The :file:`config/02/config.yml` user data + +With this Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_200/config/02/cmd_ro.txt + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_200/config/02/output_ro.html + +What happens if the value is not valid? + +The value is invalid: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_200/config/03/output_ro.html + +Calculate a random color +------------------------ + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_201 ` version:: + + git switch --detach v1.1_201 + +Why not offer a default value to the user? + +If the user has a specific color in mind, they can specify it. Otherwise, Rougail will suggest a default value. + +We've already seen how to use :ref:`Jinja ` for :ref:`validation ` and :ref:`access control ` calculations. + +We've also seen how to calculate the default value by :ref:`retrieving the value of another variable `. + +It's entirely possible to calculate the default value from a Jinja template: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_201/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: Calculate the default variable `color`. + +Now let's test with the following user data file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_201/config/02/config.yml + :linenos: + :language: yaml + :caption: The :file:`config/02/config.yml` user data + +With this Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_201/config/02/cmd_ro.txt + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_201/config/02/output_ro.html + +As you can see, Rougail offers a default value! + +.. keypoints:: Key points + + - We can easily create a variable that valid value via a regexp + - We can calculate a default value with Jinja template diff --git a/docs/tutorial/sequence.rst b/docs/tutorial/sequence.rst new file mode 100644 index 000000000..1aecec1e5 --- /dev/null +++ b/docs/tutorial/sequence.rst @@ -0,0 +1,238 @@ +Homogeneous elements sequence +================================== + +.. objectives:: Objectives + + We are going to discuss a new Rougail type, :term:`the sequence of homogeneous elements ` + which we will call, more concisely, a :term:`sequence`. It's a rather unusual :term:`family`. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`1.1_190 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach 1.1_190 + +As a reminder, we are now talking about the Firefox add-on called +`Foxy Proxy `_ use case, +here is the Foxy Proxy widget: + +.. image:: images/foxyproxy.png + +A family with sequence type +------------------------------ + +.. note:: To be precise, we should say: a :term:`family with a sequence of homogeneous elements type `. + +Our request here is to have a list of homogeneous objects. +Indeed, if we click on "Add proxy" in our Foxy Proxy widget, we will need to specify: + +- a proxy type +- a color + +(and also enter some other values). +And this applies to each proxy we will define. + +Here is the structure file associated with this use case: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_190/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: The FoxyProxy structure file :file:`foxyproxy/00-foxyproxy.yml` with the `proxies` sequence variable + +.. + %YAML 1.2 + --- + version: 1.1 + + proxies: + description: Proxy configuration + type: sequence + + title: + description: Title or Description + mandatory: false + + color: # Color + ... + +Unsurprisingly, the way to assign the `sequence` type is done with the help of the `type` parameter. +We see here that `proxies` is a family because it contains the variables `title` and `color`. + +There is nothing new to say to this two variable: + +- `title` is not mandatory string +- `color` is just a string + +.. note:: + + The first variable of the :term:`sequence` is not mandatory. + This does not mean that the variable is :ref:`tutorial_nullable` or that the :ref:`list is empty `. + In this case, that means that the sequence is empty. + +Which we could write in JSON like this: + + .. code-block:: json + + [] + +Now configure the sequence: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_190/config/02/config.yml + :language: yaml + :caption: A :file:`config/02/config.yml` user data file with the `proxies` sequence + +.. + --- + foxyproxy: + proxies: + - title: My company + color: '#66cc66' + +We can see in the :term:`user data` YAML file that the `proxies` value is a list of mappings. + +Which we could write in JSON like this: + + .. code-block:: json + + [ + { + "title": "My company", + "color": "#66cc66" + } + ] + +So we can clearly see in the JSON that if there's a `title` key, then there will also be a `color` key. + +This is guaranteed by our :term:`sequence` type. + +Let's launch our Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_190/config/02/cmd_ro.txt + +.. + rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/02/config.yml + +And the Rougail output is: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_190/config/02/output_ro.html + +.. + Variables: + ┣━━ 📂 firefox (Firefox) + ┃ ┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy + ┃ ┗━━ 📂 dns_over_https (DNS over HTTPS) + ┃ ┗━━ 📓 enable_dns_over_https (Enable DNS over HTTPS): false + ┗━━ 📂 foxyproxy (FoxyProxy) + ┗━━ 📂 proxies (Proxy configuration) + ┗━━ 📂 title (Title or Description) + ┣━━ 📓 title (Title or Description): My company ◀ loaded from the + ┃ YAML file "config/02/config.yml" + ┗━━ 📓 color (Color): #66cc66 ◀ loaded from the YAML file + "config/02/config.yml" + +.. type-along:: A sequence with multiple user data + +We will now look at the same `proxies` sequence variable, +to which multiple values ​​are assigned: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_190/config/03/config.yml + :language: yaml + :caption: A :file:`config/03/config.yml` user data file with multiple values + +.. + --- + foxyproxy: + proxies: + - title: My company + color: '#66cc66' + - title: An other company + color: '#cc66cc' + - title: WPAD + color: '#1166cc' + + +Which we could write in JSON like this: + + .. code-block:: json + + [ + { + "title": "My company", + "color": "#66cc66" + }, + { + "title": "An other company", + "color": "#cc66cc" + }, + { + "title": "WPAD", + "color": "#1166cc" + } + + ] + + +And now we can clearly see that this `proxies` variable of type `sequence` +is a container for lists of values ​​of the same shape, +and which contain the same number of elements: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_190/config/03/output_ro.html + +.. + Variables: + ┣━━ 📂 firefox (Firefox) + ┃ ┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy + ┃ ┗━━ 📂 dns_over_https (DNS over HTTPS) + ┃ ┗━━ 📓 enable_dns_over_https (Enable DNS over HTTPS): false + ┗━━ 📂 foxyproxy (FoxyProxy) + ┗━━ 📂 proxies (Proxy configuration) + ┣━━ 📂 title (Title or Description) + ┃ ┣━━ 📓 title (Title or Description): My company ◀ loaded from the + ┃ ┃ YAML file "config/03/config.yml" + ┃ ┗━━ 📓 color (Color): #66cc66 ◀ loaded from the YAML file + ┃ "config/03/config.yml" + ┣━━ 📂 title (Title or Description) + ┃ ┣━━ 📓 title (Title or Description): An other company ◀ loaded from + ┃ ┃ the YAML file "config/03/config.yml" + ┃ ┗━━ 📓 color (Color): #cc66cc ◀ loaded from the YAML file + ┃ "config/03/config.yml" + ┗━━ 📂 title (Title or Description) + ┣━━ 📓 title (Title or Description): WPAD ◀ loaded from the YAML + ┃ file "config/03/config.yml" + ┗━━ 📓 color (Color): #1166cc ◀ loaded from the YAML file + "config/03/config.yml" + +.. seealso:: + + To go further, you can have a look at the Rougail format pages :ref:`Sequence of homogeneous elements ` + +.. keypoints:: let's review the key points + + **Keywords** + + Sequence. + We saw a :term:`sequence` type family, which full name is :ref:`Sequence of homogeneous elements `. + + **Comments** + + What is remarkable here is that we are dealing with a new form of :term:`consistency` + which focuses on variables that are similar within a family, + not because they have the same type, but because, as they are lists, + they must have the same number of elements. diff --git a/docs/tutorial/types.rst b/docs/tutorial/types.rst new file mode 100644 index 000000000..4a3c7e446 --- /dev/null +++ b/docs/tutorial/types.rst @@ -0,0 +1,461 @@ +Some suitable types +===================== + +.. objectives:: Objectives + + There isn't just the basic `string` available type, here we will discover new + variable types, for example the `boolean` type, and even types that are much more + suited to our use case, such as `domainname` or `port`. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tags :tutorial:`v1.1_030 ` to :tutorial:`v1.1_033 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_030 + +.. type-along:: Let's recap how far we've come + +We have an `http_proxy` family with an `address` variable in it. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_022/firefox/10-manual.yml + :language: yaml + :caption: An `address` variable in the `http_proxy` family + +.. + manual: # Manual proxy configuration + http_proxy: # HTTP Proxy + address: + description: HTTP address + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +.. _tutorial_domainname: + +A variable with type `domainname` +----------------------------------- + +We will add a business types to our `address` variable: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/firefox/10-manual.yml + :language: yaml + :caption: An `address` variable in the `http_proxy` family + +.. + manual: # Manual proxy configuration + http_proxy: # HTTP Proxy + address: + description: HTTP address + type: domainname + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Notice that with this `type: domainname` we have assigned the `domainname` business type to this variable. +Assigning a type is convenient for reading, but what else does it bring? + +Well, with a correct user data like this one: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/01/config.yml + :language: yaml + :caption: A domain name user data setting + +.. + --- + manual: + http_proxy: + address: net.example + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +if we launch the Rougail CLI on it: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/01/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/01/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/01/output_ro.html + :class: output +.. +
    ╭──────── Caption ────────╮
    +    │ Variable Default value  │
    +    │          Modified value │
    +    ╰─────────────────────────╯
    +    Variables:
    +    ┣━━ 📓 Configure Proxy Access to the Internet: No proxy
    +    ┗━━ 📂 Manual proxy configuration
    +        ┗━━ 📂 HTTP Proxy
    +            ┗━━ 📓 HTTP address: example.net ◀ loaded from the YAML file 
    +                "config/01/config.yml"
    +    
    + + +And we don't really see any change associated with the fact that we have assigned +a type to this variable. But if we assign this (wrong) user data: + +.. type-along:: A domain name has no space in it + +Let's have a look at an example of user setting that does not fit the +`domainname` type: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/03/config.yml + :language: yaml + :caption: An invalid domain name for the :file:`config/03/config.yml` user data setting + +.. + --- + manual: + http_proxy: + address: bla bla + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +The value is obviously not a domain name, then when we will launch the Rougail CLI: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/03/cmd_invalid.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_data_error + +we then have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/03/output_invalid.html + :class: error + +.. +
    🛑 ERRORS
    +    ┗━━ the value "bla bla" is an invalid domain name for 
    +        "manual.http_proxy.address" (HTTP address), must not be an IP, it will be 
    +        ignored when loading from the YAML file "config/02/config.yml"
    +    
    + +A variable with type's parameters +------------------------------------- + +What if we set an IP address instead of a domain name? + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/02/config.yml + :language: yaml + :caption: A domain name in the :file:`config/02/config.yml` user data setting with an IP address + +.. + --- + manual: + http_proxy: + address: 19.168.230.51 + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +With a value that *is not a domain name* but an IP address, then when we will launch the Rougail CLI +we will see a little problem: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/02/cmd_invalid.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.invalid_user_data_error + +we then have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_030/config/02/output_invalid.html + :class: error + +.. +
    🛑 ERRORS
    +    ┗━━ the value "192.168.0.1" is an invalid domain name for 
    +        "manual.http_proxy.address" (HTTP address), must not be an IP, it will be 
    +        ignored when loading from the YAML file "config/02/config.yml"
    +    
    + +We observe that an error has been raised because an IP address is not a domain name. +Therefore, a type validation is taking place because we declared the type `domainname`. + +.. questions:: Question + + OK I agree with the `domainname` necessary type validation, but what if I want to specify + an IP address as a user value for this `address` variable? + Because it is therefore simply impossible to do so now. + + Is there a way for my `address` variable to accept an IP address? + +Well, it is possible to configure the type so that it accepts IP addresses. +We need to specify whether our variable accepts to be filled using an IP or a domain name only. +This is where the ability to parameterize our variable comes in. + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_031 ` version:: + + git switch --detach v1.1_031 + +Let's add a type parameter named `allow_ip`: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_031/firefox/10-manual.yml + :language: yaml + :caption: The `allow_ip` type parameter set in the :file:`firefox/10-manual.yml` structure file + :linenos: +.. + --- + manual: + description: Manual proxy configuration + + http_proxy: + description: HTTP Proxy + + address: + description: HTTP address + type: domainname + params: + allow_ip: true + +The params allow the domain name `address` variable to be set with IPs. + +.. glossary:: + + type parameter + + A type parameter is a parameter of a variable that can refine its behavior. + It is declared by adding the `params` attribute in the variable's + definition. + +Now we will test with an IP address as the value for our `address` variable. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_031/config/02/config.yml + :language: yaml + :caption: An IP address as a value in the :file:`config/02/config.yml` user value + +.. + --- + manual: + http_proxy: + address: 192.168.0.1 + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +if we launch the Rougail CLI on it: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_031/config/02/cmd_ro.txt + :class: terminal + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml + +We have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_031/config/02/output_ro.html + :class: output + +We can see that the IP address value has been accepted. + +.. _tutorial_port: + +A variable with type `port` +------------------------------ + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_032 ` version:: + + git switch --detach v1.1_032 + +After the `address` variable let's add, according to our use case, a new variable of type `port`: + +.. image:: images/firefox_port.png + +Our structure file looks like this: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_032/firefox/10-manual.yml + :language: yaml + :caption: The `port` type variable in the :file:`firefox/10-manual.yml` structure file + :linenos: +.. + port: + description: HTTP Port + type: port + default: 8080 + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Let's assign a value to this port: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_032/config/02/config.yml + :language: yaml + :caption: A user data :file:`config/02/config.yml` setting a value to the port variable + +.. + proxy_mode: Manual proxy configuration + manual: + http_proxy: + address: example.net + port: 3128 + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +If we launch the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_032/config/02/cmd_ro.txt + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_032/config/02/output_ro.html + +.. +
    ╭─────────────────────────── Caption ────────────────────────────╮
    +    │ Variable                           Modified value              │
    +    │ Undocumented but modified variable (⏳ Original default value) │
    +    ╰────────────────────────────────────────────────────────────────╯
    +    Variables:
    +    ┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ 
    +    loaded from the YAML file "config/02/config.yml" (⏳ No proxy)
    +    ┗━━ 📂 Manual proxy configuration
    +        ┗━━ 📂 HTTP Proxy
    +            ┣━━ 📓 HTTP address: example.net ◀ loaded from the YAML file 
    +            "config/02/config.yml"
    +            ┗━━ 📓 HTTP Port: 3128 ◀ loaded from the YAML file 
    +                "config/02/config.yml" (⏳ 8080)
    +    
    + +How can we know what validations the port type performs on the value assigned to the variable? + +There are a number of validations that are carried out with this `port` type. +Now let's assign a value that is outside the allowed ports: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_032/config/03/config.yml + :language: yaml + :caption: A user value in :file:`config/03/config.yml` that is not allowed + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +Again, we launch the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_032/config/03/cmd_invalid.txt + +.. rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_data_error + +And we have this output: + +.. raw:: html + :class: error + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_032/config/03/output_invalid.html + +.. +
    🛑 ERRORS
    +    ┗━━ the value "100000" is an invalid port for "manual.http_proxy.port" (HTTP 
    +        Port), must be between 1 and 65535, it will be ignored when loading from the
    +        YAML file "config/03/config.yml"
    +    
    + +We observe that, as with the `domainname` type, a number of validations are performed +to ensure that the value assigned to this variable conforms to the `port` type. + +.. _tutorial_boolean_variable: + +A variable with type `boolean` +----------------------------------- + +.. type-along:: For those who follow the tutorial with the help of the git repository + + Now you need to checkout the :tutorial:`v1.1_033 ` version:: + + git switch --detach v1.1_033 + +Let's add one more variable in the `manual` family, with a much more basic type: `boolean`. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_033/firefox/20-manual.yml + :language: yaml + :caption: A new structure file :file:`firefox/20-manual.yml` with one variable + +.. + %YAML 1.2 + --- + version: 1.1 + + manual: + + use_for_https: true # Also use this proxy for HTTPS + ... + +:tutorial:`Download this file from the rougail-tutorials git repository ` + +.. note:: + + - it is not necessary to declare the variable as a boolean type, + the type is *inferred* by the presence of the `true` default value + + - we have decided to create a new structure file :file:`firefox/20-manual.yml`. + This is not necessary but usefull, please have a look at the :ref:`structure file organization and naming conventions ` + + - here we reuse the `manual` existing family name that has already been declared in the :file:`firefox/10-manual.yml` structure file. + The content in the :file:`firefox/20-manual.yml` will be added to the existing `manual` family. + Note that if two different structure files are loaded by Rougail and if they declare the same family name, + then **the declarations are concatenated in the family name**. + +Let's switch this boolean variable to a `false` value, to do this we will add +this :file:`config/02/config.yml` user data file in the :term:`configuration`: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_033/config/02/config.yml + :language: yaml + :caption: A :file:`config/02/config.yml` user data file with false as a value for `use_for_https` + +.. + --- + manual: + http_proxy: + address: example.net + use_for_https: false + +:tutorial:`Download this file from the rougail-tutorials git repository ` + + +Let's run the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_033/config/02/cmd_ro.txt + +.. + rougail -m firefox/ -u yaml -yf config/02/config.yml + +The result is: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_033/config/02/output_ro.html + +We could of course perform several tests on type validators, but here the validation is simple: only two values ​​are allowed (`true` or `false`). + +.. keypoints:: let's review the key points + + - we can assign a `domainname` type to a variable + - we can set a :term:`type parameter` to a `domainname` variable to refine their typing behavior + - we can assign a `port` type to a variable + - we know how to set a `boolean` type variable to `true` or `false` diff --git a/docs/tutorial/underscore_parameter.rst b/docs/tutorial/underscore_parameter.rst new file mode 100644 index 000000000..c9e926251 --- /dev/null +++ b/docs/tutorial/underscore_parameter.rst @@ -0,0 +1,70 @@ +Name and parameter conflict +================================ + +.. objectives:: Objectives + + When a variable name conflicts with a family parameter, + do we have to abandon the variable name choice we made? + No because having a suitable variable name is really important. + The variable name you chose is undoubtedly the best. + + Sometimes, the choice of a variable's name may correspond very exactly + to an parameter of the family in which that variable is placed... + + In this section, we will learn how to create a variable name that conflict with a defined parameter name. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_220 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_220 + +.. type-along:: Let's recap how far we've come + +We have this homogeneous elements type family in its structure definition file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_210/foxyproxy/00-foxyproxy.yml + :linenos: + :language: yaml + :caption: The `proxies` family with `sequence` type in the :file:`foxyproxy/00-foxyproxy.yml` structure file + +The variable "type" that conflits with the family parameter "type" +---------------------------------------------------------------------------- + +Choice a good variable name is important. It's with this name that user will interact with here value. + +The user has to define the type of the new proxy. So instinctively the name of the variable will be `type`. + +But in the current family we have already the parameter `type` with the `sequence` value. +YAML do not permit to have two key with the same name. +Maybe we could choice an other variable name like `proxy_type` but the full path will be `proxies.proxy_type`. +Repeating the word proxy is not appropriate. + +So the best way it to rename the `type` parameter to `_type` + +Let's create a family named `manual` which obviously corresponds to the proxy's manual configuration choice. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_220/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: The `proxies` family with `sequence` type and a variable with the name `type` in the :file:`foxyproxy/00-foxyproxy.yml` structure file + +Technically it's possible to put `_` at the beginning of each parameter name, but it's still less readable. + +.. keypoints:: Let's review the key points + + **Keywords** + + - parameters could start by "_" character or not + - do not add `_` in front of all parameters name diff --git a/docs/tutorial/validators.rst b/docs/tutorial/validators.rst new file mode 100644 index 000000000..fd0044018 --- /dev/null +++ b/docs/tutorial/validators.rst @@ -0,0 +1,120 @@ +.. _tutorial_validators: + +Validating a variable's value +================================ + +.. objectives:: Objectives + + We will see how to create strong validations for the values of our variables, + that is, validations that go beyond those inherent in the initial type definition. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_170 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_170 + +A variable with custom validation +----------------------------------- + +First, we would like the :term:`operator` to remember not to forget the HTTPS protocol, that is to put `https://` at the beginning of our `web_address` variable's value. +Actually the `web_address`\ 's variable existence *requires* that the address include the HTTPS protocol, namely: + +:: + + http(s):// + +However, in our use case, we want *to force* the HTTPS protocol. +We don't want `http://`, only `https://`. + +.. note:: This URL is for DNS over HTTPS, providing greater privacy than using the ISP's DNS, + which can filter traffic. If it uses `http://`, it doesn't make sense. + +But there’s no existing type or types parameters for this specific use case (forcing HTTPS). + +We just said that a valid value must start with `https://` instead of `http://`. +It is possible, instead of creating a new type, to add custom validation of the variable's value. + +We call it a :term:`validator`. + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_170/firefox/60-dns_over_https.yml + :language: yaml + :caption: The :file:`firefox/60-dns_over_https.yml` with the jinja validator + +Here we can see that the validation code is: + +.. code-block:: jinja + + {{ _.custom_dns_url.startswith("http://") }} + +First of all, you can see that we use the path of the current variable for validation. + +A validator can return a string, in fact it is its default behavior. +If it returns a string of characters, it indicates the validation error. + +In this case we see that we have specified the `return_type parameter`, which +specifies that the Jinja code shall return a boolean value. + +The validator's `description` parameter serves two purposes: + +- it does, of course, have a string function for documenting validation, +- since the `return_type` parameter is set to boolean, + the error message contains this description's string. + +.. type-along:: example with `http://` in the user data + +Now, let's try with incorrect user data, containing `http://` and not `https://` + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_170/config/03/config.yml + :language: yaml + :caption: A :file:`config/03/config.yml` user data file containing `http://` + +.. + --- + dns_over_https: + enable_dns_over_https: true + provider: Custom + custom_dns_url: http://dns.net + + +Let's run the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_170/config/03/cmd_ro.txt + +.. + rougail -m firefox/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/03/config.yml + +The result is: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_170/config/03/output_ro.html + +The warning indicates that the validator did not allow an HTTP protocol to pass: + +:: + + ┃ the value "http://dns.net" is an invalid URL, must starts with + ┃ 'https://' only, it will be ignored when loading from the YAML file + ┃ "config/03/config.yml" + +.. keypoints:: Let's review the key points + + We explained the use of validations to refine the type definition of a variable. + + The variable's parameter is `validator`. + diff --git a/docs/tutorial/variable_propertyerror.rst b/docs/tutorial/variable_propertyerror.rst new file mode 100644 index 000000000..50e295ab9 --- /dev/null +++ b/docs/tutorial/variable_propertyerror.rst @@ -0,0 +1,121 @@ +.. _tutorial_var_propertyerror: + +Variable calculation with propertyerror +======================================= + +.. objectives:: Objectives + + In a :ref:`variable-type calculation `, it is possible to test if a variable is accessible (there is no :ref:`access_control` problem). + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_230 ` in the repository: + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_230 + +We have now to add three new variables: + +- :ref:`tutorial_domainname` `address` that allow IP and hostname, this variable is accessible in type HTTP, HTTPS/SSL, SOCKS4 or SOCKS5 +- :ref:`tutorial_port`, this variable is accessible in type HTTP, HTTPS/SSL, SOCKS4 or SOCKS5 +- :ref:`tutorial_web_address` URL, this variable is accessible in type PAC URL or WPAD + +.. image:: images/foxyproxy.png + +There is a particularity to these three variables. +We want to copy the values of the equivalent variables available in Firefox. +The reason is obvious; it simplifies data entry. + +Variables are not always available. It is possible to test their presence in a :ref:`Jinja template `, as we have :ref:`already seen `. +But it's not the most effective. It is preferable to perform a :ref:`variable-type calculation ` using the property `propertyerror` to `false`. + +This property allows you to disable errors in case of :ref:`access problems `. + +Let's start by modifying the structure file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/foxyproxy/00-foxyproxy.yml + :language: yaml + :caption: The :file:`foxyproxy/00-foxyproxy.yml` + +If the variable is accessible, there's no question about it; the variable retrieves its value. But what happens if the variable is not accessible? + +In this case, the value of the variable is `null`. + +Don't just take my word for it, let's do a test. + +Now let's test with the following user data file: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/02/config.yml + :linenos: + :language: yaml + :caption: The :file:`config/02/config.yml` user data + +The proxy in the Firefox :ref:`namespace ` is not defined, so the address and port variables are not accessible. + +A proxy is configured in FoxyProxy, but also without address or port. + +If we launch the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/02/cmd_ro.txt + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/02/output_ro.html + +As expected, calculating the default value works without issue even though the variables involved in the calculations are inaccessible. + +The values are therefore `null`. These variables are not :ref:`nullable `, so the :ref:`overall coherence ` of the :ref:`configuration` is not guaranteed. + +Now try it in the :term:`read write mode` with the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/02/cmd_rw.txt + +The variables has really the value `null`: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/02/output_rw.html + +Now let's configure the variables in the Firefox :ref:`namespace `: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/04/config.yml + :linenos: + :language: yaml + :caption: The :file:`config/04/config.yml` user data + +As you can see, the address and port are defined in the Firefox :ref:`namespace ` but not in the FoxyProxy :ref:`namespace `. + +If we launch the Rougail CLI: + +.. raw:: html + :class: terminal + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/04/cmd_ro.txt + +We have this output: + +.. raw:: html + :class: output + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_230/config/04/output_ro.html + +As expected, the Firefox :ref:`namespace ` values are correctly copied into the FoxyProxy :ref:`namespace `. + +.. keypoints:: Key points + + We have seen that we can use the test `propertyerror` in Variable calculation. + diff --git a/docs/tutorial/webaddress.rst b/docs/tutorial/webaddress.rst new file mode 100644 index 000000000..576e736d1 --- /dev/null +++ b/docs/tutorial/webaddress.rst @@ -0,0 +1,91 @@ +.. _tutorial_web_address: + +A `web_address` variable +================================ + +.. objectives:: Objectives + + We are going to create another variable for the needs of our use case, + a conditional disabled variable with type `web_address`. + +.. prerequisites:: Prerequisites + + - We assume that Rougail's library is :ref:`installed ` on your computer. + + - It is possible to retrieve the current state of the various Rougail files manipulated in this tutorial step + by checking out the corresponding tag of the `rougail-tutorials` git repository. + Each tag corresponds to a stage of progress in the tutorial. + Of course, you can also decide to copy/paste or download the tutorial files contents while following the tutorial steps. + + If you want to follow this tutorial with the help of the corresponding :tutorial:`rougail-tutorials git repository `, + this workshop page corresponds to the tag :tutorial:`v1.1_100 ` + in the repository. + + :: + + git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git + git switch --detach v1.1_100 + +.. type-along:: A web_address variable + +A conditional disabled variable with type web_address +------------------------------------------------------------- + +First we need to add a variable as part of our use case with a type we haven't used yet, the `web_address` type. +It is related to the automatic proxy configuration :term:`situation `. +Let's put it in the new :file:`firefox/30-auto.yml` :term:`structure file`. +Note that this variable has a :term:`disabled` property defined: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_110/firefox/30-auto.yml + :language: yaml + :caption: The :file:`firefox/30-auto.yml` structure definition file with the `auto` variable + +.. + %YAML 1.2 + --- + version: 1.1 + + auto: + description: Automatic proxy configuration URL + type: web_address + disabled: + variable: _.proxy_mode + when_not: Automatic proxy configuration URL + ... + +If the `proxy_mode` variable has the `"Automatic proxy configuration URL"` value, the `auto` variable is enabled. +It is :term:`disabled` otherwise. + +Let's launch the Rougail CLI on this :term:`user data file `: + +.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_110/config/02/config.yml + :language: yaml + :caption: The :file:`config/02/config.yml` user data file + +.. + --- + proxy_mode: Automatic proxy configuration URL + auto: https://auto.proxy.net/wpad.dat + no_proxy: 192.168.1.0/24 + +we have this output: + +.. raw:: html + :url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_110/config/02/output_ro.html + :class: output + +.. + ╭────────────── Caption ───────────────╮ + │ Variable Modified value │ + │ (⏳ Original default value) │ + ╰──────────────────────────────────────╯ + Variables: + ┣━━ 📓 Configure Proxy Access to the Internet: Automatic proxy configuration URL ◀ loaded from the YAML file "config/03/config.yml" (⏳ No proxy) + ┗━━ 📓 Automatic proxy configuration URL: https://auto.proxy.net/wpad.dat ◀ loaded from the YAML file "config/03/config.yml" + +We can see that the `auto` variable has been activated here in this :term:`situation `. + +.. keypoints:: Key points + + In this section we have just created yet another variable, the `auto` variable, with the `web_address` type. + We are now used to conditional deactivation of a variable. diff --git a/docs/user_data/ansible.rst b/docs/user_data/ansible.rst new file mode 100644 index 000000000..859cf5581 --- /dev/null +++ b/docs/user_data/ansible.rst @@ -0,0 +1,83 @@ +Load user data from Ansible compatible file +=========================================== + +Synopsis +------------- + +.. note:: + + | Ansible offers a tool (ansible-vault) for encrypting inventory files. With this user data you can open an encrypt inventory file. This is a perfect way to manage a smooth migration from Ansible inventory to Rougail. Or it could be a way to encrypt these secrets in a file with a secure format. + | **Disabled**: if ansible is not set in "select for user data" (step.user_data). + +Parameters +-------------- + +.. list-table:: + + * - Variable + - Description + + * - **ansible.filename** + + `UNIX filename `__ `multiple` `mandatory` `*disabled*` `unique` + + **Command line**: + + --ansible.filename + + **Environment variable**: ROUGAILCLI_ANSIBLE.FILENAME + - Ansible filename inventory. + + **Validators**: + + + + - this filename could be a relative path + + - this file must exist + + - 'file type allowed: "file"' + + + + **Disabled**: if ansible is not set in "select for user data" (step.user_data). + + * - **ansible.secret** + + `secret `__ `mandatory` `*disabled*` + + **Command line**: + + --ansible.secret + + **Environment variable**: ROUGAILCLI_ANSIBLE.SECRET + - Secret to decrypt file. + + **Disabled**: if ansible is not set in "select for user data" (step.user_data). + + * - **ansible.file_with_secrets** + + `choice `__ `mandatory` `*disabled*` + + **Command line**: + + --ansible.file_with_secrets + + **Environment variable**: ROUGAILCLI_ANSIBLE.FILE_WITH_SECRETS + - Ansible files that may contain secrets. + + **Choices**: + + + + - all **← (default)** + + - first + + - last + + - none + + + + **Disabled**: if ansible is not set in "select for user data" (step.user_data). diff --git a/docs/user_data/bitwarden.rst b/docs/user_data/bitwarden.rst new file mode 100644 index 000000000..2ba3e296b --- /dev/null +++ b/docs/user_data/bitwarden.rst @@ -0,0 +1,58 @@ +Load user data secrets from Bitwarden +===================================== + +Synopsis +------------- + +.. note:: + + | Load the secrets from Bitwarden (or a compatible server like Vaultwarden). The data is retrieved using the official command line "bw" or the alternative command "rbw" (faster). Before using Rougail, the command must be logged and unlocked. + | **Disabled**: if bitwarden is not set in "select for user data" (step.user_data). + +Parameters +-------------- + +.. list-table:: + + * - Variable + - Description + + * - **bitwarden.command** + + `choice `__ `multiple` `mandatory` `unique` + + **Command line**: + + --bitwarden.command + + **Environment variable**: ROUGAILCLI_BITWARDEN.COMMAND + - Command line used to retrieve secrets. + + Command line must be in PATH. + + **Choices**: + + + + - rbw **← (default)** + + - bw **← (default)** + + * - **bitwarden.mock_enable** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --bitwarden.mock_enable + + - --bitwarden.no-mock_enable + + + + **Environment variable**: ROUGAILCLI_BITWARDEN.MOCK_ENABLE + - Simulate password generation instead of retrieve them. + + **Default**: false diff --git a/docs/user_data/commandline.rst b/docs/user_data/commandline.rst new file mode 100644 index 000000000..8df63d1f8 --- /dev/null +++ b/docs/user_data/commandline.rst @@ -0,0 +1,10 @@ +Load user data from commandline parser +======================================= + +Synopsis +------------- + +.. note:: + + | Load the user data from the current command line. + | **Disabled**: if bitwarden is not set in "select for user data" (step.user_data). diff --git a/docs/user_data/environment.rst b/docs/user_data/environment.rst new file mode 100644 index 000000000..b16d3afbe --- /dev/null +++ b/docs/user_data/environment.rst @@ -0,0 +1,71 @@ +Load user data from environment variables +========================================= + +Synopsis +------------- + +.. note:: + + | Variable values can be defined directly from an environment variable. + | + | Environnement variable names begin with a prefix (by default `ROUGAIL_`) followed by the variable path in uppercase, for example: `ROUGAIL_MY_VARIABLE`. If you are using namespaces, the prefix is the name of the namespace in uppercase. + | + | Note that variable paths can contain dots ("."), which are not permitted everywhere. To avoid any issues, use the `env` command, for example: `env ROUGAIL_MY_FAMILY.MY_VARIABLE=1 rougail`. + | + | For values, there is no difference between a number and a letter (they can be enclosed in quotes or not). However, booleans are True or False. The separator for multiple variables is a comma. + | **Disabled**: if environment is not set in "select for user data" (step.user_data). + +Parameters +-------------- + +.. list-table:: + + * - Variable + - Description + + * - **environment.default_environment_name** + + `string `__ `mandatory` + + **Command line**: + + --environment.default_environment_name + + **Environment variable**: ROUGAILCLI_ENVIRONMENT.DEFAULT_ENVIRONMENT_NAME + - Name of the default environment prefix. + + **Validator**: should only use uppercase character + + **Default**: ROUGAIL + + * - **environment.custom_separator** + + `string `__ + + **Command line**: + + --environment.custom_separator + + **Environment variable**: ROUGAILCLI_ENVIRONMENT.CUSTOM_SEPARATOR + - Replace the separator character "." in path by an other. + + The character dot (".") may not be allowed in the environment variable name. Note that the variable name with dots is always available in addition to the name with this character. + + * - **environment.with_secrets** + + `boolean `__ `mandatory` + + **Command line**: + + + + - --environment.with_secrets + + - --environment.no-with_secrets + + + + **Environment variable**: ROUGAILCLI_ENVIRONMENT.WITH_SECRETS + - Environnement variables may contain secrets. + + **Default**: true diff --git a/docs/user_data/example.yaml b/docs/user_data/example.yaml new file mode 100644 index 000000000..88e3ec0e6 --- /dev/null +++ b/docs/user_data/example.yaml @@ -0,0 +1,53 @@ +%YAML 1.2 +--- +version: 1.1 + +person: # Description of a person + + + firstname: # Last name of the person + + lastnames: [] # Last names of the person + + age: + description: Person's age + type: integer + params: + min_integer: 0 + max_integer: 120 + + legal_age: + description: The person is of legal age + type: boolean + default: + jinja: |- + {{ _.age is not none and _.age >= 18 }} + hidden: true + + drive_license: + description: The person has a driver's license + default: false + disabled: + variable: _.legal_age + when_not: true + + means_of_transport: + description: Means of transport used by the person + choices: + - human-powered + - public transport + - electric-assisted vehicle + - engine-powered without a license + - engine-powered + - others + validators: + - jinja: |- + {% if _.means_of_transport == "engine-powered" %} + {% if _.drive_license is propertyerror %} + {{ _.lastnames[0] }} {{ _.firstname }} is not of legal age but declares that he uses an engine-powered + {% elif not _.drive_license %} + {{ _.lastnames[0] }} {{ _.firstname }} does not have a license but declares that he uses an engine-powered + {% endif %} + {% endif %} + description: Engine-powered are only permitted for individuals with a driver's license +... diff --git a/docs/user_data/index.rst b/docs/user_data/index.rst new file mode 100644 index 000000000..3959dd30c --- /dev/null +++ b/docs/user_data/index.rst @@ -0,0 +1,17 @@ +User data modules +====================== + +Rougail is a collections of modules in order to adjust functionalities to your needs. + +:term:`User data` is one of category of subjects. The goal is to setup variable with value defined by the :term:`operator`. + +.. toctree:: + :titlesonly: + :caption: Available user data + + yaml + ansible + environment + bitwarden + commandline + questionary diff --git a/docs/user_data/prerequisites.rst b/docs/user_data/prerequisites.rst new file mode 100644 index 000000000..438f6fe4f --- /dev/null +++ b/docs/user_data/prerequisites.rst @@ -0,0 +1,59 @@ +Prerequisites +============= + +Installation +------------ + +We assume that Rougail's command line is :ref:`installed ` on your computer. + +Verify that you have correctly installed the tool by running: + +.. code-block:: bash + :class: terminal + + + $ rougail --cli.versions + tiramisu: x.x.x + tiramisu-cmdline-parser: x.x.x + rougail: x.x.x + rougail-cli: x.x.x + rougail-user-data-ansible: x.x.x + rougail-user-data-bitwarden: x.x.x + rougail-user-data-commandline: x.x.x + rougail-user-data-environment: x.x.x + rougail-user-data-questionary: x.x.x + rougail-user-data-yaml: x.x.x + rougail-output-ansible: x.x.x + rougail-output-display: x.x.x + rougail-output-doc: x.x.x + rougail-output-formatter: x.x.x + rougail-output-json: x.x.x + rougail-output-table: x.x.x + +Smoke test +---------- + +We need a Rougail structured data file to test and illustrate the different user data loading modules. + +.. literalinclude:: example.yaml + :caption: A example of structured data file place in the :file:`example.yaml` structure file + +Let's test this :term:`structure file`: + +.. code-block:: bash + :class: terminal + + $ rougail -m example.yaml + +The output has to be: + +.. raw:: html + :class: terminal + + 🛑 Caution + ┗━━ Description of a person + ┣━━ Last name of the person: 🛑 mandatory variable but has no value + ┣━━ Last names of the person: 🛑 mandatory variable but has no value + ┣━━ Person's age: 🛑 mandatory variable but has no value + ┗━━ Means of transport used by the person: 🛑 mandatory variable but has no value + diff --git a/docs/user_data/questionary.rst b/docs/user_data/questionary.rst new file mode 100644 index 000000000..fdeeed2f7 --- /dev/null +++ b/docs/user_data/questionary.rst @@ -0,0 +1,56 @@ +Define user data interactively in the console +============================================= + +Synopsis +------------- + +.. note:: + + | The user will enter variable values in a command-line interface. The variables will be displayed one after another, allowing the user to change or add values. + | **Disabled**: if questionary is not set in "select for user data" (step.user_data). + +Parameters +-------------- + +.. list-table:: + + * - Variable + - Description + + * - **questionary.mandatory** + + `boolean `__ `mandatory` + + **Command line**: + + + + - -qm, --questionary.mandatory + + - -nqm, --questionary.no-mandatory + + + + **Environment variable**: ROUGAILCLI_QUESTIONARY.MANDATORY + - Ask values only for mandatories variables without any value. + + **Default**: false + + * - **questionary.show_secrets** + + `boolean `__ `mandatory` + + **Command line**: + + + + - -qs, --questionary.show_secrets + + - -nqs, --questionary.no-show_secrets + + + + **Environment variable**: ROUGAILCLI_QUESTIONARY.SHOW_SECRETS + - Show secrets instead of obscuring them. + + **Default**: false diff --git a/docs/user_data/yaml.rst b/docs/user_data/yaml.rst new file mode 100644 index 000000000..ff46954f5 --- /dev/null +++ b/docs/user_data/yaml.rst @@ -0,0 +1,71 @@ +Load user data from YAML file +============================= + +Synopsis +------------- + +.. note:: + + | Variable values can be defined in a list of YAML files. + | **Disabled**: if yaml is not set in "select for user data" (step.user_data). + +Sample +------ + + + +Parameters +-------------- + +.. list-table:: + + * - Variable + - Description + + * - **yaml.filename** + + `UNIX filename `__ `multiple` `mandatory` `unique` + + **Command line**: + + -yf, --yaml.filename + + **Environment variable**: ROUGAILCLI_YAML.FILENAME + - File or directory names where user data are stored. + + If a directory is set, all files with "yml" ou "yaml" extension will be load with alphanum order. + + **Validators**: + + + + - this filename could be a relative path + + - this file must exist + + - 'file type allowed: "directory" and "file"' + + * - **yaml.file_with_secrets** + + `choice `__ `mandatory` + + **Command line**: + + --yaml.file_with_secrets + + **Environment variable**: ROUGAILCLI_YAML.FILE_WITH_SECRETS + - File that may contain secrets. + + By default, all files can contain secrets. It might be useful to define more precisely which files can contain these secrets. + + **Choices**: + + + + - all **← (default)** + + - first + + - last + + - none diff --git a/docs/vac.rst b/docs/vac.rst new file mode 100644 index 000000000..a99d08da2 --- /dev/null +++ b/docs/vac.rst @@ -0,0 +1,206 @@ +Variables as Code +================== + + +Definition +-------------- + +.. glossary:: + + VaC + + VaC stands for **Variables as Code**, it is the practice of managing configuration variables the same way you treat source code. + +It is a concept that extends the Infrastructure as Code (IaC) philosophy to the management of configuration variables, secrets, and environment-specific settings. +More precisely, this extends Configuration as Code (CaC) principles. + +The idea is to treat variables — not just infrastructure or configuration — as version-controlled, declarative, and automated code rather than manual, static, or hardcoded values. + +With growing complexity of the infrastructure, it is difficult to manage all the variables. +Due to more and more available variables required to set up the infrastructure, +it became quite annoying to hand the necessary variables to where they are actually used +and even more annoying to add new variables. + +Variables can be redundant and sometimes are defined on several places. + +.. attention:: + + Many IaC projects use what could be called Values as Code (User Data as Code with the Rougail terminology). + Values are placed in a versioned and structured repositories. + But we don't share the variable itself (apart from its name). + We are thinking of its type, its scope, its purpose, etc. + + Variables as Code is not only the values. + +Reusable and shareable variables +------------------------------------ + +A typical example is the management of Ansible collections. + +Currently, when you distribute an Ansible collection, you distribute the recipes that allow you to deploy a component, the default values ​​for certain variables, and possibly variable validation. + +However, you don't share the variable declarations. Therefore, each user would have to rewrite the user documentation, define the global context themselves, and so on. It is therefore the user's responsibility to maintain the consistency of the variables with these given problems. +With Rougail, the collection maintainer can do this work himself and everyone will benefit. + +And we're not even talking about managing variables in a multi-project context. +It is often necessary to recreate the same variables with the same constraints over and over again between different projects. + +Variables as Code with Rougail +----------------------------------- + +For this, we thought of a solution and came up with a concept of managing all our variables as a code called :term:`VaC (Variables as Code) `. + +Often when we talk about :term:`VaC` (or CaC) we think of the different environments (Development, Staging, Production). + +With Rougail, this question does not arise. Essentially, Rougail manages this with user data. +Here we're talking about sharing variables between projects. + +Furthermore, using a tool like Rougail allows you to use variables with different IaC deployment solutions without having to redefine those variables. +It can be said that Rougail allows you to use variables not only between projects but also between tools. + +To do this, we need typed variable definitions with defaults and validation. + +Once defined, variables must be able to: + +- provide useful information to the operator to make their choices +- load user values from differents sources +- validate the context +- display and archive the final values in a readable format +- allow other applications to use these variables + +Variables as Code with Rougail by example +------------------------------------------- + +There's nothing better than a simple example to illustrate everything that's just been presented. + +Structured file +~~~~~~~~~~~~~~~~~~ + +Let's start by creating a file in Rougail format. + +This isn't the time to explain the format. + +But we'll create a quick file here to create the "my_variable" variable: + +.. code-block:: yaml + + %YAML 1.2 + --- + version: 1.1 + + my_variable: my_value # It's my variable + ... + +Let's document it +'''''''''''''''''''' + +We can start by generating the variable's documentation from this file: + +.. list-table:: + + * - Variable + - Description + + * - **my_variable** + + `string `__ `mandatory` + - It's my variable. + + **Default**: my_value + +Or an example user data file in YAML format: + +**Example with all variables modifiable:** + +.. code-block:: yaml + + --- + my_variable: my_value + +Regarding documentation, it's even possible to generate a changelog view for users. + +Let's imagine that the default value was originally `old_value` and is now `my_value`: + +.. list-table:: + + * - Variable + - Description + + * - **my_variable** + + `string `__ `mandatory` + - It's my variable. + + **Default**: :strike:`old_value` :underline:`myvalue` + +Now it's time to export +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In simple JSON format: + +.. code-block:: json + + { + "my_variable": "my_value" + } + +Or in advanced Ansible format: + +.. code-block:: json + + { + "_meta": { + "hostvars": { + "host1.net": { + "ansible_host": "host1.net", + "inventory": { + "my_variable": "my_value" + } + } + } + }, + "app1": { + "hosts": [ + "host1.net" + ] + } + } + +Or display it +~~~~~~~~~~~~~~~~ + +Displaying informations is an important step in the VaC approach. In a complex environment where variables are defined in multiple places, not to mention their values located elsewhere, maintaining good traceability of variables and their values becomes difficult. + +Managing variables like code also means `compiling` the informations. + +Here display our examples: + +.. raw:: html + :class: output + +
    +    ╭─────── Caption ────────╮
    +    │ Variable Default value │
    +    ╰────────────────────────╯
    +    Variables:
    +    ┗━━ 📓 It's my variable: my_value
    +    
    + +Now change the value with differents user data: + +.. raw:: html + :class: output + +
    +    ╭────────────── Caption ───────────────╮
    +    │ Variable Modified value              │
    +    │          (⏳ Original default value) │
    +    ╰──────────────────────────────────────╯
    +    ╭──────────── Layers ─────────────╮
    +    │ • the YAML file "user_data.yml" │
    +    │ • environment variable          │
    +    │ • Questionary                   │
    +    ╰─────────────────────────────────╯
    +    Variables:
    +    ┗━━ 📓 It's my variable: I am right about the value ◀ loaded from questionary 
    (⏳ I define the value! ◀ loaded from environment variable
    ⏳ no it's my value ◀ loaded from the YAML file "user_data.yml"
    ⏳ my_value) +
    diff --git a/docs/variable.rst b/docs/variable.rst deleted file mode 100644 index 1eab898dc..000000000 --- a/docs/variable.rst +++ /dev/null @@ -1,306 +0,0 @@ -The variables -=================== - -Synopsis ------------- - -.. glossary:: - - variable - variables - - A variable is an abstract black box (container) paired with an associated symbolic name, which contains some defined or undefined quantity of data referred to as a `value`. - -.. discussion:: This definition, makes a heavy use of data typing. - Indeed, depending on the type system definition of the constistency handling system used, variables may only be able to store a specified data type. - OK, variables are the containers for storing the values. It has something to do with typing. - But this is not just about typing. - -Name -------------- - -Variable's associated symbolic name. - -It's best to follow the :ref:`convention on variable names`. - -Shorthand declaration ----------------------------- - -Shorthand declaration is a way to declare a variable in a single line. But you can only define variable name, description, multi or default value. - -To create a variable, just add a key with it's name and default value as value. -Be careful not to declare any other attributes. - -To declare a multi variable just add a list as default value. - -By default, the description of the variable is the variable name. -If you add a comment in the same line of the name, this comment will be used has a description. - -.. code-block:: yaml - - --- - version: '1.1' - my_variable: 1 # This is a great integer variable - my_multi_variable: # This is a great multi string variable - - value1 - - value2 - -Parameters -------------- - -.. list-table:: - :widths: 15 45 - :header-rows: 1 - - * - Parameter - - Comments - - * - **help** - - `string` - - Additional help associated with the variable. - - * - **default** - - Default value(s) of the variable. - - This value is typed, you must correctly fill out the YAML file to avoid defining a value with an incorrect type. For example, a `number` must be a digit type, a multiple variable must be a `list` type, ... - - For a non :term:`leading` multiple variable, the first value defined in the list will also be the default value proposed if a new value is added to this variable. - - * - **validators** - - `list` - - Value validators. - - Jinja template list. The value of the variable will be considered invalid if the template has a return value. - * - **auto_save** - - `boolean` - - Variable with automatically modified value. - - A variable with automatically modified value is a variable whose value will be considered as *modified* (that is, it is no longer the variable's default value). - - For example, if the value of this variable comes from a calculation, the value will no longer be recalculated. - - These variables are usually :term:`required` variables. In fact, these variables are only automatically modified if they have a value. - - A :term:`leader` or :term:`follower` variable cannot have the `auto_save` property. - - **Default value**: `false` - * - **mode** - - `string` - - Variable's mode. - - **Default value**: The `default` mode of a variable is the mode of the parent family. - - Special cases : - - - a variable with an automatically modified value or an automatic read-only variable is by default in `basic` mode - - if the variable is not in a family, the variable will have a `standard` mode by default - - a :term:`mandatory` variable without default value (calculate or not) will have a `basic` mode - * - **multi** - - `boolean` - - The value of the variable is a list. - - **Default value**: `false` - * - **unique** - - `boolean` - - The :term:`multiple` type variable accepts the same value several times. If unique is set to `false`, a :term:`multiple` variable only accepts the same value once in the list. - - **Default value**: `false` - * - **hidden** - - `boolean` or :term:`calculation` - - Invisible variable. - - Enables us to *hide* a variable. - - This means that the variable will no longer be visible in `read-write` mode, but only for calculations or in `read-only` mode. - - When a variable is made invisible, the user will not be able to modify its value; if he has already succeeded in modifying it, this value will not be taken into account. - - **Default value**: `false` - * - **disabled** - - `boolean` or :term:`calculation` - - Disabled variable. - - Allows us to deactivate a variable. - - This means that the variable will no longer be visible to the user but also to a :term:`calculation`. - - **Default value**: `false`. - * - **mandatory** - - `boolean` or :term:`calculation` - - Mandatory variable. - - Variable whose value is `required`. - - For a multiple variable, this means that the list shall not be empty. - - **Default value**: `true` - * - **redefine** - - `boolean` - - It is possible to define a variable in one :term:`dictionary` and change its behavior in a second :term:`dictionary`. In this case you must explicitly redefine the variable. - - **Default value**: `false` - * - **exists** - - `boolean` - - This attribute does two things: - - - creates a variable if it does not exist in another :term:`dictionary` (otherwise do nothing), in this case the value of the attribute must be `true` - - in conjunction with the `redefine` attribute set to `true`, only modifies the behavior if it is pre-existing, in which case the attribute's value must be `false`. - - **Default value**: `null` - * - **test** - - `list` - - The `test` attribute is a special attribute that allows :term:`dictionary` designers to influence a test robot by specifying useful values to test. - - Concretely, the content of this attribute is recorded in the `information` attribute of the corresponding `Tiramisu` option object. - -Variables types ----------------- - -A variable **has a type**. - -This type enables the variable to define the values that are accepted by this variable. - -.. list-table:: - :widths: 15 25 20 15 - :header-rows: 1 - - * - Value - - Comments - - Parameters - - Samples - - * - string - - character string (default type) - - - - test - - "1" - - "true" - * - number - - a number - - `min_number`: minimum number allowed - - `max_number`: maximum number allowed - - 1 - * - float - - a floating number - - - - 1.2 - * - boolean - - A boolean, if no value is defined the default value of this variable will be `true`, the variable will also be :term:`mandatory` by default - - - - `true` - - `false` - * - secret - - a secret (like a password, a private key, etc.) - - - - `hO_'hi` - * - mail - - a mail address - - - - test@rougail.example - * - unix_filename - - a file name in the Unix meaning - - - - :file:`/etc/passwd` - * - date - - a date in the format `%Y-%m-%d` - - - - `2021-01-30` - * - unix_user - - a user in the Unix meaning - - - - test - * - ip - - any kind of IPv4 address - - `private_only`: only private IPs (`false` by default) - - `allow_reserved`: allows reserved IPs (`true` by default) - - `1.2.3.4` - * - cidr - - any IPv4 address in the CIDR format - - `private_only`: only private IPs (`false` by default) - - `allow_reserved`: allows reserved IPs (`false` by default) - - `1.2.3.4/24` - * - netmask - - mask of an IPv4 address - - - - `255.255.255.0` - * - network - - network address - - - - `192.168.1.0` - * - network_cidr - - network address in CIDR format - - - - `192.168.1.0/24` - * - broadcast - - broadcast address - - - - `255.255.255.255` - * - netbios - - netbios name - - - - machine - * - domainname - - domain name - - `allow_ip`: allows an IP rather than a domain name (`false` by default) - - `allow_cidr_network`: allows a CIDR type network address (`false` by default) - - `allow_without_dot`: allows names without a dot (`false` by default) - - `allow_startswith_dot`: allows starting with a point (`false` by default) - - `rougail.example` - * - hostname - - host name - - `allow_ip`: allows an IP rather than a domain name (`false` by default) - - machine - * - web_address - - web address - - `allow_ip`: allows an IP rather than a domain name (`false` by default) - - `allow_without_dot`: allows names without a dot (`true` by default) - - http://rougail.example - * - port - - port - - `allow_range`: allows a port range, for example 80:85 (`false` by default) - - `allow_zero`: allows port 0 (false by default) - - `allow_wellknown`: allows ports from 1 to 1023 (`true` by default) - - `allow_registred`: allows ports from 1024 to 49151 (`true` by default) - - `allow_private`: allows ports greater than 49152 (`true` by default) - - `allow_protocol`: allows the addition of the protocol, for example tcp:80 (`false` by default) - - - 8080 - * - mac - - MAC address - - - - 11:11:11:11:11:11 - * - unix_permissions - - access rights to the file, directory, etc. - - - - 644 - * - choice - - choice variable - - - -

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 literal 0 HcmV?d00001 diff --git a/docs/tutorial/images/firefox_01.png b/docs/tutorial/images/firefox_01.png new file mode 100644 index 0000000000000000000000000000000000000000..45725ac6472de1e879f92263649ae9d977ba36a0 GIT binary patch literal 122305 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

+ .
+ └── firefox
+ ├── 00-proxy.yml
+ ├── 10-manual.yml
+ └── 20-manual.yml
+