296 Commits

Author SHA1 Message Date
TomPallister
a9eec31aaf fix code broken after net5.0 upgrade 2020-11-20 12:10:46 +00:00
TomPallister
708b575857 upgrade csproj to net5.0 2020-11-20 09:31:45 +00:00
TomPallister
21b9d73c7f tweaks 2020-05-25 18:39:00 +01:00
TomPallister
56fe7b5ba9 wip 2020-05-25 16:59:49 +01:00
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
TomPallister
c9483cdad6 tests to handle some error cases and docs 2020-04-13 12:05:55 +01:00
TomPallister
c8c3d128f6 Merge branch 'ServiceProviderConfigurationScheme' of https://github.com/DavidLievrouw/Ocelot into DavidLievrouw-ServiceProviderConfigurationScheme 2020-04-12 17:44:57 +01:00
TomPallister
3dfcff822b Merge branch 'feature/603-bad-gateway' of https://github.com/jlukawska/Ocelot into jlukawska-feature/603-bad-gateway 2020-04-11 18:01:05 +01:00
Pedram Rezaei
84821c6c8d
Updated packages (#1133)
* Upgrading nugets

* doc changes

* more changes to remove warnings

* one more fix

* one more fix

* forcing the build
2020-04-11 10:00:58 +01:00
David Lievrouw
cd3dc00c1a Add ability to specify scheme of ServiceProviderConfiguration 2020-03-15 12:13:09 +01:00
jlukawska
8ead5114c3 update acceptance tests 2020-03-11 22:17:47 +01:00
jlukawska
f922f0c078
Merge pull request #3 from ThreeMammals/master
Master merge
2020-03-11 21:51:47 +01:00
TomPallister
36064b13d0 use random port generator on tests from master 2020-03-11 20:09:36 +00:00
TomPallister
c75227d5b8 Merge branch 'master' into jlukawska-feature/1115-find-available-port-in-acceptance-tests 2020-03-11 20:00:55 +00:00
TomPallister
d032774aa0 small refactor of RandomPortFinder 2020-03-11 19:52:24 +00:00
jlukawska
263f26ed51 #1115 find available ports to use in acceptance tests 2020-03-06 10:18:21 +01:00
TomPallister
ede5650a3c docs 2020-02-21 16:53:03 +00:00
TomPallister
ec8a5b6ddf finished tests around http2 2020-02-21 16:49:26 +00:00
TomPallister
2772ce406d all acceptance tests passing 2020-02-19 09:18:01 +00:00
TomPallister
d879721978 Merge branch 'master' into pitming-feature/MethodTransformer 2020-02-09 16:55:14 +00:00
TomPallister
7e80720881 acceptance tests 2020-02-09 16:15:39 +00:00
Tom Pallister
86e8d66daf
Activate ChangeToken when Ocelot's configuration changes #1037
* Add configuration change token (#1036)

* Add IOptionsMonitor<IInternalConfiguration>

* Activate change token from *ConfigurationRepository instead of FileAndInternalConfigurationSetter; add acceptance & integration tests

* Update documentation

* Use IWebHostEnvironment as IHostingEnvironment deprecated

Co-authored-by: Chris Swinchatt <chrisswinchatt@gmail.com>
2020-02-04 20:50:40 +00:00
jlukawska
cbb21a13b3 #603 return 502 on HttpRequestException 2020-01-22 16:14:20 +01:00
jlukawska
8985495f38 Merge remote-tracking branch 'origin/develop' into feature/603-bad-gateway 2020-01-22 14:58:04 +01:00
jlukawska
68e3ae8cdd #603 return 502 on HttpRequestException 2020-01-22 14:55:41 +01: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
TomPallister
9da55ea037 small changes to log all responses either information or warning 2020-01-19 16:27:08 +00:00
Tom Pallister
07df311094
harden acceptance tests (#1105)
* dont use duplicate port

* change port as this often breaks for some reason
2020-01-19 15:50:11 +00:00
Tom Pallister
664c6ef626
Updated to netcoreapp3.1
* added basic sample

* updated docs
2020-01-18 22:17:22 +00:00
TomPallister
92ce87c61c docker build works on windows 2020-01-16 21:37:51 -08:00
Tom Pallister
fab09ab4dc
updated acceptance and integration tests to use unique ports (#1091)
* updated acceptance and integration tests to use unique ports

* fix broken travis builds

* fix change port
2020-01-13 20:43:21 +00:00
jlukawska
f35a07a3da #603 return 502 when request cannot be completed 2019-11-22 08:01:02 +01:00
jlukawska
c82a613c16 Merge remote-tracking branch 'origin/develop' into feature/492-log-500-status-code-as-error
# Conflicts:
#	test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj
2019-11-11 22:23:19 +01:00
jlukawska
f0667471dd #492 log 500 with error log level, acceptance test, unit test 2019-11-07 09:18:05 +01:00
geffzhang
903b380a5b update .net core 3.0 RTM (#1025)
* feat: update to asp.net core 3.0 preview 9

* fix :  AspDotNetLogger unittest

* feat:  update generic host  and  useMvc

1、Using 'UseMvc' to configure MVC is not supported while using Endpoint Routing https://github.com/aspnet/AspNetCore/issues/9542
2、 use IHost and IHostBuilder

* feat : update .net core 3.0 rc1

* eureka extension

* fixed logger formatter error

* fixed synchronous operations are disallowed of ReadToEnd method

* fix log tests

* Flush method of FakeStream should do nothing

* Update ContentTests.cs

* Fixed ws tests

* feat: delelte comment code

* feat: update .net core 3.0 RTM

* Update OcelotBuilderTests.cs

* Update .travis.yml

mono 6.0.0 and dotnet 3.0.100

* Update Ocelot.IntegrationTests.csproj

update Microsoft.Data.SQLite 3.0.0

* Update .travis.yml

* feat: remove FrameworkReference

1、 remove FrameworkReference
2、 update package

* add appveyor configuration to use version of VS2019 with dotnet core 3 sdk support

* update obsoleted SetCollectionValidator method

* Swap out OpenCover for Coverlet

* Bump Cake to 0.35.0

* Downgrade coveralls.net to 0.7.0
Fix disposing of PollConsul instance

* Remove environment specific path separator

* Do not return ReportGenerator on Mac/Linux

* Remove direct dependency on IInternalConfiguration

* Fix ordering of variable assignment

* Fix broken tests

* Fix acceptance tests for Consul
2019-10-28 07:24:30 +00:00
Víctor Martos
8117366313 [New feature] Support claims to path transformation (#968)
* Add the option to change DownstreamPath based on Claims

* Add tests for Claims to downstream path
2019-08-13 01:03:20 +08:00
Thiago Loureiro
5d82e68534
Removed unused usings, removed empty spaces, removed tons os warnings (#903) 2019-05-28 11:00:54 +08:00
Thiago Loureiro
fe3cf44c45
Upgrade Projects (#900)
* Upgrade Projects

* Push to trigger builds

* Tried Thread Sleep before deleting file

* FileDeleteTryCatch

* Updated from AspnetCore All to App

* Travis version Upgrade (.net core 2.2)

* dotnet 2.2.105
2019-05-24 10:06:16 +08:00
Jason Morton
4b6c88de14 Fix issue #890 IDefinedAggregator can't handle error codes from downstream requests (#892)
* 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)

* Removed Warnings

* Make the full DownstreamContext available to user defined aggregators

This allows error codes to be handled
2019-05-20 15:44:16 +08:00
Abolfazl
faaabbe7a7 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
2019-02-04 09:21:50 -03:00
geffzhang
44dccf1fce 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
2019-01-31 07:19:32 -03:00
Felix Boers
6495891a07 Support placeholder in service fabric services names (#722) 2019-01-11 08:54:54 -05: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
thiago.azevedo
8b930d10b2 Updated MemoryCache package from 2.1.1 to 2.1.2 to fix build issue 2018-11-29 12:11:36 +01:00
thiago.azevedo
adbe7a0227 Fixed Microsoft.AspNetCore.All version for security purposes 2018-11-29 12:05:27 +01:00
Tom Pallister
aa14b2f877
Feature/#623 (#632)
* #630 only set status code if response hasnt started, otherwise exception

* #623 made {RemoteIpAddress} available as placeholder so you can do x-forwarded-for

* #623 local address different on mac, windows and linux for integration test
2018-09-24 08:22:44 +01:00
Tom Pallister
669ece07b2
Feature/proxy reason phrase (#618)
* #599 started work to proxy reason phrase

* #599 test for aggregator
2018-09-12 19:48:56 +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
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