Martin
February 8, 2017, 4:20am
1
We have released a new version of Tyk and Tyk Dashboard to address some critical issues, the release notes are below:
Release notes for Tyk v2.3.2
Fix for URL parameters that contain http://
as a field group (even url encoded) are misinterpreted when the proxy URL is reconstructed
RPC (Hybrid/MDCB) Fixed potential slow memory leak
RPC (Hybrid/MDCB) Fixed connections leak on network partitions
Fixed bug where JWT claims would not be included in the middleware context in subsequent requests
Fixed runtime panic when an OAuth client is added with an API that does not exist in the gateway yet
Release notes for Tyk Dashboard 1.3.1.2
Added Organisation name to dashboard UI for multi-tenant installations
Fixed 'Search by key" in the key analytics view
Fixed API Import schema to support a missing field
Fixed import/export API for policies where the ACL would not be properly set on import
Uptime tests UI fixed base64 encoding issue for multi-line request bodies
Both releases are available via our package cloud repositories, for Tyk Hybrid customers the latest docker containers are now available.
Docker containers should be available shortly, please check Docker Hub
2 Likes
Efix
February 8, 2017, 9:52am
2
Great ! Thank you for this new release !
Iâve redeployed tyk on docker cloud (new release 232) and it seems that URL params that contain âhttp://â are still rewritten and tyk still redirects with a 301 HTTP code. Is there a conf variable to set anywhere ?
leon
February 8, 2017, 11:10am
3
Yes, we should fix description, you should set http_server_options.skip_url_cleaning
to true
Also, GitHub release page have some more information: links to relevant issues/prâs Release Tyk v2.3.2 and Dashboard v1.3.1 Patches ¡ TykTechnologies/tyk ¡ GitHub
Leonid, Tyk Team
Efix
February 8, 2017, 1:07pm
4
Thank you Leon. It works when i set the value in tyk.conf but, it doesnât work with the TYK_GW_HTTPSERVEROPTIONS_SKIPURLCLEANING variable set to true.
leon
February 8, 2017, 2:42pm
5
Can you try TYK_GW_HTTP_SERVER_OPTIONS_SKIP_URL_CLEANING ?
Efix
February 8, 2017, 3:13pm
6
Unfortunately it doesnât work.
I tried these variables :
- TYK_GW_HTTPSERVEROPTIONS_OVERRIDEDEFAULTS=true
- TYK_GW_HTTP_SERVER_OPTIONS_SKIP_URL_CLEANING=true
leon
February 8, 2017, 3:45pm
7
Sorry for playing this hide and seek game! I personally just checked and your first guess with TYK_GW_HTTPSERVEROPTIONS_SKIPURLCLEANING actually was right. Documentation should be more clearer indeed.
So, for me combination of TYK_GW_HTTPSERVEROPTIONS_OVERRIDEDEFAULTS=true TYK_GW_HTTPSERVEROPTIONS_SKIPURLCLEANING=true
worked well.
Can you ensure that when Tyk Gateway starting it prints to logs âVersion: 2.3.2â? Maybe this is issue with updating docker image?
Efix
February 8, 2017, 4:02pm
8
Yes, iâm on 2.3.2
I only set environment variables, i did not mount the volume for config file
I do not want to mount any volume to my Tyk Gateway container, I want to configure my Gateway through env variables only
Here is a part of my stackfile (for tyk-gateway) :
tyk-gateway:
environment:
- TYK_GW_ENABLEANALYTICS=true
- TYK_GW_ANALYTICSCONFIG_TYPE=mongo
- TYK_GW_NORMALISEURLS_ENABLED=true
- TYK_GW_NORMALISEURLS_NORMALISEUUIDS=true
- TYK_GW_NORMALISEURLS_NORMALISENUMBERS=true
- TYK_GW_USEDBAPPCONFIGS=true
- TYK_GW_DBAPPCONFOPTIONS_CONNECTIONSTRING=http://tyk-dashboard:3000
- TYK_GW_DBAPPCONFOPTIONS_NODEISSEGMENTED=false
- TYK_GW_DBAPPCONFOPTIONS_TAGS=stats
- TYK_GW_HASHKEYS=false
- TYK_GW_LISTENPORT=80
- TYK_GW_NODESECRET=352d20ee67be67f6340b4c0605b044b7
- TYK_GW_SECRET=352d20ee67be67f6340b4c0605b044b7
- TYK_GW_POLICIES_POLICYSOURCE=service
- TYK_GW_POLICIES_POLICYCONNECTIONSTRING=http://tyk-dashboard:3000'
- TYK_GW_POLICIES_POLICYRECORDNAME=tyk_policies
- TYK_GW_POLICIES_ALLOWEXPLICITPOLICYID=true
- TYK_GW_STORAGE_TYPE=redis
- TYK_GW_STORAGE_HOST=tyk-redis
- TYK_GW_STORAGE_PORT=6379
- TYK_GW_STORAGE_DATABASE=0
- TYK_GW_STORAGE_MAXIDLE=100
- TYK_GW_STORAGE_MAXACTIVE=5000,
- TYK_GW_STORAGE_ENABLECLUSTER=false
- TYK_GW_HTTPSERVEROPTIONS_OVERRIDEDEFAULTS=true
- TYK_GW_HTTPSERVEROPTIONS_SKIPURLCLEANING=true
image: 'tykio/tyk-gateway:latest'
ports:
- '80:80'
If i add these lines, it works because tyk is reading conf from the file, not environment variables :
volumes:
- '/usr/src/app/tyk/confs/tyk.conf:/opt/tyk-gateway/tyk.conf'
Martin
February 9, 2017, 4:39am
9
The env variablle will be:
TYK_GW_HTTPSERVEROPTIONS_SKIPURLCLEANING
It will also require the custom HTTP Server options to be enabled:
TYK_GW_HTTPSERVEROPTIONS_OVERRIDEDEFAULTS=true
This has some other implications, so be aware that all of these settings are also now exposed and processed on start:
type HttpServerOptionsConfig struct {
OverrideDefaults bool `json:"override_defaults"`
ReadTimeout int `json:"read_timeout"`
WriteTimeout int `json:"write_timeout"`
UseSSL bool `json:"use_ssl"`
UseLE_SSL bool `json:"use_ssl_le"`
EnableWebSockets bool `json:"enable_websockets"`
Certificates []CertData `json:"certificates"`
ServerName string `json:"server_name"`
MinVersion uint16 `json:"min_version"`
FlushInterval int `json:"flush_interval"`
SkipURLCleaning bool `json:"skip_url_cleaning"`
}
There are safe defaults in place I think, but itâs worth keeping in mind (anything that is a boolean will default to false, so can be ignored).
Efix
February 9, 2017, 6:55am
10
Thank you Martin
Unfortunately, this is what i did and it doesnât workâŚ(i edited my previous message to replace TYK_GW_HTTP_SERVER_OPTIONS_SKIP_URL_CLEANING
to TYK_GW_HTTPSERVEROPTIONS_SKIPURLCLEANING
).
I had to mount a volume to pass tyk.conf
to my tyk-gateway, so that it works
Martin
February 9, 2017, 9:56pm
11
Did you use TYK_GW_HTTPSERVEROPTIONS_OVERRIDEDEFAULTS=true
?
Efix
February 10, 2017, 8:05am
12
YesâŚLike I said previously, I used both variables :
- TYK_GW_HTTPSERVEROPTIONS_OVERRIDEDEFAULTS=true
- TYK_GW_HTTPSERVEROPTIONS_SKIPURLCLEANING=true
Martin
February 11, 2017, 5:17am
13
I see - weâll need to look into that, could you raise an issue on Github?