Documentation
¶
Index ¶
- type BulkAssignmentError
- type BulkAssignmentResult
- type BulkAssignmentsCommand
- type CreateAssignmentCommand
- type CreateWorkspaceInjectableCommand
- type InjectableUseCase
- type ListInjectablesRequest
- type ListInjectablesResult
- type SystemInjectableUseCase
- type UpdateWorkspaceInjectableCommand
- type WorkspaceInjectableUseCase
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BulkAssignmentError ¶
BulkAssignmentError represents an error for a specific key in a bulk operation.
type BulkAssignmentResult ¶
type BulkAssignmentResult struct {
Succeeded []string
Failed []BulkAssignmentError
}
BulkAssignmentResult holds the result of a bulk assignment operation.
type BulkAssignmentsCommand ¶
type BulkAssignmentsCommand struct {
Keys []string
ScopeType entity.InjectableScopeType
TenantID *string
WorkspaceID *string
}
BulkAssignmentsCommand holds the data needed for bulk scoped assignment operations.
type CreateAssignmentCommand ¶
type CreateAssignmentCommand struct {
InjectableKey string
ScopeType entity.InjectableScopeType
TenantID *string
WorkspaceID *string
}
CreateAssignmentCommand holds the data needed to create a system injectable assignment.
type CreateWorkspaceInjectableCommand ¶
type CreateWorkspaceInjectableCommand struct {
WorkspaceID string
Key string
Label string
Description string
DefaultValue string
Metadata map[string]any
}
CreateWorkspaceInjectableCommand represents the command to create a workspace injectable.
type InjectableUseCase ¶
type InjectableUseCase interface {
// GetInjectable retrieves an injectable definition by ID.
GetInjectable(ctx context.Context, id string) (*entity.InjectableDefinition, error)
// ListInjectables lists all injectable definitions for a workspace (including global, system, and provider).
ListInjectables(ctx context.Context, req *ListInjectablesRequest) (*ListInjectablesResult, error)
}
InjectableUseCase defines the input port for injectable definition operations. Note: Injectables are read-only - they are managed via database migrations/seeds.
type ListInjectablesRequest ¶
type ListInjectablesRequest struct {
WorkspaceID string // Workspace ID to list injectables for
Locale string // Locale for translations (e.g., "es", "en")
}
ListInjectablesRequest contains parameters for listing injectables.
type ListInjectablesResult ¶
type ListInjectablesResult struct {
Injectables []*entity.InjectableDefinition
Groups []port.GroupConfig
}
ListInjectablesResult contains the list of injectables and groups.
type SystemInjectableUseCase ¶
type SystemInjectableUseCase interface {
// ListAll returns all system injectors from the registry with their active state.
// If an injector exists in DB, uses is_active from DB. Otherwise, returns as is_active=false.
ListAll(ctx context.Context) ([]*entity.SystemInjectableInfo, error)
// Activate enables a system injectable globally.
// If the key doesn't exist in DB, creates it with is_active=true.
Activate(ctx context.Context, key string) error
// Deactivate disables a system injectable globally.
// If the key doesn't exist in DB, creates it with is_active=false.
Deactivate(ctx context.Context, key string) error
// ListAssignments returns all assignments for a given system injectable key.
ListAssignments(ctx context.Context, key string) ([]*entity.SystemInjectableAssignment, error)
// CreateAssignment creates a new assignment for a system injectable.
CreateAssignment(ctx context.Context, cmd CreateAssignmentCommand) (*entity.SystemInjectableAssignment, error)
// DeleteAssignment removes an assignment.
DeleteAssignment(ctx context.Context, key, assignmentID string) error
// ExcludeAssignment sets an assignment's is_active to false (exclusion).
ExcludeAssignment(ctx context.Context, key, assignmentID string) error
// IncludeAssignment sets an assignment's is_active to true (undo exclusion).
IncludeAssignment(ctx context.Context, key, assignmentID string) error
// BulkActivate activates multiple system injectables globally.
BulkActivate(ctx context.Context, keys []string) (*BulkAssignmentResult, error)
// BulkDeactivate deactivates multiple system injectables globally.
BulkDeactivate(ctx context.Context, keys []string) (*BulkAssignmentResult, error)
// BulkCreateAssignments creates scoped assignments for multiple injectable keys.
BulkCreateAssignments(ctx context.Context, cmd BulkAssignmentsCommand) (*BulkAssignmentResult, error)
// BulkDeleteAssignments deletes scoped assignments for multiple injectable keys.
BulkDeleteAssignments(ctx context.Context, cmd BulkAssignmentsCommand) (*BulkAssignmentResult, error)
}
SystemInjectableUseCase defines the input port for system injectable management operations. System injectables are code-defined injectors whose availability is controlled via database.
type UpdateWorkspaceInjectableCommand ¶
type UpdateWorkspaceInjectableCommand struct {
ID string
WorkspaceID string
Key *string
Label *string
Description *string
DefaultValue *string
Metadata map[string]any
}
UpdateWorkspaceInjectableCommand represents the command to update a workspace injectable.
type WorkspaceInjectableUseCase ¶
type WorkspaceInjectableUseCase interface {
// CreateInjectable creates a new TEXT type injectable for the workspace.
CreateInjectable(ctx context.Context, cmd CreateWorkspaceInjectableCommand) (*entity.InjectableDefinition, error)
// GetInjectable retrieves an injectable by ID (must belong to workspace).
GetInjectable(ctx context.Context, id, workspaceID string) (*entity.InjectableDefinition, error)
// ListInjectables lists all injectables owned by the workspace (excluding deleted).
ListInjectables(ctx context.Context, workspaceID string) ([]*entity.InjectableDefinition, error)
// UpdateInjectable updates a workspace-owned injectable.
UpdateInjectable(ctx context.Context, cmd UpdateWorkspaceInjectableCommand) (*entity.InjectableDefinition, error)
// DeleteInjectable soft-deletes an injectable (sets is_deleted=true).
DeleteInjectable(ctx context.Context, id, workspaceID string) error
// ActivateInjectable sets is_active=true for an injectable.
ActivateInjectable(ctx context.Context, id, workspaceID string) (*entity.InjectableDefinition, error)
// DeactivateInjectable sets is_active=false for an injectable.
DeactivateInjectable(ctx context.Context, id, workspaceID string) (*entity.InjectableDefinition, error)
}
WorkspaceInjectableUseCase defines the input port for workspace injectable operations.