controllers

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2025 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Config = config.GetConfig()
View Source
var Tracer = otel.Tracer("pkg/controllers/requestController")

Functions

This section is empty.

Types

type AccessRequestController

type AccessRequestController struct {
	Providers     map[string]models.ProviderConfig
	Creds         map[string]models.Credential
	Roles         []models.AccessRole
	ApprovalRules []models.ApprovalRule
}

func NewAccessRequestController

func NewAccessRequestController() *AccessRequestController

func (*AccessRequestController) Approve

func (r *AccessRequestController) Approve(c *gin.Context)

@Security JWT @Summary Approve access request @Schemes @Description Approve access requests. All providers assigned to role will ensure user access @Tags Access requests @Accept json @Produce json @Success 200 {object} ResponseSuccess @Router /access/requests/{ID}/approve [post] @Param ID path string true "AccessRequest id" default(xxxx-xxxx-xxxx)

func (*AccessRequestController) Create

func (r *AccessRequestController) Create(c *gin.Context)

@Security JWT @Summary Create access request @Schemes @Description Create new access request @Tags Access requests @Accept json @Produce json @Param role body models.AccessRequest true "Access request definition" @Success 200 {object} ResponseSuccess @Router /access/requests [post]

func (*AccessRequestController) Delete

func (r *AccessRequestController) Delete(c *gin.Context)

@Security JWT @Summary Delete access request @Schemes @Description Delete access request by id @Tags Access requests @Accept json @Produce json @Success 200 {object} []models.AccessRequest @Router /access/requests/{ID} [delete] @Param ID path string true "AccessRequest id" default(xxxx-xxxx-xxxx)

func (*AccessRequestController) Expire

func (r *AccessRequestController) Expire(c *gin.Context)

@Security JWT @Summary Expire access request @Schemes @Description Expire user access. All providers assigned to role will ensure access expiration @Tags Access requests @Accept json @Produce json @Success 200 {object} ResponseSuccess @Router /access/requests/{ID}/expire [post] @Param ID path string true "AccessRequest id" default(xxxx-xxxx-xxxx)

func (*AccessRequestController) List

func (r *AccessRequestController) List(c *gin.Context)

@Security JWT @Summary List access requests @Schemes @Description List all access requests @Tags Access requests @Accept json @Produce json @Success 200 {object} []models.AccessRequest @Router /access/requests [get]

type AccessRoleController

type AccessRoleController struct {
	Providers map[string]models.ProviderConfig
	Roles     []models.AccessRole
}

func NewAccessRoleController

func NewAccessRoleController() *AccessRoleController

func (*AccessRoleController) Create

func (r *AccessRoleController) Create(c *gin.Context)

@Security JWT @Summary Create role @Schemes @Description Create a new which can be later used in access requests @Tags Access roles @Accept json @Produce json @Param role body models.AccessRole true "Role definition" @Success 200 {object} ResponseSuccess @Router /access/roles [post]

func (*AccessRoleController) List

func (r *AccessRoleController) List(c *gin.Context)

@Security JWT @Summary List roles @Schemes @Description Create a new which can be later used in access requests @Tags Access roles @Accept json @Produce json @Success 200 {object} []models.AccessRole @Router /access/roles [get]

type ResponseError

type ResponseError struct {
	Type   string `example:"/errors/schema-validation"`
	Title  string `example:"Schema validation failed"`
	Status int    `example:"400"`
	Error  string `example:"Missing required fields"`
}

type ResponseSuccess

type ResponseSuccess struct {
	Status int    `example:"201"`
	Title  string `example:"Record successfully created"`
	Type   string `example:"/status/success"`
}

type ResponseSuccessCreated

type ResponseSuccessCreated struct {
	Status int    `example:"201"`
	Title  string `example:"Record successfully created"`
	Type   string `example:"/status/success"`
}

type ResponseSuccessDeleted

type ResponseSuccessDeleted struct {
	Status int    `example:"200"`
	Title  string `example:"Record successfully deleted"`
	Type   string `example:"/status/success"`
}

type ResponseSuccessUpdated

type ResponseSuccessUpdated struct {
	Status int    `example:"200"`
	Title  string `example:"Record successfully updated"`
	Type   string `example:"/status/success"`
}

type StatusController

type StatusController struct {
}

StatusController handles status probes

func NewStatusController

func NewStatusController() *StatusController

NewStatusController creates a new StatusController

func (*StatusController) Healthz

func (r *StatusController) Healthz(c *gin.Context)

@Security JWT @Summary Healthy @Schemes @Description Healthy @Tags API health @Accept json @Produce json @Success 200 {object} []models.Health @Router /healthz [get]

func (*StatusController) Livez

func (r *StatusController) Livez(c *gin.Context)

@Security JWT @Summary Liveness @Schemes @Description Liveness @Tags API health @Accept json @Produce json @Success 200 {object} []models.Health @Router /livez [get]

func (*StatusController) Readyz

func (r *StatusController) Readyz(c *gin.Context)

@Security JWT @Summary Readyness @Schemes @Description Readyness @Tags API health @Accept json @Produce json @Success 200 {object} []models.Health @Router /readyz [get]

type UserController

type UserController struct {
}

UserController handles user endpoints

func NewUserController

func NewUserController() *UserController

NewUserController creates a new UserController

func (*UserController) GetProfile

func (r *UserController) GetProfile(c *gin.Context)

@Security JWT @Summary User profile @Schemes @Description Returns curent user's profile @Tags User @Accept json @Produce json @Success 200 {object} models.UserProfile @Router /user/profile [get]

func (*UserController) UpdateProfileSettings

func (r *UserController) UpdateProfileSettings(c *gin.Context)

@Security JWT @Summary Update user settings @Schemes @Description Updates current user's settings @Tags User @Accept json @Produce json @Param role body models.UserProfileSettings true "User profiles settings" @Success 200 {object} ResponseSuccessCreated @Router /user/profile/settings [put]

func (*UserController) UserInfo

func (r *UserController) UserInfo(c *gin.Context)

@Security JWT @Summary User info @Schemes @Description Returns information about authenticated user @Tags User @Accept json @Produce json @Success 200 {object} models.ClaimsMap @Router /userinfo [get]

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL