aboutsummaryrefslogtreecommitdiffhomepage
path: root/dhall/server
diff options
context:
space:
mode:
Diffstat (limited to 'dhall/server')
-rw-r--r--dhall/server/service/plugin/Config.dhall11
-rw-r--r--dhall/server/service/plugin/functions.dhall7
-rw-r--r--dhall/server/service/plugin/http2httpsRedirect.dhall15
-rw-r--r--dhall/server/service/plugin/mkPreFunction.dhall9
-rw-r--r--dhall/server/service/plugin/package.dhall7
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 @@
1let mkPreFunction = ./mkPreFunction.dhall
2
3let 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
15in 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 @@
1let Plugin = ./Plugin.dhall
2
3let config = ./Config.dhall
4
5in λ(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}