mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-24 04:32:50 +08:00

* brought in rafty * moved raft classes into Ocelot and deleted from int project * started to set up rafty in Ocelot * RAFTY INSIDE OCELOT...WOOT * more work adding rafty...just need to get auth working now * rudimentary authenticated raft requests working * asyn await stuff * hacked rafty into the fileconfigurationcontroller...everything seems to be working roughly but I have a lot of refactoring to do * updated to latest rafty that doesnt need an id * hacky but all tests passing * changed admin area set up to use builder not configuration.json, changed admin area auth to use client credentials * missing code coverage * ignore raft sectionf for code coverage * ignore raft sectionf for code coverage * back to normal filters * try exclude attr * missed these * moved client secret to builder for authentication and updated docs * lock to try and fix error accessing identity server created temprsa file on build server * updated postman scripts and changed Ocelot to not always use type handling as this looked crap when manually accessing the configuration endpoint * added rafty docs * changes I missed * added serialisation code we need for rafty to process commands when they proxy to leader * moved controllers into their feature slices
310 lines
9.7 KiB
JSON
310 lines
9.7 KiB
JSON
{
|
|
"ReRoutes": [
|
|
{
|
|
"DownstreamPathTemplate": "/",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "localhost",
|
|
"DownstreamPort": 52876,
|
|
"UpstreamPathTemplate": "/identityserverexample",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"AuthenticationOptions": {
|
|
"AuthenticationProviderKey": "TestKey",
|
|
"AllowedScopes": [
|
|
"openid",
|
|
"offline_access"
|
|
]
|
|
},
|
|
"AddHeadersToRequest": {
|
|
"CustomerId": "Claims[CustomerId] > value",
|
|
"LocationId": "Claims[LocationId] > value",
|
|
"UserType": "Claims[sub] > value[0] > |",
|
|
"UserId": "Claims[sub] > value[1] > |"
|
|
},
|
|
"AddClaimsToRequest": {
|
|
"CustomerId": "Claims[CustomerId] > value",
|
|
"LocationId": "Claims[LocationId] > value",
|
|
"UserType": "Claims[sub] > value[0] > |",
|
|
"UserId": "Claims[sub] > value[1] > |"
|
|
},
|
|
"AddQueriesToRequest": {
|
|
"CustomerId": "Claims[CustomerId] > value",
|
|
"LocationId": "Claims[LocationId] > value",
|
|
"UserType": "Claims[sub] > value[0] > |",
|
|
"UserId": "Claims[sub] > value[1] > |"
|
|
},
|
|
"RouteClaimsRequirement": {
|
|
"UserType": "registered"
|
|
},
|
|
"RequestIdKey": "OcRequestId"
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts",
|
|
"DownstreamScheme": "https",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 443,
|
|
"UpstreamPathTemplate": "/posts",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}/comments",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/posts/{postId}/comments",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/comments",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/comments",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/posts",
|
|
"UpstreamHttpMethod": [ "Post" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Put" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Patch" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Delete" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/products",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products/{productId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/products/{productId}",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "products20161126090340.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/products",
|
|
"UpstreamHttpMethod": [ "Post" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products/{productId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "products20161126090340.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/products/{productId}",
|
|
"UpstreamHttpMethod": [ "Put" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products/{productId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "products20161126090340.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/products/{productId}",
|
|
"UpstreamHttpMethod": [ "Delete" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/customers",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "customers20161126090811.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/customers",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/customers/{customerId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "customers20161126090811.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/customers/{customerId}",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/customers",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "customers20161126090811.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/customers",
|
|
"UpstreamHttpMethod": [ "Post" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/customers/{customerId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "customers20161126090811.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/customers/{customerId}",
|
|
"UpstreamHttpMethod": [ "Put" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/customers/{customerId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "customers20161126090811.azurewebsites.net",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/customers/{customerId}",
|
|
"UpstreamHttpMethod": [ "Delete" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "jsonplaceholder.typicode.com",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/posts/",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHost": "www.bbc.co.uk",
|
|
"DownstreamPort": 80,
|
|
"UpstreamPathTemplate": "/bbc/",
|
|
"UpstreamHttpMethod": [ "Get" ]
|
|
}
|
|
],
|
|
|
|
"GlobalConfiguration": {
|
|
"RequestIdKey": "OcRequestId"
|
|
}
|
|
} |