anchor.diff:  %% limitations under the License.
   %%
   -author("Bas Wegh, Bas.Wegh<at>kit.edu").
  +-include("watts.hrl").
   
   -export([get_list/0]).
   -export([get_list/1]).
  
positive.code:     update_service(Id, maps:put(enabled, false, Info)).
  
  
  %% @doc log if the plugin supports stdin or not
  -spec log_plugin_security(map(), binary()) -> ok.
  log_plugin_security(#{features := #{stdin := true}}, ServiceId) ->
      Msg = "service ~p: plugin supports stdin will use secure channel",
      watts_init:info(Msg, [ServiceId]),
      ok;
  log_plugin_security(_, ServiceId) ->
      Msg = "service ~p: plugin does not support stdin, this plugin is insecure!",
      watts_init:warning(Msg, [ServiceId]),
      ok.
  
  
  
  
negative.code:     Info0 = maps:merge(Info, Ensure),
      {ValidConfParam, Info1}=validate_conf_parameter(ConfParams, Info0),
      {ValidCallParam, Info2}=validate_call_parameter_sets(RequestParams, Info1),
      InsecAllowed = ?CONFIG(allow_insecure_plugins),
      Features = maps:get(features, PluginConf, #{}),
      SecureOrAllowed = is_secure_plugin_or_allowed(Features, InsecAllowed, Id),
      Info3 = list_skipped_parameter_and_delete_config(Info2),
  
      Enabled = ValidConfParam and ValidCallParam and SecureOrAllowed,
      Update = #{enabled => Enabled,
                 devel_email => maps:get(developer_email, PluginConf, undefined),
                 plugin_features => Features
                },
      NewInfo = maps:merge(Info3, Update),
      {ok, QueueName} = start_runner_queue_if_needed(NewInfo),
  