Commit Graph

46 Commits

Author SHA1 Message Date
ef3c4f614a Monitoring (#219)
* feat:  use Https://github.com/ButterflyAPM to monitor each API request monitoring metrics

* feat: using DiagnosticSource and Butterfly.OpenTracing

* refactor:refactor Ocelot tracing, merge code into OcelotDiagnosticListener

* refactor: move OcelotHttpTracingHandler to Requester

* fix: Requester\HttpClientBuilder.cs(10,14): error CS0234: The type or namespace name 'Tracing' does not exist in the namespace

* feat: add test should_set_up_tracing

* feat : Remove extraneous code

* feat: remove unused DiagnosticSource diagnostic

* fix : test UseTracing

* add test should_call_scoped_data_repository_QosProviderError

* add test should_return_any_errors

* add test HttpClientHttpRequesterTest

*  it should keep it can not be deleted
2018-02-12 18:33:23 +00:00
3ac9b3bd87 hacked together load balancing reroutes in fileconfig (#211)
* hacked together load balancing reroutes in fileconfig

* some renaming and refactoring

* more renames

* hacked away the old config json

* test for issue 213

* renamed key

* dont share ports

* oops

* updated docs

* mvoed docs around

* port being used
2018-01-31 20:34:55 +00:00
d0eee70c46 Feature/transform headers (#204)
* New feature that lets a user do find and replace on an upstream header

* can transform downstream and upstream headers, not sure if interface is good

* can replace location header with placeholder

* added some syntax
2018-01-22 20:21:29 +00:00
fef19ddf98 Changed routing to support a catch all style (#187)
* Changed routing to support a catch all style

* refactoring placeholder tuff

* implemented simple priority in the routing
2018-01-05 21:26:15 +00:00
f082f7318a Raft round 2 (#182)
* 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
2018-01-01 18:40:39 +00:00
4f27a50503 add file configuration fluent validation and change default configura… (#168)
* add file configuration fluent validation and change default configuration validator to fluent validator

* add file validation failed error code

* change authentication schemes check to async

* beautify the code ^_^

* clean file validation and fix test failure.
2017-12-05 18:29:44 +00:00
3b27bb376e Feature/fix #156 (#160)
* change config creator to not throw exception in there is an error......lord i hate this config creator code I need to sort it out.

* Remove method that we are not using anymore..

* throw exception and add errors to message

* train hacking and some refactoring

* bs test for code coverage

* actually return the errors in the exception
2017-11-24 21:10:03 +00:00
1d61e403ed changes to create load balancers and qos providers on first request to reroute and then check if they have changed on subsequent requests but not create again if they havent..quite a few breaking changes here. 2017-11-09 17:35:49 +00:00
0bc39fca53 another test to make sure service provider config is craeted 2017-11-09 08:27:38 +00:00
e43732290a massive refactor to handle creating load balancer first time a re route is called 2017-11-08 21:26:49 +00:00
ab14df9127 plugged new lb creator into tests 2017-11-07 08:12:48 +00:00
f4e8dcbdab everything working..now for the docs 2017-11-01 15:51:49 +00:00
3f2af85969 test passing with authentication being provided by the user and mapped to the re route in config 2017-11-01 15:25:55 +00:00
e0c16bea32 unit and int tests are passing with auth changes...but acceptance tests are in a state and there are loads of todos... 2017-11-01 08:05:22 +00:00
a8b56a63c2 Cookie proxying and auto redirect configuration #128
HttpHandlerOptions are added to ReRoute configuration and passed down to HttpClientHttpRequester as Request properties.
2017-09-28 09:41:13 +03:00
50ee9e20d8 Merge pull request #110 from sharpn/develop
Adding JWT authentication for use with auth0
2017-06-30 09:32:55 +01:00
1168eb3110 Reenabling some tests 2017-06-29 08:58:41 +01:00
0f60a353ef now set region in config...or it defaults to something 2017-06-28 19:02:08 +01:00
6209681b2c Adding code ##BROKEN TESTS## 2017-06-26 11:50:58 +01:00
24f7b9a171 UpstreamHttpMethod property (of class FileReRoute) changes from string to List<string>. 2017-05-05 11:47:28 +01:00
c3cd181b90 added a new implementation that stores the ocelot config in consul kv store, had to change some major things and add cache settings as default 2017-04-16 19:35:59 +01:00
f58da434ba Merge pull request #70 from MarcDenman/feature/updateLogging
Update logging
2017-03-19 15:57:28 +00:00
a3b387aeb1 Renamed ScopeName to ApiName, ScopeSecret to ApiSecret, and
AdditionalScopes to Allowed Scoped in order to be more consistent with
Identity Server naming conventions.
2017-03-14 16:54:55 -04:00
0ec7fc44ad Change all ctor's to use IOcelotLoggerFactory
As part of #35 we are we are standardising on using IOcelotLoggerFactory
over the default ILogger for DI purposes. Following a sln search, the use
of ILogger was only found in one place (FileOcelotConfigurationCreator)
and it's corresponding tests.

This commit changes them and ensures the unit tests still pass.
2017-03-13 11:44:02 +00:00
558a0dfdab finished refactoring config cretor 2017-03-05 16:56:41 +00:00
8bbd781820 updated file options 2017-03-02 09:18:53 +00:00
0a2d7a6922 qos options creator in own class 2017-03-01 23:28:32 +00:00
6661cb5f32 use config tests 2017-03-01 23:15:30 +00:00
034732ce90 added lame test for service config creator 2017-03-01 23:12:00 +00:00
fff743ccf8 pulling out service config cretor 2017-03-01 12:42:37 +00:00
d4119ab33d extracted thing that creates request id key 2017-03-01 08:11:39 +00:00
c85ea41951 refactoring ocelot config creation process 2017-03-01 07:54:07 +00:00
286c7f8488 Fixed issue where qos was being created for each request so circuit breaker was never stopping traffic going to downstream service. 2017-02-11 18:56:36 +00:00
ce8da4c92d removed qos by accident, added back in 2017-02-11 13:14:25 +00:00
7fffc9827a auth options builders 2017-02-07 20:30:26 +00:00
bbb808eb51 fixed failing tests 2017-02-07 13:46:22 +00:00
b4ef277c3e added builder for service provider config 2017-02-07 07:50:23 +00:00
c46dcc05b8 started implementing the consul service provider 2017-02-04 13:16:31 +00:00
b0ff2fd317 fixed failing tests 2017-02-03 13:02:51 +00:00
aef6507da3 fixed failing tests after service discovery changes 2017-02-03 07:43:26 +00:00
07ca7989b0 more work towards getting service discovery working with load balancing 2017-02-02 21:34:15 +00:00
c3a47f66c8 merge 2017-01-23 12:13:24 +00:00
044b609ea9 started implementing service discovery integration 2017-01-20 19:03:18 +00:00
536db48049 fixed problems where routes were not mathing 2016-11-26 14:08:09 +00:00
ff5776613f Now defaults to case insensitive routing but you can override with a setting, also global request id setting available 2016-11-06 11:50:33 +00:00
f4acb4f041 changed to json configuration to get rid of yaml imports 2016-11-02 21:50:53 +00:00