anchor.diff:      Files = generate_file_list(?MAIN_CONFIG_FILE),
       ok = register_files(main,Files),
       ok = apply_main_settings().
  +
  +read_oidc_configs() ->
  +    read_oidc_configs(get_(oidc_config_path, undefined)). 
  +
  +read_oidc_configs(undefined) ->
  +    ok;
  +read_oidc_configs(BasePath) ->
  +    OidcConfs = filelib:wildcard(filename:join([BasePath,"*.conf"])), 
  +    parse_and_apply_oidc(OidcConfs), 
  +    ok.
   
   read_service_configs() ->
       read_service_configs(get_(service_config_path, undefined)). 
  
positive.code:     end.
  
  
  parse_and_apply_services([]) ->
      ok;
  parse_and_apply_services([ConfigFile|Tail])  ->
      ok = econfig:register_config(service,[ConfigFile]),
      ServiceConfig = econfig:get_value(service,""),
      ConfigMap = maps:from_list(ServiceConfig), 
      tts_service:add(ConfigMap), 
      ok = econfig:unregister_config(service), 
      parse_and_apply_services(Tail).
  
  register_files(Name,Files) ->
      register_single_config(Name,only_first(Files)).  
  
  
negative.code:     LPort = local_port(),
      LocalEndpoint = << LProt/binary, HostName/binary, LPort/binary, EpReturn/binary >>, 
      set_config(local_endpoint,LocalEndpoint),
      ok.
  
  -define(OIDC_SETTINGS,[
                      {"Id",binary,""},
                      {"Description",binary,""},
                      {"ClientId",binary,""},
                      {"Secret",binary,""},
                      {"ConfigEndpoint",binary,""}
                  ]).
  
  parse_and_apply_oidc([]) ->
      ok;
  parse_and_apply_oidc([ConfigFile|Tail])  ->
      ok = econfig:register_config(oidc,[ConfigFile]),
      Settings = get_values(oidc,"",?OIDC_SETTINGS),
      IsEmpty = fun(V,In) ->
                        case V of
                            <<>> -> true;
  