models

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CanvasEventStatePending = "pending"
	CanvasEventStateRouted  = "routed"
)
View Source
const (
	CanvasNodeStateReady      = "ready"
	CanvasNodeStateProcessing = "processing"
	CanvasNodeStateError      = "error"
	CanvasNodeStatePaused     = "paused"

	NodeTypeTrigger   = "trigger"
	NodeTypeComponent = "component"
	NodeTypeBlueprint = "blueprint"
	NodeTypeWidget    = "widget"
)
View Source
const (
	CanvasNodeExecutionStatePending  = "pending"
	CanvasNodeExecutionStateStarted  = "started"
	CanvasNodeExecutionStateFinished = "finished"

	CanvasNodeExecutionResultPassed    = "passed"
	CanvasNodeExecutionResultFailed    = "failed"
	CanvasNodeExecutionResultCancelled = "cancelled"

	CanvasNodeExecutionResultReasonOk            = "ok"
	CanvasNodeExecutionResultReasonError         = "error"
	CanvasNodeExecutionResultReasonErrorResolved = "error_resolved"
)
View Source
const (
	NodeRequestTypeInvokeAction = "invoke-action"

	NodeExecutionRequestStatePending   = "pending"
	NodeExecutionRequestStateCompleted = "completed"
)
View Source
const (
	ProviderGitHub = "github"
	ProviderGoogle = "google"

	DomainTypeOrganization = "org"

	DisplayNameOwner  = "Owner"
	DisplayNameAdmin  = "Admin"
	DisplayNameViewer = "Viewer"

	RoleOrgOwner  = "org_owner"
	RoleOrgAdmin  = "org_admin"
	RoleOrgViewer = "org_viewer"

	// Role descriptions
	DescOrgOwner  = "Complete control over the organization including settings and deletion"
	DescOrgAdmin  = "Full management access to organization resources including canvases and users"
	DescOrgViewer = "Read-only access to organization resources"

	// Metadata descriptions
	MetaDescOrgOwner  = "Full control over organization settings, billing, and member management."
	MetaDescOrgAdmin  = "Can manage canvases, users, groups, and roles within the organization."
	MetaDescOrgViewer = "Read-only access to organization resources and information."
)
View Source
const (
	IntegrationStatePending = "pending"
	IntegrationStateReady   = "ready"
	IntegrationStateError   = "error"
)
View Source
const (
	IntegrationRequestTypeSync         = "sync"
	IntegrationRequestTypeInvokeAction = "invoke-action"

	IntegrationRequestStatePending   = "pending"
	IntegrationRequestStateCompleted = "completed"
)
View Source
const (
	InvitationStatePending  = "pending"
	InvitationStateAccepted = "accepted"
)
View Source
const (
	WebhookStatePending = "pending"
	WebhookStateReady   = "ready"
	WebhookStateFailed  = "failed"
)
View Source
const EmailProviderSMTP = "smtp"

Variables

View Source
var (
	ErrNameAlreadyUsed         = fmt.Errorf("name already used")
	ErrInvitationAlreadyExists = fmt.Errorf("invitation already exists")
)
View Source
var TemplateOrganizationID = uuid.Nil

Functions

func CountActiveUsersByOrganizationIDs added in v0.0.18

func CountActiveUsersByOrganizationIDs(orgIDs []string) (map[string]int64, error)

func CountCanvasEvents added in v0.6.0

func CountCanvasEvents(canvasID uuid.UUID, nodeID string) (int64, error)

func CountCanvasesByOrganizationIDs added in v0.6.0

func CountCanvasesByOrganizationIDs(orgIDs []string) (map[string]int64, error)

func CountNodeExecutions

func CountNodeExecutions(workflowID uuid.UUID, nodeID string, states []string, results []string) (int64, error)

func CountNodeQueueItems

func CountNodeQueueItems(workflowID uuid.UUID, nodeID string) (int64, error)

func CountRootCanvasEvents added in v0.6.0

func CountRootCanvasEvents(canvasID uuid.UUID) (int64, error)

func CountRunningExecutionsForNode added in v0.6.0

func CountRunningExecutionsForNode(workflowID uuid.UUID, nodeID string) (int64, error)

func CountRunningExecutionsForNodeInTransaction added in v0.6.0

func CountRunningExecutionsForNodeInTransaction(tx *gorm.DB, workflowID uuid.UUID, nodeID string) (int64, error)

func CreateNodeExecutionKVInTransaction added in v0.6.0

func CreateNodeExecutionKVInTransaction(tx *gorm.DB, workflowID uuid.UUID, nodeID string, executionID uuid.UUID, key, value string) error

func DeleteCanvasNode added in v0.6.0

func DeleteCanvasNode(tx *gorm.DB, node CanvasNode) error

func DeleteGroupMetadata

func DeleteGroupMetadata(groupName, domainType, domainID string) error

func DeleteGroupMetadataInTransaction

func DeleteGroupMetadataInTransaction(tx *gorm.DB, groupName, domainType, domainID string) error

func DeleteIntegrationSubscriptionsForNodeInTransaction added in v0.6.0

func DeleteIntegrationSubscriptionsForNodeInTransaction(tx *gorm.DB, workflowID uuid.UUID, nodeID string) error

func DeleteMetadataForOrganization

func DeleteMetadataForOrganization(tx *gorm.DB, domainType, domainID string) error

func DeleteRoleMetadata

func DeleteRoleMetadata(roleName, domainType, domainID string) error

func DeleteRoleMetadataInTransaction

func DeleteRoleMetadataInTransaction(tx *gorm.DB, roleName, domainType, domainID string) error

func FindRoleMetadataByNames

func FindRoleMetadataByNames(roleNames []string, domainType, domainID string) (map[string]*RoleMetadata, error)

func FormatDomain

func FormatDomain(domainType, domainID string) string

func GenerateNodeID added in v0.0.43

func GenerateNodeID(blockName string, nodeName string) string

func GenerateUniqueNodeID added in v0.0.43

func GenerateUniqueNodeID(node Node, reservedIDs map[string]bool) string

func GetActiveOrganizationIDs

func GetActiveOrganizationIDs() ([]string, error)

func GetInstallationID added in v0.1.0

func GetInstallationID() (string, error)

func GetInstallationIDInTransaction added in v0.1.0

func GetInstallationIDInTransaction(tx *gorm.DB) (string, error)

func HardDeleteOrganization

func HardDeleteOrganization(id string) error

func NodeTypeName added in v0.0.43

func NodeTypeName(node Node) string

func PrefixGroup

func PrefixGroup(groupName string) string

func PrefixRole

func PrefixRole(role string) string

func PrefixUser

func PrefixUser(userID string) string

func ResolveExecutionErrors added in v0.1.5

func ResolveExecutionErrors(workflowID uuid.UUID, executionIDs []uuid.UUID) error

