Documentation
¶
Index ¶
- Constants
- Variables
- type CheckoutService
- type CreditService
- type CustomerService
- type GroupService
- type InvitationService
- type InvoiceService
- type KycService
- type MembershipService
- type OrganizationService
- type PolicyService
- type ProjectService
- type ResourceService
- type RoleService
- type Service
- func (d Service) DeleteCustomers(ctx context.Context, id string) error
- func (d Service) DeleteGroup(ctx context.Context, id string) error
- func (d Service) DeleteOrganization(ctx context.Context, id string) error
- func (d Service) DeleteProject(ctx context.Context, id string) error
- func (d Service) DeleteUser(ctx context.Context, userID string) error
- func (d Service) RemoveUsersFromOrg(ctx context.Context, orgID string, userIDs []string) error
- type ServiceUserService
- type SubscriptionService
- type UserPATService
- type UserService
Constants ¶
const (
DisableDeleteIfBilled = true
)
Variables ¶
var (
ErrDeleteNotAllowed = fmt.Errorf("deletion not allowed for billed accounts")
)
Functions ¶
This section is empty.
Types ¶
type CheckoutService ¶ added in v0.114.0
type CreditService ¶ added in v0.114.0
type CustomerService ¶ added in v0.8.35
type GroupService ¶
type InvitationService ¶
type InvitationService interface {
List(ctx context.Context, flt invitation.Filter) ([]invitation.Invitation, error)
Delete(ctx context.Context, id uuid.UUID) error
}
type InvoiceService ¶ added in v0.8.35
type KycService ¶ added in v0.114.0
type MembershipService ¶ added in v0.103.0
type MembershipService interface {
OnGroupDeleted(ctx context.Context, groupID string) error
ListResourcesByPrincipal(ctx context.Context, principal authenticate.Principal, resourceType string, filter membership.ResourceFilter) ([]string, error)
ForceRemoveOrganizationMember(ctx context.Context, orgID, principalID, principalType string) error
}
type OrganizationService ¶
type OrganizationService interface {
Get(ctx context.Context, id string) (organization.Organization, error)
DeleteModel(ctx context.Context, id string) error
}
type PolicyService ¶
type ProjectService ¶
type ResourceService ¶
type RoleService ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewCascadeDeleter ¶
func NewCascadeDeleter(orgService OrganizationService, projService ProjectService, resService ResourceService, groupService GroupService, membershipService MembershipService, policyService PolicyService, roleService RoleService, invitationService InvitationService, userService UserService, userPATService UserPATService, serviceUserService ServiceUserService, customerService CustomerService, subService SubscriptionService, invoiceService InvoiceService, checkoutService CheckoutService, creditService CreditService, kycService KycService) *Service
func (Service) DeleteCustomers ¶ added in v0.8.35
func (Service) DeleteGroup ¶ added in v0.103.0
DeleteGroup orchestrates teardown of a single group: clears every member's policies and relations plus the org<->group hierarchy relations via membership, then deletes the group entity itself.
func (Service) DeleteOrganization ¶
DeleteOrganization removes an org and everything belonging to it. Billing is torn down first: it talks to the billing provider and is the step most likely to fail. Identity (projects, policies, and so on) goes after, with org policies (the org owners) near the end. This way a failure at any step leaves the org owned and the delete can simply be run again. Every step treats already-deleted data as success for the same reason.
func (Service) DeleteUser ¶ added in v0.7.6
DeleteUser visits every org the user has a policy on (disabled orgs too), otherwise userService.Delete would leave orphan policy rows behind.
func (Service) RemoveUsersFromOrg ¶ added in v0.7.5
RemoveUsersFromOrg removes users from an organization as members. The policy and relation cleanup — org, project, group, and custom resource — is delegated to membership.ForceRemoveOrganizationMember. It uses the force variant because a deletion cascade must succeed even when the user is the org's last owner.
type ServiceUserService ¶ added in v0.100.0
type ServiceUserService interface {
List(ctx context.Context, flt serviceuser.Filter) ([]serviceuser.ServiceUser, error)
Delete(ctx context.Context, id string) error
}