Each AGE's Node has its own configuration registry where all services and plug-ins, operating under the same node, can store and use variety of settings and domain-specific properties. This configuration registry is managed by a dedicated process, called The Configuration Guardian. The registry acts as a beehive with separate cells where the configuration is stored as a set with key-value pairs, and can be accessed using the key-name of the respective pair. The following standard cells are available for usage after Node's initialization: ✓AGE_SYSTEM - this cell is intended to hold all general-purpose configuration data. ✓AGE_NETWORK - this cell is intended to hold communication and network-related configuration data. ✓AGE_FIREWALL - this cell holds the Node's Firewall configuration. ✓AGE_SERVICES - this cell is intended to hold common configuration data related to the build-in Node's Services. ✓AGE_WEB - this cell holds configuration data particularly related to AGE's web services controlled by Web Server. ✓AGE_MAIL - this cell holds configuration data particularly related to AGE's mail services, like SMTP Server (Mail Service) and IMAP Server (Mail Service). ✓AGE_ADBC - this cell holds configuration data particularly related to all AGE's Database Connectivity (ADBC).
Each configuration property can be accessed via unique root path: <CELL>/<KEY>/.../<KEY>. The configuration properties can be created, updated or deleted via the configuration API (native or JSON-RPC), or via external configuration files. The configuration file is a simple plain-text which may contain one or more properties organized as a sequence of data structures, called Configuration Objects.
The Configuration Object has the following self-explanatory structure, like this one: #{root => "AGE_SERVICES/age_spmm/fts_threshold_rate", value => 90}.
However, the configuration objects has recursive behavior, and, therefore can define more properties at once as follows: #{
Furthermore, the configuration objects can be organized in a collection of objects within the configuration file. For example, the above two properties, described under the same root configuration path, can be represented in this way: #{root => "AGE_SERVICES/age_spmm/data_source_limit", value => 3}. #{root => "AGE_SERVICES/age_spmm/fts_threshold_rate", value => 90}.
Note: Just remember that each configuration object stored into a plain-text file MUST end with a single dot (.). |
About the configuration deployment and maintenance
By design, the AGE Node is supposed to work 24/7 without interruption. The overall configuration can be secured in the following ways: 1)By deploying the node as a bundle with pre-reconfigured behavior, including all required services and plug-ins. 2)By modifying the configuration at run-time using the integrated API. 3)By modifying the configuration using external files with the API by importing particular file with configuration objects. 4)By modifying the configuration automatically, using the Guardians capability to monitor the "<installation_path>\lib\age-2020.1\config\auto" directory.
The last option, actually, is quite simple and handy - prepare your plain-text files with configuration objects and put the files into this "magic" directory. The Guardian will import your files automatically into the Node's registry and will delete them from the directory. That's it. |