func ResolveExecutionErrorsInTransaction added in v0.1.5

func ResolveExecutionErrorsInTransaction(tx *gorm.DB, workflowID uuid.UUID, executionIDs []uuid.UUID) error

func ResumeStateForNodeInTransaction added in v0.6.0

func ResumeStateForNodeInTransaction(tx *gorm.DB, workflowID uuid.UUID, nodeID string) (string, error)

func SaveInvitation

func SaveInvitation(invitation *OrganizationInvitation) error
func SaveInviteLink(inviteLink *OrganizationInviteLink) error

func SoftDeleteOrganization

func SoftDeleteOrganization(id string) error

func SoftDeleteOrganizationInTransaction

func SoftDeleteOrganizationInTransaction(tx *gorm.DB, id string) error

func UpsertEmailSettings added in v0.0.43

func UpsertEmailSettings(settings *EmailSettings) error

func UpsertEmailSettingsInTransaction added in v0.0.43

func UpsertEmailSettingsInTransaction(tx *gorm.DB, settings *EmailSettings) error

func UpsertGroupMetadata

func UpsertGroupMetadata(groupName, domainType, domainID, displayName, description string) error

func UpsertGroupMetadataInTransaction

func UpsertGroupMetadataInTransaction(tx *gorm.DB, groupName, domainType, domainID, displayName, description string) error

func UpsertRoleMetadata

func UpsertRoleMetadata(roleName, domainType, domainID, displayName, description string) error

func UpsertRoleMetadataInTransaction

func UpsertRoleMetadataInTransaction(tx *gorm.DB, roleName, domainType, domainID, displayName, description string) error

func ValidateDomainType

func ValidateDomainType(domainType string) error

Types

type Account

type Account struct {
	ID    uuid.UUID `gorm:"primary_key;default:uuid_generate_v4()"`
	Email string
	Name  string
}

func CreateAccount

func CreateAccount(name, email string) (*Account, error)

func CreateAccountInTransaction

func CreateAccountInTransaction(tx *gorm.DB, name, email string) (*Account, error)

func FindAccountByEmail

func FindAccountByEmail(email string) (*Account, error)

func FindAccountByID

func FindAccountByID(id string) (*Account, error)

func FindAccountByProvider

func FindAccountByProvider(provider, providerID string) (*Account, error)

func (*Account) FindAccountProviderByID

func (a *Account) FindAccountProviderByID(provider, providerID string) (*AccountProvider, error)

func (*Account) FindPendingInvitations

func (a *Account) FindPendingInvitations() ([]OrganizationInvitation, error)

func (*Account) GetAccountProvider

func (a *Account) GetAccountProvider(provider string) (*AccountProvider, error)

func (*Account) GetAccountProviders

func (a *Account) GetAccountProviders() ([]AccountProvider, error)

func (*Account) UpdateEmail

func (a *Account) UpdateEmail(newEmail string) error

func (*Account) UpdateEmailForProvider

func (a *Account) UpdateEmailForProvider(newEmail, provider, providerID string) error

type AccountPasswordAuth added in v0.0.18

type AccountPasswordAuth struct {
	ID           uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()"`
	AccountID    uuid.UUID
	PasswordHash string
	CreatedAt    time.Time
	UpdatedAt    time.Time
}

func CreateAccountPasswordAuth added in v0.0.18

func CreateAccountPasswordAuth(accountID uuid.UUID, passwordHash string) (*AccountPasswordAuth, error)

func CreateAccountPasswordAuthInTransaction added in v0.0.18

func CreateAccountPasswordAuthInTransaction(tx *gorm.DB, accountID uuid.UUID, passwordHash string) (*AccountPasswordAuth, error)

func FindAccountPasswordAuthByAccountID added in v0.0.18

func FindAccountPasswordAuthByAccountID(accountID uuid.UUID) (*AccountPasswordAuth, error)

func FindAccountPasswordAuthByAccountIDInTransaction added in v0.0.18

func FindAccountPasswordAuthByAccountIDInTransaction(tx *gorm.DB, accountID uuid.UUID) (*AccountPasswordAuth, error)

func (AccountPasswordAuth) TableName added in v0.0.18

func (AccountPasswordAuth) TableName() string

func (*AccountPasswordAuth) UpdatePasswordHash added in v0.0.18

func (a *AccountPasswordAuth) UpdatePasswordHash(passwordHash string) error

func (*AccountPasswordAuth) UpdatePasswordHashInTransaction added in v0.0.18

func (a *AccountPasswordAuth) UpdatePasswordHashInTransaction(tx *gorm.DB, passwordHash string) error

type AccountProvider

type AccountProvider struct {
	ID             uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()"`
	AccountID      uuid.UUID
	Provider       string
	ProviderID     string
	Username       string
	Email          string
	Name           string
	AvatarURL      string
	AccessToken    string
	RefreshToken   string
	TokenExpiresAt *time.Time
	CreatedAt      time.Time
	UpdatedAt      time.Time
}

type Blueprint

type Blueprint struct {
	ID             uuid.UUID
	OrganizationID uuid.UUID
	Name           string
	Description    string
	Icon           string
	Color          string
	CreatedBy      *uuid.UUID
	CreatedAt      *time.Time
	UpdatedAt      *time.Time
	Nodes          datatypes.JSONSlice[Node]
	Edges          datatypes.JSONSlice[Edge]
	Configuration  datatypes.JSONSlice[configuration.Field]
	OutputChannels datatypes.JSONSlice[BlueprintOutputChannel]
}

func FindBlueprint

func FindBlueprint(orgID, id string) (*Blueprint, error)

func FindBlueprintByName

func FindBlueprintByName(name string, orgID uuid.UUID) (*Blueprint, error)

func FindUnscopedBlueprint

func FindUnscopedBlueprint(id string) (*Blueprint, error)

func FindUnscopedBlueprintInTransaction

func FindUnscopedBlueprintInTransaction(tx *gorm.DB, id string) (*Blueprint, error)

func (*Blueprint) FindEdges

func (b *Blueprint) FindEdges(sourceID string, channel string) []Edge

func (*Blueprint) FindNode

func (b *Blueprint) FindNode(id string) (*Node, error)

func (*Blueprint) FindRootNode

func (b *Blueprint) FindRootNode() *Node

type BlueprintOutputChannel

type BlueprintOutputChannel struct {
	Name              string `json:"name"`
	NodeID            string `json:"node_id"`
	NodeOutputChannel string `json:"node_output_channel"`
}

type BlueprintRef

type BlueprintRef struct {
	ID string `json:"id"`
}

type BrowserAction

type BrowserAction struct {
	URL         string
	Method      string
	FormFields  map[string]string
	Description string
}

type Canvas added in v0.6.0

