github.com/avenga/couper@v1.12.2/server/testdata/integration/backends/02_couper.hcl (about) 1 server { 2 hosts = ["*:8080"] 3 endpoint "/" { 4 proxy "default" { 5 url = "${env.COUPER_TEST_BACKEND_ADDR}/anything" 6 7 backend { 8 custom_log_fields = { 9 default-res = backend_response.headers.content-type 10 default-req = backend_request.headers.cookie 11 default-ua = backend_request.headers.user-agent 12 } 13 14 set_response_headers = { 15 test-header = backend_response.headers.content-type 16 } 17 } 18 } 19 20 request "request" { 21 url = "${env.COUPER_TEST_BACKEND_ADDR}/small" 22 23 backend { 24 custom_log_fields = { 25 request-res = backend_response.headers.content-type 26 request-req = backend_request.headers.cookie 27 request-ua = backend_request.headers.user-agent 28 } 29 } 30 } 31 32 request "r1" { 33 url = "${env.COUPER_TEST_BACKEND_ADDR}/small" 34 backend = "BE" 35 } 36 37 request "r2" { 38 url = "${env.COUPER_TEST_BACKEND_ADDR}/anything" 39 backend = "BE" 40 } 41 } 42 43 endpoint "/request" { 44 request "default" { 45 url = "${env.COUPER_TEST_BACKEND_ADDR}/anything" 46 47 headers = { 48 x-foo = "bar" 49 } 50 json_body = { 51 a = 1 52 } 53 54 backend { 55 set_response_headers = { 56 x-from-request-header = backend_request.headers.x-foo 57 x-from-requests-header = backend_requests.default.headers.x-foo 58 x-from-request-json-body = backend_request.json_body.a 59 x-from-requests-json-body = backend_requests.default.json_body.a 60 x-from-response-header = backend_response.headers.content-type 61 x-from-responses-header = backend_responses.default.headers.content-type 62 x-from-response-json-body = backend_response.json_body.URL 63 x-from-responses-json-body = backend_responses.default.json_body.URL 64 } 65 custom_log_fields = { 66 x-from-request-header = backend_request.headers.x-foo 67 x-from-requests-header = backend_requests.default.headers.x-foo 68 x-from-request-json-body = backend_request.json_body.a 69 x-from-requests-json-body = backend_requests.default.json_body.a 70 x-from-response-header = backend_response.headers.content-type 71 x-from-responses-header = backend_responses.default.headers.content-type 72 x-from-response-json-body = backend_response.json_body.URL 73 x-from-responses-json-body = backend_responses.default.json_body.URL 74 } 75 76 oauth2 { 77 grant_type = "client_credentials" 78 token_endpoint = "http://localhost:8081/token" 79 client_id = "qpeb" 80 client_secret = "ben" 81 backend { 82 set_response_headers = { 83 # use a response header field that is actually logged 84 location = "${backend_request.headers.authorization}|${backend_request.form_body.grant_type[0]}|${backend_response.headers.x-pires-in}|${backend_response.json_body.access_token}" 85 } 86 custom_log_fields = { 87 x-from-request-header = backend_request.headers.authorization 88 x-from-request-body = backend_request.body 89 x-from-request-form-body = backend_request.form_body.grant_type[0] 90 x-from-response-header = backend_response.headers.x-pires-in 91 x-from-response-body = backend_response.body 92 x-from-response-json-body = backend_response.json_body.access_token 93 } 94 } 95 } 96 } 97 } 98 } 99 } 100 101 definitions { 102 backend "BE" { 103 custom_log_fields = { 104 definitions-res = backend_response.headers.content-type 105 definitions-req = backend_request.headers.cookie 106 definitions-ua = backend_request.headers.user-agent 107 } 108 } 109 } 110 111 server "as" { 112 hosts = ["*:8081"] 113 api { 114 endpoint "/token" { 115 response { 116 headers = { 117 x-pires-in = "60s" 118 } 119 json_body = { 120 access_token = "the_access_token" 121 expires_in = 60 122 } 123 } 124 } 125 } 126 }