Configuration¶
While the configuration system has been built to allow for future extending a simple INI style configuration is shipped and shown in examples.
INI Sections¶
There are three required sections:
- plugin: The user data sources.
- output: Where the resulting data flows out from.
- authoritative: A special user data source that acts as the source of truth.
Each uses the same format and expects a list of module = class
like so:
[plugin]
my.plugin.module = PluginClass
another.plugin.module = AnotherClass
Each module = class
is configured with its own section using the the module as the
section name. This section takes key = value
pairs which will be passed to a plugin’s
__init__
. For instance, to configure my.plugin.module = PluginClass
above:
[my.plugin.module]
username = user
domain = example.org
# ...
Note
The authoritative section specifies the single authoritative data source. There is no support for multiple sources of truth.
And there is also two optional sections:
- ignored_users: username as key (values ignored)
[ignored_users]
admin_account =
ignorethisonetoo =
# ...
- equate_users: username is an alias for another username
[equate_users]
thisguy = realuser
# ...
INI Extras¶
Python’s ConfigParser
doesn’t support accepting lists. To get around this
the INI plugin accepts comma seperated items and parses them to a list.
[ocupado.output.smtp]
# ...
smtpto = me@example.org,you@example.org
# Parses to ['me@example.org', 'you@example.org']
INI Example¶
Check out this simple example for a complete config using the test plugins.
Next¶
Now it’s time to use ocupado.