Versions in this module Expand all Collapse all v0 v0.1.6 Apr 14, 2026 v0.1.5 Apr 9, 2026 v0.1.4 Apr 7, 2026 v0.1.3 Apr 7, 2026 v0.1.2 Mar 17, 2026 Changes in this version + type OutboxService interface + Broadcast func(ctx context.Context, input BroadcastNotificationInput) ([]NotificationResult, error) + GetEvent func(ctx context.Context, tenantID, eventID shared.ID) (*outbox.Event, error) + ListEvents func(ctx context.Context, filter ListNotificationEventsFilter) (*ListResult[*outbox.Event], error) + RetryEvent func(ctx context.Context, tenantID, eventID shared.ID) error + Send func(ctx context.Context, input SendNotificationInput) (*NotificationResult, error) + Test func(ctx context.Context, tenantID, integrationID shared.ID) (*NotificationResult, error) v0.1.1 Feb 12, 2026 v0.1.0 Feb 12, 2026 Changes in this version + func ContextWithServiceContext(ctx context.Context, sc *ServiceContext) context.Context + type AddMemberInput struct + RoleIDs []string + TenantID string + UserID string + type AssetService interface + BulkDelete func(ctx context.Context, tenantID shared.ID, assetIDs []shared.ID) error + Create func(ctx context.Context, input CreateAssetInput) (*asset.Asset, error) + Delete func(ctx context.Context, tenantID, assetID shared.ID) error + Get func(ctx context.Context, tenantID, assetID shared.ID) (*asset.Asset, error) + GetByName func(ctx context.Context, tenantID shared.ID, name string) (*asset.Asset, error) + List func(ctx context.Context, filter ListAssetsFilter) (*ListResult[*asset.Asset], error) + Update func(ctx context.Context, input UpdateAssetInput) (*asset.Asset, error) + UpdateRiskScores func(ctx context.Context, tenantID shared.ID, assetIDs []shared.ID) error + type AuditRetentionPolicy struct + ArchiveEnabled bool + ArchiveLocation string + CompressAfterDays int + RetentionDays int + type AuditService interface + Get func(ctx context.Context, tenantID, logID shared.ID) (*audit.AuditLog, error) + GetByResourceID func(ctx context.Context, tenantID shared.ID, resourceType, resourceID string) ([]*audit.AuditLog, error) + List func(ctx context.Context, filter ListAuditLogsFilter) (*ListResult[*audit.AuditLog], error) + Log func(ctx context.Context, log *audit.AuditLog) error + LogAsync func(ctx context.Context, log *audit.AuditLog) + type AuditServiceEnterprise interface + Export func(ctx context.Context, filter ListAuditLogsFilter, format string) ([]byte, error) + GetRetentionPolicy func(ctx context.Context, tenantID shared.ID) (*AuditRetentionPolicy, error) + PurgeOldLogs func(ctx context.Context, tenantID shared.ID) (int64, error) + SetRetentionPolicy func(ctx context.Context, tenantID shared.ID, policy *AuditRetentionPolicy) error + type AuthResult struct + AccessToken string + ExpiresAt int64 + RefreshToken string + User *user.User + type AuthService interface + Login func(ctx context.Context, input LoginInput) (*AuthResult, error) + Logout func(ctx context.Context, sessionID shared.ID) error + LogoutAll func(ctx context.Context, userID shared.ID) error + RefreshToken func(ctx context.Context, input RefreshTokenInput) (*AuthResult, error) + Register func(ctx context.Context, input RegisterInput) (*AuthResult, error) + VerifyToken func(ctx context.Context, token string) (*user.User, error) + type BroadcastNotificationInput struct + Body string + EventType string + Severity string + TenantID string + Title string + URL string + type CreateAssetInput struct + Criticality string + Description string + Exposure string + Name string + Scope string + Tags []string + TenantID string + Type string + type CreateRoleInput struct + Description string + Name string + Permissions []string + Slug string + TenantID *string + type CreateScanInput struct + AssetGroupID string + AssetIDs []string + Description string + Name string + Parameters map[string]any + Schedule string + TenantID string + ToolID string + type CreateTenantInput struct + Description string + Name string + OwnerID string + Slug string + type CreateUserInput struct + Email string + Name string + Password string + type CreateVulnerabilityInput struct + AssetID string + CVEID string + CVSSScore *float64 + CWEID string + Description string + Metadata map[string]string + Severity string + Source string + SourceRef string + TenantID string + Title string + type ListAssetsFilter struct + Criticality []string + Exposure []string + GroupIDs []string + Page int + PerPage int + Scope []string + Search string + SortBy string + SortOrder string + Status []string + Tags []string + TenantID string + Types []string + type ListAuditLogsFilter struct + Actions []string + DateFrom *time.Time + DateTo *time.Time + Page int + PerPage int + ResourceID string + ResourceType []string + SortBy string + SortOrder string + Status []string + TenantID string + UserIDs []string + type ListNotificationEventsFilter struct + DateFrom string + DateTo string + EventTypes []string + IntegrationID string + Page int + PerPage int + Status []string + TenantID string + type ListResult struct + Items []T + Page int + PerPage int + Total int64 + TotalPages int + type ListRolesFilter struct + IncludeDefault bool + IncludeSystem bool + Page int + PerPage int + Search string + SortBy string + SortOrder string + TenantID *string + type ListScansFilter struct + Page int + PerPage int + Search string + SortBy string + SortOrder string + Status []string + TenantID string + ToolIDs []string + type ListTenantsFilter struct + Page int + PerPage int + Search string + SortBy string + SortOrder string + Status []string + type ListUsersFilter struct + Page int + PerPage int + Search string + SortBy string + SortOrder string + Status []string + type ListVulnerabilitiesFilter struct + AssetIDs []string + CVEID string + DateFrom string + DateTo string + HasFixable *bool + Page int + PerPage int + Search string + Severity []string + SortBy string + SortOrder string + Source []string + Status []string + TenantID string + type LoginInput struct + Email string + Password string + type NotificationResult struct + Error string + IntegrationID string + Success bool + type NotificationService interface + Broadcast func(ctx context.Context, input BroadcastNotificationInput) ([]NotificationResult, error) + GetEvent func(ctx context.Context, tenantID, eventID shared.ID) (*notification.Event, error) + ListEvents func(ctx context.Context, filter ListNotificationEventsFilter) (*ListResult[*notification.Event], error) + RetryEvent func(ctx context.Context, tenantID, eventID shared.ID) error + Send func(ctx context.Context, input SendNotificationInput) (*NotificationResult, error) + Test func(ctx context.Context, tenantID, integrationID shared.ID) (*NotificationResult, error) + type RefreshTokenInput struct + RefreshToken string + type RegisterInput struct + Email string + Name string + Password string + type RoleService interface + AssignToUser func(ctx context.Context, tenantID, userID, roleID shared.ID) error + Create func(ctx context.Context, input CreateRoleInput) (*role.Role, error) + Delete func(ctx context.Context, tenantID *shared.ID, roleID shared.ID) error + Get func(ctx context.Context, tenantID *shared.ID, roleID shared.ID) (*role.Role, error) + GetBySlug func(ctx context.Context, tenantID *shared.ID, slug string) (*role.Role, error) + GetPredefinedRoles func(ctx context.Context) ([]*role.Role, error) + GetUserPermissions func(ctx context.Context, tenantID, userID shared.ID) ([]string, error) + GetUserRoles func(ctx context.Context, tenantID, userID shared.ID) ([]*role.Role, error) + HasPermission func(ctx context.Context, tenantID, userID shared.ID, permission string) (bool, error) + List func(ctx context.Context, filter ListRolesFilter) (*ListResult[*role.Role], error) + RemoveFromUser func(ctx context.Context, tenantID, userID, roleID shared.ID) error + Update func(ctx context.Context, input UpdateRoleInput) (*role.Role, error) + type ScanService interface + Cancel func(ctx context.Context, tenantID, scanID shared.ID) error + Create func(ctx context.Context, input CreateScanInput) (*scan.Scan, error) + Delete func(ctx context.Context, tenantID, scanID shared.ID) error + Disable func(ctx context.Context, tenantID, scanID shared.ID) error + Enable func(ctx context.Context, tenantID, scanID shared.ID) error + Get func(ctx context.Context, tenantID, scanID shared.ID) (*scan.Scan, error) + List func(ctx context.Context, filter ListScansFilter) (*ListResult[*scan.Scan], error) + Trigger func(ctx context.Context, tenantID, scanID shared.ID) error + Update func(ctx context.Context, input UpdateScanInput) (*scan.Scan, error) + type ScanSessionService interface + GetLatestSession func(ctx context.Context, tenantID, scanID shared.ID) (*scansession.ScanSession, error) + GetSession func(ctx context.Context, tenantID, sessionID shared.ID) (*scansession.ScanSession, error) + ListSessions func(ctx context.Context, tenantID, scanID shared.ID, page, perPage int) (*ListResult[*scansession.ScanSession], error) + type SendNotificationInput struct + Body string + EventType string + IntegrationID string + Severity string + TenantID string + Title string + URL string + type ServiceContext struct + IsAdmin bool + TenantID shared.ID + UserID shared.ID + func ServiceContextFromContext(ctx context.Context) *ServiceContext + type SessionService interface + CleanupExpired func(ctx context.Context) (int64, error) + Create func(ctx context.Context, userID, tenantID shared.ID, metadata map[string]string) (*session.Session, error) + Get func(ctx context.Context, sessionID shared.ID) (*session.Session, error) + GetByUserID func(ctx context.Context, userID shared.ID) ([]*session.Session, error) + Revoke func(ctx context.Context, sessionID shared.ID) error + RevokeAll func(ctx context.Context, userID shared.ID) error + Touch func(ctx context.Context, sessionID shared.ID) error + type TenantMemberService interface + AddMember func(ctx context.Context, input AddMemberInput) error + GetMember func(ctx context.Context, tenantID, userID shared.ID) (*tenant.Membership, error) + GetMembers func(ctx context.Context, tenantID shared.ID) ([]*tenant.Membership, error) + IsMember func(ctx context.Context, tenantID, userID shared.ID) (bool, error) + RemoveMember func(ctx context.Context, tenantID, userID shared.ID) error + UpdateMemberRoles func(ctx context.Context, tenantID, userID shared.ID, roleIDs []shared.ID) error + type TenantService interface + Create func(ctx context.Context, input CreateTenantInput) (*tenant.Tenant, error) + Delete func(ctx context.Context, tenantID shared.ID) error + Get func(ctx context.Context, tenantID shared.ID) (*tenant.Tenant, error) + GetBySlug func(ctx context.Context, slug string) (*tenant.Tenant, error) + GetUserTenants func(ctx context.Context, userID shared.ID) ([]*tenant.Tenant, error) + List func(ctx context.Context, filter ListTenantsFilter) (*ListResult[*tenant.Tenant], error) + Update func(ctx context.Context, input UpdateTenantInput) (*tenant.Tenant, error) + type UpdateAssetInput struct + Criticality *string + Description *string + Exposure *string + ID string + Name *string + Scope *string + Status *string + Tags *[]string + TenantID string + type UpdateRoleInput struct + Description *string + ID string + Name *string + Permissions *[]string + TenantID *string + type UpdateScanInput struct + Description *string + Enabled *bool + ID string + Name *string + Parameters *map[string]any + Schedule *string + TenantID string + type UpdateTenantInput struct + Description *string + ID string + Name *string + type UpdateUserInput struct + Email *string + ID string + Name *string + Password *string + Status *string + type UpdateVulnerabilityInput struct + Assignee *string + ID string + Notes *string + Severity *string + Status *string + TenantID string + type UserService interface + Activate func(ctx context.Context, userID shared.ID) error + ChangePassword func(ctx context.Context, userID shared.ID, oldPassword, newPassword string) error + Create func(ctx context.Context, input CreateUserInput) (*user.User, error) + Delete func(ctx context.Context, userID shared.ID) error + Get func(ctx context.Context, userID shared.ID) (*user.User, error) + GetByEmail func(ctx context.Context, email string) (*user.User, error) + List func(ctx context.Context, filter ListUsersFilter) (*ListResult[*user.User], error) + Suspend func(ctx context.Context, userID shared.ID) error + Update func(ctx context.Context, input UpdateUserInput) (*user.User, error) + type VulnerabilityService interface + BulkUpdateStatus func(ctx context.Context, tenantID shared.ID, vulnIDs []shared.ID, status string) error + Create func(ctx context.Context, input CreateVulnerabilityInput) (*vulnerability.Vulnerability, error) + Delete func(ctx context.Context, tenantID, vulnID shared.ID) error + Get func(ctx context.Context, tenantID, vulnID shared.ID) (*vulnerability.Vulnerability, error) + GetStatsByAsset func(ctx context.Context, tenantID, assetID shared.ID) (*VulnerabilityStats, error) + GetStatsByTenant func(ctx context.Context, tenantID shared.ID) (*VulnerabilityStats, error) + List func(ctx context.Context, filter ListVulnerabilitiesFilter) (*ListResult[*vulnerability.Vulnerability], error) + Update func(ctx context.Context, input UpdateVulnerabilityInput) (*vulnerability.Vulnerability, error) + type VulnerabilityStats struct + BySeverity map[string]int64 + BySource map[string]int64 + ByStatus map[string]int64 + Total int64