type Canvas struct {
	ID             uuid.UUID
	OrganizationID uuid.UUID
	IsTemplate     bool
	Name           string
	Description    string
	CreatedBy      *uuid.UUID
	CreatedAt      *time.Time
	UpdatedAt      *time.Time
	DeletedAt      gorm.DeletedAt `gorm:"index"`
	Nodes          datatypes.JSONSlice[Node]
	Edges          datatypes.JSONSlice[Edge]
}

func FindCanvas added in v0.6.0

func FindCanvas(orgID, id uuid.UUID) (*Canvas, error)

func FindCanvasByName added in v0.6.0

func FindCanvasByName(name string, organizationID uuid.UUID) (*Canvas, error)

func FindCanvasInTransaction added in v0.6.0

func FindCanvasInTransaction(tx *gorm.DB, orgID, id uuid.UUID) (*Canvas, error)

func FindCanvasTemplate added in v0.6.0

func FindCanvasTemplate(id uuid.UUID) (*Canvas, error)

func FindCanvasTemplateByName added in v0.6.0

func FindCanvasTemplateByName(name string) (*Canvas, error)

func FindCanvasTemplateByNameInTransaction added in v0.6.0

func FindCanvasTemplateByNameInTransaction(tx *gorm.DB, name string) (*Canvas, error)

func FindCanvasTemplateInTransaction added in v0.6.0

func FindCanvasTemplateInTransaction(tx *gorm.DB, id uuid.UUID) (*Canvas, error)

func FindCanvasWithoutOrgScope added in v0.6.0

func FindCanvasWithoutOrgScope(id uuid.UUID) (*Canvas, error)

func FindCanvasWithoutOrgScopeInTransaction added in v0.6.0

func FindCanvasWithoutOrgScopeInTransaction(tx *gorm.DB, id uuid.UUID) (*Canvas, error)

func FindUnscopedCanvas added in v0.6.0

func FindUnscopedCanvas(id uuid.UUID) (*Canvas, error)

func FindUnscopedCanvasInTransaction added in v0.6.0

func FindUnscopedCanvasInTransaction(tx *gorm.DB, id uuid.UUID) (*Canvas, error)

func ListCanvases added in v0.6.0

func ListCanvases(orgID string, includeTemplates bool) ([]Canvas, error)

func ListDeletedCanvases added in v0.6.0

func ListDeletedCanvases() ([]Canvas, error)

func LockCanvas added in v0.6.0

func LockCanvas(tx *gorm.DB, id uuid.UUID) (*Canvas, error)

func (*Canvas) FindEdges added in v0.6.0

func (c *Canvas) FindEdges(sourceID string, channel string) []Edge

func (*Canvas) FindNode added in v0.6.0

func (c *Canvas) FindNode(id string) (*CanvasNode, error)

func (*Canvas) SoftDelete added in v0.6.0

func (c *Canvas) SoftDelete() error

func (*Canvas) SoftDeleteInTransaction added in v0.6.0

func (c *Canvas) SoftDeleteInTransaction(tx *gorm.DB) error

func (*Canvas) TableName added in v0.6.0

func (c *Canvas) TableName() string

type CanvasEvent added in v0.6.0

type CanvasEvent struct {
	ID          uuid.UUID `gorm:"primaryKey;default:uuid_generate_v4()"`
	WorkflowID  uuid.UUID
	NodeID      string
	Channel     string
	CustomName  *string
	Data        datatypes.JSONType[any]
	ExecutionID *uuid.UUID
	State       string
	CreatedAt   *time.Time
}

func FindCanvasEvent added in v0.6.0

func FindCanvasEvent(id uuid.UUID) (*CanvasEvent, error)

func FindCanvasEventForCanvas added in v0.6.0

func FindCanvasEventForCanvas(canvasID uuid.UUID, id uuid.UUID) (*CanvasEvent, error)

func FindCanvasEventInTransaction added in v0.6.0

func FindCanvasEventInTransaction(tx *gorm.DB, id uuid.UUID) (*CanvasEvent, error)

func FindCanvasEvents added in v0.6.0

func FindCanvasEvents(ids []string) ([]CanvasEvent, error)

func FindCanvasEventsForExecutions added in v0.6.0

func FindCanvasEventsForExecutions(executionIDs []string) ([]CanvasEvent, error)

func FindLastEventPerNode

func FindLastEventPerNode(canvasID uuid.UUID) ([]CanvasEvent, error)

FindLastEventPerNode finds the most recent event for each node in a workflow using DISTINCT ON to get one event per node_id, ordered by created_at DESC Only returns events for nodes that have not been deleted

func ListCanvasEvents added in v0.6.0

func ListCanvasEvents(canvasID uuid.UUID, nodeID string, limit int, before *time.Time) ([]CanvasEvent, error)

func ListCanvasEventsForExecutionsInTransaction added in v0.6.0

func ListCanvasEventsForExecutionsInTransaction(tx *gorm.DB, executionIDs []uuid.UUID) ([]CanvasEvent, error)

func ListPendingCanvasEvents added in v0.6.0

func ListPendingCanvasEvents() ([]CanvasEvent, error)

func ListRootCanvasEvents added in v0.6.0

func ListRootCanvasEvents(canvasID uuid.UUID, limit int, before *time.Time) ([]CanvasEvent, error)

func LockCanvasEvent added in v0.6.0

func LockCanvasEvent(tx *gorm.DB, id uuid.UUID) (*CanvasEvent, error)

func (*CanvasEvent) Routed added in v0.6.0

func (e *CanvasEvent) Routed() error

func (*CanvasEvent) RoutedInTransaction added in v0.6.0

func (e *CanvasEvent) RoutedInTransaction(tx *gorm.DB) error

func (*CanvasEvent) TableName added in v0.6.0

func (e *CanvasEvent) TableName() string

type CanvasNode added in v0.6.0

type CanvasNode struct {
	WorkflowID        uuid.UUID `gorm:"primaryKey"`
	NodeID            string    `gorm:"primaryKey"`
	ParentNodeID      *string
	Name              string
	State             string
	StateReason       *string
	Type              string
	Position          datatypes.JSONType[Position]
	Ref               datatypes.JSONType[NodeRef]
	Configuration     datatypes.JSONType[map[string]any]
	Metadata          datatypes.JSONType[map[string]any]
	IsCollapsed       bool
	WebhookID         *uuid.UUID
	AppInstallationID *uuid.UUID
	CreatedAt         *time.Time
	UpdatedAt         *time.Time
	DeletedAt         gorm.DeletedAt `gorm:"index"`
}

func FindCanvasNode added in v0.6.0

func FindCanvasNode(tx *gorm.DB, canvasID uuid.UUID, nodeID string) (*CanvasNode, error)

func FindCanvasNodes added in v0.6.0

func FindCanvasNodes(canvasID uuid.UUID) ([]CanvasNode, error)

