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 <hidden>` and :ref:`disabled variable <disabled>` 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?
