summaryrefslogtreecommitdiff
path: root/service/headers/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'service/headers/config.go')
-rw-r--r--service/headers/config.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/service/headers/config.go b/service/headers/config.go
new file mode 100644
index 00000000..bb7a6b2b
--- /dev/null
+++ b/service/headers/config.go
@@ -0,0 +1,41 @@
+package headers
+
+import "github.com/spiral/roadrunner/service"
+
+// Config declares headers service configuration.
+type Config struct {
+ // CORS settings.
+ CORS *CORSConfig
+
+ // Request headers to add to every payload send to PHP.
+ Request map[string]string
+
+ // Response headers to add to every payload generated by PHP.
+ Response map[string]string
+}
+
+// CORS headers configuration.
+type CORSConfig struct {
+ // AllowedOrigin: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
+ AllowedOrigin string
+
+ // AllowedHeaders: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
+ AllowedHeaders string
+
+ // AllowedMethods: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
+ AllowedMethods string
+
+ // AllowCredentials https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
+ AllowCredentials *bool
+
+ // ExposeHeaders: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
+ ExposedHeaders string
+
+ // MaxAge of CORS headers in seconds/
+ MaxAge int
+}
+
+// Hydrate service config.
+func (c *Config) Hydrate(cfg service.Config) error {
+ return cfg.Unmarshal(c)
+}