64 Commits

Author SHA1 Message Date
Tom Pallister
3439be8927
Rename all ReRoute to Route to move closer to YARP +semver: breaking 2020-05-23 20:50:05 +01:00
Tom Pallister
fe3e8bd23a
Remove Ocelot specific Middleware to make Ocelot more compatible with kestrel middleware and get ready for YARP 2020-05-23 15:48:51 +01:00
David Lievrouw
cd3dc00c1a Add ability to specify scheme of ServiceProviderConfiguration 2020-03-15 12:13:09 +01:00
TomPallister
2772ce406d all acceptance tests passing 2020-02-19 09:18:01 +00:00
Thiago Loureiro
5d82e68534
Removed unused usings, removed empty spaces, removed tons os warnings (#903) 2019-05-28 11:00:54 +08:00
Phil Proctor
9bbb6364f2 Checkin for caching the template matching for significant route finder performance improvements (#728) 2018-12-26 17:05:20 -03:00
Tom Pallister
2d834037e4
removed dep we dont need in dsrfm (#636) 2018-09-25 20:33:31 +01:00
Tom Pallister
44f8e312a8
Feature/refactoring internal config creation stack (#600)
* tidy up some code so I can understand it

* broke al the things that make config out into their own classes etc..sigh

* fix the things i broked

* #597 test for issue, works on this branch :E

* #597 removed comments

* added tests for new load balancer creator..basic

* added tests for lb creator and aggregates creator

* added tests for config creator

* boiler plate for tests

* added dynamics tests

* wip

* finished refactoring for now
2018-09-11 21:41:58 +01:00
Rwing
b491bd50a8 fix typo, DownstreamDownstreamPathTemplate => DownstreamPathTemplate (#601) 2018-09-11 21:02:03 +01:00
Tom Pallister
ef6db657b7
#593 instanciate upstream path template when dynamic routing for logging (#594) 2018-09-03 21:31:57 +01:00
Tom Pallister
66b68fc685
Feature/#574 look at httpclient cache key (#589)
* #574 consolidate some code, man the config stuff is a mess!

* #574 just use the downstream re route and the key for caching http clients

* #574 added benchmark, i was suprised to learn using a complex type was faster than a string in benchmark .net dictionary tests, hey ho probably dont have enough data in the type...
2018-09-01 13:10:45 +01:00
Tom Pallister
b0bdeb9402
#534 fixed failing tests for this issue (#575) 2018-08-25 12:32:56 +01:00
Tom Pallister
00a600064d
Feature/issue with path and query string #458 (#565)
* #548 added failing test

* #548 fixed failing tests for issue where using /{everything} didnt build path correctly
2018-08-20 22:28:58 +01:00
Tom Pallister
b0a20d13b9
Feature/more dynamic routes (#508)
* Made the file config poller use IHostedService, bit more generic, not just need to provide the correct implementations of the repo services and it will poll anything..this means we can open up redis for #458

* removed comments

* #458 allow users to set rate limits per service for dynamic re routes

* #458 added docs for rate limting on dynamic reroutes
2018-07-29 20:32:45 +01:00
Tom Pallister
8f4ae03290
Added support for query string parameters in upstream path template (#467) 2018-07-12 19:26:23 +01:00
Tom Pallister
0f7aaa097d
dont use dynamic routing unless service discovery provider explictly set and log that we are going to use dynamic info (#437)
* #428 dont use dynamic routing unless service discovery provider explictly set and log that we are going to use dynamic info

* #428 fixed tests that were failing due to not maintaining backwards compat with config for service discovery
2018-06-27 18:15:04 +01:00
Tom Pallister
b60d26e1c6
Feature/few tweaks (#422)
* #419 Incorrect routing when UpstreamHost is specified and UpstreamHttpMethod is empty

* few tweaks to make seperate test as I got confused having one...there is too much setup in these tests

* added another test case for route matching

* set cake coveralls addin to v0.0.7 so build works...
2018-06-22 07:01:10 +01:00
David Nissimoff
fffc4c8d3c #419 Incorrect routing when UpstreamHost is specified and UpstreamHttpMethod is empty (#420) 2018-06-20 22:41:00 +01:00
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