631 Commits

Author SHA1 Message Date
Tom Pallister
dfb0759c75
Rename ULL_REQUEST_TEMPLATE.md to PULL_REQUEST_TEMPLATE.md 2018-03-02 17:47:07 +00:00
Tom Pallister
ca291413c6
Update README.md 2018-03-02 17:45:58 +00:00
Tom Pallister
59bd482fc7
Create CONTRIBUTING.md 2018-03-02 17:11:22 +00:00
Tom Pallister
fefeca676e
Create CODE_OF_CONDUCT.md (#254) 2018-03-02 17:08:43 +00:00
Tom Pallister
5b317f4605
Create ULL_REQUEST_TEMPLATE.md 2018-03-02 17:06:59 +00:00
Tom Pallister
68bc37419d
Create ISSUE_TEMPLATE.md 2018-03-02 17:05:13 +00:00
TomPallister
f95911bdf1 added logo to project 2018-03-02 10:25:44 +00:00
Tom Pallister
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
Tom Pallister
18c34aa998
added basic rate limiting docs (#251) 2018-02-27 09:02:58 +00:00
Tom Pallister
04555dbb39
docs for multiple environments (#250) 2018-02-27 08:41:58 +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
TomPallister
2573657ec2 #245 ignored raft tests for now as a bit unstable 2018-02-26 08:56:37 +00:00
Tom Pallister
9f7478c91f
Feature/fix #240 (#243)
* testing issue on train

* check multiple claims of the same type for authorisation
2018-02-21 20:53:46 +00:00
Tom Pallister
1e48a97294
tests showing how this could work (#241)
* tests showing how this could work

* test passing

* test needs work

* skip test as doesnt really do anything
2018-02-21 18:54:11 +00:00
Tom Pallister
bf3188020a
Feature/base url in config (#234)
* started moving baseurl to config issue 233

* fixed test
2018-02-15 09:52:16 +00:00
Tom Gardham-Pallister
d6a86b9295 +semver: feature 2018-02-14 19:01:08 +00:00
Tom Pallister
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
Tom Pallister
6f177fbf5b
messing around (#230) 2018-02-13 23:00:41 +00:00
Tom Pallister
947a1450d0 updated docs for tracing 2018-02-13 14:23:23 +00:00
Tom Gardham-Pallister
7c62b55431 added tracing to some routes 2018-02-13 09:13:34 +00:00
Tom Pallister
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
geffzhang
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
Tom Gardham-Pallister
f179b7d0d0 updated cake script for windows 2018-02-08 18:03:51 +00:00
Tom Gardham-Pallister
6ff8c1cac4 Merge branch 'develop' of github.com:TomPallister/Ocelot into develop 2018-02-03 11:00:46 +00:00
Tom Gardham-Pallister
35fff08f48 checking what happens on app veyor 2018-02-03 11:00:36 +00:00
Tom Pallister
d3e53062a2
Update README.md 2018-02-03 10:46:18 +00:00
Tom Pallister
a4bb0dd13b
fix for #214 and some tests for the class it was in but not for the error (cant be arsed to test as have to spin up IIS) (#218) 2018-02-03 09:02:01 +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
Stuart Saltzman
86951d6aaa fix: LF for linux scripts (.sh) (#215) 2018-02-01 20:00:39 +00:00
Tom Pallister
f690f287cb forgot this 2018-02-01 13:51:55 +00:00
Tom Gardham-Pallister
f1244ff3d4 +semver: breaking 2018-01-31 20:40:59 +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
f572d1b0ca
downstreambaseurl placeholder for multiple location value redirects (#207) 2018-01-27 20:03:49 +00:00
Tom Pallister
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
Stuart Saltzman
9c048ba615 fix/#98 - command line build on mac (#203)
* Cake v0.25.0; git ignore .idea/ directory

* revert cake to upstream

* revert src/Ocelot/Middleware/OcelotMiddlewareExtensions.cs

* comments
2018-01-18 21:02:30 +00:00
kinglionsoft
24870b1a83 fixed log message (#202)
* Can't set StatusCode after Response has started

* fixed log message
2018-01-18 19:28:53 +00:00
kinglionsoft
0784954971 Can't set StatusCode after Response has started (#200) 2018-01-16 07:10:52 +00:00
Tom Pallister
31f526d3cd
passing test for issue (#197)
* passing test for issue

* fix test when run together
2018-01-13 06:09:21 +00:00
Tom Gardham-Pallister
d0b07b2cc2 this isnt used 2018-01-10 18:50:02 +00:00
Tom Pallister
852f11c423
Feature/fix #194 (#196)
* added failing acceptance test

* added validation for double slash in upstream and downstream path templates
2018-01-10 18:11:56 +00:00
lousaibiao
b909b34591 Update routing.rst (#193)
lack of ":"
2018-01-10 08:14:14 +00:00
Tom Pallister
6992f9e113
fixed issu where if service dropped out then leastconnection would not pick it up again (#195) 2018-01-10 08:12:22 +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
464f266148
Feature/fix #185 round 2 (#188)
* Changed routing to support a catch all style

* refactoring placeholder tuff

* implemented simple priority in the routing
2018-01-05 21:49:03 +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
931a115ffa
changes to add new feature to url routing (#186) 2018-01-02 18:49:22 +00:00
Tom Pallister
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
Philip Wood
194f76cf7f #177 - optimise the build scripts (#178)
* Remove explicit restore, and don't rebuild during tests.

This currently fails because the release config doesn't contain symbols needed by opencover.

* Build unit tests in debug

Turns out that for test coverage we need to have debug symbols.
2017-12-18 22:11:17 +00:00
Tom Gardham-Pallister
79029f50d3 change to make test pass for issue 171 2017-12-12 07:45:03 +00:00
Tom Gardham-Pallister
526e2dbf18 Merge branch 'awarrenlove-ocelot-builder-lifetimes' into develop 2017-12-12 07:42:59 +00:00