2020-08-31 08:12:15 +00:00
|
|
|
[
|
|
|
|
{kernel, [
|
|
|
|
{logger_level, info},
|
|
|
|
{logger, [
|
|
|
|
{handler, default, logger_std_h, #{
|
|
|
|
level => debug,
|
|
|
|
config => #{
|
2020-10-16 13:22:39 +00:00
|
|
|
type => standard_io,
|
2020-08-31 08:12:15 +00:00
|
|
|
sync_mode_qlen => 500,
|
|
|
|
drop_mode_qlen => 500,
|
|
|
|
flush_qlen => 2000
|
|
|
|
},
|
|
|
|
filters => [{access_log, {fun logger_filters:domain/2, {stop, equal, [cowboy_access_log]}}}],
|
|
|
|
formatter => {logger_logstash_formatter, #{}}
|
|
|
|
}},
|
|
|
|
{handler, access_logger, logger_std_h, #{
|
|
|
|
level => info,
|
|
|
|
config => #{
|
2020-10-16 13:22:39 +00:00
|
|
|
type => standard_io,
|
2020-08-31 08:12:15 +00:00
|
|
|
sync_mode_qlen => 20,
|
|
|
|
burst_limit_enable => true,
|
|
|
|
burst_limit_max_count => 600,
|
|
|
|
burst_limit_window_time => 1000
|
|
|
|
},
|
|
|
|
filters => [{access_log, {fun logger_filters:domain/2, {stop, not_equal, [cowboy_access_log]}}}],
|
|
|
|
formatter => {logger_logstash_formatter, #{}}
|
|
|
|
}}
|
|
|
|
]}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{scoper, [
|
|
|
|
{storage, scoper_storage_logger}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{dmt_client, [
|
|
|
|
{max_cache_size, #{
|
|
|
|
elements => 80,
|
|
|
|
memory => 209715200 % 200Mb
|
|
|
|
}},
|
|
|
|
{cache_update_interval, 5000}, % milliseconds
|
|
|
|
{cache_server_call_timeout, 30000}, % milliseconds
|
|
|
|
{woody_event_handlers, [
|
|
|
|
{scoper_woody_event_handler, #{
|
|
|
|
event_handler_opts => #{
|
|
|
|
formatter_opts => #{
|
|
|
|
max_length => 1000,
|
|
|
|
max_printable_string_length => 80
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
]},
|
|
|
|
{service_urls, #{
|
|
|
|
'Repository' => <<"http://dominant:8022/v1/domain/repository">>,
|
|
|
|
'RepositoryClient' => <<"http://dominant:8022/v1/domain/repository_client">>
|
|
|
|
}}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{party_client, [
|
|
|
|
{services, #{
|
|
|
|
party_management => "http://hellgate:8022/v1/processing/partymgmt"
|
|
|
|
}},
|
|
|
|
{woody, #{
|
|
|
|
cache_mode => safe, % disabled | safe | aggressive
|
|
|
|
options => #{
|
|
|
|
woody_client => #{
|
|
|
|
event_handler => {
|
|
|
|
scoper_woody_event_handler,
|
|
|
|
{scoper_event_handler_options, #{
|
|
|
|
event_handler_opts => #{
|
|
|
|
formatter_opts => #{
|
|
|
|
max_length => 1000,
|
|
|
|
max_printable_string_length => 80
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{fistful, [
|
|
|
|
{providers, #{
|
|
|
|
<<"test">> => #{
|
|
|
|
routes => [<<"mocketbank">>],
|
|
|
|
payment_institution_id => {{ payinst_test }},
|
|
|
|
identity_classes => #{
|
|
|
|
<<"person">> => #{
|
|
|
|
name => <<"Person">>,
|
|
|
|
contract_template_id => {{ contract_tpl_test_person }},
|
|
|
|
initial_level => <<"anonymous">>,
|
|
|
|
levels => #{
|
|
|
|
<<"anonymous">> => #{
|
|
|
|
name => <<"Anonymous">>,
|
|
|
|
contractor_level => none
|
|
|
|
},
|
|
|
|
<<"partly-identified">> => #{
|
|
|
|
name => <<"Partially identified">>,
|
|
|
|
contractor_level => partial
|
|
|
|
},
|
|
|
|
<<"identified">> => #{
|
|
|
|
name => <<"Fully identified">>,
|
|
|
|
contractor_level => full
|
|
|
|
}
|
|
|
|
},
|
|
|
|
challenges => #{
|
|
|
|
<<"esia">> => #{
|
|
|
|
name => <<"Routine checkup">>,
|
|
|
|
base => <<"anonymous">>,
|
|
|
|
target => <<"partly-identified">>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
<<"company">> => #{
|
|
|
|
name => <<"Legal Entity">>,
|
|
|
|
contract_template_id => {{ contract_tpl_test_company }},
|
|
|
|
initial_level => <<"identified">>,
|
|
|
|
levels => #{
|
|
|
|
<<"identified">> => #{
|
|
|
|
name => <<"Fully identified">>,
|
|
|
|
contractor_level => full
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
<<"dpl">> => #{
|
|
|
|
payment_institution_id => {{ payinst_dpl }},
|
|
|
|
routes => [<<"accentpay">>],
|
|
|
|
identity_classes => #{
|
|
|
|
<<"company">> => #{
|
|
|
|
name => <<"Legal Entity">>,
|
|
|
|
contract_template_id => {{ contract_tpl_dpl_company }},
|
|
|
|
initial_level => <<"identified">>,
|
|
|
|
levels => #{
|
|
|
|
<<"identified">> => #{
|
|
|
|
name => <<"Fully identified">>,
|
|
|
|
contractor_level => full
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}},
|
|
|
|
{services, #{
|
|
|
|
'accounter' => "http://shumway:8022/shumpune",
|
|
|
|
'identification' => "http://identification:8022/v1/identification",
|
|
|
|
'binbase' => "http://binbase:8022/v1/binbase",
|
2021-07-08 01:10:39 +00:00
|
|
|
'eventsink' => "http://machinegun:8022/v1/event_sink",
|
|
|
|
'automaton' => "http://machinegun:8022/v1/automaton"
|
2020-08-31 08:12:15 +00:00
|
|
|
}}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{ff_server, [
|
|
|
|
{ip, "::"},
|
|
|
|
{port, 8022},
|
|
|
|
{woody_opts, #{
|
|
|
|
net_opts => [
|
|
|
|
% Bump keepalive timeout up to a minute
|
|
|
|
{timeout, 60000}
|
|
|
|
]
|
|
|
|
}},
|
|
|
|
{net_opts, [
|
|
|
|
% Bump keepalive timeout up to a minute
|
|
|
|
{timeout, 60000}
|
|
|
|
]},
|
|
|
|
{health_check, #{
|
|
|
|
disk => {erl_health, disk , ["/", 99]},
|
|
|
|
memory => {erl_health, cg_memory, [99]},
|
|
|
|
service => {erl_health, service , [<<"wapi">>]}
|
|
|
|
}},
|
|
|
|
{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'
|
|
|
|
},
|
|
|
|
p2p_transfer => #{
|
|
|
|
namespace => 'ff/p2p_transfer_v1'
|
|
|
|
},
|
|
|
|
p2p_session => #{
|
|
|
|
namespace => 'ff/p2p_transfer/session_v1'
|
|
|
|
},
|
|
|
|
w2w_transfer => #{
|
|
|
|
namespace => 'ff/w2w_transfer_v1'
|
|
|
|
},
|
|
|
|
p2p_template => #{
|
|
|
|
namespace => 'ff/p2p_template_v1'
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{ff_transfer, [
|
|
|
|
{max_session_poll_timeout, 14400}, % 4h
|
|
|
|
{withdrawal,
|
|
|
|
#{
|
|
|
|
provider => #{
|
|
|
|
<<"mocketbank">> => #{
|
|
|
|
adapter => #{
|
|
|
|
event_handler => scoper_woody_event_handler,
|
|
|
|
url => <<"http://adapter_mocketbank:8022/proxy/mocketbank/p2p-credit">>
|
|
|
|
},
|
|
|
|
fee => #{<<"RUB">> => #{postings => []}},
|
|
|
|
accounts => #{}
|
|
|
|
},
|
|
|
|
<<"royalpay-payout">> => #{
|
|
|
|
adapter => #{
|
|
|
|
event_handler => scoper_woody_event_handler,
|
|
|
|
url => <<"http://adapter_royalpay_payout:8022/adapter/royalpay-payout/oct">>
|
|
|
|
},
|
|
|
|
adapter_opts => #{
|
|
|
|
<<"timer_timeout">> => <<"10">>
|
|
|
|
},
|
|
|
|
accounts => #{
|
|
|
|
<<"RUB">> => #{
|
|
|
|
id => <<"royalpay_rub_account_14998">>,
|
|
|
|
identity => <<"555">>,
|
|
|
|
currency => <<"RUB">>,
|
|
|
|
accounter_account_id => 14998
|
|
|
|
},
|
|
|
|
<<"UAH">> => #{
|
|
|
|
id => <<"royalpay_uah_account_18842">>,
|
|
|
|
identity => <<"555">>,
|
|
|
|
currency => <<"UAH">>,
|
|
|
|
accounter_account_id => 18842
|
|
|
|
}
|
|
|
|
},
|
|
|
|
fee => #{
|
|
|
|
<<"RUB">> => #{
|
|
|
|
postings => [
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {product, {max_of, [
|
|
|
|
{fixed, {3500, <<"RUB">>} },
|
|
|
|
{share, { {13, 1000}, operation_amount, round_half_away_from_zero} }
|
|
|
|
]}}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
<<"UAH">> => #{
|
|
|
|
postings => [
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {product, {max_of, [
|
|
|
|
{share, { {2, 100}, operation_amount, round_half_away_from_zero} }
|
|
|
|
]}}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
<<"accentpay">> => #{
|
|
|
|
adapter => #{
|
|
|
|
event_handler => scoper_woody_event_handler,
|
|
|
|
url => <<"http://adapter_accentpay:8022/adapter/accentpay/oct">>
|
|
|
|
},
|
|
|
|
adapter_opts => #{
|
|
|
|
<<"project_id">> => <<"470">>,
|
|
|
|
<<"customer_id">> => <<"rbk.money">>,
|
|
|
|
<<"polling_delay">> => <<"10">>,
|
|
|
|
<<"max_time_polling">> => <<"120">>
|
|
|
|
},
|
|
|
|
accounts => #{
|
|
|
|
<<"RUB">> => #{
|
|
|
|
id => <<"accentpay_rub_account_48370">>,
|
|
|
|
identity => <<"555">>,
|
|
|
|
currency => <<"RUB">>,
|
|
|
|
accounter_account_id => 48370
|
|
|
|
},
|
|
|
|
<<"USD">> => #{
|
|
|
|
id => <<"accentpay_usd_account_48371">>,
|
|
|
|
identity => <<"555">>,
|
|
|
|
currency => <<"USD">>,
|
|
|
|
accounter_account_id => 48371
|
|
|
|
},
|
|
|
|
<<"EUR">> => #{
|
|
|
|
id => <<"accentpay_eur_account_48372">>,
|
|
|
|
identity => <<"555">>,
|
|
|
|
currency => <<"EUR">>,
|
|
|
|
accounter_account_id => 48372
|
|
|
|
},
|
|
|
|
<<"KZT">> => #{
|
|
|
|
id => <<"accentpay_kzt_account_48373">>,
|
|
|
|
identity => <<"555">>,
|
|
|
|
currency => <<"KZT">>,
|
|
|
|
accounter_account_id => 48373
|
|
|
|
},
|
|
|
|
<<"UAH">> => #{
|
|
|
|
id => <<"accentpay_uah_account_88463">>,
|
|
|
|
identity => <<"555">>,
|
|
|
|
currency => <<"UAH">>,
|
|
|
|
accounter_account_id => 88463
|
|
|
|
}
|
|
|
|
},
|
|
|
|
fee => #{
|
|
|
|
<<"RUB">> => #{
|
|
|
|
postings => [
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {share, { {6, 1000}, operation_amount, round_half_away_from_zero} }
|
|
|
|
},
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {fixed, {4000, <<"RUB">>} }
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
<<"USD">> => #{
|
|
|
|
postings => [
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {share, { {5, 1000}, operation_amount, round_half_away_from_zero} }
|
|
|
|
},
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {fixed, {200, <<"USD">>} }
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
<<"EUR">> => #{
|
|
|
|
postings => [
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {share, { {5, 1000}, operation_amount, round_half_away_from_zero} }
|
|
|
|
},
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {fixed, {250, <<"EUR">>} }
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
<<"KZT">> => #{
|
|
|
|
postings => [
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {share, { {6, 1000}, operation_amount, round_half_away_from_zero} }
|
|
|
|
},
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {fixed, {30000, <<"KZT">>} }
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
<<"UAH">> => #{
|
|
|
|
postings => [
|
|
|
|
#{
|
|
|
|
sender => {system, settlement},
|
|
|
|
receiver => {provider, settlement},
|
|
|
|
volume => {product, {max_of, [
|
|
|
|
{share, { {17, 1000}, operation_amount, round_half_away_from_zero} }
|
|
|
|
]}}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
system => #{
|
|
|
|
accounts => #{
|
|
|
|
settlement => #{
|
|
|
|
<<"RUB">> => #{
|
|
|
|
id => <<"system_rub_account_14997">>,
|
|
|
|
identity => <<"519">>,
|
|
|
|
currency => <<"RUB">>,
|
|
|
|
accounter_account_id => 14997
|
|
|
|
},
|
|
|
|
<<"USD">> => #{
|
|
|
|
id => <<"system_usd_account_48383">>,
|
|
|
|
identity => <<"519">>,
|
|
|
|
currency => <<"USD">>,
|
|
|
|
accounter_account_id => 48383
|
|
|
|
},
|
|
|
|
<<"EUR">> => #{
|
|
|
|
id => <<"system_eur_account_48382">>,
|
|
|
|
identity => <<"519">>,
|
|
|
|
currency => <<"EUR">>,
|
|
|
|
accounter_account_id => 48382
|
|
|
|
},
|
|
|
|
<<"UAH">> => #{
|
|
|
|
id => <<"system_uah_account_18841">>,
|
|
|
|
identity => <<"519">>,
|
|
|
|
currency => <<"UAH">>,
|
|
|
|
accounter_account_id => 18841
|
|
|
|
},
|
|
|
|
<<"KZT">> => #{
|
|
|
|
id => <<"system_kzt_account_48381">>,
|
|
|
|
identity => <<"519">>,
|
|
|
|
currency => <<"KZT">>,
|
|
|
|
accounter_account_id => 48381
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
default_transient_errors => [
|
|
|
|
<<"authorization_failed">>
|
|
|
|
],
|
|
|
|
party_transient_errors => #{}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{bender_client, [
|
|
|
|
{service_url, <<"http://bender:8022/v1/bender">>},
|
|
|
|
{deadline, 30000}
|
|
|
|
]},
|
|
|
|
|
|
|
|
{os_mon, [
|
|
|
|
{disksup_posix_only, true}
|
|
|
|
]},
|
|
|
|
%% TODO
|
|
|
|
{snowflake, [{machine_id, 1}]},
|
|
|
|
|
|
|
|
{p2p, [
|
|
|
|
{score_id, <<"fraud">>}
|
2020-11-02 07:39:30 +00:00
|
|
|
]},
|
|
|
|
|
|
|
|
{prometheus, [
|
|
|
|
{collectors, [default]}
|
2020-08-31 08:12:15 +00:00
|
|
|
]}
|
|
|
|
].
|