Copyright © 2015-2017 SCC/KIT
Authors: Bas Wegh.
WaTTS is an application to 'translate' OpenID Connect (oidc) information into information specific to a use case. One Example is the translation from oidc to an x509 certificate.
The general architecture of the application is split into two parts, the WaTTS server, which this documentation is about. The other part is the WaTTS client ui, a Java script single page application that uses the rest interface of the WaTTS server.
The translation from the OpenID Connect information another service specific representation is done in two steps:The result of this translation is then presented to the user.
WaTTS is started using the OTP application behaviour, the module implementing it iswatts_app
.
The supervision tree looks as follows. The list is in order of execution, the ordering is
depth first, so 1.2 gets started before 2. List entries without a number are dynamicly
created at run time and none at the loading phase.
watts_sup
(supervisor, registered) watts_sessions_sup
(supervisor, registered) ensures that all sub processes keep running watts_session_sup
(supervisor, registered, simple_one_for_one) will handle dynamically created sessions. watts_session
(worker, dynamic) a dynamic session at the rest/web interface. watts_session_mgr
(worker, registered) a process to ensure that creation of sessions are serialized so no race conditions can occur. watts_rsp_keys_sup
(supervisor, registered, simple_one_for_one) the supervisor for the rsp key fetcher watts_rsp_keys
(worker, dynamic) one process per RSP to keep the public-key(s) of the RSP up to date. watts_plugin_sup
(supervisor, registered, simple_one_for_one) dynamically creating processes to run plugins. watts_plugin_runner
(worker, dynamic) one process per plugin execution, starting the plugin and validating the result. watts_plugin
(worker, registered) a generic interface to plugin related information retrieval and actions. watts_ets
(worker, registered) the ets database process watts_persistent_sqlite
(worker, registered) the sqlite database driver watts_temp_cred_sup
(supervisor, registered, simple_one_for_one) handling very short living credential data processes. watts_temp_cred_data
(worker, dynamic) keeping track of the processes holding the translation generated by the plugin. watts_temp_cred
(worker, registered) Holds one translation, stops itself after either 10 seconds (configurable) or after once the data has been read, what ever happens first. watts_init
(worker) The configuration of the system. The server is configured after all modules (code) is loaded by the module.
Have a look at watts_init
regarding the initialization phase.
Generated by EDoc