func FindCanvasNodesByIDs added in v0.6.0

func FindCanvasNodesByIDs(tx *gorm.DB, canvasID uuid.UUID, nodeIDs []string) ([]CanvasNode, error)

func FindCanvasNodesInTransaction added in v0.6.0

func FindCanvasNodesInTransaction(tx *gorm.DB, workflowID uuid.UUID) ([]CanvasNode, error)

func FindCanvasNodesUnscoped added in v0.6.0

func FindCanvasNodesUnscoped(workflowID uuid.UUID) ([]CanvasNode, error)

func FindCanvasNodesUnscopedInTransaction added in v0.6.0

func FindCanvasNodesUnscopedInTransaction(tx *gorm.DB, workflowID uuid.UUID) ([]CanvasNode, error)

func FindWebhookNodes

func FindWebhookNodes(webhookID uuid.UUID) ([]CanvasNode, error)

func FindWebhookNodesInTransaction

func FindWebhookNodesInTransaction(tx *gorm.DB, webhookID uuid.UUID) ([]CanvasNode, error)

func ListCanvasNodesReady added in v0.6.0

func ListCanvasNodesReady() ([]CanvasNode, error)

func ListReadyTriggers

func ListReadyTriggers() ([]CanvasNode, error)

func LockCanvasNode added in v0.6.0

func LockCanvasNode(tx *gorm.DB, workflowID uuid.UUID, nodeId string) (*CanvasNode, error)

func LockCanvasNodeForUpdate added in v0.6.0

func LockCanvasNodeForUpdate(tx *gorm.DB, workflowID uuid.UUID, nodeId string) (*CanvasNode, error)

func (*CanvasNode) CreateRequest added in v0.6.0

func (c *CanvasNode) CreateRequest(tx *gorm.DB, reqType string, spec NodeExecutionRequestSpec, runAt *time.Time) error

func (*CanvasNode) FirstQueueItem added in v0.6.0

func (c *CanvasNode) FirstQueueItem(tx *gorm.DB) (*CanvasNodeQueueItem, error)

func (*CanvasNode) TableName added in v0.6.0

func (c *CanvasNode) TableName() string

func (*CanvasNode) UpdateState added in v0.6.0

func (c *CanvasNode) UpdateState(tx *gorm.DB, state string) error

type CanvasNodeExecution added in v0.6.0

type CanvasNodeExecution struct {
	ID         uuid.UUID `gorm:"primaryKey;default:uuid_generate_v4()"`
	WorkflowID uuid.UUID
	NodeID     string
	CreatedAt  *time.Time
	UpdatedAt  *time.Time

	//
	// Reference to the root WorkflowEvent record that started
	// this whole execution chain.
	//
	// This gives us an easy way to find all the executions
	// for that event with a simple query.
	//
	RootEventID uuid.UUID

	//
	// Reference to the previous execution.
	// This is what allows us to build execution chains,
	// from any execution.
	//
	PreviousExecutionID *uuid.UUID

	//
	// Reference to the parent execution.
	// This is used for node executions inside of a blueprint node,
	// to reference the parent blueprint node execution.
	//
	ParentExecutionID *uuid.UUID

	//
	// The reference to a WorkflowEvent record,
	// which holds the input for this execution.
	//
	EventID uuid.UUID

	//
	// State management fields.
	//
	State         string
	Result        string
	ResultReason  string
	ResultMessage string
	CancelledBy   *uuid.UUID

	//
	// Components can store metadata about each execution here.
	// This allows them to control the behavior of each execution.
	//
	Metadata datatypes.JSONType[map[string]any]

	//
	// The configuration is copied from the node.
	// This enables us to allow node configuration updates
	// while executions are running.
	// Only new executions will use the new node configuration.
	//
	Configuration datatypes.JSONType[map[string]any]
}

func CreatePendingChildExecution

func CreatePendingChildExecution(tx *gorm.DB, parent *CanvasNodeExecution, childNodeID string, config map[string]any) (*CanvasNodeExecution, error)

func FindChildExecutions

func FindChildExecutions(parentExecutionID uuid.UUID, states []string) ([]CanvasNodeExecution, error)

func FindChildExecutionsForMultiple

func FindChildExecutionsForMultiple(parentExecutionIDs []string) ([]CanvasNodeExecution, error)

func FindChildExecutionsInTransaction

func FindChildExecutionsInTransaction(tx *gorm.DB, parentExecutionID uuid.UUID, states []string) ([]CanvasNodeExecution, error)

func FindLastExecutionPerNode

func FindLastExecutionPerNode(workflowID uuid.UUID) ([]CanvasNodeExecution, error)

FindLastExecutionPerNode finds the most recent execution for each node in a workflow using DISTINCT ON to get one execution per node_id, ordered by created_at DESC Only returns executions for nodes that have not been deleted

func FindNodeExecution

func FindNodeExecution(workflowID, id uuid.UUID) (*CanvasNodeExecution, error)

func FindNodeExecutionInTransaction

func FindNodeExecutionInTransaction(tx *gorm.DB, workflowID, id uuid.UUID) (*CanvasNodeExecution, error)

func FindNodeExecutionWithNodeID

func FindNodeExecutionWithNodeID(workflowID, id uuid.UUID, nodeID string) (*CanvasNodeExecution, error)

func FindNodeExecutionWithNodeIDInTransaction

func FindNodeExecutionWithNodeIDInTransaction(tx *gorm.DB, workflowID, id uuid.UUID, nodeID string) (*CanvasNodeExecution, error)

func FindNodeExecutionsByIDs added in v0.1.5

func FindNodeExecutionsByIDs(workflowID uuid.UUID, executionIDs []uuid.UUID) ([]CanvasNodeExecution, error)

func FindNodeExecutionsByIDsInTransaction added in v0.1.5

func FindNodeExecutionsByIDsInTransaction(tx *gorm.DB, workflowID uuid.UUID, executionIDs []uuid.UUID) ([]CanvasNodeExecution, error)

func FirstNodeExecutionByKVInTransaction

func FirstNodeExecutionByKVInTransaction(tx *gorm.DB, workflowID uuid.UUID, nodeID, key, value string) (*CanvasNodeExecution, error)

func ListNodeExecutions

func ListNodeExecutions(workflowID uuid.UUID, nodeID string, states []string, results []string, limit int, beforeTime *time.Time) ([]CanvasNodeExecution, error)

func ListNodeExecutionsForRootEvents added in v0.0.40

func ListNodeExecutionsForRootEvents(rootEventIDs []uuid.UUID) ([]CanvasNodeExecution, error)

func ListPendingNodeExecutions

func ListPendingNodeExecutions() ([]CanvasNodeExecution, error)

func LockCanvasNodeExecution added in v0.6.0

func LockCanvasNodeExecution(tx *gorm.DB, id uuid.UUID) (*CanvasNodeExecution, error)

func (*CanvasNodeExecution) Cancel added in v0.6.0

func (e *CanvasNodeExecution) Cancel(cancelledBy *uuid.UUID) error

func (*CanvasNodeExecution) CancelInTransaction added in v0.6.0

func (e *CanvasNodeExecution) CancelInTransaction(tx *gorm.DB, cancelledBy *uuid.UUID) error

func (*CanvasNodeExecution) CreateRequest added in v0.6.0

func (e *CanvasNodeExecution) CreateRequest(tx *gorm.DB, reqType string, spec NodeExecutionRequestSpec, runAt *time.Time) error

func (*CanvasNodeExecution) Fail added in v0.6.0

func (e *CanvasNodeExecution) Fail(reason, message string) error

func (*CanvasNodeExecution) FailInTransaction added in v0.6.0

func (e *CanvasNodeExecution) FailInTransaction(tx *gorm.DB, reason, message string) error

func (*CanvasNodeExecution) GetInput added in v0.6.0

func (e *CanvasNodeExecution) GetInput(tx *gorm.DB) (any, error)

func (*CanvasNodeExecution) GetOutputs added in v0.6.0

func (e *CanvasNodeExecution) GetOutputs() ([]CanvasEvent, error)

func (*CanvasNodeExecution) GetOutputsInTransaction added in v0.6.0

func (e *CanvasNodeExecution) GetOutputsInTransaction(tx *gorm.DB) ([]CanvasEvent, error)

func (*CanvasNodeExecution) GetParentExecutionID added in v0.6.0

func (e *CanvasNodeExecution) GetParentExecutionID() string

func (*CanvasNodeExecution) GetPreviousExecutionID added in v0.6.0

func (e *CanvasNodeExecution) GetPreviousExecutionID() string

func (*CanvasNodeExecution) Pass added in v0.6.0

func (e *CanvasNodeExecution) Pass(outputs map[string][]any) ([]CanvasEvent, error)

func (*CanvasNodeExecution) PassInTransaction added in v0.6.0

func (e *CanvasNodeExecution) PassInTransaction(tx *gorm.DB, channelOutputs map[string][]any) ([]CanvasEvent, error)

func (*CanvasNodeExecution) Start added in v0.6.0

func (e *CanvasNodeExecution) Start() error

func (*CanvasNodeExecution) StartInTransaction added in v0.6.0

func (e *CanvasNodeExecution) StartInTransaction(tx *gorm.DB) error

func (*CanvasNodeExecution) TableName added in v0.6.0

func (e *CanvasNodeExecution) TableName() string

type CanvasNodeExecutionKV added in v0.6.0

type CanvasNodeExecutionKV struct {
	ID          uuid.UUID `gorm:"type:uuid;primaryKey;default:gen_random_uuid()"`
	WorkflowID  uuid.UUID `gorm:"type:uuid;not null"`
	NodeID      string    `gorm:"type:varchar(128);not null"`
	ExecutionID uuid.UUID `gorm:"type:uuid;not null"`
	Key         string    `gorm:"type:text;not null"`
	Value       string    `gorm:"type:text;not null"`
	CreatedAt   *time.Time
}

func (*CanvasNodeExecutionKV) TableName added in v0.6.0

func (c *CanvasNodeExecutionKV) TableName() string

type CanvasNodeQueueItem added in v0.6.0

type CanvasNodeQueueItem struct {
	ID         uuid.UUID `gorm:"primaryKey;default:uuid_generate_v4()"`
	WorkflowID uuid.UUID
	NodeID     string
	CreatedAt  *time.Time

	//
	// Reference to the root WorkflowEvent record that started
	// this whole execution chain.
	//
	// This gives us an easy way to find all the queue items
	// for that event with a simple query.
	//
	RootEventID uuid.UUID
	RootEvent   *CanvasEvent `gorm:"foreignKey:RootEventID"`

	//
	// The reference to a CanvasEvent record,
	// which holds the input for this queue item.
	//
	EventID uuid.UUID
}

func FindNextQueueItemPerNode

func FindNextQueueItemPerNode(workflowID uuid.UUID) ([]CanvasNodeQueueItem, error)

FindNextQueueItemPerNode finds the next (oldest) queue item for each node in a workflow using DISTINCT ON to get one queue item per node_id, ordered by created_at ASC Only returns queue items for nodes that have not been deleted

func FindNodeQueueItem

func FindNodeQueueItem(workflowID uuid.UUID, queueItemID uuid.UUID) (*CanvasNodeQueueItem, error)

func ListNodeQueueItems

func ListNodeQueueItems(workflowID uuid.UUID, nodeID string, limit int, beforeTime *time.Time) ([]CanvasNodeQueueItem, error)

func (*CanvasNodeQueueItem) Delete added in v0.6.0

func (i *CanvasNodeQueueItem) Delete(tx *gorm.DB) error

func (*CanvasNodeQueueItem) TableName added in v0.6.0

func (i *CanvasNodeQueueItem) TableName() string

type CanvasNodeRequest added in v0.6.0

type CanvasNodeRequest struct {
	ID          uuid.UUID
	WorkflowID  uuid.UUID
	NodeID      string
	ExecutionID *uuid.UUID
	State       string
	Type        string
	Spec        datatypes.JSONType[NodeExecutionRequestSpec]
	RunAt       time.Time
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

func FindPendingRequestForNode

func FindPendingRequestForNode(tx *gorm.DB, workflowID uuid.UUID, nodeID string) (*CanvasNodeRequest, error)

func ListNodeRequests

func ListNodeRequests() ([]CanvasNodeRequest, error)

func LockNodeRequest

func LockNodeRequest(tx *gorm.DB, id uuid.UUID) (*CanvasNodeRequest, error)

func (*CanvasNodeRequest) Complete added in v0.6.0

func (r *CanvasNodeRequest) Complete(tx *gorm.DB) error

func (*CanvasNodeRequest) TableName added in v0.6.0

func (r *CanvasNodeRequest) TableName() string

type ComponentRef

type ComponentRef struct {
	Name string `json:"name"`
}

type Edge

type Edge struct {
	SourceID string `json:"source_id"`
	TargetID string `json:"target_id"`
	Channel  string `json:"channel"`
}

type EmailSettings added in v0.0.43

type EmailSettings struct {
	ID            uuid.UUID `gorm:"type:uuid;primary_key;default:uuid_generate_v4()"`
	Provider      string    `gorm:"type:varchar(50);uniqueIndex"`
	SMTPHost      string
	SMTPPort      int
	SMTPUsername  string
	SMTPPassword  []byte
	SMTPFromName  string
	SMTPFromEmail string
	SMTPUseTLS    bool
	CreatedAt     time.Time
	UpdatedAt     time.Time
}

func FindEmailSettings added in v0.0.43

func FindEmailSettings(provider string) (*EmailSettings, error)

func FindEmailSettingsInTransaction added in v0.0.43

func FindEmailSettingsInTransaction(tx *gorm.DB, provider string) (*EmailSettings, error)

type GroupMetadata

type GroupMetadata struct {
	ID          uuid.UUID `json:"id" gorm:"type:uuid;primary_key;default:gen_random_uuid()"`
	GroupName   string    `json:"group_name" gorm:"not null;index"`
	DomainType  string    `json:"domain_type" gorm:"not null;index"`
	DomainID    string    `json:"domain_id" gorm:"not null;index"`
	DisplayName string    `json:"display_name" gorm:"not null"`
	Description string    `json:"description"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
}

func FindGroupMetadata

func FindGroupMetadata(groupName, domainType, domainID string) (*GroupMetadata, error)

func (*GroupMetadata) BeforeCreate

func (gm *GroupMetadata) BeforeCreate(tx *gorm.DB) error

func (*GroupMetadata) Create

func (gm *GroupMetadata) Create() error

func (*GroupMetadata) CreateInTransaction

func (gm *GroupMetadata) CreateInTransaction(tx *gorm.DB) error

func (*GroupMetadata) Update

func (gm *GroupMetadata) Update() error

func (*GroupMetadata) UpdateInTransaction

func (gm *GroupMetadata) UpdateInTransaction(tx *gorm.DB) error

type InstallationMetadata added in v0.1.0

type InstallationMetadata struct {
	ID             int    `gorm:"primary_key"`
	InstallationID string `gorm:"type:varchar(64)"`
	CreatedAt      time.Time
	UpdatedAt      time.Time
}

type Integration

type Integration struct {
	ID               uuid.UUID `gorm:"primary_key;default:uuid_generate_v4()"`
	OrganizationID   uuid.UUID
	AppName          string
	InstallationName string
	State            string
	StateDescription string
	Configuration    datatypes.JSONType[map[string]any]
	Metadata         datatypes.JSONType[map[string]any]
	BrowserAction    *datatypes.JSONType[BrowserAction]
	CreatedAt        *time.Time
	UpdatedAt        *time.Time
	DeletedAt        gorm.DeletedAt `gorm:"index"`
}

func CreateIntegration

func CreateIntegration(id, orgID uuid.UUID, appName string, installationName string, config map[string]any) (*Integration, error)

func FindIntegration added in v0.6.0

func FindIntegration(orgID, integrationID uuid.UUID) (*Integration, error)

func FindIntegrationByName

func FindIntegrationByName(orgID uuid.UUID, integrationName string) (*Integration, error)

func FindMaybeDeletedIntegrationInTransaction added in v0.6.0

func FindMaybeDeletedIntegrationInTransaction(tx *gorm.DB, integrationID uuid.UUID) (*Integration, error)

func FindUnscopedIntegration added in v0.6.0

func FindUnscopedIntegration(integrationID uuid.UUID) (*Integration, error)

func FindUnscopedIntegrationInTransaction added in v0.6.0

func FindUnscopedIntegrationInTransaction(tx *gorm.DB, integrationID uuid.UUID) (*Integration, error)

func ListDeletedIntegrations added in v0.6.0

func ListDeletedIntegrations() ([]Integration, error)

func ListIntegrations

func ListIntegrations(orgID uuid.UUID) ([]Integration, error)

func LockIntegration added in v0.6.0

func LockIntegration(tx *gorm.DB, ID uuid.UUID) (*Integration, error)

func (*Integration) CreateActionRequest added in v0.6.0

func (a *Integration) CreateActionRequest(tx *gorm.DB, actionName string, parameters any, runAt *time.Time) error

func (*Integration) CreateSyncRequest added in v0.6.0

func (a *Integration) CreateSyncRequest(tx *gorm.DB, runAt *time.Time) error

func (*Integration) GetRequest added in v0.6.0

func (a *Integration) GetRequest(ID string) (*IntegrationRequest, error)

func (*Integration) ListRequests added in v0.6.0

func (a *Integration) ListRequests(reqType string) ([]IntegrationRequest, error)

func (*Integration) SoftDelete added in v0.6.0

func (a *Integration) SoftDelete() error

func (*Integration) SoftDeleteInTransaction added in v0.6.0

func (a *Integration) SoftDeleteInTransaction(tx *gorm.DB) error

func (*Integration) TableName added in v0.6.0

func (a *Integration) TableName() string

type IntegrationInvokeAction added in v0.6.0

type IntegrationInvokeAction struct {
	ActionName string `json:"action_name"`
	Parameters any    `json:"parameters"`
}

type IntegrationRequest added in v0.6.0

type IntegrationRequest struct {
	ID                uuid.UUID
	AppInstallationID uuid.UUID
	State             string
	Type              string
	Spec              datatypes.JSONType[IntegrationRequestSpec]
	RunAt             time.Time
	CreatedAt         time.Time
	UpdatedAt         time.Time
}

func FindPendingRequestForIntegration added in v0.6.0

func FindPendingRequestForIntegration(tx *gorm.DB, installationID uuid.UUID) (*IntegrationRequest, error)

func ListIntegrationRequests added in v0.6.0

func ListIntegrationRequests() ([]IntegrationRequest, error)

func LockIntegrationRequest added in v0.6.0

func LockIntegrationRequest(tx *gorm.DB, id uuid.UUID) (*IntegrationRequest, error)

func (*IntegrationRequest) Complete added in v0.6.0

func (r *IntegrationRequest) Complete(tx *gorm.DB) error

func (*IntegrationRequest) TableName added in v0.6.0

func (r *IntegrationRequest) TableName() string

type IntegrationRequestSpec added in v0.6.0

type IntegrationRequestSpec struct {
	InvokeAction *IntegrationInvokeAction `json:"invoke_action,omitempty"`
}

type IntegrationSecret added in v0.6.0

type IntegrationSecret struct {
	ID             uuid.UUID `gorm:"primary_key;default:uuid_generate_v4()"`
	OrganizationID uuid.UUID
	InstallationID uuid.UUID
	Name           string
	Value          []byte
	CreatedAt      *time.Time
	UpdatedAt      *time.Time
}

func (*IntegrationSecret) TableName added in v0.6.0

func (a *IntegrationSecret) TableName() string

type IntegrationSubscription added in v0.6.0

type IntegrationSubscription struct {
	ID             uuid.UUID `gorm:"primary_key;default:uuid_generate_v4()"`
	InstallationID uuid.UUID
	WorkflowID     uuid.UUID
	NodeID         string
	Configuration  datatypes.JSONType[any]
	CreatedAt      *time.Time
	UpdatedAt      *time.Time
}

func CreateIntegrationSubscription added in v0.6.0

func CreateIntegrationSubscription(node *CanvasNode, integration *Integration, configuration any) (*IntegrationSubscription, error)

func CreateIntegrationSubscriptionInTransaction added in v0.6.0

func CreateIntegrationSubscriptionInTransaction(tx *gorm.DB, node *CanvasNode, integration *Integration, configuration any) (*IntegrationSubscription, error)

func (*IntegrationSubscription) TableName added in v0.6.0

func (a *IntegrationSubscription) TableName() string

type InvokeAction

type InvokeAction struct {
	ActionName string         `json:"action_name"`
	Parameters map[string]any `json:"parameters"`
}

type Node

type Node struct {
	ID             string         `json:"id"`
	Name           string         `json:"name"`
	Type           string         `json:"type"`
	Ref            NodeRef        `json:"ref"`
	Configuration  map[string]any `json:"configuration"`
	Metadata       map[string]any `json:"metadata"`
	Position       Position       `json:"position"`
	IsCollapsed    bool           `json:"isCollapsed"`
	IntegrationID  *string        `json:"integrationId,omitempty"`
	ErrorMessage   *string        `json:"errorMessage,omitempty"`
	WarningMessage *string        `json:"warningMessage,omitempty"`
}

type NodeExecutionRequestSpec

type NodeExecutionRequestSpec struct {
	InvokeAction *InvokeAction `json:"invoke_action,omitempty"`
}

type NodeRef

type NodeRef struct {
	Component *ComponentRef `json:"component,omitempty"`
	Blueprint *BlueprintRef `json:"blueprint,omitempty"`
	Trigger   *TriggerRef   `json:"trigger,omitempty"`
	Widget    *WidgetRef    `json:"widget,omitempty"`
}

type NodeSubscription added in v0.0.45

type NodeSubscription struct {
	WorkflowID    uuid.UUID
	NodeID        string
	NodeType      string
	NodeRef       datatypes.JSONType[NodeRef]
	Configuration datatypes.JSONType[any]
}

func ListIntegrationSubscriptions added in v0.6.0

func ListIntegrationSubscriptions(tx *gorm.DB, installationID uuid.UUID) ([]NodeSubscription, error)

type Organization

type Organization struct {
	ID               uuid.UUID `gorm:"primary_key;default:uuid_generate_v4()"`
	Name             string    `gorm:"uniqueIndex"`
	Description      string
	AllowedProviders datatypes.JSONSlice[string]
	CreatedAt        *time.Time
	UpdatedAt        *time.Time
	DeletedAt        gorm.DeletedAt `gorm:"index"`
}

func CreateOrganization

func CreateOrganization(name, description string) (*Organization, error)

func CreateOrganizationInTransaction

func CreateOrganizationInTransaction(tx *gorm.DB, name, description string) (*Organization, error)

func FindOrganizationByID

func FindOrganizationByID(id string) (*Organization, error)

func FindOrganizationByName

func FindOrganizationByName(name string) (*Organization, error)

func FindOrganizationsForAccount

func FindOrganizationsForAccount(email string) ([]Organization, error)

func ListOrganizationsByIDs

func ListOrganizationsByIDs(ids []string) ([]Organization, error)

func (*Organization) IsProviderAllowed

func (o *Organization) IsProviderAllowed(provider string) bool

type OrganizationInvitation

type OrganizationInvitation struct {
	ID             uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()"`
	OrganizationID uuid.UUID
	Email          string
	InvitedBy      uuid.UUID
	State          string
	CreatedAt      time.Time
	UpdatedAt      time.Time
}

func CreateInvitation

func CreateInvitation(organizationID, invitedBy uuid.UUID, email, state string) (*OrganizationInvitation, error)

func CreateInvitationInTransaction

func CreateInvitationInTransaction(tx *gorm.DB, organizationID, invitedBy uuid.UUID, email, state string) (*OrganizationInvitation, error)

func FindInvitationByID

func FindInvitationByID(invitationID string) (*OrganizationInvitation, error)

func FindInvitationByIDWithState

func FindInvitationByIDWithState(invitationID string, state string) (*OrganizationInvitation, error)

func FindPendingInvitation

func FindPendingInvitation(email, organizationID string) (*OrganizationInvitation, error)

func FindPendingInvitationInTransaction

func FindPendingInvitationInTransaction(tx *gorm.DB, email, organizationID string) (*OrganizationInvitation, error)

func ListInvitationsInState

func ListInvitationsInState(organizationID string, state string) ([]OrganizationInvitation, error)

func (*OrganizationInvitation) Delete

func (i *OrganizationInvitation) Delete() error
type OrganizationInviteLink struct {
	ID             uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()"`
	OrganizationID uuid.UUID `gorm:"uniqueIndex"`
	Token          uuid.UUID `gorm:"type:uuid;uniqueIndex"`
	Enabled        bool
	CreatedAt      time.Time
	UpdatedAt      time.Time
}
func CreateInviteLink(organizationID uuid.UUID) (*OrganizationInviteLink, error)

func CreateInviteLinkInTransaction added in v0.0.43

func CreateInviteLinkInTransaction(tx *gorm.DB, organizationID uuid.UUID) (*OrganizationInviteLink, error)

func FindInviteLinkByOrganizationID added in v0.0.43

func FindInviteLinkByOrganizationID(organizationID string) (*OrganizationInviteLink, error)

func FindInviteLinkByOrganizationIDInTransaction added in v0.0.43

func FindInviteLinkByOrganizationIDInTransaction(tx *gorm.DB, organizationID string) (*OrganizationInviteLink, error)

func FindInviteLinkByToken added in v0.0.43

func FindInviteLinkByToken(token string) (*OrganizationInviteLink, error)

func FindInviteLinkByTokenInTransaction added in v0.0.43

func FindInviteLinkByTokenInTransaction(tx *gorm.DB, token string) (*OrganizationInviteLink, error)

type Position

type Position struct {
	X int `json:"x"`
	Y int `json:"y"`
}

type RoleMetadata

type RoleMetadata struct {
	ID          uuid.UUID `json:"id" gorm:"type:uuid;primary_key;default:gen_random_uuid()"`
	RoleName    string    `json:"role_name" gorm:"not null;index"`
	DomainType  string    `json:"domain_type" gorm:"not null;index"`
	DomainID    string    `json:"domain_id" gorm:"not null;index"`
	DisplayName string    `json:"display_name" gorm:"not null"`
	Description string    `json:"description"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
}

func FindRoleMetadata

func FindRoleMetadata(roleName, domainType, domainID string) (*RoleMetadata, error)

func (*RoleMetadata) BeforeCreate

func (rm *RoleMetadata) BeforeCreate(tx *gorm.DB) error

func (*RoleMetadata) Create

func (rm *RoleMetadata) Create() error

func (*RoleMetadata) CreateInTransaction

func (rm *RoleMetadata) CreateInTransaction(tx *gorm.DB) error

func (*RoleMetadata) Update

func (rm *RoleMetadata) Update() error

func (*RoleMetadata) UpdateInTransaction

func (rm *RoleMetadata) UpdateInTransaction(tx *gorm.DB) error

type Secret

type Secret struct {
	ID         uuid.UUID `gorm:"primary_key;default:uuid_generate_v4()"`
	DomainType string
	DomainID   uuid.UUID
	Name       string
	CreatedAt  *time.Time
	CreatedBy  uuid.UUID
	UpdatedAt  *time.Time
	Provider   string
	Data       []byte
}

func CreateSecret

func CreateSecret(name, provider, requesterID, domainType string, domainID uuid.UUID, data []byte) (*Secret, error)

func FindSecretByID

func FindSecretByID(domainType string, domainID uuid.UUID, id string) (*Secret, error)

func FindSecretByName

func FindSecretByName(domainType string, domainID uuid.UUID, name string) (*Secret, error)

func FindSecretByNameInTransaction

func FindSecretByNameInTransaction(tx *gorm.DB, domainType string, domainID uuid.UUID, name string) (*Secret, error)

func ListSecrets

func ListSecrets(domainType string, domainID uuid.UUID) ([]Secret, error)

func (*Secret) Delete

func (s *Secret) Delete() error

func (*Secret) UpdateData

func (s *Secret) UpdateData(data []byte) (*Secret, error)

type SecretData

type SecretData struct {
	Local map[string]string `json:"local"`
}

type TriggerRef

type TriggerRef struct {
	Name string `json:"name"`
}

type User

type User struct {
	ID             uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()"`
	OrganizationID uuid.UUID
	AccountID      uuid.UUID
	Email          string
	Name           string
	TokenHash      string
	CreatedAt      time.Time
	UpdatedAt      time.Time
	DeletedAt      gorm.DeletedAt
}

func CreateUser

func CreateUser(orgID, accountID uuid.UUID, email, name string) (*User, error)

func CreateUserInTransaction

func CreateUserInTransaction(tx *gorm.DB, orgID, accountID uuid.UUID, email, name string) (*User, error)

func FindActiveUserByEmail

func FindActiveUserByEmail(orgID, email string) (*User, error)

func FindActiveUserByID

func FindActiveUserByID(orgID, id string) (*User, error)

func FindActiveUserByIDInTransaction

func FindActiveUserByIDInTransaction(tx *gorm.DB, orgID, id string) (*User, error)

func FindActiveUserByTokenHash

func FindActiveUserByTokenHash(tokenHash string) (*User, error)

func FindAnyUserByEmail

func FindAnyUserByEmail(email string) (*User, error)

func FindMaybeDeletedUserByEmail

func FindMaybeDeletedUserByEmail(orgID, email string) (*User, error)

func FindMaybeDeletedUserByEmailInTransaction added in v0.0.43

func FindMaybeDeletedUserByEmailInTransaction(tx *gorm.DB, orgID, email string) (*User, error)

func FindMaybeDeletedUserByID

func FindMaybeDeletedUserByID(orgID, id string) (*User, error)

NOTE: this method returns soft deleted users too. Make sure you really need to use it this one, and not FindActiveUserByID instead.

func FindMaybeDeletedUsersByIDs added in v0.0.43

func FindMaybeDeletedUsersByIDs(ids []uuid.UUID) ([]User, error)

func FindUnscopedUserByID

func FindUnscopedUserByID(id string) (*User, error)

func ListActiveUsersByID added in v0.0.43

func ListActiveUsersByID(orgID string, ids []string) ([]User, error)

func ListActiveUsersByIDInTransaction added in v0.0.43

func ListActiveUsersByIDInTransaction(tx *gorm.DB, orgID string, ids []string) ([]User, error)

func (*User) Delete

func (u *User) Delete() error

func (*User) Restore

func (u *User) Restore() error

func (*User) RestoreInTransaction

func (u *User) RestoreInTransaction(tx *gorm.DB) error

func (*User) UpdateTokenHash

func (u *User) UpdateTokenHash(tokenHash string) error

type Webhook

type Webhook struct {
	ID                uuid.UUID `gorm:"primary_key;default:uuid_generate_v4()"`
	State             string
	Secret            []byte
	Configuration     datatypes.JSONType[any]
	Metadata          datatypes.JSONType[any]
	AppInstallationID *uuid.UUID
	RetryCount        int `gorm:"default:0"`
	MaxRetries        int `gorm:"default:3"`
	CreatedAt         *time.Time
	UpdatedAt         *time.Time
	DeletedAt         gorm.DeletedAt `gorm:"index"`
}

func FindWebhook

func FindWebhook(id uuid.UUID) (*Webhook, error)

func FindWebhookInTransaction

func FindWebhookInTransaction(tx *gorm.DB, id uuid.UUID) (*Webhook, error)

func ListDeletedWebhooks

func ListDeletedWebhooks() ([]Webhook, error)

func ListIntegrationWebhooks added in v0.6.0

func ListIntegrationWebhooks(tx *gorm.DB, integrationID uuid.UUID) ([]Webhook, error)

func ListPendingWebhooks

func ListPendingWebhooks() ([]Webhook, error)

func ListUnscopedIntegrationWebhooks added in v0.6.0

func ListUnscopedIntegrationWebhooks(tx *gorm.DB, integrationID uuid.UUID) ([]Webhook, error)

func LockWebhook

func LockWebhook(tx *gorm.DB, ID uuid.UUID) (*Webhook, error)

func (*Webhook) HasExceededRetries

func (w *Webhook) HasExceededRetries() bool

func (*Webhook) IncrementRetry

func (w *Webhook) IncrementRetry(tx *gorm.DB) error

func (*Webhook) MarkFailed

func (w *Webhook) MarkFailed(tx *gorm.DB) error

func (*Webhook) Ready

func (w *Webhook) Ready(tx *gorm.DB) error

func (*Webhook) ReadyWithMetadata

func (w *Webhook) ReadyWithMetadata(tx *gorm.DB, metadata any) error

type WebhookResource

type WebhookResource struct {
	Type string `json:"type"`
	ID   string `json:"id"`
	Name string `json:"name"`
}

type WidgetRef added in v0.0.18

type WidgetRef struct {
	Name string `json:"name"`
}

type WorkflowNodeReference

type WorkflowNodeReference struct {
	WorkflowID   uuid.UUID
	WorkflowName string
	NodeID       string
	NodeName     string
}

func ListIntegrationNodeReferences added in v0.6.0

func ListIntegrationNodeReferences(integrationID uuid.UUID) ([]WorkflowNodeReference, error)

Jump to

Keyboard shortcuts

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