summaryrefslogtreecommitdiff
path: root/internal/configuration/types.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/configuration/types.go')
-rw-r--r--internal/configuration/types.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/configuration/types.go b/internal/configuration/types.go
new file mode 100644
index 000000000..68a49a721
--- /dev/null
+++ b/internal/configuration/types.go
@@ -0,0 +1,34 @@
+package configuration
+
+import (
+ "github.com/knadh/koanf"
+
+ "github.com/authelia/authelia/internal/configuration/schema"
+)
+
+// Source is an abstract representation of a configuration Source implementation.
+type Source interface {
+ Name() (name string)
+ Merge(ko *koanf.Koanf, val *schema.StructValidator) (err error)
+ Load(val *schema.StructValidator) (err error)
+}
+
+// YAMLFileSource is a configuration Source with a YAML File.
+type YAMLFileSource struct {
+ koanf *koanf.Koanf
+ path string
+}
+
+// EnvironmentSource is a configuration Source which loads values from the environment.
+type EnvironmentSource struct {
+ koanf *koanf.Koanf
+ prefix string
+ delimiter string
+}
+
+// SecretsSource loads environment variables that have a value pointing to a file.
+type SecretsSource struct {
+ koanf *koanf.Koanf
+ prefix string
+ delimiter string
+}