How-to guides
Extension (not a graph element)
Most Komods are graph elements: the user creates their instances in the graph. An extension, in contrast, belongs to the package, not to the graph:
[Komod("acme.bluetooth", Kind = KomodKind.Extension)]
public sealed class BluetoothKomod : KomodBase<BluetoothSettings> { … }
Behavior
- It does not appear in the graph palette and cannot be put into the graph.
- While its package is enabled, KOFA runs exactly one instance of it, with the id
ext-<komod id>. It stops when the package is disabled. - Its
ViewKind.Pageview appears in the Extensions menu item (admin). - Its settings are kept in the package state, not in the graph.
- Its
[KomodCommand]commands and subscribing to ports work as for a graph instance; the instance is available at/api/instances/ext-<id>(the/api/instanceslist gives only graph instances).
It suits a system-level service that you do not link with others, for example a connection manager (Bluetooth, network).