38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package service
|
|
|
|
type Alias struct {
|
|
Name string `json:"name"`
|
|
Command string `json:"command"`
|
|
Description string `json:"description,omitempty"`
|
|
}
|
|
|
|
type ServerConfig struct {
|
|
Host string `json:"host"`
|
|
Port int `json:"port"`
|
|
}
|
|
|
|
type OIDCConfig struct {
|
|
Issuer string `json:"issuer"`
|
|
ClientID string `json:"client_id"`
|
|
ClientSecret string `json:"client_secret"`
|
|
// PublicURL is the externally reachable base URL of this server, used to
|
|
// construct the OIDC redirect URI (e.g. "https://ax.example.com:7000").
|
|
PublicURL string `json:"public_url"`
|
|
UserClaim string `json:"user_claim"` // default "preferred_username"
|
|
}
|
|
|
|
type Config interface {
|
|
GetUser() string
|
|
SetUser(username string) error
|
|
GetAlias(name string) (*Alias, error)
|
|
SetAlias(alias *Alias) error
|
|
DeleteAlias(name string) error
|
|
ListAliases() ([]*Alias, error)
|
|
GetServerConfig() ServerConfig
|
|
// GetRemoteConfig returns the remote server address and whether remote mode is enabled.
|
|
GetRemoteConfig() (ServerConfig, bool)
|
|
// GetOIDCConfig returns the OIDC configuration and whether OIDC is enabled.
|
|
GetOIDCConfig() (OIDCConfig, bool)
|
|
Save() error
|
|
}
|