Commit Graph

62 Commits

Author SHA1 Message Date
cd3dc00c1a Add ability to specify scheme of ServiceProviderConfiguration 2020-03-15 12:13:09 +01:00
2772ce406d all acceptance tests passing 2020-02-19 09:18:01 +00:00
5d82e68534 Removed unused usings, removed empty spaces, removed tons os warnings (#903) 2019-05-28 11:00:54 +08:00
9bbb6364f2 Checkin for caching the template matching for significant route finder performance improvements (#728) 2018-12-26 17:05:20 -03:00
2d834037e4 removed dep we dont need in dsrfm (#636) 2018-09-25 20:33:31 +01:00
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
b491bd50a8 fix typo, DownstreamDownstreamPathTemplate => DownstreamPathTemplate (#601) 2018-09-11 21:02:03 +01:00
ef6db657b7 #593 instanciate upstream path template when dynamic routing for logging (#594) 2018-09-03 21:31:57 +01:00
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
b0bdeb9402 #534 fixed failing tests for this issue (#575) 2018-08-25 12:32:56 +01:00
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
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
8f4ae03290 Added support for query string parameters in upstream path template (#467) 2018-07-12 19:26:23 +01:00
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
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
fffc4c8d3c #419 Incorrect routing when UpstreamHost is specified and UpstreamHttpMethod is empty (#420) 2018-06-20 22:41:00 +01:00
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
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
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
b8e95373a4 Fix async/await warnings 2018-03-06 10:59:01 +00:00
167fbb3daf Remove multiple concurrent blank lines
SA1507
2018-03-03 13:26:27 +00:00
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
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
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
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
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
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
88e51971c5 only get config once in a request...could make this its own middleware one day? 2017-11-10 18:07:08 +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
d0d74f0886 match whole input with regex 2017-10-12 19:03:20 +01:00
7ef26f5f4b fixes issue #117 2017-08-29 20:47:52 +01:00
d02e921a58 Moved ScopedRepository into test base class. 2017-07-18 10:53:57 +01:00
8042bbab2c Moved common middleare test setup into a base class 2017-07-18 09:28:32 +01:00
24f7b9a171 UpstreamHttpMethod property (of class FileReRoute) changes from string to List<string>. 2017-05-05 11:47:28 +01:00
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
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
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
2dfdf0bb86 after much hacking unit tests passing 2017-02-21 07:34:47 +00:00
95fc687e93 started messing around with admin area 2017-02-13 12:13:53 +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
7fffc9827a auth options builders 2017-02-07 20:30:26 +00:00
33ce162693 changed upstream http method to use httpmethod class in .net 2017-02-07 18:30:21 +00:00
1671fadea3 made upstream template use template path object 2017-02-07 07:53:41 +00:00
c46dcc05b8 started implementing the consul service provider 2017-02-04 13:16:31 +00:00
c3a47f66c8 merge 2017-01-23 12:13:24 +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
af506b079a more logging, more readme, more refactoring 2016-11-05 11:36:58 +00:00
8582ba45a9 Added some logging at last! 2016-11-04 20:17:15 +00:00
367fa327b3 bunch of refactoring 2016-10-26 21:38:44 +01:00