test_exchange_api.conf (11822B)
1 # This file is in the public domain. 2 # 3 4 [PATHS] 5 TALER_TEST_HOME = test_exchange_api_home 6 TALER_HOME = ${TALER_TEST_HOME:-${HOME:-${USERPROFILE}}} 7 TALER_EXCHANGE_DATA_HOME = ${XDG_DATA_HOME:-${TALER_HOME}/.local/share}/taler-exchange/ 8 TALER_AUDITOR_DATA_HOME = ${XDG_DATA_HOME:-${TALER_HOME}/.local/share}/taler-auditor/ 9 TALER_EXCHANGE_CONFIG_HOME = ${XDG_CONFIG_HOME:-${TALER_HOME}/.config}/taler-exchange/ 10 TALER_AUDITOR_CONFIG_HOME = ${XDG_CONFIG_HOME:-${TALER_HOME}/.config}/taler-auditor/ 11 TALER_EXCHANGE_CACHE_HOME = ${XDG_CACHE_HOME:-${TALER_HOME}/.cache}/taler-exchange/ 12 TALER_AUDITOR_CACHE_HOME = ${XDG_CACHE_HOME:-${TALER_HOME}/.cache}/taler-auditor/ 13 TALER_RUNTIME_DIR = ${TMPDIR:-${TMP:-/tmp}}/taler-runtime/ 14 15 [libeufin-bank] 16 CURRENCY = EUR 17 DEFAULT_CUSTOMER_DEBT_LIMIT = EUR:200 18 DEFAULT_ADMIN_DEBT_LIMIT = EUR:2000 19 REGISTRATION_BONUS_ENABLED = yes 20 REGISTRATION_BONUS = EUR:100 21 SUGGESTED_WITHDRAWAL_EXCHANGE = http://localhost:8081/ 22 WIRE_TYPE = x-taler-bank 23 X_TALER_BANK_PAYTO_HOSTNAME = localhost 24 ALLOW_REGISTRATION = YES 25 IBAN_PAYTO_BIC = SANDBOXX 26 SERVE = tcp 27 PORT = 8082 28 PWD_HASH_CONFIG = { "cost": 4 } 29 PWD_AUTH_COMPAT = yes 30 BASE_URL = http://localhost:8082/ 31 32 [libeufin-bankdb-postgres] 33 CONFIG = postgresql:///talercheck 34 35 [auditor] 36 BASE_URL = "http://localhost:8083/" 37 PORT = 8083 38 PUBLIC_KEY = D9ZMEJCFV92GRQ29ES2MM31HEKHQXCFAACG3Q70G42X9FMWM7S50 39 TINY_AMOUNT = EUR:0.01 40 TALER_AUDITOR_SALT = "salt" 41 DB = postgres 42 43 # Where do we store the auditor's private key? 44 AUDITOR_PRIV_FILE = ${TALER_AUDITOR_DATA_HOME}offline-keys/auditor.priv 45 46 [auditordb-postgres] 47 CONFIG = "postgres:///talercheck" 48 SQL_DIR = ${DATADIR}sql/ 49 50 [bank] 51 HTTP_PORT = 8082 52 53 [exchange] 54 CURRENCY = EUR 55 CURRENCY_ROUND_UNIT = EUR:0.01 56 TINY_AMOUNT = EUR:0.01 57 TERMS_ETAG = exchange-tos-tops-v0 58 PRIVACY_ETAG = 0 59 PORT = 8081 60 MASTER_PUBLIC_KEY = S2PF0H375EQC7C0SQ6T8VH09GA1EVFBDXKS5KRBQAW8XW5KBHT9G 61 DB = postgres 62 BASE_URL = "http://localhost:8081/" 63 EXPIRE_SHARD_SIZE ="300 ms" 64 EXPIRE_IDLE_SLEEP_INTERVAL ="1 s" 65 STEFAN_ABS = EUR:0 66 STEFAN_LOG = EUR:0.005 67 ENABLE_KYC = YES 68 DISABLE_DIRECT_DEPOSIT = NO 69 DB = postgres 70 BASE_URL = http://localhost:8081/ 71 72 [exchangedb-postgres] 73 CONFIG = "postgres:///talercheck" 74 SQL_DIR = ${DATADIR}sql/ 75 DEFAULT_PURSE_LIMIT = 1 76 77 [exchangedb] 78 IDLE_RESERVE_EXPIRATION_TIME = 4 weeks 79 LEGAL_RESERVE_EXPIRATION_TIME = 7 years 80 AGGREGATOR_SHIFT = 1 s 81 DEFAULT_PURSE_LIMIT = 1 82 MAX_AML_PROGRAM_RUNTIME = 60 s 83 84 [taler-exchange-secmod-cs] 85 LOOKAHEAD_SIGN = "24 days" 86 87 [taler-exchange-secmod-rsa] 88 LOOKAHEAD_SIGN = "24 days" 89 90 [taler-exchange-secmod-eddsa] 91 LOOKAHEAD_SIGN = "24 days" 92 DURATION = "14 days" 93 94 95 [exchange-account-1] 96 PAYTO_URI = "payto://x-taler-bank/localhost/2?receiver-name=2" 97 ENABLE_DEBIT = YES 98 ENABLE_CREDIT = YES 99 100 [exchange-accountcredentials-1] 101 WIRE_GATEWAY_AUTH_METHOD = none 102 WIRE_GATEWAY_URL = "http://localhost:8082/accounts/2/taler-wire-gateway/" 103 104 [admin-accountcredentials-1] 105 WIRE_GATEWAY_AUTH_METHOD = none 106 WIRE_GATEWAY_URL = "http://localhost:8082/accounts/2/taler-wire-gateway/" 107 108 [exchange-account-2] 109 PAYTO_URI = "payto://x-taler-bank/localhost/2?receiver-name=2" 110 ENABLE_DEBIT = YES 111 ENABLE_CREDIT = YES 112 113 [exchange-accountcredentials-2] 114 WIRE_GATEWAY_AUTH_METHOD = basic 115 USERNAME = Exchange 116 PASSWORD = password 117 WIRE_GATEWAY_URL = "http://localhost:8082/accounts/2/taler-wire-gateway/" 118 CORE_BANK_URL = "http://localhost:8082/accounts/2/" 119 120 [admin-accountcredentials-2] 121 WIRE_GATEWAY_AUTH_METHOD = basic 122 # For now, fakebank still checks against the Exchange account... 123 USERNAME = Exchange 124 PASSWORD = password 125 WIRE_GATEWAY_URL = "http://localhost:8082/accounts/2/taler-wire-gateway/" 126 127 [exchange-account-3] 128 PAYTO_URI = "payto://x-taler-bank/localhost/exchange?receiver-name=Exchange" 129 ENABLE_DEBIT = YES 130 ENABLE_CREDIT = YES 131 132 [exchange-accountcredentials-3] 133 WIRE_GATEWAY_AUTH_METHOD = basic 134 USERNAME = exchange 135 PASSWORD = password 136 WIRE_GATEWAY_URL = "http://localhost:8082/accounts/exchange/taler-wire-gateway/" 137 CORE_BANK_URL = "http://localhost:8082/accounts/exchange/" 138 139 [admin-accountcredentials-3] 140 WIRE_GATEWAY_AUTH_METHOD = basic 141 USERNAME = exchange 142 PASSWORD = password 143 WIRE_GATEWAY_URL = "http://localhost:8082/accounts/exchange/taler-wire-gateway/" 144 145 146 [exchange-offline] 147 148 # Where do we store the offline master private key of the exchange? 149 MASTER_PRIV_FILE = ${TALER_EXCHANGE_DATA_HOME}offline/master.priv 150 151 # Where do we store the TOFU key material? 152 SECM_TOFU_FILE = ${TALER_EXCHANGE_DATA_HOME}offline/secm_tofus.pub 153 154 # Base32-encoded public key of the RSA helper. 155 # SECM_DENOM_PUBKEY = 156 157 # Base32-encoded public key of the EdDSA helper. 158 # SECM_ESIGN_PUBKEY = 159 160 161 [taler-exchange-secmod-cs] 162 163 # How long should generated coins overlap in their validity 164 # periods. Should be long enough to avoid problems with 165 # wallets picking one key and then due to network latency 166 # another key being valid. The DURATION_WITHDRAW period 167 # must be longer than this value. 168 OVERLAP_DURATION = 5 m 169 170 # Where do we store the generated private keys. 171 KEY_DIR = ${TALER_EXCHANGE_DATA_HOME}secmod-cs/keys 172 173 # Where does the helper listen for requests? 174 UNIXPATH = ${TALER_RUNTIME_DIR}secmod-cs/server.sock 175 176 # Directory for clients. 177 CLIENT_DIR = ${TALER_RUNTIME_DIR}secmod-cs/clients 178 179 # Where should the security module store its own private key? 180 SM_PRIV_KEY = ${TALER_EXCHANGE_DATA_HOME}secmod-cs/secmod-private-key 181 182 183 [taler-exchange-secmod-rsa] 184 185 # How long should generated coins overlap in their validity 186 # periods. Should be long enough to avoid problems with 187 # wallets picking one key and then due to network latency 188 # another key being valid. The DURATION_WITHDRAW period 189 # must be longer than this value. 190 OVERLAP_DURATION = 0 m 191 192 # Where do we store the generated private keys. 193 KEY_DIR = ${TALER_EXCHANGE_DATA_HOME}secmod-rsa/keys 194 195 # Where does the helper listen for requests? 196 UNIXPATH = ${TALER_RUNTIME_DIR}secmod-rsa/server.sock 197 198 # Directory for clients. 199 CLIENT_DIR = ${TALER_RUNTIME_DIR}secmod-rsa/clients 200 201 # Where should the security module store its own private key? 202 SM_PRIV_KEY = ${TALER_EXCHANGE_DATA_HOME}secmod-rsa/secmod-private-key 203 204 # Round down anchor key start date to multiples of this time. 205 ANCHOR_ROUND = 1 ms 206 207 [taler-exchange-secmod-eddsa] 208 209 # How long should generated coins overlap in their validity 210 # periods. Should be long enough to avoid problems with 211 # wallets picking one key and then due to network latency 212 # another key being valid. The DURATION_WITHDRAW period 213 # must be longer than this value. 214 OVERLAP_DURATION = 5m 215 216 # Where do we store the private keys. 217 KEY_DIR = ${TALER_EXCHANGE_DATA_HOME}secmod-eddsa/keys 218 219 # Where does the helper listen for requests? 220 UNIXPATH = ${TALER_RUNTIME_DIR}secmod-eddsa/server.sock 221 222 # Directory for clients. 223 CLIENT_DIR = ${TALER_RUNTIME_DIR}secmod-eddsa/clients 224 225 # Where should the security module store its own private key? 226 SM_PRIV_KEY = ${TALER_EXCHANGE_DATA_HOME}secmod-eddsa/secmod-private-key 227 228 # For how long are signing keys valid? 229 DURATION = 12 weeks 230 231 [kyc-provider-test-oauth2] 232 LOGIC = oauth2 233 KYC_OAUTH2_VALIDITY = forever 234 KYC_OAUTH2_TOKEN_URL = http://localhost:6666/oauth/v2/token 235 KYC_OAUTH2_AUTHORIZE_URL = http://localhost:6666/oauth/v2/login 236 KYC_OAUTH2_INFO_URL = http://localhost:6666/api/user/me 237 KYC_OAUTH2_CLIENT_ID = taler-exchange 238 KYC_OAUTH2_CLIENT_SECRET = exchange-secret 239 KYC_OAUTH2_POST_URL = http://example.com/ 240 KYC_OAUTH2_CONVERTER_HELPER = taler-exchange-kyc-oauth2-test-converter.sh 241 242 [kyc-check-oauth-test-id] 243 VOLUNTARY = NO 244 # We use an external provider 245 TYPE = LINK 246 DESCRIPTION = "Oauth2 dummy authentication" 247 DESCRIPTION_I18N = {} 248 # No context requirements 249 REQUIRES = 250 # Measure to execute if check failed. 251 FALLBACK = manual-freeze 252 # This check runs on oauth2 253 PROVIDER_ID = test-oauth2 254 # Outputs from this check 255 OUTPUTS = FULL_NAME DATE_OF_BIRTH 256 257 258 [kyc-check-test-form] 259 VOLUNTARY = NO 260 # We use an external provider 261 TYPE = FORM 262 DESCRIPTION = "Test form" 263 DESCRIPTION_I18N = {} 264 # No context requirements 265 REQUIRES = 266 # Measure to execute if check failed. 267 FALLBACK = manual-freeze 268 # This check runs on oauth2 269 FORM_NAME = full_name_and_birthdate 270 # Outputs from this check 271 OUTPUTS = FULL_NAME DATE_OF_BIRTH 272 273 274 # This is the "default" setting for an account if 275 # it has not yet triggered anything. 276 [kyc-check-default] 277 VOLUNTARY = NO 278 TYPE = INFO 279 DESCRIPTION = "Your account is operating normally" 280 DESCRIPTION_I18N = {} 281 # No context requirements 282 REQUIRES = 283 # Measure to execute if check failed. Well, 284 # this check cannot really fail, but the 285 # conservative answer is to freeze. 286 FALLBACK = manual-freeze 287 288 # If this "check" is triggered, we merely inform 289 # the user that their account has been frozen. The 290 # user cannot proceed manually. 291 [kyc-check-info-frozen] 292 VOLUNTARY = NO 293 TYPE = INFO 294 DESCRIPTION = "Your account is frozen pending investigation" 295 DESCRIPTION_I18N = {} 296 # No context requirements 297 REQUIRES = 298 # Measure to execute if check failed. Well, 299 # this check cannot really fail, but we stay 300 # where we are: frozen. 301 FALLBACK = manual-freeze 302 303 [kyc-measure-info-frozen] 304 CHECK_NAME = info-frozen 305 # No context 306 CONTEXT = {} 307 # Command if INFO check will never be run. 308 PROGRAM = none 309 310 # If this "check" is triggered, we merely inform 311 # the user that we got their oauth-test data on file. 312 [kyc-check-info-oauth-test-passed] 313 VOLUNTARY = NO 314 TYPE = INFO 315 DESCRIPTION = "You passed the OAuth2 check. Thank you." 316 DESCRIPTION_I18N = {} 317 # No context requirements 318 REQUIRES = 319 # Measure to execute if check failed. Well, 320 # this check cannot really fail, but we stay 321 # where we are: frozen. 322 FALLBACK = manual-freeze 323 324 325 [kyc-measure-info-oauth-test-passed] 326 CHECK_NAME = info-oauth-test-passed 327 # No context 328 CONTEXT = {} 329 # Command if INFO check will never be run. 330 PROGRAM = none 331 332 [aml-program-none] 333 DESCRIPTION = "Dummy AML program used for INFO checks, always fails" 334 COMMAND = taler-exchange-helper-measure-none 335 FALLBACK = manual-freeze 336 337 [aml-program-freeze] 338 DESCRIPTION = "Freeze the account" 339 COMMAND = taler-exchange-helper-measure-freeze 340 FALLBACK = manual-freeze 341 342 [aml-program-oauth-output-check] 343 DESCRIPTION = "Validates the output from OAauth2 and then increases all limits to EUR:1000" 344 # Command that runs on the output of the OAuth provider 345 # to decide what rules should apply next. 346 COMMAND = taler-exchange-helper-measure-test-oauth 347 # What measure to take if the COMMAND failed. 348 FALLBACK = manual-freeze 349 350 351 [aml-program-test-form-check] 352 DESCRIPTION = "Validates the output from the test-form and then increases all limits to EUR:1000" 353 # Command that runs on the output of the form 354 # to decide what rules should apply next. 355 COMMAND = taler-exchange-helper-measure-test-form 356 # What measure to take if the COMMAND failed. 357 FALLBACK = manual-freeze 358 359 360 [kyc-measure-run-oauth] 361 # Get client ID via the OAuth test provider 362 CHECK_NAME = oauth-test-id 363 # AML program to run on the output of the OAuth provider 364 # to decide what rules should apply next. 365 PROGRAM = oauth-output-check 366 # Context to provide for check and program; empty. 367 CONTEXT = {} 368 369 # This is a base-measure that is being triggered 370 # whenever something goes wrong. We freeze the 371 # account and ask AML staff to investigate. 372 [kyc-measure-manual-freeze] 373 CHECK_NAME = skip 374 # AML program that freezes the account and flags 375 # it for investigation. 376 PROGRAM = freeze 377 # Context to provide for check and program; empty. 378 CONTEXT = {} 379 380 # This rule requests that the users passes KYC 381 # when closing the reserve. 382 [kyc-rule-close] 383 ENABLED = YES 384 # This is a public rule. 385 EXPOSED = YES 386 # All checks listed must be done (well, there is only one...) 387 IS_AND_COMBINATOR = YES 388 # This happens if the reserve is closed. 389 OPERATION_TYPE = CLOSE 390 # Threshold is 0, so any amount. 391 THRESHOLD = EUR:0 392 # Timeframe doesn't exactly matter with a threshold of EUR:0. 393 TIMEFRAME = 1d 394 # If the rule is triggered, ask the user to provide 395 # personal data via OAuth2 396 NEXT_MEASURES = run-oauth 397 398 [exchange-extension-age_restriction] 399 ENABLED = YES 400 #AGE_GROUPS = "8:10:12:14:16:18:21"