OpenSCD add-ons are add functionality to extend the core functionality. It allows to experiment (with out commit it directly to the core) and add functionality for just a small group of users. Once an add-on is used a lot and is considered stable, it can become a part of the core functionality.
ADR
Alternatives for Add-ons are
- Mixins
- Wait to solve it in OpenSCD-core (thus long discussions, testing etc)
Possible Addons:
- Setting
- Wizarding
- Waiting
- Logging
Since the functionanlity is not fledged out. The idea is to start with an add-on. Once the are stabel, they can be merged into OpenSCD-core itself.
Not needed any longer compared to OpenSCD monolith architecture:
Hosting => This is solved in OpenSCD-Core.
Editing => This is solved in OpenSCD-Core. Without editing, the app gets useless.
Plugging => This is solved in OpenSCD-Core. Without plug-ins, the app gets useless.
The new setup
Setting addon
Takes care of user specific settings. The settings are stored in the local browser cache.
Examples inlcudes: NSD files, NSdoc.
Wizarding addon
The wizarding Addon takes care of displaying a single wizard in the workflow
Waiting addon
The waiting Addon is responsible for adding progress-like waiting elements to OpenSCD.
This gives the user feedback and disables other functionality while the system is busy.
Logging addon
The logging Addon is responsible for keeping tack of log statements in OpenSCD.
Theming addon
Loads the theming; provides an API for a Theming plug-in.
CoMPAS specific add-ons
Since CoMPAS has backend services, it can require more addons
Elastic addon
The Elastic Addon is responsible for sending Log statements and monitoring to the Elastic stack
Single sign-on addon
The SSO Addon is responsible for Authentication via SSO for CoMPAS.