46 Commits

Author SHA1 Message Date
Tom Pallister
a55c75efdc
decided to stick a basic cache in for downstream route creator, can make fancy if required (#359) 2018-05-15 20:39:15 +01:00
Tom Pallister
1e2e953b2c
Feature/automatic routes with sd (#351)
* #340 started looking at supporting automatic routing when using service discovery

* #340 getting old routing tests to pass

* #340 renamed stuff to provider rather than finder, as its not longer finding anything

* #340 working towards supporting dynamic routing

* #340 loads of refactoring to make configuration work with dynamic routing

* #340 refactor consul config code so the registry class owns it

* #340 default to consul to maintain backwards compat

* #340 added docs, finished this branches todos
2018-05-14 21:26:10 +01:00
Tom Pallister
aa55fe34cb
Feature/merge configuration files (#316)
* #296 renamed configuration.json to ocelot.json in preparation

* removed things we dont need for tests

* another file we dont need

* removed some async we dont need

* refactoring to consolidate configuration code

* removed another pointless abstraction

* #296 started writing merge code

* #296 coming up with ideas for this config merging

* #296 still hacking this idea around

* #296 will now do a crappy merge on the configuration

* #296 change so tests pass on windows
2018-04-17 22:06:41 +01:00
Philip Wood
b8e95373a4 Fix async/await warnings 2018-03-06 10:59:01 +00:00
Philip Wood
167fbb3daf Remove multiple concurrent blank lines
SA1507
2018-03-03 13:26:27 +00:00
Tom Pallister
d1926268ac
Feature/downstream aggregation (#248)
* started messing around with this on the train last night

* mega hacking away to change middleware into Ocelot iddleware

* scoped data repo back in

* broken commit getting tests working

* another broken commit farting around with tests

* all unit tests passing again

* mw pipeline for ocelot...still loads of hacks but getting there now to get acceptance tests working, then fix config so you can have aggregate and then imlement multiplexer, then mapping to response...loads to do

* all tests passing before aggregation feature implemented

* removed all the request middleware stuff we dont need it

* updated how errors work...tho i think there could be edge case here when aggregating because one downstream could error and this would effect another

* removed multiplexer so you dont have to send route down, this isnt very thread safe...sigh

* hacking around getting the config for aggregates in, this might change

* refactored builder and unit tests passing now

* Updated a bunch of ports for tests

* plugged in code to create reroutes that are aggregates

* made multiplexer a class

* hacked test to death

* simple aggregator done, initial validation done

* removed request id from context, it is still specific for http request

* now aggregates to json always

* docs for aggregate reroutes

* Updated docs
2018-02-27 08:22:47 +00:00
Tom Pallister
5848e12d15
Feature/issue 209 upstream host based routing (#216)
* from messing around at lunch...initial hacking seems to sort of work..need to think of all the test scenarios

* drunken train hacking

* docs for upstreamhost
2018-02-02 11:06:54 +00:00
Tom Pallister
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
Tom Pallister
6a20baeb97
Improving logging and request id (#189)
* hacking around to work out why logging and request id isnt working

* pass request id into logger so it can be structured, removed a bunch of debug logging we dont need because diagnostic trace gets it

* changed config dependency

* always have tracing available

* made it so we dont need to pass config into services.AddOcelot anymore with .net core 2.0

* add test

* lots of changes relating to logging and request ids, also updated documentation

* fixed failing test i missed
2018-01-06 16:39:05 +00:00
Tom Pallister
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
Tom Pallister
9ba57f8ba6
Make Ocelot not add forward slash to downstream url (#158)
* removed code where we add a trailing slash as this means if we request /1.txt/ instead of /1.txt then some servers will not return the resource at /1.txt. After reading up it seems if you dont have a trailing slash then its a file, if you do then its a resource

* test for 145

* removed unused code

* fix broken build..my bad
2017-11-19 21:01:54 +00:00
Tom Gardham-Pallister
88e51971c5 only get config once in a request...could make this its own middleware one day? 2017-11-10 18:07:08 +00:00
Tom Gardham-Pallister
e43732290a massive refactor to handle creating load balancer first time a re route is called 2017-11-08 21:26:49 +00:00
Tom Gardham-Pallister
d0d74f0886 match whole input with regex 2017-10-12 19:03:20 +01:00
Tom Gardham-Pallister
7ef26f5f4b fixes issue #117 2017-08-29 20:47:52 +01:00
Philip Wood
d02e921a58 Moved ScopedRepository into test base class. 2017-07-18 10:53:57 +01:00
Philip Wood
8042bbab2c Moved common middleare test setup into a base class 2017-07-18 09:28:32 +01:00
Juan Carlos Santana Herrera
24f7b9a171 UpstreamHttpMethod property (of class FileReRoute) changes from string to List<string>. 2017-05-05 11:47:28 +01:00
Juan Carlos Santana Herrera
e91da1ac23 Add the possibility of set mutiple verbs in the UpstreamHttpMethod property.
Add UnitTests and AcceptanceTests to try this feature.
2017-05-04 10:56:16 +01:00
Juan Carlos Santana Herrera
b8ee43c737 Adds the posibility of use final paths in the reroutes of configuration.json file.
Adds a unit test method to test the functionality.
2017-04-20 11:05:46 +01:00
TomPallister
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
Tom Gardham-Pallister
2dfdf0bb86 after much hacking unit tests passing 2017-02-21 07:34:47 +00:00
Tom Gardham-Pallister
95fc687e93 started messing around with admin area 2017-02-13 12:13:53 +00:00
TomPallister
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
Tom Gardham-Pallister
7fffc9827a auth options builders 2017-02-07 20:30:26 +00:00
Tom Gardham-Pallister
33ce162693 changed upstream http method to use httpmethod class in .net 2017-02-07 18:30:21 +00:00
Tom Gardham-Pallister
1671fadea3 made upstream template use template path object 2017-02-07 07:53:41 +00:00
TomPallister
c46dcc05b8 started implementing the consul service provider 2017-02-04 13:16:31 +00:00
Tom Gardham-Pallister
c3a47f66c8 merge 2017-01-23 12:13:24 +00:00
TomPallister
536db48049 fixed problems where routes were not mathing 2016-11-26 14:08:09 +00:00
TomPallister
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
TomPallister
af506b079a more logging, more readme, more refactoring 2016-11-05 11:36:58 +00:00
TomPallister
8582ba45a9 Added some logging at last! 2016-11-04 20:17:15 +00:00
TomPallister
367fa327b3 bunch of refactoring 2016-10-26 21:38:44 +01:00
TomPallister
9c771bf9e0 added benchmarks back in, renamed data repository and a few other things 2016-10-24 19:32:52 +01:00
TomPallister
8b0ceeda5b removed library namespace 2016-10-18 19:10:09 +01:00
TomPallister
f79b76b414 reorganised project so its a bit more vertical for features 2016-10-18 18:52:43 +01:00
TomPallister
2e6640c6ef refactoring configuration code so its not so crazy, still need to work on the creator class 2016-10-18 18:32:34 +01:00
tom.pallister
3d60602c7e Added a get authentication test, removed the infrastructure name space as it seemed pointless, started thinking about how to pass claims on with the request 2016-10-17 18:00:36 +01:00
TomPallister
ce84ad4fc2 Added tests for identity server reference tokens, general refactoring and come config validation 2016-10-16 20:28:23 +01:00
tom.pallister
f545ba8620 removed thing that checks if route is authorised cos we dont need it 2016-10-14 20:08:09 +01:00
tom.pallister
cff130196f Removed the fake woop 2016-10-12 14:00:13 +01:00
tom.pallister
58393f07ec started adding authentication stack, thing that decides if we should be authenticated is in 2016-10-12 13:40:46 +01:00
TomPallister
1fddcf0836 regex for url match, means annoying constructor ocelot configuration object but cant work out a better way to do this at the moment 2016-10-09 15:40:13 +01:00
TomPallister
ab8407e7dc Now supports the same upstream url by difrenciating by http method. Also broke up the proxy middleware into three seperate pieces that do their thing and stick something into the OWIN context 2016-10-04 21:30:16 +01:00
TomPallister
0627e9399b brought in flurl and stated adding tests for the requester 2016-09-13 20:29:00 +01:00