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