Commit Graph

58 Commits

Author SHA1 Message Date
1817564ea5 Feature/fix #463 (#506)
* #463 save both files

* #463 made it so we dont save to disk on startup unless using admin api
2018-07-27 23:13:22 +01:00
9f4448378a Adjusted routing.rst (while learning) (#504) 2018-07-27 18:01:32 +01:00
fa6dc5901a Spelling in documentation. (#491)
* Minor spelling issues

* spelling
2018-07-25 08:41:04 +01:00
daa0491992 #469 more docs around how services should be set up in consul (#485) 2018-07-21 09:01:45 +01:00
8f4ae03290 Added support for query string parameters in upstream path template (#467) 2018-07-12 19:26:23 +01:00
69d766b01d #446 link to issue that might help people with okta integration 2018-07-10 18:06:28 +01:00
75f9a8f9be #451 started implementing querystring support in templates (#459)
* #451 started implementing querystring support in templates

* #451 ocelot.json back to normal and specified in docs query string wont work in upstream template

* Revert "#451 ocelot.json back to normal and specified in docs query string wont work in upstream template"

This reverts commit 563193f7b2f78bad6109484fe77f3c87de831005.

* #451 ocelot.json back to normal and specified in docs query string wont work in upstream template
2018-07-10 18:00:17 +01:00
89c3887d36 #453 made caching docs a bit better (#457) 2018-07-09 18:35:01 +01:00
c8b72f31b5 #438 removed singleton delegating handlers as you cannot have these (#456) 2018-07-09 08:08:39 +01:00
85efcf0787 Update authentication.rst (#449)
Cannot assign lambda expression to an implicity-typed variable
2018-07-05 06:57:08 +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
e0f76210f7 Change port in Consul documentation (#418)
* Fix Consul default port

the default port for the consul api is 8500 not 9500 - https://www.consul.io/docs/agent/options.html

* Fix typo
2018-06-19 20:54:57 +01:00
9979f8a4b8 #372 use period timespan to decide when client can make requests again (#404) 2018-06-15 20:29:49 +01:00
0f2a9c1d0d Feature/poll consul (#392)
* WIP - implement a consul service discovery poller, lots of shared code with existing, refactor next and a todo in the docs to finish

* #374 implement polling for consul as option

* #374 updated docs to remove todo

* #374 fixed failing unit test

* #374 fixed failing unit test

* #374 fixed failing acceptance test
2018-06-12 00:58:08 +03:00
3bde18f6f8 Update raft.rst (#394) 2018-06-11 22:04:43 +03:00
7d0320beca Update authentication.rst (#395)
Fix spelling
2018-06-11 22:04:13 +03:00
3ef978460c update LoadBalancer Options (#388)
update LoadBalancer with LoadBalancerOptions
2018-06-08 17:55:58 +03: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
4e17190b3f Feature/service discovery config key (#347)
* #346 make service discoery config key configurable

* #346 missed this test

* #346 updated docs
2018-05-08 21:18:38 +01:00
6793278597 Feature/sticky sessions (#336)
* started messing around with sticky sessions idea

* more tests for sticky session thing

* more faffing cant make up my mind how to do this

* +semver: breaking added sticky session load balancer and changed way load balancer configuration is set by user

* #336 made tests BDDFy
2018-04-30 18:55:11 +01:00
77211e9f16 Feature/store configuraton json idented (#328)
* messing around with benchmark.net.seems Ocelot adds about 2ms to a request..lets make this less? :)

* #326 store json indented so it looks nice :P
2018-04-24 08:30:17 +01:00
636d116491 #309 allow users to ignore ssl warnings, not sure this is advisable (#325)
* #309 allow users to ignore ssl warnings, not sure this is advisable

* #309 docs for ssl ignore
2018-04-22 12:05:49 +01:00
4f061f2b74 Feature/steeltoe (#324)
* #262 - Integrated Steeltoe Service Discovery with Ocelot for review.

* messing around

* seems to be working with eureka

* acceptance test passing with external lib references

* #262 support for netflix eureka service discovery thanks to pivotal

* #262 fixed warnings
2018-04-20 21:28:49 +01:00
5e1605882b Feature/timeout for http client (#319)
* #318 http client obeys Qos timeout or defaults to 90 seconds, which is think is default for http client anyway but zero docs....

* #318 updated docs to specify default timeout and make it clear how to set it on a ReRoute basis

* #318 missed this

* #318 missed this
2018-04-18 15:24:16 +01:00
f9dc8659c0 forgot to update docs 2018-04-18 08:48:21 +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
3607c0867e Update middlewareinjection.rst (#317)
Class name "OcelotMiddlewareConfiguration" does not exist and "UseOcelot" extension method expects a "OcelotPipelineConfiguration" so i think this documentaiton is outdated.
2018-04-17 19:27:16 +01:00
fa09e4cf7a Support adding custom plaintext headers to downstream requests (#314) 2018-04-14 06:41:12 +01:00
b46ef1945d Feature/graphql (#312)
* #298 initial hacking around better aggregation

* #298 bit more hacking around

* #298 abstraction over httpresponsemessage

* #298 tidying up

* #298 docs

* #298 missed this

* #306 example of how to do GraphQL
2018-04-12 17:48:43 +01:00
a15f75dda8 #298 initial hacking around better aggregation (#310)
* #298 initial hacking around better aggregation

* #298 bit more hacking around

* #298 abstraction over httpresponsemessage

* #298 tidying up

* #298 docs

* #298 missed this
2018-04-12 17:35:04 +01:00
982eebfc74 Feature/#295 consul acl (#307)
* removed file

* updated package

* updated package

* updated package

* updated package

* updated package

* updated package

* updated package

* all packages updated

* #295 can add token to service provider config and this will be used by consul clients to get services and configuration

* #295 wait longer for this test
2018-04-08 15:54:58 +01:00
463a7bdab4 Feature/websockets (#273)
* #212 - hacked websockets proxy together

* faffing around

* #212 hacking away :(

* #212 websockets proxy middleware working

* #212 map when for webockets working

* #212 some test refactor

* #212 temp commit

* #212 websockets proxy working, tests passing...need to do some tidying and write docs

* #212 more code coverage

* #212 docs for websockets

* #212 updated readme

* #212 tidying up after websockets refactoring

* #212 tidying up after websockets refactoring

* #212 tidying up after websockets refactoring

* stuck a warning in about logging levels into docs!
2018-03-23 18:01:02 +00:00
b51df71d7b #280 Add headers to response (#286)
* #280 can now add response headers inc trace id, now need to consolidate the header place holder stuff

* #280 changed port for linux tests

* #280 lots of hacking around to handle errors and consolidate placeholders into one class
2018-03-18 14:58:39 +00:00
ed11f3024c Feature/#274 (#281)
* #274 added acceptance tests, need to work out failing unit tests but probably going to be a redesign where we hold a reference to the cookie container and empty it if needed

* #274 updated code coverage value

* #274 offloaded cache logic to builder in preparation for adding state

* #274 hacked something together but this is not right approach

* #274 updated defaults and docs

* #274 updated code coverage
2018-03-17 11:35:16 +00:00
fd2c5364fc #270 exposed ReRoute priority (#272) 2018-03-13 20:31:22 +00:00
16c70e8b65 #264 missed this docs change 2018-03-10 21:24:07 +00:00
4c840d40a6 Feature/re route specific handlers (#269)
* #264 added handlers to config

* #264 added global handlers object and defaut param for method, not sure this is correct api for users yet

* #264 Can now add all sorts of delegating handlers in all sorts of ways

* +semver: breaking #264
2018-03-10 21:02:59 +00:00
a31a3ae0fc Delegating Handlers from container (#266)
* #259 quickly hacked poc for this together, needs tidying up maybe

* #266 +semver: breaking removed adding delegating handler funcs directly...i feel from container is enough
2018-03-09 07:37:37 +00:00
4a28666a41 #238 support passing statefull service headers to service fabric naming service 2018-03-03 17:05:40 +00:00
454ba3f9a0 Make Ocelot work with service fabric DNS and naming service for guest exe and stateless (#242)
* test for issue

* added service fabric sample

* working!!

* changed sample naming to Ocelot

* removed files we dont need

* removed files we dont need

* updated sample gitignore

* updated sample gitignore

* getting ocelot to work with service fabric using the reverse proxy

* #238 - added support for service fabric discovery provider, proxies requests through naming service, wont work on partioned service fabric services yet

* #238 - Manually tested service fabric using sample..all seems OK. Made some changes after testing, added docs

* #238 - added docs for servic fabric
2018-03-03 15:24:05 +00:00
9f1fb002c1 Feature/#246 (#252)
* failing test

* failing test but needs real butterfly server running..need to fix that...also worked out ive broken tracing...yey

* brought in butterfly source code so i can work out how to write acceptance tests for this...

* fixed the bug but still need to fix tracing

* tracing working again across services but need to make tracing hook into new Ocelot middleware as it still uses asp.net middleware

* removed butterfly libs brought in for testing
2018-03-01 12:58:36 +00:00
18c34aa998 added basic rate limiting docs (#251) 2018-02-27 09:02:58 +00:00
04555dbb39 docs for multiple environments (#250) 2018-02-27 08:41:58 +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
05481f3af3 Feature/use any id server for admin area (#232)
* initial commits around using any id servers

* add your own id server for admin area

* lots of refactoring, now instead of injecting IWebHostBuilder we just set the Ocelot base url as a configuration extension method..this means people can pass it in on the command line aswell as hardcode which is OK I guess, also can now use your own IdentityServer to authenticate admin area

* updated docs for #231

* some tests that hopefully bump up coverage
2018-02-14 18:53:18 +00:00
947a1450d0 updated docs for tracing 2018-02-13 14:23:23 +00:00
98133d9473 Feature/expose http handlers (#224)
* temp commit

* trying to work out how to expose the http handlers in a decent way..

* pissing about at lunch

* changed to func so you can instanciate object or new it up each time

* docs for dele handlers

* upgraded to sdk 2.1.4

* some validation for consul services
2018-02-13 09:07:09 +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
f572d1b0ca downstreambaseurl placeholder for multiple location value redirects (#207) 2018-01-27 20:03:49 +00:00