39 Commits

Author SHA1 Message Date
Tom Pallister
b74a1197a2
+semver: upgrade to net5.0 (#1390)
* breaking upgrade base build image to net5.0

* add make and build tools to image

* fix code broken after net5.0 upgrade

* fix warnings

* fix tests and line endings

* upgrade dotnet test and coverages packages

* update circle build image

* removed rafty and updated more packages

* bring back develop

* rename authorisation to authorization
2020-12-11 09:54:08 +00:00
TomPallister
21b9d73c7f tweaks 2020-05-25 18:39:00 +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
Tom Pallister
fd7c6d7a5b
Feat/release queue (#1192)
* queue release workflow so only one release can run at one time

* wait for 20 mins for release to finish

Co-authored-by: TomPallister <tom@threemammals.com>
2020-04-11 11:09:51 +01:00
Tom Pallister
1a280ddd7f
#1150: added simple way to get release notes using cake and git 2020-03-12 22:14:18 +00:00
Tom Pallister
ebe662abe6
make rate limiting whitelist a function so users can override with dynamic behaviour
* Make rate-limiting client whitelist dynamic
* Refactor `RateLimitOptions.ClientWhiteList`
* Fix typo in variable `enbleRateLimiting`
* Fix case in variable `clientIdheader`
author Taiwo Otubamowo <totubamowo@deloitte.co.uk>

* fix 1045

* #492 log 500 with error log level, acceptance test, unit test

* #492 minor changes

* initial commit for new feature #1077

allow to limit the number of concurrent tcp connection to a downstream service

* protect code against value not in accurate range

add unit test

* Do not crash host on Dispose

* Add test

* Pin GitVersion.CommandLine package version

* #683 validate if there are duplicated placeholders in UpstreamPathTemplate

* Use registered scheme from Eureka (#1087)

* extra test

* very brief mention MaxConnectionsPerServer in docs

* build develop like a PR

* more docs

* test

Co-authored-by: Taiwo O. <44668623+totubamowo@users.noreply.github.com>
Co-authored-by: Catcher Wong <catcher_hwq@outlook.com>
Co-authored-by: jlukawska <56401969+jlukawska@users.noreply.github.com>
Co-authored-by: buretjph <58700930+buretjph@users.noreply.github.com>
Co-authored-by: Jonathan Mezach <jonathanmezach@gmail.com>
Co-authored-by: 彭伟 <pengweiqhca@sina.com>
2020-01-19 17:47:57 +00:00
Tom Pallister
664c6ef626
Updated to netcoreapp3.1
* added basic sample

* updated docs
2020-01-18 22:17:22 +00:00
Thiago Loureiro
cfa3fedc53
Release/13.2.0 (#834)
* Fix formatting in getting started page (#752)

* updated release docs (#745)

* Update README.md (#756)

Fixed typo "Ocleot"

* Fixed typo there => their (#763)

* Some Typo fixes (#765)

* Typo algorythm => algorithm (#764)

* Typo querystring => query string (#766)

* Typo usual => usually (#767)

* Typos (#768)

* kubernetes provider (#772)

* feat: Kubernetes ServiceDiscoveryProvider

* 编写k8s测试例子

* feat:fix kube config

* feat: remove port

* feat : complete the k8s test

* feat :  add kubeserviceDiscovery test

* feat : add kube provider unittest

* feat :add kubetnetes docs

how to use ocelot with kubetnetes docs

* keep the configuration as simple as possible, no qos, no cache

* fix: use http

* add PollingKubeServiceDiscovery

* feat : refactor logger

* feat : add  pollkube docs

* feat:Remove unnecessary code

* feat : code-block json

* fix issue #661 for Advanced aggregations (#704)

* Add Advanced Aggregation Feature

* fix overwrite error

* distinct data for better performance

* remove constructor parameter

* fix tests issue

* fix tests

* fix tests issue

* Add UnitTest and AcceptanceTest

* fix responseKeys typo

* Update SimpleJsonResponseAggregator.cs

* change port

* Fix code example for SSL Errors (#780)

DangerousAcceptAnyServerCertificateValidator has to be set to "true" to disable certification validation, not "false".

* Changed wording for ease of reading (#776)

Just some wording changes for clarification.

* Ignore response content if null (fix #785) (#786)

* fix bug #791 (#795)

* Update loadbalancer.rst (#796)

* UriBuilder - remove leading question mark #747 (#794)

* Update qualityofservice.rst (#801)

Tiny typo

* K8s package (#804)

* feat: Kubernetes ServiceDiscoveryProvider

* 编写k8s测试例子

* feat:fix kube config

* feat: remove port

* feat : complete the k8s test

* feat :  add kubeserviceDiscovery test

* feat : add kube provider unittest

* feat :add kubetnetes docs

how to use ocelot with kubetnetes docs

* keep the configuration as simple as possible, no qos, no cache

* fix: use http

* add PollingKubeServiceDiscovery

* feat : refactor logger

* feat : add  pollkube docs

* feat:Remove unnecessary code

* feat : code-block json

* feat: publish package Ocelot.Provider.Kubernetes

* Okta integration (#807)

Okta integration

* update cliamsParser (#798)

* update cliamsParser

* update using

* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization (#790)

* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization

* Adjustment code

* nuget package (#809)

* feat: Kubernetes ServiceDiscoveryProvider

* 编写k8s测试例子

* feat:fix kube config

* feat: remove port

* feat : complete the k8s test

* feat :  add kubeserviceDiscovery test

* feat : add kube provider unittest

* feat :add kubetnetes docs

how to use ocelot with kubetnetes docs

* keep the configuration as simple as possible, no qos, no cache

* fix: use http

* add PollingKubeServiceDiscovery

* feat : refactor logger

* feat : add  pollkube docs

* feat:Remove unnecessary code

* feat : code-block json

* feat: publish package Ocelot.Provider.Kubernetes

* feat : nuget package

* fix: Namesapce Spelling wrong

* fix:Namesapce Spelling Wrong

* Fix: errors when using rate limiting (#811)

* Fix: errors when using rate limiting
Add: QuotaExceededError class for requesting too much
Add: QuotaExceededError error code
Add: Add an error when limit is reached
Reflact: Extract GetResponseMessage method for getting default or configured response message for requ

* Fix: modify check_we_have_considered_all_errors_in_these_tests for adding a new OcelotErrorCode

* added missing COPY csproj files (#821)

* Add note on In-Process hosting (#816)

When using ASP.NET Core 2.2 with In-Process hosting in IIS it's important to use .UseIIS() instead of .UseIISIntegration().

* Fix bug: (#810)

If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.

* Fixed Dockerfile (missing Kubernetes)

* Revert "Fix bug: (#810)" (#823)

This reverts commit 19c80afb05290fac3a144f652cd663c8b513a559.

* remove duplicate `IHttpRequester` register (#819)

* remove duplicate `IHttpRequester` register

* reserve the first

* fix HttpRequesterMiddleware does not call next bug (#830)

call next so that we can do something with the response, such as add some custom header etc...

* Removed Packing to fix issues, will be sorted out after create a nuget package on Nuget.Org (#831)

* Allows access to unpass node (#825)

* Fix bug:
If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.

* fix bug:
If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.

* Updated FluentValidations Nuget Package (#833)
2019-03-22 23:39:53 +01:00
Tom Pallister
11a2d13f18
Feat/monorepo (#734)
* copied everything from repos back to ocelot repo

* added src projects to sln

* removed all test projects that have no tests

* added all test projects to sln

* removed test not on master

* merged unit tests

* merged acceptance tests

* merged integration tests

* fixed namepaces

* build script creates packages for all projects

* updated docs to make sure no references to external repos that we will remove

* +semver: breaking
2019-01-07 19:52:53 +00:00
Phil Proctor
ac211886f1 Dockerfile build (#727)
* Added Dockerfile run configuration and fixed manual test project to run appropriately

* Finished updates for Docker build and management of project through docker commands. Any of the dotnet CLI commands accessible through 'builder' container and default run is manual test project

* Added a docker-compose.yaml files to support commands: docker-compose run tests, docker-compose run benchmarks, docker-compose run manual-test
2018-12-26 08:30:59 -08:00
Philip Wood
01fe4ef9aa Turn off a few more rules 2018-03-03 14:15:39 +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
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 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
7ec0c6a4d1 removed some stuff that doesnt exist 2017-11-01 17:22:20 +00:00
Tom Pallister
1c98dcbca3 updated packages and project versions...12 errors! 2017-09-25 11:53:56 +01:00
TomPallister
c06b492b46 upgraded to netcoreapp2.0 2017-09-21 23:00:22 +01:00
TomPallister
490de4c45d updated sln..for some reason this didnt happen with vs2017 upgrade 2017-03-09 17:18:02 +00:00
TomPallister
c2f98f0d69 final changes to readme and added postman scripts 2017-02-25 18:06:38 +00:00
TomPallister
d548a86327 Added integration test project as acceptance style doesnt work when running the new admin area because identityserver needs to use proper networking 2017-02-19 15:29:32 +00:00
TomPallister
2aa156d0a6 refactoring service discovery and load balancing approach into load balancing middleware 2017-02-01 22:00:01 +00:00
Philip Wood
33854067d4 #20 - Tidy up. Update command line scripts. Fix running benchmarks. 2017-01-29 15:14:31 +00:00
Philip Wood
b50d2b1aca #20 - remove obsolete file 2017-01-29 13:17:57 +00:00
Philip Wood
e747d3386a #20 - add release scripts 2017-01-29 13:00:50 +00:00
Philip Wood
2cd69d1908 #20 - added cake build to do same functionality as batch scripts. Also does semver versioning of assemblies, if running in AppVeyor, generates release notes and publishes packages to appveyor. 2017-01-24 21:11:15 +00:00
Tom Gardham-Pallister
c3a47f66c8 merge 2017-01-23 12:13:24 +00:00
TomPallister
0f71c040d9 split DownstreamTemplate into DownstreamPathTemplate, DownstreamScheme, DownstreamHost and DownstreamPort in order to prepare for service discovery 2017-01-21 09:59:47 +00:00
TomPallister
92c182df00 Updated readme 2016-11-02 21:54:31 +00:00
TomPallister
c31a1ba598 Updated benchmark project 2016-10-30 18:59:23 +00:00
TomPallister
367fa327b3 bunch of refactoring 2016-10-26 21:38:44 +01:00
TomPallister
d50f06fc3e Added benchmarks project back in..tho its pointless 2016-10-24 19:01:20 +01:00
TomPallister
acfeeed86a removed ocelot website project from src and added a manual test project for this, renamed library project to just be ocelot 2016-10-18 19:04:46 +01:00
tom.pallister
aabfe62ceb updated sln 2016-10-14 08:29:28 +01:00
TomPallister
3f4e908798 gitingore 2016-10-13 21:16:17 +01:00
TomPallister
6b01ab1ac1 sln updates 2016-10-12 21:41:07 +01:00
TomPallister
244aa69022 apveyor yaml 2016-10-12 20:50:29 +01:00
TomPallister
da1957311b Changed scripts so acceptance tests pass when you run them from root 2016-09-22 20:52:59 +01:00
TomPallister
ff10d07b94 Set up acceptance tests on windows 2016-07-16 15:10:19 +01:00
TomPallister
c512a772d4 after hours of pissing around on the mac...gave up..so got this configured how i wanted in VS2015 now to see if it works on the mac 2016-07-03 20:39:08 +01:00