[ {kernel, [ {log_level, info}, {logger, [ {handler, default, logger_std_h, #{ level => debug, config => #{ type => {file, "/var/log/fistful-server/console.json"}, sync_mode_qlen => 20 }, formatter => {logger_logstash_formatter, #{}} }} ]} ]}, {scoper, [ {storage, scoper_storage_logger} ]}, {dmt_client, [ % milliseconds {cache_update_interval, 5000}, {max_cache_size, #{ elements => 20, % 50Mb memory => 52428800 }}, {woody_event_handlers, [ {scoper_woody_event_handler, #{ event_handler_opts => #{ formatter_opts => #{ max_length => 1000 } } }} ]}, {service_urls, #{ 'Repository' => <<"http://dominant:8022/v1/domain/repository">>, 'RepositoryClient' => <<"http://dominant:8022/v1/domain/repository_client">> }} ]}, {party_client, [ {services, #{ party_management => "http://party_management:8022/v1/processing/partymgmt" }}, {woody, #{ % disabled | safe | aggressive cache_mode => safe, options => #{ woody_client => #{ event_handler => {scoper_woody_event_handler, #{ event_handler_opts => #{ formatter_opts => #{ max_length => 1000 } } }} } } }} ]}, {fistful, [ {provider, #{ <<"ncoeps">> => #{ payment_institution_id => 100, contract_template_id => 10000, contractor_level => full }, <<"test">> => #{ payment_institution_id => 1, contract_template_id => 1, contractor_level => full } }}, {services, #{ 'eventsink' => "http://machinegun:8022/v1/event_sink", 'automaton' => "http://machinegun:8022/v1/automaton", 'accounter' => "http://shumway:8022/accounter" }} ]}, {ff_transfer, [ %% 4h {max_session_poll_timeout, 14400}, {withdrawal, #{ default_transient_errors => [ <<"authorization_failed:temporarily_unavailable">> ], party_transient_errors => #{ <<"ExamplePartyID">> => [ <<"account_limit_exceeded:amount">>, <<"authorization_failed:destination_rejected">> ] } }} ]}, {ff_server, [ {ip, "::"}, {port, 8022}, {default_woody_handling_timeout, 30000}, {net_opts, [ % Bump keepalive timeout up to a minute {timeout, 60000} ]}, {scoper_event_handler_options, #{ event_handler_opts => #{ formatter_opts => #{ max_length => 1000, max_printable_string_length => 80 } } }}, {health_check, #{ disk => {erl_health, disk, ["/", 99]}, memory => {erl_health, cg_memory, [99]}, service => {erl_health, service, [<<"fistful-server">>]} }}, {eventsink, #{ identity => #{ namespace => 'ff/identity' }, wallet => #{ namespace => 'ff/wallet_v2' }, withdrawal => #{ namespace => 'ff/withdrawal_v2' }, deposit => #{ namespace => 'ff/deposit_v1' }, destination => #{ namespace => 'ff/destination_v2' }, source => #{ namespace => 'ff/source_v1' }, withdrawal_session => #{ namespace => 'ff/withdrawal/session_v2' }, w2w_transfer => #{ namespace => 'ff/w2w_transfer_v1' } }} ]}, {how_are_you, [ {metrics_publishers, [ % {hay_statsd_publisher, #{ % key_prefix => <<"fistful-server.">>, % host => "localhost", % port => 8125 % }} ]} ]}, {snowflake, [ % {machine_id, 42} ]}, {prometheus, [ {collectors, [default]} ]} ].