diff options
Diffstat (limited to 'dhall/server/service/plugin')
-rw-r--r-- | dhall/server/service/plugin/Config.dhall | 11 | ||||
-rw-r--r-- | dhall/server/service/plugin/functions.dhall | 7 | ||||
-rw-r--r-- | dhall/server/service/plugin/http2httpsRedirect.dhall | 15 | ||||
-rw-r--r-- | dhall/server/service/plugin/mkPreFunction.dhall | 9 | ||||
-rw-r--r-- | dhall/server/service/plugin/package.dhall | 7 |
5 files changed, 37 insertions, 12 deletions
diff --git a/dhall/server/service/plugin/Config.dhall b/dhall/server/service/plugin/Config.dhall index ea53361..1f60080 100644 --- a/dhall/server/service/plugin/Config.dhall +++ b/dhall/server/service/plugin/Config.dhall | |||
@@ -1,9 +1,8 @@ | |||
1 | < CorrelationId : | 1 | < CorrelationId : |
2 | { header_name : Text, echo_downstream : Bool, generator : Text } | 2 | { header_name : Text, echo_downstream : Bool, generator : Text } |
3 | | RequestTransformer : | 3 | | RequestTransformer : { add : { headers : List Text } } |
4 | { add : { headers : List Text } } | ||
5 | | RequestTermination : | 4 | | RequestTermination : |
6 | { status_code : Natural, content_type : Text, body : Text } | 5 | { status_code : Natural, content_type : Text, body : Text } |
7 | | IPRestriction : | 6 | | IPRestriction : { whitelist : Text } |
8 | { whitelist : Text } | 7 | | PreFunction : { functions : List Text } |
9 | > | 8 | > |
diff --git a/dhall/server/service/plugin/functions.dhall b/dhall/server/service/plugin/functions.dhall new file mode 100644 index 0000000..098fba7 --- /dev/null +++ b/dhall/server/service/plugin/functions.dhall | |||
@@ -0,0 +1,7 @@ | |||
1 | { mkRequestTermination = ./mkRequestTermination.dhall | ||
2 | , mkRequestTransformer = ./mkRequestTransformer.dhall | ||
3 | , mkIPRestriction = ./mkIPRestriction.dhall | ||
4 | , correlationId = ./correlationId.dhall | ||
5 | , mkPreFunction = ./mkPreFunction.dhall | ||
6 | , http2httpsRedirect = ./http2httpsRedirect.dhall | ||
7 | } | ||
diff --git a/dhall/server/service/plugin/http2httpsRedirect.dhall b/dhall/server/service/plugin/http2httpsRedirect.dhall new file mode 100644 index 0000000..faa6d79 --- /dev/null +++ b/dhall/server/service/plugin/http2httpsRedirect.dhall | |||
@@ -0,0 +1,15 @@ | |||
1 | let mkPreFunction = ./mkPreFunction.dhall | ||
2 | |||
3 | let luaRedirect = | ||
4 | '' | ||
5 | local scheme = kong.request.get_scheme() | ||
6 | if scheme == "http" then | ||
7 | local host = kong.request.get_host() | ||
8 | local query = kong.request.get_path_with_query() | ||
9 | local url = "https://" .. host ..query | ||
10 | kong.response.set_header("Location", url) | ||
11 | return kong.response.exit(301, url) | ||
12 | end | ||
13 | '' | ||
14 | |||
15 | in mkPreFunction [ luaRedirect ] | ||
diff --git a/dhall/server/service/plugin/mkPreFunction.dhall b/dhall/server/service/plugin/mkPreFunction.dhall new file mode 100644 index 0000000..ff4f734 --- /dev/null +++ b/dhall/server/service/plugin/mkPreFunction.dhall | |||
@@ -0,0 +1,9 @@ | |||
1 | let Plugin = ./Plugin.dhall | ||
2 | |||
3 | let config = ./Config.dhall | ||
4 | |||
5 | in λ(functions : List Text) | ||
6 | → { name = "pre-function" | ||
7 | , config = config.PreFunction { functions = functions } | ||
8 | } | ||
9 | : Plugin | ||
diff --git a/dhall/server/service/plugin/package.dhall b/dhall/server/service/plugin/package.dhall index 872c53b..c231bc6 100644 --- a/dhall/server/service/plugin/package.dhall +++ b/dhall/server/service/plugin/package.dhall | |||
@@ -1,6 +1 @@ | |||
1 | { Type = ./Plugin.dhall | { Type = ./Plugin.dhall, functions = ./functions.dhall } | |
2 | , mkRequestTermination = ./mkRequestTermination.dhall | ||
3 | , mkRequestTransformer = ./mkRequestTransformer.dhall | ||
4 | , mkIPRestriction = ./mkIPRestriction.dhall | ||
5 | , correlationId = ./correlationId.dhall | ||
6 | } | ||