Documentation
¶
Overview ¶
Package settings is each user's own GitHub/Forgejo credentials — saved through the Settings page, encrypted at rest, and what dashboard.Manager builds that user's forge sources from. Replaces v1's GITHUB_TOKEN/FORGEJO_* environment variables, which configured one dashboard for everyone rather than one per signed-in user.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNoEncryptionKey = errors.New("settings: ENCRYPTION_KEY must decode to 32 bytes")
ErrNoEncryptionKey is returned by NewCipher when key isn't valid AES-256 key material — a service holding real credentials has to fail loudly at startup rather than silently store them in the clear.
var ErrNotFound = errors.New("settings: not found")
ErrNotFound is returned when a user has never saved any credentials.
Functions ¶
This section is empty.
Types ¶
type Cipher ¶
type Cipher struct {
// contains filtered or unexported fields
}
Cipher encrypts and decrypts credential fields with AES-256-GCM.
func NewCipher ¶
NewCipher builds a Cipher from base64Key, the raw form of ENCRYPTION_KEY. Generate one with `openssl rand -base64 32`.
type Credentials ¶
type Credentials struct {
GitHubToken string
GitHubUsername string
ForgejoURL string
ForgejoToken string
ForgejoUsername string
UpdatedAt time.Time
}
Credentials is one user's forge configuration, decrypted and ready to use — never itself serialized back to a client once saved; see internal/api's settings handlers for what does reach the browser.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store persists Credentials, encrypted at rest, one row per user.
func NewStore ¶
NewStore wraps db, encrypting and decrypting every token field through cipher. Init must be called once before any other method.
func (*Store) Delete ¶ added in v0.9.0
Delete removes userID's saved credentials — a no-op, not an error, if they never saved any. Used when an admin removes the account outright.