Skip to content

[Task]: Encryption Configuration in Config TOML #2425

Description

@renuka-fernando

Please select the area the issue is related to

Area/Management (Management API or Management Portal UI)

Please select the aspect the issue is related to

Aspect/API (API backends, definitions, contracts, interfaces, OpenAPI)

Description

Rethink the Config for Encryption

// Database holds database-specific configuration.
type Database struct {
	// Driver supports: sqlite3, postgres/postgresql/pgx, sqlserver/mssql.
	Driver string `koanf:"driver"`
	// Path is the file path for SQLite databases.
	Path            string `koanf:"path"`
	Host            string `koanf:"host"`
	Port            int    `koanf:"port"`
	Name            string `koanf:"name"`
	User            string `koanf:"user"`
	Password        string `koanf:"password"`
	SSLMode         string `koanf:"ssl_mode"`
	MaxOpenConns    int    `koanf:"max_open_conns"`
	MaxIdleConns    int    `koanf:"max_idle_conns"`
	ConnMaxLifetime int    `koanf:"conn_max_lifetime"`

	EncryptionKey                  string `koanf:"encryption_key"`
	SubscriptionTokenEncryptionKey string `koanf:"subscription_token_encryption_key"`
	SecretEncryptionKey            string `koanf:"secret_encryption_key"`
	// SecretKeyFile is the path to a 32-byte binary key file used for secret encryption.
	// Honoured in both demo and non-demo mode when neither SecretEncryptionKey nor
	// EncryptionKey is set. In demo mode the file is auto-generated on first startup and
	// reused on subsequent restarts; in non-demo mode the file must already exist (a missing
	// or unreadable file is fatal). Matches the gateway controller key-management pattern.
	SecretKeyFile string `koanf:"secret_key_file"`
}

Only SecretEncryptionKey is supported via file (all the above encryption keys should support it)

Or a shared encryption key.

Metadata

Metadata

Assignees

Labels

Area/ManagementAny issues related to Management API or Management Portal UIAspect/APIAPI definitions, contracts, OpenAPI, interfacesType/Task

Type

Fields

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions