Documentation
¶
Index ¶
- func ApplyPagination(opts port.ListOptions) (limit int, afterID *uuid.UUID, err error)
- func Connect(ctx context.Context, cfg config.DatabaseConfig) (*pgxpool.Pool, error)
- func DecodeCursor(cursor string) (uuid.UUID, error)
- func DecodeTimeCursor(cursor string) (time.Time, uuid.UUID, error)
- func EncodeCursor(id uuid.UUID) string
- func EncodeTimeCursor(t time.Time, id uuid.UUID) string
- func HealthCheck(ctx context.Context, pool *pgxpool.Pool) error
- func NormalizeLimit(limit int) int
- func RunMigrations(dbURL string, migrationsPath string) error
- func RunMigrationsDown(dbURL string, migrationsPath string) error
- type APIKeyRepo
- func (r *APIKeyRepo) Create(ctx context.Context, key *domain.APIKey) error
- func (r *APIKeyRepo) GetByHash(ctx context.Context, hash string) (*domain.APIKey, error)
- func (r *APIKeyRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.APIKey, error)
- func (r *APIKeyRepo) ListByWorkspace(ctx context.Context, workspaceID uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.APIKey], error)
- func (r *APIKeyRepo) Revoke(ctx context.Context, id uuid.UUID) error
- func (r *APIKeyRepo) TouchLastUsed(ctx context.Context, id uuid.UUID) error
- type AdapterGrantRepo
- func (r *AdapterGrantRepo) HasAdapterWorkspaceGrant(ctx context.Context, adapterID, workspaceID uuid.UUID) (bool, error)
- func (r *AdapterGrantRepo) ListAdapterWorkspaceGrants(ctx context.Context, adapterID uuid.UUID) ([]uuid.UUID, error)
- func (r *AdapterGrantRepo) ListVisibleAdaptersForWorkspace(ctx context.Context, workspaceID uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.Adapter], error)
- func (r *AdapterGrantRepo) ReplaceAdapterWorkspaceGrants(ctx context.Context, adapterID uuid.UUID, workspaceIDs []uuid.UUID) error
- type AdapterIdentityGrantRepo
- func (r *AdapterIdentityGrantRepo) HasIdentityWorkspaceGrant(ctx context.Context, identityID, workspaceID uuid.UUID) (bool, error)
- func (r *AdapterIdentityGrantRepo) ListGrantedIdentitiesForWorkspace(ctx context.Context, adapterID, workspaceID uuid.UUID) ([]*domain.AdapterIdentity, error)
- func (r *AdapterIdentityGrantRepo) ListIdentityWorkspaceGrants(ctx context.Context, identityID uuid.UUID) ([]uuid.UUID, error)
- func (r *AdapterIdentityGrantRepo) ReplaceIdentityWorkspaceGrants(ctx context.Context, identityID uuid.UUID, workspaceIDs []uuid.UUID) error
- type AdapterIdentityRepo
- func (r *AdapterIdentityRepo) Create(ctx context.Context, identity *domain.AdapterIdentity) error
- func (r *AdapterIdentityRepo) Delete(ctx context.Context, id uuid.UUID) error
- func (r *AdapterIdentityRepo) DeleteStale(ctx context.Context, adapterID uuid.UUID, keepIdentities []string) error
- func (r *AdapterIdentityRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.AdapterIdentity, error)
- func (r *AdapterIdentityRepo) GetDefault(ctx context.Context, adapterID uuid.UUID) (*domain.AdapterIdentity, error)
- func (r *AdapterIdentityRepo) ListByAdapter(ctx context.Context, adapterID uuid.UUID) ([]*domain.AdapterIdentity, error)
- func (r *AdapterIdentityRepo) SetDefault(ctx context.Context, adapterID uuid.UUID, identityID uuid.UUID) error
- func (r *AdapterIdentityRepo) Update(ctx context.Context, identity *domain.AdapterIdentity) error
- func (r *AdapterIdentityRepo) UpsertBatch(ctx context.Context, adapterID uuid.UUID, identities []*domain.AdapterIdentity) error
- type AdapterRepo
- func (r *AdapterRepo) Create(ctx context.Context, adapter *domain.Adapter) error
- func (r *AdapterRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.Adapter, error)
- func (r *AdapterRepo) ListByWorkspace(ctx context.Context, workspaceID *uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.Adapter], error)
- func (r *AdapterRepo) ListInChain(ctx context.Context, scopes []uuid.NullUUID) ([]*domain.Adapter, error)
- func (r *AdapterRepo) SoftDelete(ctx context.Context, id uuid.UUID) error
- func (r *AdapterRepo) Update(ctx context.Context, adapter *domain.Adapter) error
- type AuditRepo
- type DashboardRepo
- func (r *DashboardRepo) GetRecentEmails(ctx context.Context, p port.DashboardStatsParams, limit int) ([]port.DashboardRecentEmail, error)
- func (r *DashboardRepo) GetTimeSeries(ctx context.Context, p port.DashboardStatsParams) ([]port.DashboardTimePoint, error)
- func (r *DashboardRepo) GetTotals(ctx context.Context, p port.DashboardStatsParams) (*port.DashboardTotals, error)
- func (r *DashboardRepo) GetTotalsByAdapter(ctx context.Context, p port.DashboardStatsParams) ([]port.DashboardAdapterTotals, error)
- type EmailRepo
- func (r *EmailRepo) AddEvent(ctx context.Context, event *domain.EmailEvent) error
- func (r *EmailRepo) AddEventTx(ctx context.Context, tx pgx.Tx, event *domain.EmailEvent) error
- func (r *EmailRepo) Create(ctx context.Context, email *domain.Email) error
- func (r *EmailRepo) CreateTx(ctx context.Context, tx pgx.Tx, email *domain.Email) error
- func (r *EmailRepo) DistinctTemplateTypesForRecipient(ctx context.Context, workspaceID uuid.UUID, email string, since time.Time) ([]port.EmailHistoryType, error)
- func (r *EmailRepo) GetByProviderMessageID(ctx context.Context, providerMessageID string) (*domain.Email, error)
- func (r *EmailRepo) GetByTrackingID(ctx context.Context, trackingID string) (*domain.Email, error)
- func (r *EmailRepo) GetEvents(ctx context.Context, emailID uuid.UUID) ([]*domain.EmailEvent, error)
- func (r *EmailRepo) GetPayload(ctx context.Context, emailID uuid.UUID) (*domain.EmailPayload, error)
- func (r *EmailRepo) PurgeWorkspaceRuntime(ctx context.Context, workspaceID uuid.UUID) error
- func (r *EmailRepo) QueryByExternalID(ctx context.Context, wsID uuid.UUID, externalID string, cursor string, ...) ([]*domain.Email, string, error)
- func (r *EmailRepo) QueryByExternalIDGlobal(ctx context.Context, externalID string, cursor string, limit int) ([]*domain.Email, string, error)
- func (r *EmailRepo) QueryByRecipient(ctx context.Context, wsID uuid.UUID, email string, cursor string, limit int) ([]*domain.Email, string, error)
- func (r *EmailRepo) QueryByWorkspace(ctx context.Context, wsID uuid.UUID, filters port.EmailFilters, cursor string, ...) ([]*domain.Email, string, error)
- func (r *EmailRepo) SetProviderMessageID(ctx context.Context, id uuid.UUID, providerMessageID string) error
- func (r *EmailRepo) UpdateRetry(ctx context.Context, id uuid.UUID, retryCount int, nextRetryAt *time.Time) error
- func (r *EmailRepo) UpdateStatus(ctx context.Context, id uuid.UUID, ...) error
- type GlobalConfigRepo
- type InjectorRepo
- func (r *InjectorRepo) CreateDefinition(ctx context.Context, def *domain.InjectorDefinition) error
- func (r *InjectorRepo) CreateField(ctx context.Context, field *domain.InjectorField) error
- func (r *InjectorRepo) FindDefinitionByName(ctx context.Context, name string, workspaceID *uuid.UUID) (*domain.InjectorDefinition, error)
- func (r *InjectorRepo) GetAllFieldsByDefinitions(ctx context.Context, defIDs []uuid.UUID) (map[uuid.UUID][]*domain.InjectorField, error)
- func (r *InjectorRepo) GetAllValuesByDefinitions(ctx context.Context, defIDs []uuid.UUID, chain []uuid.NullUUID) (map[uuid.UUID][]*domain.InjectorValue, error)
- func (r *InjectorRepo) GetDefinitionByID(ctx context.Context, id uuid.UUID) (*domain.InjectorDefinition, error)
- func (r *InjectorRepo) GetFieldsByDefinition(ctx context.Context, defID uuid.UUID) ([]*domain.InjectorField, error)
- func (r *InjectorRepo) GetValues(ctx context.Context, defID uuid.UUID, chain []uuid.NullUUID) ([]*domain.InjectorValue, error)
- func (r *InjectorRepo) ListDefinitionsInChain(ctx context.Context, chain []uuid.NullUUID) ([]*domain.InjectorDefinition, error)
- func (r *InjectorRepo) SetValue(ctx context.Context, val *domain.InjectorValue) error
- func (r *InjectorRepo) SoftDeleteDefinition(ctx context.Context, id uuid.UUID) error
- func (r *InjectorRepo) UpdateDefinitionSchema(ctx context.Context, currentName string, workspaceID *uuid.UUID, ...) error
- func (r *InjectorRepo) UpdateField(ctx context.Context, field *domain.InjectorField) error
- type MemberRepo
- func (r *MemberRepo) AddRole(ctx context.Context, role *domain.MemberRole) error
- func (r *MemberRepo) CountAll(ctx context.Context) (int64, error)
- func (r *MemberRepo) Create(ctx context.Context, member *domain.Member) error
- func (r *MemberRepo) GetByEmail(ctx context.Context, email string) (*domain.Member, error)
- func (r *MemberRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.Member, error)
- func (r *MemberRepo) GetByOIDCIdentity(ctx context.Context, issuer, subject string) (*domain.Member, error)
- func (r *MemberRepo) GetRoles(ctx context.Context, memberID uuid.UUID) ([]*domain.MemberRole, error)
- func (r *MemberRepo) GetRolesByMembers(ctx context.Context, memberIDs []uuid.UUID) (map[uuid.UUID][]*domain.MemberRole, error)
- func (r *MemberRepo) GetRolesInScope(ctx context.Context, memberID uuid.UUID, scopeType domain.ScopeType, ...) ([]*domain.MemberRole, error)
- func (r *MemberRepo) ListAll(ctx context.Context, opts port.ListOptions) ([]*domain.Member, string, error)
- func (r *MemberRepo) ListInScope(ctx context.Context, scopeType domain.ScopeType, scopeID *uuid.UUID, ...) ([]*domain.Member, string, error)
- func (r *MemberRepo) RemoveRole(ctx context.Context, roleID uuid.UUID) error
- func (r *MemberRepo) ReplaceRoleInScope(ctx context.Context, role *domain.MemberRole) error
- func (r *MemberRepo) RevokeAccessInScope(ctx context.Context, memberID uuid.UUID, scopeType domain.ScopeType, ...) (int64, error)
- type ProviderRateLimiter
- func (r *ProviderRateLimiter) AcquireBurst(ctx context.Context, adapterID uuid.UUID, requested int) (int, error)
- func (r *ProviderRateLimiter) SyncBucket(ctx context.Context, adapterID uuid.UUID, maxPerSecond int) error
- func (r *ProviderRateLimiter) TryAcquire(ctx context.Context, adapterID uuid.UUID) (bool, error)
- type ProvisioningStepRepo
- func (r *ProvisioningStepRepo) DeleteByAdapter(ctx context.Context, adapterID uuid.UUID) error
- func (r *ProvisioningStepRepo) InitDeprovisionSteps(ctx context.Context, adapterID uuid.UUID) error
- func (r *ProvisioningStepRepo) InitSteps(ctx context.Context, adapterID uuid.UUID) error
- func (r *ProvisioningStepRepo) ListByAdapter(ctx context.Context, adapterID uuid.UUID) ([]*domain.AdapterProvisioningStep, error)
- func (r *ProvisioningStepRepo) MarkCompleted(ctx context.Context, stepID uuid.UUID, resourceName, resourceARN *string) error
- func (r *ProvisioningStepRepo) MarkFailed(ctx context.Context, stepID uuid.UUID, errMsg string) error
- func (r *ProvisioningStepRepo) ResetFailed(ctx context.Context, adapterID uuid.UUID) error
- type SNSReplayRepo
- type SuppressionRepo
- func (r *SuppressionRepo) AddGlobal(ctx context.Context, entry *domain.SuppressionGlobal) error
- func (r *SuppressionRepo) AddWorkspace(ctx context.Context, entry *domain.SuppressionWorkspace) error
- func (r *SuppressionRepo) CheckBatch(ctx context.Context, wsID uuid.UUID, emails []string) (map[string]string, error)
- func (r *SuppressionRepo) GetActiveWorkspaceSuppression(ctx context.Context, workspaceID uuid.UUID, email string) (*domain.SuppressionWorkspace, error)
- func (r *SuppressionRepo) GetSuppressionStatuses(ctx context.Context, wsID uuid.UUID, emails []string) (map[string]port.SuppressionStatus, error)
- func (r *SuppressionRepo) IsGloballySuppressed(ctx context.Context, email string) (bool, error)
- func (r *SuppressionRepo) IsSuppressed(ctx context.Context, wsID uuid.UUID, email string) (bool, string, error)
- func (r *SuppressionRepo) IsWorkspaceSuppressed(ctx context.Context, wsID uuid.UUID, email string) (bool, error)
- func (r *SuppressionRepo) RemoveGlobal(ctx context.Context, email string, removedBy uuid.UUID, reason string) error
- func (r *SuppressionRepo) RemoveWorkspaceSuppression(ctx context.Context, workspaceID uuid.UUID, email string, removalReason string) error
- type TemplateRepo
- func (r *TemplateRepo) CloneVersion(ctx context.Context, templateID, sourceVersionID uuid.UUID, ...) (*domain.TemplateVersion, error)
- func (r *TemplateRepo) CreateTemplate(ctx context.Context, tpl *domain.Template) error
- func (r *TemplateRepo) CreateType(ctx context.Context, tt *domain.TemplateType) error
- func (r *TemplateRepo) CreateVersion(ctx context.Context, ver *domain.TemplateVersion) error
- func (r *TemplateRepo) DeleteDraftVersion(ctx context.Context, versionID uuid.UUID) error
- func (r *TemplateRepo) DeleteLocale(ctx context.Context, versionID uuid.UUID, locale string) error
- func (r *TemplateRepo) FindTypeBySlugInScope(ctx context.Context, slug string, wsID *uuid.UUID) (*domain.TemplateType, error)
- func (r *TemplateRepo) ForkTemplate(ctx context.Context, sourceTemplateID uuid.UUID, workspaceID uuid.UUID, ...) (*domain.Template, error)
- func (r *TemplateRepo) GetByTypeAndScope(ctx context.Context, typeID uuid.UUID, wsID *uuid.UUID) (*domain.Template, error)
- func (r *TemplateRepo) GetLatestVersion(ctx context.Context, templateID uuid.UUID) (*domain.TemplateVersion, error)
- func (r *TemplateRepo) GetLocale(ctx context.Context, versionID uuid.UUID, locale string) (*domain.TemplateVersionLocale, error)
- func (r *TemplateRepo) GetPublishedVersion(ctx context.Context, templateID uuid.UUID) (*domain.TemplateVersion, error)
- func (r *TemplateRepo) GetTemplateByID(ctx context.Context, id uuid.UUID) (*domain.Template, error)
- func (r *TemplateRepo) GetTypeByID(ctx context.Context, id uuid.UUID) (*domain.TemplateType, error)
- func (r *TemplateRepo) GetTypeBySlug(ctx context.Context, slug string, chain []uuid.NullUUID) (*domain.TemplateType, error)
- func (r *TemplateRepo) GetVersionByID(ctx context.Context, versionID uuid.UUID) (*domain.TemplateVersion, error)
- func (r *TemplateRepo) ListByType(ctx context.Context, typeID uuid.UUID, wsID *uuid.UUID, opts port.ListOptions) ([]*domain.Template, string, error)
- func (r *TemplateRepo) ListLocales(ctx context.Context, versionID uuid.UUID) ([]*domain.TemplateVersionLocale, error)
- func (r *TemplateRepo) ListTypes(ctx context.Context, wsID *uuid.UUID, opts port.ListOptions) ([]*domain.TemplateType, string, error)
- func (r *TemplateRepo) ListVersions(ctx context.Context, templateID uuid.UUID) ([]*domain.TemplateVersion, error)
- func (r *TemplateRepo) Publish(ctx context.Context, versionID uuid.UUID) error
- func (r *TemplateRepo) ResolveTemplate(ctx context.Context, typeID uuid.UUID, chain []uuid.NullUUID) (*domain.Template, error)
- func (r *TemplateRepo) SetDisabled(ctx context.Context, templateID uuid.UUID, wsID *uuid.UUID, disabled bool) error
- func (r *TemplateRepo) SetLocale(ctx context.Context, locale *domain.TemplateVersionLocale) error
- func (r *TemplateRepo) SoftDeleteTemplate(ctx context.Context, templateID uuid.UUID) error
- func (r *TemplateRepo) SoftDeleteType(ctx context.Context, id uuid.UUID) error
- func (r *TemplateRepo) UpdateType(ctx context.Context, tt *domain.TemplateType) error
- func (r *TemplateRepo) UpdateVersion(ctx context.Context, ver *domain.TemplateVersion) error
- type TemplateTypeSubscriptionRepo
- func (s *TemplateTypeSubscriptionRepo) BatchCheckOptOut(ctx context.Context, workspaceID, templateTypeID uuid.UUID, emails []string) (map[string]struct{}, error)
- func (s *TemplateTypeSubscriptionRepo) GetState(ctx context.Context, workspaceID, templateTypeID uuid.UUID, email string) (*domain.TemplateTypeSubscription, error)
- func (s *TemplateTypeSubscriptionRepo) ListOptOutsForRecipient(ctx context.Context, workspaceID uuid.UUID, email string) ([]*domain.TemplateTypeSubscription, error)
- func (s *TemplateTypeSubscriptionRepo) Upsert(ctx context.Context, sub *domain.TemplateTypeSubscription) error
- type TemplateTypeUsageRepo
- func (r *TemplateTypeUsageRepo) CountTypesUsingAdapter(ctx context.Context, adapterID uuid.UUID, workspaceID *uuid.UUID) (int, error)
- func (r *TemplateTypeUsageRepo) CountTypesUsingSenderIdentity(ctx context.Context, identityID uuid.UUID, workspaceID *uuid.UUID) (int, error)
- func (r *TemplateTypeUsageRepo) ListWorkspacesUsingAdapter(ctx context.Context, adapterID uuid.UUID, workspaceIDs []uuid.UUID) ([]uuid.UUID, error)
- func (r *TemplateTypeUsageRepo) ListWorkspacesUsingSenderIdentity(ctx context.Context, identityID uuid.UUID, workspaceIDs []uuid.UUID) ([]uuid.UUID, error)
- type TenantRepo
- func (r *TenantRepo) Create(ctx context.Context, tenant *domain.Tenant) error
- func (r *TenantRepo) GetByCode(ctx context.Context, code string) (*domain.Tenant, error)
- func (r *TenantRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.Tenant, error)
- func (r *TenantRepo) List(ctx context.Context, opts port.ListOptions) ([]*domain.Tenant, string, error)
- func (r *TenantRepo) Purge(ctx context.Context, id uuid.UUID) error
- func (r *TenantRepo) SoftDelete(ctx context.Context, id uuid.UUID) error
- func (r *TenantRepo) Update(ctx context.Context, tenant *domain.Tenant) error
- type WebhookRepo
- func (r *WebhookRepo) Create(ctx context.Context, wh *domain.Webhook) error
- func (r *WebhookRepo) Delete(ctx context.Context, id uuid.UUID) error
- func (r *WebhookRepo) GetActiveByWorkspace(ctx context.Context, workspaceID uuid.UUID) ([]*domain.Webhook, error)
- func (r *WebhookRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.Webhook, error)
- func (r *WebhookRepo) IncrementFailureCount(ctx context.Context, id uuid.UUID) (int, bool, error)
- func (r *WebhookRepo) ListByWorkspace(ctx context.Context, workspaceID uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.Webhook], error)
- func (r *WebhookRepo) ResetFailureCount(ctx context.Context, id uuid.UUID) error
- func (r *WebhookRepo) Update(ctx context.Context, wh *domain.Webhook) error
- type WorkspaceRepo
- func (r *WorkspaceRepo) Create(ctx context.Context, ws *domain.Workspace) error
- func (r *WorkspaceRepo) CreateLogicalPair(ctx context.Context, prod *domain.Workspace, test *domain.Workspace) error
- func (r *WorkspaceRepo) ExistsActiveByTenantCode(ctx context.Context, tenantCode string, workspaceCodes []string, ...) (map[string]bool, error)
- func (r *WorkspaceRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.Workspace, error)
- func (r *WorkspaceRepo) GetByTenantAndCode(ctx context.Context, tenantID uuid.UUID, code string, ...) (*domain.Workspace, error)
- func (r *WorkspaceRepo) GetSystemWorkspace(ctx context.Context, tenantID uuid.UUID, environment domain.Environment) (*domain.Workspace, error)
- func (r *WorkspaceRepo) GetUnsubscribeSigningKey(ctx context.Context, workspaceID uuid.UUID) ([]byte, error)
- func (r *WorkspaceRepo) ListByTenant(ctx context.Context, tenantID uuid.UUID, environment domain.Environment, ...) ([]*domain.Workspace, string, error)
- func (r *WorkspaceRepo) SoftDelete(ctx context.Context, id uuid.UUID) error
- func (r *WorkspaceRepo) SoftDeleteLogical(ctx context.Context, tenantID uuid.UUID, code string) error
- func (r *WorkspaceRepo) Update(ctx context.Context, ws *domain.Workspace) error
- func (r *WorkspaceRepo) UpdateShared(ctx context.Context, tenantID uuid.UUID, ...) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyPagination ¶
ApplyPagination validates and normalises list options. It returns the effective limit, an optional afterID decoded from the cursor, or an error if the cursor is malformed.
func DecodeCursor ¶
DecodeCursor decodes a base64 cursor string back to a UUID.
func DecodeTimeCursor ¶
DecodeTimeCursor decodes a composite cursor back to (time, UUID).
func EncodeCursor ¶
EncodeCursor encodes a UUID as a base64 cursor string.
func EncodeTimeCursor ¶
EncodeTimeCursor encodes a (time, UUID) pair as a base64 cursor for partitioned tables ordered by (created_at DESC, id DESC).
func HealthCheck ¶
HealthCheck verifies that the database connection is alive.
func NormalizeLimit ¶
NormalizeLimit clamps a requested limit to [1, maxLimit], defaulting to defaultLimit.
func RunMigrations ¶
RunMigrations applies all pending migrations from the given path.
func RunMigrationsDown ¶
RunMigrationsDown reverts all migrations from the given path.
Types ¶
type APIKeyRepo ¶
type APIKeyRepo struct {
// contains filtered or unexported fields
}
APIKeyRepo implements port.APIKeyStore using PostgreSQL.
func NewAPIKeyRepo ¶
func NewAPIKeyRepo(pool *pgxpool.Pool) *APIKeyRepo
NewAPIKeyRepo creates a new APIKeyRepo.
func (*APIKeyRepo) ListByWorkspace ¶
func (r *APIKeyRepo) ListByWorkspace(ctx context.Context, workspaceID uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.APIKey], error)
func (*APIKeyRepo) TouchLastUsed ¶
type AdapterGrantRepo ¶
type AdapterGrantRepo struct {
// contains filtered or unexported fields
}
AdapterGrantRepo implements adapter-level workspace sharing persistence.
func NewAdapterGrantRepo ¶
func NewAdapterGrantRepo(pool *pgxpool.Pool) *AdapterGrantRepo
NewAdapterGrantRepo creates a new AdapterGrantRepo.
func (*AdapterGrantRepo) HasAdapterWorkspaceGrant ¶
func (*AdapterGrantRepo) ListAdapterWorkspaceGrants ¶
func (*AdapterGrantRepo) ListVisibleAdaptersForWorkspace ¶
func (r *AdapterGrantRepo) ListVisibleAdaptersForWorkspace(ctx context.Context, workspaceID uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.Adapter], error)
ListVisibleAdaptersForWorkspace returns workspace-owned adapters plus system-owned adapters shared either through adapter grants (Gmail) or identity grants (SES/SMTP).
func (*AdapterGrantRepo) ReplaceAdapterWorkspaceGrants ¶
type AdapterIdentityGrantRepo ¶
type AdapterIdentityGrantRepo struct {
// contains filtered or unexported fields
}
AdapterIdentityGrantRepo implements SES identity-level workspace sharing persistence.
func NewAdapterIdentityGrantRepo ¶
func NewAdapterIdentityGrantRepo(pool *pgxpool.Pool) *AdapterIdentityGrantRepo
NewAdapterIdentityGrantRepo creates a new AdapterIdentityGrantRepo.
func (*AdapterIdentityGrantRepo) HasIdentityWorkspaceGrant ¶
func (*AdapterIdentityGrantRepo) ListGrantedIdentitiesForWorkspace ¶
func (r *AdapterIdentityGrantRepo) ListGrantedIdentitiesForWorkspace(ctx context.Context, adapterID, workspaceID uuid.UUID) ([]*domain.AdapterIdentity, error)
func (*AdapterIdentityGrantRepo) ListIdentityWorkspaceGrants ¶
func (*AdapterIdentityGrantRepo) ReplaceIdentityWorkspaceGrants ¶
type AdapterIdentityRepo ¶
type AdapterIdentityRepo struct {
// contains filtered or unexported fields
}
AdapterIdentityRepo implements port.AdapterIdentityStore using PostgreSQL.
func NewAdapterIdentityRepo ¶
func NewAdapterIdentityRepo(pool *pgxpool.Pool) *AdapterIdentityRepo
func (*AdapterIdentityRepo) Create ¶
func (r *AdapterIdentityRepo) Create(ctx context.Context, identity *domain.AdapterIdentity) error
func (*AdapterIdentityRepo) DeleteStale ¶
func (*AdapterIdentityRepo) GetByID ¶
func (r *AdapterIdentityRepo) GetByID(ctx context.Context, id uuid.UUID) (*domain.AdapterIdentity, error)
func (*AdapterIdentityRepo) GetDefault ¶
func (r *AdapterIdentityRepo) GetDefault(ctx context.Context, adapterID uuid.UUID) (*domain.AdapterIdentity, error)
func (*AdapterIdentityRepo) ListByAdapter ¶
func (r *AdapterIdentityRepo) ListByAdapter(ctx context.Context, adapterID uuid.UUID) ([]*domain.AdapterIdentity, error)
func (*AdapterIdentityRepo) SetDefault ¶
func (*AdapterIdentityRepo) Update ¶
func (r *AdapterIdentityRepo) Update(ctx context.Context, identity *domain.AdapterIdentity) error
func (*AdapterIdentityRepo) UpsertBatch ¶
func (r *AdapterIdentityRepo) UpsertBatch(ctx context.Context, adapterID uuid.UUID, identities []*domain.AdapterIdentity) error
type AdapterRepo ¶
type AdapterRepo struct {
// contains filtered or unexported fields
}
AdapterRepo implements port.AdapterStore using PostgreSQL.
func NewAdapterRepo ¶
func NewAdapterRepo(pool *pgxpool.Pool) *AdapterRepo
NewAdapterRepo creates a new AdapterRepo.
func (*AdapterRepo) ListByWorkspace ¶
func (r *AdapterRepo) ListByWorkspace(ctx context.Context, workspaceID *uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.Adapter], error)
func (*AdapterRepo) ListInChain ¶
func (*AdapterRepo) SoftDelete ¶
type AuditRepo ¶
type AuditRepo struct {
// contains filtered or unexported fields
}
AuditRepo implements port.AuditLogStore using PostgreSQL.
func NewAuditRepo ¶
NewAuditRepo creates a new AuditRepo.
func (*AuditRepo) Query ¶
func (r *AuditRepo) Query(ctx context.Context, filter port.AuditFilter, opts port.ListOptions) (*port.PageResult[domain.AuditLog], error)
type DashboardRepo ¶
type DashboardRepo struct {
// contains filtered or unexported fields
}
DashboardRepo implements port.DashboardStore using PostgreSQL.
func NewDashboardRepo ¶
func NewDashboardRepo(pool *pgxpool.Pool) *DashboardRepo
NewDashboardRepo creates a new DashboardRepo.
func (*DashboardRepo) GetRecentEmails ¶
func (r *DashboardRepo) GetRecentEmails(ctx context.Context, p port.DashboardStatsParams, limit int) ([]port.DashboardRecentEmail, error)
func (*DashboardRepo) GetTimeSeries ¶
func (r *DashboardRepo) GetTimeSeries(ctx context.Context, p port.DashboardStatsParams) ([]port.DashboardTimePoint, error)
func (*DashboardRepo) GetTotals ¶
func (r *DashboardRepo) GetTotals(ctx context.Context, p port.DashboardStatsParams) (*port.DashboardTotals, error)
func (*DashboardRepo) GetTotalsByAdapter ¶
func (r *DashboardRepo) GetTotalsByAdapter(ctx context.Context, p port.DashboardStatsParams) ([]port.DashboardAdapterTotals, error)
type EmailRepo ¶
type EmailRepo struct {
// contains filtered or unexported fields
}
EmailRepo implements port.EmailStore using PostgreSQL.
func NewEmailRepo ¶
NewEmailRepo creates a new EmailRepo.
func (*EmailRepo) AddEventTx ¶
func (*EmailRepo) DistinctTemplateTypesForRecipient ¶
func (r *EmailRepo) DistinctTemplateTypesForRecipient( ctx context.Context, workspaceID uuid.UUID, email string, since time.Time, ) ([]port.EmailHistoryType, error)
DistinctTemplateTypesForRecipient returns one row per distinct template_type_slug received by the recipient in the workspace on or after since, ordered by most recent first.
func (*EmailRepo) GetByProviderMessageID ¶
func (*EmailRepo) GetByTrackingID ¶
func (*EmailRepo) GetPayload ¶
func (*EmailRepo) PurgeWorkspaceRuntime ¶
func (*EmailRepo) QueryByExternalID ¶
func (*EmailRepo) QueryByExternalIDGlobal ¶
func (*EmailRepo) QueryByRecipient ¶
func (*EmailRepo) QueryByWorkspace ¶
func (*EmailRepo) SetProviderMessageID ¶
func (*EmailRepo) UpdateRetry ¶
func (*EmailRepo) UpdateStatus ¶
type GlobalConfigRepo ¶
type GlobalConfigRepo struct {
// contains filtered or unexported fields
}
GlobalConfigRepo implements port.GlobalConfigStore using PostgreSQL.
func NewGlobalConfigRepo ¶
func NewGlobalConfigRepo(pool *pgxpool.Pool) *GlobalConfigRepo
NewGlobalConfigRepo creates a new GlobalConfigRepo.
func (*GlobalConfigRepo) Get ¶
func (r *GlobalConfigRepo) Get(ctx context.Context) (*domain.GlobalConfig, error)
func (*GlobalConfigRepo) Upsert ¶
func (r *GlobalConfigRepo) Upsert(ctx context.Context, cfg *domain.GlobalConfig) error
type InjectorRepo ¶
type InjectorRepo struct {
// contains filtered or unexported fields
}
InjectorRepo implements port.InjectorStore using PostgreSQL.
func NewInjectorRepo ¶
func NewInjectorRepo(pool *pgxpool.Pool) *InjectorRepo
NewInjectorRepo creates a new InjectorRepo.
func (*InjectorRepo) CreateDefinition ¶
func (r *InjectorRepo) CreateDefinition(ctx context.Context, def *domain.InjectorDefinition) error
func (*InjectorRepo) CreateField ¶
func (r *InjectorRepo) CreateField(ctx context.Context, field *domain.InjectorField) error
func (*InjectorRepo) FindDefinitionByName ¶
func (r *InjectorRepo) FindDefinitionByName(ctx context.Context, name string, workspaceID *uuid.UUID) (*domain.InjectorDefinition, error)
func (*InjectorRepo) GetAllFieldsByDefinitions ¶
func (r *InjectorRepo) GetAllFieldsByDefinitions(ctx context.Context, defIDs []uuid.UUID) (map[uuid.UUID][]*domain.InjectorField, error)
func (*InjectorRepo) GetAllValuesByDefinitions ¶
func (*InjectorRepo) GetDefinitionByID ¶
func (r *InjectorRepo) GetDefinitionByID(ctx context.Context, id uuid.UUID) (*domain.InjectorDefinition, error)
func (*InjectorRepo) GetFieldsByDefinition ¶
func (r *InjectorRepo) GetFieldsByDefinition(ctx context.Context, defID uuid.UUID) ([]*domain.InjectorField, error)
func (*InjectorRepo) GetValues ¶
func (r *InjectorRepo) GetValues(ctx context.Context, defID uuid.UUID, chain []uuid.NullUUID) ([]*domain.InjectorValue, error)
func (*InjectorRepo) ListDefinitionsInChain ¶
func (r *InjectorRepo) ListDefinitionsInChain(ctx context.Context, chain []uuid.NullUUID) ([]*domain.InjectorDefinition, error)
func (*InjectorRepo) SetValue ¶
func (r *InjectorRepo) SetValue(ctx context.Context, val *domain.InjectorValue) error
func (*InjectorRepo) SoftDeleteDefinition ¶
func (*InjectorRepo) UpdateDefinitionSchema ¶
func (r *InjectorRepo) UpdateDefinitionSchema( ctx context.Context, currentName string, workspaceID *uuid.UUID, def *domain.InjectorDefinition, fields []*domain.InjectorField, ) error
func (*InjectorRepo) UpdateField ¶
func (r *InjectorRepo) UpdateField(ctx context.Context, field *domain.InjectorField) error
type MemberRepo ¶
type MemberRepo struct {
// contains filtered or unexported fields
}
MemberRepo implements port.MemberStore using PostgreSQL.
func NewMemberRepo ¶
func NewMemberRepo(pool *pgxpool.Pool) *MemberRepo
NewMemberRepo creates a new MemberRepo.
func (*MemberRepo) AddRole ¶
func (r *MemberRepo) AddRole(ctx context.Context, role *domain.MemberRole) error
func (*MemberRepo) GetByEmail ¶
func (*MemberRepo) GetByOIDCIdentity ¶
func (*MemberRepo) GetRoles ¶
func (r *MemberRepo) GetRoles(ctx context.Context, memberID uuid.UUID) ([]*domain.MemberRole, error)
func (*MemberRepo) GetRolesByMembers ¶
func (r *MemberRepo) GetRolesByMembers(ctx context.Context, memberIDs []uuid.UUID) (map[uuid.UUID][]*domain.MemberRole, error)
func (*MemberRepo) GetRolesInScope ¶
func (*MemberRepo) ListAll ¶
func (r *MemberRepo) ListAll(ctx context.Context, opts port.ListOptions) ([]*domain.Member, string, error)
func (*MemberRepo) ListInScope ¶
func (*MemberRepo) RemoveRole ¶
func (*MemberRepo) ReplaceRoleInScope ¶
func (r *MemberRepo) ReplaceRoleInScope(ctx context.Context, role *domain.MemberRole) error
type ProviderRateLimiter ¶
type ProviderRateLimiter struct {
// contains filtered or unexported fields
}
ProviderRateLimiter implements port.RateLimiter using PG token buckets.
func NewProviderRateLimiter ¶
func NewProviderRateLimiter(pool *pgxpool.Pool) *ProviderRateLimiter
NewProviderRateLimiter creates a new rate limiter backed by the given pool.
func (*ProviderRateLimiter) AcquireBurst ¶
func (r *ProviderRateLimiter) AcquireBurst(ctx context.Context, adapterID uuid.UUID, requested int) (int, error)
AcquireBurst atomically reserves up to requested tokens for the given adapter.
func (*ProviderRateLimiter) SyncBucket ¶
func (r *ProviderRateLimiter) SyncBucket(ctx context.Context, adapterID uuid.UUID, maxPerSecond int) error
SyncBucket creates or updates the token bucket for the given adapter.
func (*ProviderRateLimiter) TryAcquire ¶
TryAcquire atomically attempts to consume one token from the bucket for the given adapter. Returns true if a token was available, false otherwise.
type ProvisioningStepRepo ¶
type ProvisioningStepRepo struct {
// contains filtered or unexported fields
}
ProvisioningStepRepo implements port.ProvisioningStepStore using PostgreSQL.
func NewProvisioningStepRepo ¶
func NewProvisioningStepRepo(pool *pgxpool.Pool) *ProvisioningStepRepo
func (*ProvisioningStepRepo) DeleteByAdapter ¶
func (*ProvisioningStepRepo) InitDeprovisionSteps ¶
func (*ProvisioningStepRepo) ListByAdapter ¶
func (r *ProvisioningStepRepo) ListByAdapter(ctx context.Context, adapterID uuid.UUID) ([]*domain.AdapterProvisioningStep, error)
func (*ProvisioningStepRepo) MarkCompleted ¶
func (*ProvisioningStepRepo) MarkFailed ¶
func (*ProvisioningStepRepo) ResetFailed ¶
type SNSReplayRepo ¶
type SNSReplayRepo struct {
// contains filtered or unexported fields
}
SNSReplayRepo persists SNS replay keys and enforces the replay window.
func NewSNSReplayRepo ¶
func NewSNSReplayRepo(pool *pgxpool.Pool) *SNSReplayRepo
NewSNSReplayRepo creates a new SNSReplayRepo.
type SuppressionRepo ¶
type SuppressionRepo struct {
// contains filtered or unexported fields
}
SuppressionRepo implements port.SuppressionStore using PostgreSQL.
func NewSuppressionRepo ¶
func NewSuppressionRepo(pool *pgxpool.Pool) *SuppressionRepo
NewSuppressionRepo creates a new SuppressionRepo.
func (*SuppressionRepo) AddGlobal ¶
func (r *SuppressionRepo) AddGlobal(ctx context.Context, entry *domain.SuppressionGlobal) error
func (*SuppressionRepo) AddWorkspace ¶
func (r *SuppressionRepo) AddWorkspace(ctx context.Context, entry *domain.SuppressionWorkspace) error
func (*SuppressionRepo) CheckBatch ¶
func (*SuppressionRepo) GetActiveWorkspaceSuppression ¶
func (r *SuppressionRepo) GetActiveWorkspaceSuppression(ctx context.Context, workspaceID uuid.UUID, email string) (*domain.SuppressionWorkspace, error)
func (*SuppressionRepo) GetSuppressionStatuses ¶
func (r *SuppressionRepo) GetSuppressionStatuses(ctx context.Context, wsID uuid.UUID, emails []string) (map[string]port.SuppressionStatus, error)
func (*SuppressionRepo) IsGloballySuppressed ¶
func (*SuppressionRepo) IsSuppressed ¶
func (*SuppressionRepo) IsWorkspaceSuppressed ¶
func (*SuppressionRepo) RemoveGlobal ¶
func (*SuppressionRepo) RemoveWorkspaceSuppression ¶
type TemplateRepo ¶
type TemplateRepo struct {
// contains filtered or unexported fields
}
TemplateRepo implements port.TemplateStore using PostgreSQL.
func NewTemplateRepo ¶
func NewTemplateRepo(pool *pgxpool.Pool) *TemplateRepo
NewTemplateRepo creates a new TemplateRepo.
func (*TemplateRepo) CloneVersion ¶
func (r *TemplateRepo) CloneVersion( ctx context.Context, templateID, sourceVersionID uuid.UUID, createdBy *uuid.UUID, ) (*domain.TemplateVersion, error)
func (*TemplateRepo) CreateTemplate ¶
func (*TemplateRepo) CreateType ¶
func (r *TemplateRepo) CreateType(ctx context.Context, tt *domain.TemplateType) error
func (*TemplateRepo) CreateVersion ¶
func (r *TemplateRepo) CreateVersion(ctx context.Context, ver *domain.TemplateVersion) error
func (*TemplateRepo) DeleteDraftVersion ¶
func (*TemplateRepo) DeleteLocale ¶
func (*TemplateRepo) FindTypeBySlugInScope ¶
func (r *TemplateRepo) FindTypeBySlugInScope(ctx context.Context, slug string, wsID *uuid.UUID) (*domain.TemplateType, error)
func (*TemplateRepo) ForkTemplate ¶
func (*TemplateRepo) GetByTypeAndScope ¶
func (*TemplateRepo) GetLatestVersion ¶
func (r *TemplateRepo) GetLatestVersion(ctx context.Context, templateID uuid.UUID) (*domain.TemplateVersion, error)
func (*TemplateRepo) GetLocale ¶
func (r *TemplateRepo) GetLocale(ctx context.Context, versionID uuid.UUID, locale string) (*domain.TemplateVersionLocale, error)
func (*TemplateRepo) GetPublishedVersion ¶
func (r *TemplateRepo) GetPublishedVersion(ctx context.Context, templateID uuid.UUID) (*domain.TemplateVersion, error)
func (*TemplateRepo) GetTemplateByID ¶
func (*TemplateRepo) GetTypeByID ¶
func (r *TemplateRepo) GetTypeByID(ctx context.Context, id uuid.UUID) (*domain.TemplateType, error)
func (*TemplateRepo) GetTypeBySlug ¶
func (r *TemplateRepo) GetTypeBySlug(ctx context.Context, slug string, chain []uuid.NullUUID) (*domain.TemplateType, error)
func (*TemplateRepo) GetVersionByID ¶
func (r *TemplateRepo) GetVersionByID(ctx context.Context, versionID uuid.UUID) (*domain.TemplateVersion, error)
func (*TemplateRepo) ListByType ¶
func (*TemplateRepo) ListLocales ¶
func (r *TemplateRepo) ListLocales(ctx context.Context, versionID uuid.UUID) ([]*domain.TemplateVersionLocale, error)
func (*TemplateRepo) ListTypes ¶
func (r *TemplateRepo) ListTypes(ctx context.Context, wsID *uuid.UUID, opts port.ListOptions) ([]*domain.TemplateType, string, error)
func (*TemplateRepo) ListVersions ¶
func (r *TemplateRepo) ListVersions(ctx context.Context, templateID uuid.UUID) ([]*domain.TemplateVersion, error)
func (*TemplateRepo) ResolveTemplate ¶
func (*TemplateRepo) SetDisabled ¶
func (*TemplateRepo) SetLocale ¶
func (r *TemplateRepo) SetLocale(ctx context.Context, locale *domain.TemplateVersionLocale) error
func (*TemplateRepo) SoftDeleteTemplate ¶
func (*TemplateRepo) SoftDeleteType ¶
func (*TemplateRepo) UpdateType ¶
func (r *TemplateRepo) UpdateType(ctx context.Context, tt *domain.TemplateType) error
func (*TemplateRepo) UpdateVersion ¶
func (r *TemplateRepo) UpdateVersion(ctx context.Context, ver *domain.TemplateVersion) error
type TemplateTypeSubscriptionRepo ¶
type TemplateTypeSubscriptionRepo struct {
// contains filtered or unexported fields
}
TemplateTypeSubscriptionRepo is the Postgres adapter for template_type_subscriptions.
func NewTemplateTypeSubscriptionRepo ¶
func NewTemplateTypeSubscriptionRepo(db *pgxpool.Pool) *TemplateTypeSubscriptionRepo
NewTemplateTypeSubscriptionRepo returns a new TemplateTypeSubscriptionRepo backed by pool.
func (*TemplateTypeSubscriptionRepo) BatchCheckOptOut ¶
func (s *TemplateTypeSubscriptionRepo) BatchCheckOptOut( ctx context.Context, workspaceID, templateTypeID uuid.UUID, emails []string, ) (map[string]struct{}, error)
BatchCheckOptOut returns the subset of emails that have an explicit opt-out row (subscribed = false) for the given (workspaceID, templateTypeID). Emails with no row or subscribed=true are not included. An empty input returns an empty map immediately without querying the DB.
func (*TemplateTypeSubscriptionRepo) GetState ¶
func (s *TemplateTypeSubscriptionRepo) GetState( ctx context.Context, workspaceID, templateTypeID uuid.UUID, email string, ) (*domain.TemplateTypeSubscription, error)
GetState returns the subscription row for (workspaceID, templateTypeID, email), or a 404 AppError if none exists.
func (*TemplateTypeSubscriptionRepo) ListOptOutsForRecipient ¶
func (s *TemplateTypeSubscriptionRepo) ListOptOutsForRecipient( ctx context.Context, workspaceID uuid.UUID, email string, ) ([]*domain.TemplateTypeSubscription, error)
ListOptOutsForRecipient returns all subscription rows for (workspaceID, email).
func (*TemplateTypeSubscriptionRepo) Upsert ¶
func (s *TemplateTypeSubscriptionRepo) Upsert(ctx context.Context, sub *domain.TemplateTypeSubscription) error
Upsert inserts or updates the subscription state for (workspace, template_type, email).
type TemplateTypeUsageRepo ¶
type TemplateTypeUsageRepo struct {
// contains filtered or unexported fields
}
TemplateTypeUsageRepo provides lightweight usage checks for shared resource revocation.
func NewTemplateTypeUsageRepo ¶
func NewTemplateTypeUsageRepo(pool *pgxpool.Pool) *TemplateTypeUsageRepo
NewTemplateTypeUsageRepo creates a new TemplateTypeUsageRepo.
func (*TemplateTypeUsageRepo) CountTypesUsingAdapter ¶
func (*TemplateTypeUsageRepo) CountTypesUsingSenderIdentity ¶
func (*TemplateTypeUsageRepo) ListWorkspacesUsingAdapter ¶
func (r *TemplateTypeUsageRepo) ListWorkspacesUsingAdapter(ctx context.Context, adapterID uuid.UUID, workspaceIDs []uuid.UUID) ([]uuid.UUID, error)
ListWorkspacesUsingAdapter returns the subset of requested workspaces that currently have template types using the provided adapter.
func (*TemplateTypeUsageRepo) ListWorkspacesUsingSenderIdentity ¶
func (r *TemplateTypeUsageRepo) ListWorkspacesUsingSenderIdentity(ctx context.Context, identityID uuid.UUID, workspaceIDs []uuid.UUID) ([]uuid.UUID, error)
ListWorkspacesUsingSenderIdentity returns the subset of requested workspaces that currently have template types using the provided sender identity.
type TenantRepo ¶
type TenantRepo struct {
// contains filtered or unexported fields
}
TenantRepo implements port.TenantStore using PostgreSQL.
func NewTenantRepo ¶
func NewTenantRepo(pool *pgxpool.Pool) *TenantRepo
NewTenantRepo creates a new TenantRepo.
func (*TenantRepo) List ¶
func (r *TenantRepo) List(ctx context.Context, opts port.ListOptions) ([]*domain.Tenant, string, error)
func (*TenantRepo) SoftDelete ¶
type WebhookRepo ¶
type WebhookRepo struct {
// contains filtered or unexported fields
}
WebhookRepo implements port.WebhookStore using PostgreSQL.
func NewWebhookRepo ¶
func NewWebhookRepo(pool *pgxpool.Pool) *WebhookRepo
NewWebhookRepo creates a new WebhookRepo.
func (*WebhookRepo) GetActiveByWorkspace ¶
func (*WebhookRepo) IncrementFailureCount ¶
func (*WebhookRepo) ListByWorkspace ¶
func (r *WebhookRepo) ListByWorkspace(ctx context.Context, workspaceID uuid.UUID, opts port.ListOptions) (*port.PageResult[domain.Webhook], error)
func (*WebhookRepo) ResetFailureCount ¶
type WorkspaceRepo ¶
type WorkspaceRepo struct {
// contains filtered or unexported fields
}
WorkspaceRepo implements port.WorkspaceStore using PostgreSQL.
func NewWorkspaceRepo ¶
func NewWorkspaceRepo(pool *pgxpool.Pool) *WorkspaceRepo
NewWorkspaceRepo creates a new WorkspaceRepo.
func (*WorkspaceRepo) CreateLogicalPair ¶
func (*WorkspaceRepo) ExistsActiveByTenantCode ¶
func (r *WorkspaceRepo) ExistsActiveByTenantCode(ctx context.Context, tenantCode string, workspaceCodes []string, environment domain.Environment) (map[string]bool, error)
func (*WorkspaceRepo) GetByTenantAndCode ¶
func (*WorkspaceRepo) GetSystemWorkspace ¶
func (r *WorkspaceRepo) GetSystemWorkspace(ctx context.Context, tenantID uuid.UUID, environment domain.Environment) (*domain.Workspace, error)
func (*WorkspaceRepo) GetUnsubscribeSigningKey ¶
func (*WorkspaceRepo) ListByTenant ¶
func (r *WorkspaceRepo) ListByTenant(ctx context.Context, tenantID uuid.UUID, environment domain.Environment, opts port.ListOptions) ([]*domain.Workspace, string, error)
func (*WorkspaceRepo) SoftDelete ¶
func (*WorkspaceRepo) SoftDeleteLogical ¶
func (*WorkspaceRepo) UpdateShared ¶
Source Files
¶
- adapter_access_repo.go
- adapter_identity_repo.go
- adapter_repo.go
- apikey_repo.go
- audit_repo.go
- dashboard_repo.go
- db.go
- email_repo.go
- global_config_repo.go
- injector_repo.go
- member_repo.go
- pagination.go
- provisioning_step_repo.go
- rate_limiter.go
- sns_replay_repo.go
- suppression_repo.go
- template_repo.go
- template_type_subscription_repo.go
- tenant_repo.go
- webhook_repo.go
- workspace_repo.go