service

package
v0.0.7-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OrderStatusPending     = "pending"
	OrderStatusValid       = "valid"
	OrderStatusDeactivated = "deactivated"
	OrderStatusExpired     = "expired"
	OrderStatusRevoked     = "revoked"
)

Variables

View Source
var (
	ErrCreateService            = errors.New("service: failed to create service")
	ErrPermissionDenied         = errors.New("service: permission denied")
	ErrDeleteAdminAccount       = errors.New("service: admin account can't be deleted")
	ErrChangeAdminRole          = errors.New("service: admin role can't be changed")
	ErrResetPasswordUnsupported = errors.New("service: reset password feature unsupported by auth store")
)
View Source
var (
	ErrUnsupportedAuthType = errors.New("unsupported auth type")
	ErrUserNotFound        = errors.New("user not found")
)
View Source
var (
	ErrOrganizationNotFound = errors.New("organization not found")
)
View Source
var (
	ErrRegistrationNotFound = errors.New("registration not found")
)
View Source
var (
	ErrRoleNotFound = errors.New("role not found")
)
View Source
var (
	ErrWebAuthnNotFound = errors.New("service/webauthn: webauthn session data not found")
)

Functions

This section is empty.

Types

type AcmeServer

type AcmeServer struct {
	// contains filtered or unexported fields
}

func NewAcmeServer

func NewAcmeServer(ca ca.CertificateAuthority) *AcmeServer

NewAcmeServer creates a new instance of AcmeServer.

func (*AcmeServer) CreateOrder

func (s *AcmeServer) CreateOrder(domain string) (Order, error)

func (*AcmeServer) DeactivateAuthorization

func (s *AcmeServer) DeactivateAuthorization(authzID string) error

func (*AcmeServer) FetchAuthorization

func (s *AcmeServer) FetchAuthorization(authzID string) (Authorization, error)

func (*AcmeServer) FetchOrder

func (s *AcmeServer) FetchOrder(orderID string) (Order, error)

func (*AcmeServer) FinalizeOrder

func (s *AcmeServer) FinalizeOrder(orderID string, csr []byte) (Order, error)

func (*AcmeServer) NewNonce

func (s *AcmeServer) NewNonce() (string, error)

func (*AcmeServer) RevokeCertificate

func (s *AcmeServer) RevokeCertificate(cert []byte, reason int) error

type AuthServicer

type AuthServicer interface {
	Activate(registrationID uint64) (*entities.User, error)
	Login(userCredentials *UserCredential) (*entities.User, []*entities.Organization, []*entities.Service, error)
	Register(userCredentials *UserCredential, baseURI string) (*entities.User, error)
	ResetPassword(userCredentials *UserCredential) error
}

type Authorization

type Authorization struct {
	ID     string
	Status string
	Domain string
}

type Order

type Order struct {
	ID          string
	Status      string
	Domain      string
	Certificate []byte
}

type Organization

type Organization struct {
	OrganizationService
	// contains filtered or unexported fields
}

func (*Organization) Create

func (service *Organization) Create(organization *entities.Organization) error

Creates a new organization

func (*Organization) Delete

func (service *Organization) Delete(session Session) error

Deletes an existing organization and all associated entites from the database

func (*Organization) GetUsers

func (service *Organization) GetUsers(session Session) ([]*entities.User, error)

Returns a list of User entities that belong to the organization

func (*Organization) Page

func (service *Organization) Page(session Session,
	pageQuery datastore.PageQuery) (datastore.PageResult[*entities.Organization], error)

Returns a single page of organization entities

type OrganizationService

type OrganizationService interface {
	Create(organization *entities.Organization) error
	Page(session Session, pageQuery datastore.PageQuery) (datastore.PageResult[*entities.Organization], error)
	GetUsers(session Session) ([]*entities.User, error)
	Delete(session Session) error
}

func NewOrganizationService

func NewOrganizationService(
	logger *logging.Logger,
	orgDAO datastore.OrganizationDAO) OrganizationService

type Registration

type Registration struct {
	RegistrationServicer
	// contains filtered or unexported fields
}

func (*Registration) Create

func (service *Registration) Create(registration *entities.Registration) error

CreateRegistration creates a new registration account

func (*Registration) Delete

func (service *Registration) Delete(session Session, registrationID uint64) error

Deletes an existing registration account

func (*Registration) Get

func (service *Registration) Get(session Session, registrationID uint64) (*entities.Registration, error)

Looks up the registration account by registration ID

type RegistrationServicer

type RegistrationServicer interface {
	Create(registration *entities.Registration) error
	Delete(session Session, registrationID uint64) error
	Get(session Session, registrationID uint64) (*entities.Registration, error)
}

func NewRegistrationService

func NewRegistrationService(
	logger *logging.Logger,
	registrationDAO datastore.RegistrationDAO) RegistrationServicer

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

func NewRegistry

func NewRegistry(
	logger *logging.Logger,
	deviceService *device.Service,
	dnsService *dns.Service,
	daoFactory datastore.Factory) (*Registry, error)

func (*Registry) DNSService

func (registry *Registry) DNSService() *dns.Service

func (*Registry) DeviceService

func (registry *Registry) DeviceService() *device.Service

func (*Registry) RegistrationService

func (registry *Registry) RegistrationService() RegistrationServicer

func (*Registry) UserService

