github.com/icyphox/x@v0.0.355-0.20220311094250-029bd783e8b8/configx/stub/benchmark/schema.config.json (about) 1 { 2 "log": { 3 "level": "debug", 4 "format": "json" 5 }, 6 "profiling": "cpu", 7 "serve": { 8 "proxy": { 9 "port": 1234, 10 "host": "127.0.0.1", 11 "timeout": { 12 "read": "1s", 13 "write": "2s", 14 "idle": "3s" 15 }, 16 "cors": { 17 "enabled": true, 18 "allowed_origins": [ 19 "https://example.com", 20 "https://*.example.com" 21 ], 22 "allowed_methods": [ 23 "POST", 24 "GET", 25 "PUT", 26 "PATCH", 27 "DELETE" 28 ], 29 "allowed_headers": [ 30 "Authorization", 31 "Content-Type" 32 ], 33 "exposed_headers": [ 34 "Content-Type" 35 ], 36 "allow_credentials": true, 37 "max_age": 10, 38 "debug": true 39 }, 40 "tls": { 41 "key": { 42 "path": "/path/to/key.pem", 43 "base64": "LS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLVxuTUlJRkRqQkFCZ2txaGtpRzl3MEJCUTB3..." 44 }, 45 "cert": { 46 "path": "/path/to/cert.pem", 47 "base64": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG5NSUlEWlRDQ0FrMmdBd0lCQWdJRVY1eE90REFOQmdr..." 48 } 49 } 50 }, 51 "api": { 52 "port": 1235, 53 "host": "127.0.0.2", 54 "cors": { 55 "enabled": true, 56 "allowed_origins": [ 57 "https://example.org", 58 "https://*.example.org" 59 ], 60 "allowed_methods": [ 61 "GET", 62 "PUT", 63 "PATCH", 64 "DELETE" 65 ], 66 "allowed_headers": [ 67 "Authorization", 68 "Content-Type" 69 ], 70 "exposed_headers": [ 71 "Content-Type" 72 ], 73 "allow_credentials": true, 74 "max_age": 10, 75 "debug": true 76 }, 77 "tls": { 78 "key": { 79 "path": "/path/to/key.pem", 80 "base64": "LS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLVxuTUlJRkRqQkFCZ2txaGtpRzl3MEJCUTB3..." 81 }, 82 "cert": { 83 "path": "/path/to/cert.pem", 84 "base64": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG5NSUlEWlRDQ0FrMmdBd0lCQWdJRVY1eE90REFOQmdr..." 85 } 86 } 87 } 88 }, 89 "access_rules": { 90 "repositories": [ 91 "file://path/to/rules.json", 92 "inline://W3siaWQiOiJmb28tcnVsZSIsImF1dGhlbnRpY2F0b3JzIjpbXX1d", 93 "https://path-to-my-rules/rules.json" 94 ], 95 "matching_strategy": "glob" 96 }, 97 "errors": { 98 "fallback": [ 99 "json" 100 ], 101 "handlers": { 102 "redirect": { 103 "enabled": true, 104 "config": { 105 "to": "http://path-to/redirect" 106 } 107 }, 108 "json": { 109 "enabled": true, 110 "config": { 111 "verbose": true, 112 "when": [ 113 { 114 "error": [ 115 "unauthorized", 116 "forbidden", 117 "internal_server_error" 118 ], 119 "request": { 120 "header": { 121 "content_type": [ 122 "application/json" 123 ], 124 "accept": [ 125 "application/json" 126 ] 127 }, 128 "cidr": [ 129 "127.0.0.0/24" 130 ] 131 } 132 } 133 ] 134 } 135 } 136 } 137 }, 138 "authenticators": { 139 "anonymous": { 140 "enabled": true, 141 "config": { 142 "subject": "guest" 143 } 144 }, 145 "cookie_session": { 146 "enabled": true, 147 "config": { 148 "check_session_url": "https://session-store-host", 149 "only": [ 150 "sessionid" 151 ] 152 } 153 }, 154 "jwt": { 155 "enabled": true, 156 "config": { 157 "jwks_urls": [ 158 "https://my-website.com/.well-known/jwks.json", 159 "https://my-other-website.com/.well-known/jwks.json", 160 "file://path/to/local/jwks.json" 161 ], 162 "scope_strategy": "wildcard" 163 } 164 }, 165 "noop": { 166 "enabled": true 167 }, 168 "oauth2_client_credentials": { 169 "enabled": true, 170 "config": { 171 "token_url": "https://my-website.com/oauth2/token" 172 } 173 }, 174 "oauth2_introspection": { 175 "enabled": true, 176 "config": { 177 "introspection_url": "https://my-website.com/oauth2/introspection", 178 "scope_strategy": "exact", 179 "pre_authorization": { 180 "enabled": true, 181 "client_id": "some_id", 182 "client_secret": "some_secret", 183 "scope": [ 184 "foo", 185 "bar" 186 ], 187 "token_url": "https://my-website.com/oauth2/token" 188 } 189 } 190 }, 191 "unauthorized": { 192 "enabled": true 193 } 194 }, 195 "authorizers": { 196 "allow": { 197 "enabled": true 198 }, 199 "deny": { 200 "enabled": true 201 }, 202 "keto_engine_acp_ory": { 203 "enabled": true, 204 "config": { 205 "base_url": "http://my-keto/", 206 "required_action": "unknown", 207 "required_resource": "unknown" 208 } 209 } 210 }, 211 "mutators": { 212 "header": { 213 "enabled": false, 214 "config": { 215 "headers": { 216 "foo": "bar" 217 } 218 } 219 }, 220 "cookie": { 221 "enabled": true, 222 "config": { 223 "cookies": { 224 "foo": "bar" 225 } 226 } 227 }, 228 "hydrator": { 229 "enabled": true, 230 "config": { 231 "api": { 232 "url": "https://some-url/" 233 } 234 } 235 }, 236 "id_token": { 237 "enabled": true, 238 "config": { 239 "issuer_url": "https://my-oathkeeper/", 240 "jwks_url": "https://fetch-keys/from/this/location.json", 241 "ttl": "1h" 242 } 243 }, 244 "noop": { 245 "enabled": true 246 } 247 } 248 }