---
feature_story: FS_83_23_99_90
feature_title: client plugin config override
feature_status: TEST
---

At the moment, client-side plugin config override happens at client discretion.

# Common scenario

*   Command is delegated for client-side invocation.

*   Client loads config from `@/conf/plugin_config/{plugin_instance_id}.yaml`.

    Any schema is possible, the first expected choice is to use the same plugin config schema
    that plugin uses on the server side (just to save on schema definitions).

*   Let plugin on client side decide which part of the loaded data actually overrides anything (maybe none).

# Client and Server difference

Both client and server can see `argrelay_plugin.yaml` file.

However:

*   Server always loads this file entirely.
*   Client does not need to load all plugins, it only needs the one it is delegated to invoke on its side.

That is why client likely looks for `@/conf/plugin_config/{plugin_instance_id}.yaml` only.

This also suggests that client-side `argrelay_plugin.yaml` loads config from that separate file.

For example (using FS_70_55_40_99 splitting config files):

```yaml
SomePlugin.default:
    plugin_module_name: argrelay_lib_server_plugin_core.plugin_delegator.SomePlugin
    plugin_class_name: SomePlugin
    plugin_config:
        !include "dst/env_name/plugin_config/SomePlugin.default.yaml"
```

Server may do it as well (just to keep diff between client and server config to the minimum).
