aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/app/config.go')
-rw-r--r--internal/app/config.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/app/config.go b/internal/app/config.go
new file mode 100644
index 00000000..d9648740
--- /dev/null
+++ b/internal/app/config.go
@@ -0,0 +1,34 @@
+package app
+
+import (
+ "git.ophivana.moe/cat/fortify/dbus"
+ "git.ophivana.moe/cat/fortify/internal/state"
+)
+
+// Config is used to seal an *App
+type Config struct {
+ // D-Bus application ID
+ ID string `json:"id"`
+ // username of the target user to switch to
+ User string `json:"user"`
+ // value passed through to the child process as its argv
+ Command []string `json:"command"`
+ // string representation of the child's launch method
+ Method string `json:"method"`
+
+ // child confinement configuration
+ Confinement ConfinementConfig `json:"confinement"`
+}
+
+// ConfinementConfig defines fortified child's confinement
+type ConfinementConfig struct {
+ // reference to a system D-Bus proxy configuration,
+ // nil value disables system bus proxy
+ SystemBus *dbus.Config `json:"system_bus,omitempty"`
+ // reference to a session D-Bus proxy configuration,
+ // nil value makes session bus proxy assume built-in defaults
+ SessionBus *dbus.Config `json:"session_bus,omitempty"`
+
+ // child capability enablements
+ Enablements state.Enablements `json:"enablements"`
+}