rougail/docs/structured_data.rst

69 lines
2.2 KiB
ReStructuredText
Raw Normal View History

2026-06-04 20:43:51 +02:00
The structure file
2025-11-06 11:46:31 +01:00
=====================
2026-06-04 08:27:11 +02:00
Definition
------------
.. 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`.
2025-11-06 11:46:31 +01:00
The header of a structure file
-----------------------------------
2025-11-07 09:05:44 +01:00
A basic structure file is composed of:
- a YAML 1.2 standard header
- a version attribute
2025-11-06 11:46:31 +01:00
.. 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.
:name: RougailStructureFirstVariableDescription
..
%YAML 1.2
---
version: 1.1
...
The structure file processing
----------------------------------
The structured files contain information that will be used by the consistency
handling system for structure validation.
.. figure:: images/schema.png
:alt: The Rougail process
:align: center
The Rougail process from structure files to Tiramisu valition handler object
The structured data
---------------------
2026-06-04 20:43:51 +02:00
All of the declaring variables and writing consistency is as simple as writing YAML.
2025-11-06 11:46:31 +01:00
2026-06-04 20:43:51 +02:00
We can declare variables and describe the relationships between variables in a declarative style (that is, in a YAML file).
2025-11-06 11:46:31 +01:00
Once the structure files are loaded by Rougail, the Tiramisu configuration management tool can check the consistency of the variables between them.
What contains exactly a :term:`structure file`?
-------------------------------------------------
A :term:`structure file` is a YAML file whose structure is described in this documentation page.
2026-06-04 20:43:51 +02:00
A structure file contains a set of variables, usable in your application, for example in a template
2025-11-06 11:46:31 +01:00
to generate configuration files.
2026-01-05 13:59:56 +01:00
:term:`Families <family>` and :term:`variables <variable>` can be defined in several structure files. These structure files are then aggregated.
2025-11-06 11:46:31 +01:00
If you want to see the contents of a structure file, you can have a look at the :ref:`tutorial with a real world sample. <tutorial>`