func (registry *Registry) UserService() UserServicer

func (*Registry) WebAuthnSessionService

func (registry *Registry) WebAuthnSessionService() WebAuthnSessionServicer

type RoleService

type RoleService struct {
	RoleServicer
	// contains filtered or unexported fields
}

func (*RoleService) GetByName

func (service *RoleService) GetByName(name string, CONSISTENCY_LEVEL datastore.ConsistencyLevel) (*entities.Role, error)

Returns the role with the given name

func (*RoleService) Page

func (service *RoleService) Page(pageQuery datastore.PageQuery) (datastore.PageResult[*entities.Role], error)

Returns a single page of role entities from the database

type RoleServicer

type RoleServicer interface {
	GetPage(pageQuery datastore.PageQuery) (datastore.PageResult[*entities.Role], error)
	GetByName(name string, CONSISTENCY_LEVEL datastore.ConsistencyLevel) (*entities.Role, error)
}

func NewRoleService

func NewRoleService(
	logger *logging.Logger,
	roleDAO datastore.RoleDAO) RoleServicer

type Service

type Service struct {
	ID            uint64
	Name          string
	KeyAttributes *keystore.KeyAttributes
}

type ServiceSession

type ServiceSession struct {
	Session
	// contains filtered or unexported fields
}

func (*ServiceSession) Close

func (session *ServiceSession) Close()

func (*ServiceSession) ConsistencyLevel

func (session *ServiceSession) ConsistencyLevel() datastore.ConsistencyLevel

func (*ServiceSession) Error

func (session *ServiceSession) Error(err error)

func (*ServiceSession) IsMemberOfOrganization

func (session *ServiceSession) IsMemberOfOrganization(organizationID uint64) bool

func (*ServiceSession) IsSystemSession

func (session *ServiceSession) IsSystemSession() bool

func (*ServiceSession) Logger

func (session *ServiceSession) Logger() *logging.Logger

func (*ServiceSession) RequestedOrganizationID

func (session *ServiceSession) RequestedOrganizationID() uint64

func (*ServiceSession) RequestedServiceID

func (session *ServiceSession) RequestedServiceID() uint64

func (*ServiceSession) String

func (session *ServiceSession) String() string

func (*ServiceSession) User

func (session *ServiceSession) User() *entities.User

type Session

type Session interface {
	ConsistencyLevel() datastore.ConsistencyLevel
	Close()
	IsSystemSession() bool
	Logger() *logging.Logger
	RequestedOrganizationID() uint64
	RequestedServiceID() uint64
	SetLogger(*logging.Logger)
	User() *entities.User
}

func CreateSession

func CreateSession(
	logger *logging.Logger,
	orgClaims []uint64,
	requestedOrgID uint64,
	requestedServiceID uint64,
	serviceClaims []uint64,
	user *entities.User) Session

func NewSession

func NewSession() Session

type User

type User struct {
	UserServicer
	// contains filtered or unexported fields
}

func (*User) Delete

func (service *User) Delete(session Session, userID uint64) error

Delete an existing user

func (*User) Get

func (service *User) Get(userID uint64) (*entities.User, error)

Retrieves a user with the given id or ErrRecordNotFound

func (*User) Save

func (service *User) Save(user *entities.User) error

Create a new user

type UserCredential

type UserCredential struct {
	OrgID    uint64 `json:"org"`
	Email    string `json:"email"`
	Password string `json:"password"`
	AuthType int    `json:"authType"`
}

type UserServicer

type UserServicer interface {
	Save(user *entities.User) error
	Delete(session Session, userID uint64) error
	Get(userID uint64) (*entities.User, error)
}

func NewUserService

func NewUserService(
	logger *logging.Logger,
	userDAO datastore.UserDAO,
	orgDAO datastore.OrganizationDAO,
	roleDAO datastore.RoleDAO,
	authServices map[int]AuthServicer) UserServicer

type WebAuthnSessionService

type WebAuthnSessionService struct {
	WebAuthnSessionServicer
	// contains filtered or unexported fields
}

func (*WebAuthnSessionService) Delete

func (service *WebAuthnSessionService) Delete(session Session, sessionData *entities.Blob) error

func (*WebAuthnSessionService) Get

func (service *WebAuthnSessionService) Get(session Session, id uint64) (*entities.Blob, error)

Retrieves webauthn session data by it's session id

func (*WebAuthnSessionService) Page

func (service *WebAuthnSessionService) Page(
	session Session, pageQuery datastore.PageQuery) (datastore.PageResult[*entities.Blob], error)

Returns a single page of webauthn session data blobs from the database

func (*WebAuthnSessionService) Save

func (service *WebAuthnSessionService) Save(sessionData *entities.Blob) error

Saves the provided webauthn session data to the data store

type WebAuthnSessionServicer

type WebAuthnSessionServicer interface {
	Delete(session Session, sessionData *entities.Blob) error
	Get(session Session, id uint64) (*entities.Blob, error)
	Page(session Session, pageQuery datastore.PageQuery) (datastore.PageResult[*entities.Blob], error)
	Save(sessionData *entities.Blob) error
}

func NewWebAuthnSessionService

func NewWebAuthnSessionService(
	logger *logging.Logger,
	webAuthnDAO datastore.WebAuthnDAO) WebAuthnSessionServicer

Jump to

Keyboard shortcuts

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