Documentation
¶
Index ¶
- Constants
- Variables
- func ClearSession(target, environment string) error
- func EnforcementEnabled(ctx context.Context) bool
- func Ensure(ctx context.Context, target, environment string, cfg Config) (context.Context, error)
- func Login(ctx context.Context, target, environment string, cfg Config, out io.Writer) (*identity.Principal, error)
- func ManagedEnvironment(environment string) bool
- func PrincipalFromContext(ctx context.Context) (*identity.Principal, bool)
- func SaveSession(session Session) error
- func SessionPath(target, environment string) (string, error)
- func VerifySession(ctx context.Context, target, environment string, cfg Config) (*identity.Principal, error)
- func WithEnforcement(ctx context.Context) context.Context
- func WithInteractive(ctx context.Context, in io.Reader, out, errOut io.Writer) context.Context
- type Config
- type Interactive
- type Session
- type SessionObservation
Constants ¶
View Source
const ( EnvIssuer = "BASEHARBOR_OPERATOR_OIDC_ISSUER" EnvClientID = "BASEHARBOR_OPERATOR_OIDC_CLIENT_ID" EnvScopes = "BASEHARBOR_OPERATOR_OIDC_SCOPES" EnvCallbackPort = "BASEHARBOR_OPERATOR_OIDC_CALLBACK_PORT" )
Variables ¶
View Source
var ( ErrConfigurationRequired = errors.New("operator OIDC configuration is required for managed environments") ErrAuthenticationRequired = errors.New("authenticated BaseHarbor operator session is required") )
Functions ¶
func ClearSession ¶
func EnforcementEnabled ¶
func ManagedEnvironment ¶
func PrincipalFromContext ¶
func SaveSession ¶
func SessionPath ¶
func VerifySession ¶
Types ¶
type Config ¶
type Config struct {
Provider string
Issuer string
ClientID string
Scopes []string
CallbackPort int
}
func ConfigFromEnv ¶
type Interactive ¶
func InteractiveFromContext ¶
func InteractiveFromContext(ctx context.Context) (Interactive, bool)
type Session ¶
type Session struct {
Target string `json:"target"`
Environment string `json:"environment"`
Issuer string `json:"issuer"`
Subject string `json:"subject"`
ClientID string `json:"client_id"`
IDToken string `json:"id_token"`
ExpiresAt time.Time `json:"expires_at"`
}
func LoadSession ¶
type SessionObservation ¶
type SessionObservation struct {
Present bool `json:"present"`
Valid bool `json:"valid"`
Target string `json:"target,omitempty"`
Environment string `json:"environment,omitempty"`
Issuer string `json:"issuer,omitempty"`
Subject string `json:"subject,omitempty"`
ClientID string `json:"client_id,omitempty"`
ExpiresAt time.Time `json:"expires_at,omitempty"`
}
func ObserveSession ¶
func ObserveSession(target, environment string, cfg Config) (SessionObservation, error)
Click to show internal directories.
Click to hide internal directories.