// Package settings persists application-level key/value settings in the // metadata layer. The main use is the token signing secret, generated on first // use and reused afterwards. package settings import "context" // JWTSecretKey is the settings key holding the token signing secret. const JWTSecretKey = "jwt_secret" // Repository reads and writes application settings. type Repository interface { // Get returns the value for key and whether it exists. Get(ctx context.Context, key string) (string, bool, error) // Set stores or replaces the value for key. Set(ctx context.Context, key, value string) error // Ensure returns the existing value for key, or generates and stores one // using generate when absent. Concurrent first use yields one value. Ensure(ctx context.Context, key string, generate func() (string, error)) (string, error) }