Documentation
¶
Index ¶
- func IsSessionLimitError(err error) bool
- func MergeSessionConfigs(base, override *entities.WebhookSessionConfig) *entities.WebhookSessionConfig
- func RenderSessionParams(sessionConfig *entities.WebhookSessionConfig, payload map[string]interface{}) (*entities.SessionParams, error)
- func RenderTemplate(tmplStr string, payload map[string]interface{}) (string, error)
- func RenderTemplateMap(templates map[string]string, payload map[string]interface{}) (map[string]string, error)
- func SortTriggersByPriority(triggers []entities.WebhookTrigger) []entities.WebhookTrigger
- type AuthController
- type AuthInfoController
- type AuthMiddleware
- type AuthServiceForPersonalAPIKey
- type AuthStatusResponse
- type BedrockSettingsRequest
- type BedrockSettingsResponse
- type CreateMemoryRequest
- type CreateSlackBotRequest
- type CreateSubscriptionRequest
- type CreateTaskGroupRequest
- type CreateTaskRequest
- type CreateWebhookRequest
- type DeliveryRecordResponse
- type DryRunResult
- type GetOrCreatePersonalAPIKeyUseCase
- type GitHubCommit
- type GitHubCommitAuthor
- type GitHubConditionsRequest
- type GitHubConditionsResponse
- type GitHubConfigRequest
- type GitHubConfigResponse
- type GitHubIssue
- type GitHubLabel
- type GitHubLoginRequest
- type GitHubPayload
- type GitHubPullRequest
- type GitHubRef
- type GitHubRepository
- type GitHubUser
- type HealthController
- type LoginRequest
- type MCPServerRequest
- type MCPServerResponse
- type MarketplaceRequest
- type MarketplaceResponse
- type MemoryController
- func (c *MemoryController) CreateMemory(ctx echo.Context) error
- func (c *MemoryController) DeleteMemory(ctx echo.Context) error
- func (c *MemoryController) GetMemory(ctx echo.Context) error
- func (c *MemoryController) GetName() string
- func (c *MemoryController) ListMemories(ctx echo.Context) error
- func (c *MemoryController) UpdateMemory(ctx echo.Context) error
- type MemoryListResponse
- type MemoryResponse
- type NotificationController
- type NotificationHandlers
- func (h *NotificationHandlers) DeleteSubscription(c echo.Context) error
- func (h *NotificationHandlers) GetHistory(c echo.Context) error
- func (h *NotificationHandlers) GetSubscriptions(c echo.Context) error
- func (h *NotificationHandlers) Subscribe(c echo.Context) error
- func (h *NotificationHandlers) Webhook(c echo.Context) error
- type PersonalAPIKeyController
- type SendNotificationRequest
- type SessionConfigRequest
- type SessionConfigResponse
- type SessionController
- func (c *SessionController) DeleteSession(ctx echo.Context) error
- func (c *SessionController) GetName() string
- func (c *SessionController) RegisterRoutes(e *echo.Echo) error
- func (c *SessionController) RouteToSession(ctx echo.Context) error
- func (c *SessionController) SearchSessions(ctx echo.Context) error
- func (c *SessionController) StartSession(ctx echo.Context) error
- type SessionCreationParams
- type SessionCreator
- type SessionManagerProvider
- type SessionParamsResponse
- type SettingsController
- type SettingsResponse
- type ShareController
- type SlackBotController
- func (c *SlackBotController) CreateSlackBot(ctx echo.Context) error
- func (c *SlackBotController) DeleteSlackBot(ctx echo.Context) error
- func (c *SlackBotController) GetSlackBot(ctx echo.Context) error
- func (c *SlackBotController) ListSlackBots(ctx echo.Context) error
- func (c *SlackBotController) UpdateSlackBot(ctx echo.Context) error
- type SlackBotEventHandler
- type SlackBotResponse
- type SlackBotSessionConfig
- type SlackBotSessionParams
- type TaskController
- func (c *TaskController) CreateTask(ctx echo.Context) error
- func (c *TaskController) DeleteTask(ctx echo.Context) error
- func (c *TaskController) GetName() string
- func (c *TaskController) GetTask(ctx echo.Context) error
- func (c *TaskController) ListTasks(ctx echo.Context) error
- func (c *TaskController) UpdateTask(ctx echo.Context) error
- type TaskGroupController
- func (c *TaskGroupController) CreateTaskGroup(ctx echo.Context) error
- func (c *TaskGroupController) DeleteTaskGroup(ctx echo.Context) error
- func (c *TaskGroupController) GetName() string
- func (c *TaskGroupController) GetTaskGroup(ctx echo.Context) error
- func (c *TaskGroupController) ListTaskGroups(ctx echo.Context) error
- func (c *TaskGroupController) UpdateTaskGroup(ctx echo.Context) error
- type TaskGroupListResponse
- type TaskGroupResponse
- type TaskLinkRequest
- type TaskLinkResponse
- type TaskListResponse
- type TaskResponse
- type TriggerConditionsRequest
- type TriggerConditionsResponse
- type TriggerMatchedTriggerInfo
- type TriggerRequest
- type TriggerResponse
- type TriggerWebhookRequest
- type TriggerWebhookResponse
- type UpdateMemoryRequest
- type UpdateSettingsRequest
- type UpdateSlackBotRequest
- type UpdateTaskGroupRequest
- type UpdateTaskRequest
- type UpdateWebhookRequest
- type UserController
- type UserInfoResponse
- type WebhookController
- func (c *WebhookController) CreateWebhook(ctx echo.Context) error
- func (c *WebhookController) DeleteWebhook(ctx echo.Context) error
- func (c *WebhookController) GetName() string
- func (c *WebhookController) GetWebhook(ctx echo.Context) error
- func (c *WebhookController) ListWebhooks(ctx echo.Context) error
- func (c *WebhookController) RegenerateSecret(ctx echo.Context) error
- func (c *WebhookController) Repo() repositories.WebhookRepository
- func (c *WebhookController) SetBaseURL(baseURL string)
- func (c *WebhookController) UpdateWebhook(ctx echo.Context) error
- func (c *WebhookController) UserCanAccessWebhook(ctx echo.Context, webhook *entities.Webhook) bool
- type WebhookCustomController
- func (c *WebhookCustomController) BuildCustomTagsForTest(webhook *entities.Webhook, trigger *entities.WebhookTrigger) map[string]string
- func (c *WebhookCustomController) BuildDefaultMessageForTest(payload map[string]interface{}) string
- func (c *WebhookCustomController) GetName() string
- func (c *WebhookCustomController) HandleCustomWebhook(ctx echo.Context) error
- func (c *WebhookCustomController) MatchTriggersForTest(triggers []entities.WebhookTrigger, payload map[string]interface{}) *entities.WebhookTrigger
- func (c *WebhookCustomController) SessionService() *WebhookSessionService
- type WebhookGitHubController
- func (c *WebhookGitHubController) BuildDefaultInitialMessageForTest(event string, payload *GitHubPayload) string
- func (c *WebhookGitHubController) BuildGitHubTagsForTest(webhook *entities.Webhook, trigger *entities.WebhookTrigger, event string, ...) map[string]string
- func (c *WebhookGitHubController) GetName() string
- func (c *WebhookGitHubController) HandleGitHubWebhook(ctx echo.Context) error
- func (c *WebhookGitHubController) MatchTriggersForTest(triggers []entities.WebhookTrigger, event string, payload *GitHubPayload) *entities.WebhookTrigger
- func (c *WebhookGitHubController) SessionService() *WebhookSessionService
- type WebhookResponse
- type WebhookSessionService
- func (s *WebhookSessionService) CreateSessionFromWebhook(ctx echo.Context, params SessionCreationParams) (string, bool, error)
- func (s *WebhookSessionService) DryRunSessionConfig(params SessionCreationParams) (*DryRunResult, error)
- func (s *WebhookSessionService) RecordDelivery(ctx context.Context, webhookID, deliveryID string, ...)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsSessionLimitError ¶ added in v1.234.0
IsSessionLimitError checks whether an error represents a session limit being reached.
func MergeSessionConfigs ¶ added in v1.234.0
func MergeSessionConfigs(base, override *entities.WebhookSessionConfig) *entities.WebhookSessionConfig
MergeSessionConfigs merges two session configs, with override taking precedence over base.
func RenderSessionParams ¶ added in v1.234.0
func RenderSessionParams(sessionConfig *entities.WebhookSessionConfig, payload map[string]interface{}) (*entities.SessionParams, error)
RenderSessionParams renders all template fields in session params.
func RenderTemplate ¶ added in v1.234.0
RenderTemplate renders a Go template with a payload data map.
func RenderTemplateMap ¶ added in v1.234.0
func RenderTemplateMap(templates map[string]string, payload map[string]interface{}) (map[string]string, error)
RenderTemplateMap renders all template values in a map.
func SortTriggersByPriority ¶ added in v1.234.0
func SortTriggersByPriority(triggers []entities.WebhookTrigger) []entities.WebhookTrigger
SortTriggersByPriority returns a copy of triggers sorted by priority (lower number = higher priority).
Types ¶
type AuthController ¶
type AuthController struct {
// contains filtered or unexported fields
}
AuthController handles HTTP requests for authentication operations
func NewAuthController ¶
func NewAuthController( authenticateUserUC *auth.AuthenticateUserUseCase, validateAPIKeyUC *auth.ValidateAPIKeyUseCase, githubAuthenticateUC *auth.GitHubAuthenticateUseCase, validatePermissionUC *auth.ValidatePermissionUseCase, authPresenter presenters.AuthPresenter, ) *AuthController
NewAuthController creates a new AuthController
func (*AuthController) GitHubLogin ¶
func (c *AuthController) GitHubLogin(w http.ResponseWriter, r *http.Request)
GitHubLogin handles POST /auth/github
func (*AuthController) Login ¶
func (c *AuthController) Login(w http.ResponseWriter, r *http.Request)
Login handles POST /auth/login
func (*AuthController) Logout ¶
func (c *AuthController) Logout(w http.ResponseWriter, r *http.Request)
Logout handles POST /auth/logout
func (*AuthController) ValidateAPIKey ¶
func (c *AuthController) ValidateAPIKey(w http.ResponseWriter, r *http.Request)
ValidateAPIKey handles POST /auth/validate
type AuthInfoController ¶ added in v1.148.0
type AuthInfoController struct {
// contains filtered or unexported fields
}
AuthInfoController handles auth info-related HTTP requests
func NewAuthInfoController ¶ added in v1.148.0
func NewAuthInfoController(cfg *config.Config) *AuthInfoController
NewAuthInfoController creates a new AuthInfoController
func (*AuthInfoController) GetAuthStatus ¶ added in v1.148.0
func (c *AuthInfoController) GetAuthStatus(ctx echo.Context) error
GetAuthStatus returns current authentication status
type AuthMiddleware ¶
type AuthMiddleware struct {
// contains filtered or unexported fields
}
AuthMiddleware provides authentication middleware
func NewAuthMiddleware ¶
func NewAuthMiddleware( validateAPIKeyUC *auth.ValidateAPIKeyUseCase, authPresenter presenters.AuthPresenter, ) *AuthMiddleware
NewAuthMiddleware creates a new AuthMiddleware
func (*AuthMiddleware) Authenticate ¶
func (m *AuthMiddleware) Authenticate(next http.Handler) http.Handler
Authenticate is a middleware that validates API keys and sets user context
type AuthServiceForPersonalAPIKey ¶ added in v1.219.0
type AuthServiceForPersonalAPIKey interface {
LoadPersonalAPIKey(ctx context.Context, apiKey *entities.PersonalAPIKey) error
}
AuthServiceForPersonalAPIKey defines the interface for auth service methods needed by this controller
type AuthStatusResponse ¶ added in v1.148.0
type AuthStatusResponse struct {
Authenticated bool `json:"authenticated"`
AuthType string `json:"auth_type,omitempty"`
UserID string `json:"user_id,omitempty"`
Role string `json:"role,omitempty"`
Permissions []string `json:"permissions,omitempty"`
GitHubUser *auth.GitHubUserInfo `json:"github_user,omitempty"`
}
AuthStatusResponse represents the response for auth status
type BedrockSettingsRequest ¶ added in v1.148.0
type BedrockSettingsRequest struct {
Enabled bool `json:"enabled"`
Model string `json:"model,omitempty"`
AccessKeyID string `json:"access_key_id,omitempty"`
SecretAccessKey string `json:"secret_access_key,omitempty"`
RoleARN string `json:"role_arn,omitempty"`
Profile string `json:"profile,omitempty"`
}
BedrockSettingsRequest is the request body for Bedrock settings
type BedrockSettingsResponse ¶ added in v1.148.0
type BedrockSettingsResponse struct {
Enabled bool `json:"enabled"`
Model string `json:"model,omitempty"`
AccessKeyID string `json:"access_key_id,omitempty"`
SecretAccessKey string `json:"secret_access_key,omitempty"`
RoleARN string `json:"role_arn,omitempty"`
Profile string `json:"profile,omitempty"`
}
BedrockSettingsResponse is the response body for Bedrock settings
type CreateMemoryRequest ¶ added in v1.242.0
type CreateMemoryRequest struct {
Title string `json:"title"`
Content string `json:"content"`
Scope string `json:"scope"` // "user" or "team"
TeamID string `json:"team_id,omitempty"` // required when scope=="team"
Tags map[string]string `json:"tags,omitempty"`
}
CreateMemoryRequest is the JSON body for POST /memories
type CreateSlackBotRequest ¶ added in v1.261.0
type CreateSlackBotRequest struct {
Name string `json:"name"`
Scope entities.ResourceScope `json:"scope,omitempty"`
TeamID string `json:"team_id,omitempty"`
SigningSecret string `json:"signing_secret"`
BotTokenSecretName string `json:"bot_token_secret_name,omitempty"`
BotTokenSecretKey string `json:"bot_token_secret_key,omitempty"`
AllowedEventTypes []string `json:"allowed_event_types,omitempty"`
AllowedChannelNames []string `json:"allowed_channel_names,omitempty"`
SessionConfig *SlackBotSessionConfig `json:"session_config,omitempty"`
MaxSessions int `json:"max_sessions,omitempty"`
}
CreateSlackBotRequest is the request body for creating a SlackBot
type CreateSubscriptionRequest ¶
type CreateSubscriptionRequest struct {
Type string `json:"type"`
Endpoint string `json:"endpoint"`
Keys map[string]string `json:"keys,omitempty"`
}
CreateSubscriptionRequest represents the HTTP request for creating a subscription
type CreateTaskGroupRequest ¶ added in v1.246.0
type CreateTaskGroupRequest struct {
Name string `json:"name"`
Description string `json:"description,omitempty"`
Scope string `json:"scope"` // "user" or "team"
TeamID string `json:"team_id,omitempty"` // required when scope=="team"
}
CreateTaskGroupRequest is the JSON body for POST /task-groups
type CreateTaskRequest ¶ added in v1.246.0
type CreateTaskRequest struct {
Title string `json:"title"`
Description string `json:"description,omitempty"`
TaskType string `json:"task_type"` // "user" or "agent"
Scope string `json:"scope"` // "user" or "team"
TeamID string `json:"team_id,omitempty"` // required when scope=="team"
GroupID string `json:"group_id,omitempty"` // optional
SessionID string `json:"session_id,omitempty"` // optional, for agent tasks
Links []TaskLinkRequest `json:"links,omitempty"`
}
CreateTaskRequest is the JSON body for POST /tasks
type CreateWebhookRequest ¶ added in v1.155.0
type CreateWebhookRequest struct {
Name string `json:"name"`
Scope entities.ResourceScope `json:"scope,omitempty"`
TeamID string `json:"team_id,omitempty"`
Type entities.WebhookType `json:"type"`
SignatureHeader string `json:"signature_header,omitempty"`
SignatureType entities.WebhookSignatureType `json:"signature_type,omitempty"`
GitHub *GitHubConfigRequest `json:"github,omitempty"`
Triggers []TriggerRequest `json:"triggers"`
SessionConfig *SessionConfigRequest `json:"session_config,omitempty"`
MaxSessions int `json:"max_sessions,omitempty"`
}
CreateWebhookRequest represents the request body for creating a webhook
type DeliveryRecordResponse ¶ added in v1.155.0
type DeliveryRecordResponse struct {
ID string `json:"id"`
ReceivedAt string `json:"received_at"`
Status string `json:"status"`
MatchedTrigger string `json:"matched_trigger,omitempty"`
SessionID string `json:"session_id,omitempty"`
Error string `json:"error,omitempty"`
}
DeliveryRecordResponse represents a delivery record in responses
type DryRunResult ¶ added in v1.235.0
type DryRunResult struct {
InitialMessage string
Tags map[string]string
Environment map[string]string
Error string
}
DryRunResult holds the computed configuration from a dry-run test.
type GetOrCreatePersonalAPIKeyUseCase ¶ added in v1.218.0
type GetOrCreatePersonalAPIKeyUseCase interface {
Execute(ctx context.Context, userID entities.UserID) (*entities.PersonalAPIKey, error)
}
GetOrCreatePersonalAPIKeyUseCase defines the interface for personal API key use case
type GitHubCommit ¶ added in v1.155.0
type GitHubCommit struct {
ID string `json:"id"`
Message string `json:"message"`
Author *GitHubCommitAuthor `json:"author,omitempty"`
Added []string `json:"added,omitempty"`
Removed []string `json:"removed,omitempty"`
Modified []string `json:"modified,omitempty"`
}
GitHubCommit represents a GitHub commit
type GitHubCommitAuthor ¶ added in v1.155.0
type GitHubCommitAuthor struct {
Name string `json:"name"`
Email string `json:"email"`
Username string `json:"username,omitempty"`
}
GitHubCommitAuthor represents a commit author
type GitHubConditionsRequest ¶ added in v1.155.0
type GitHubConditionsRequest struct {
Events []string `json:"events,omitempty"`
Actions []string `json:"actions,omitempty"`
Branches []string `json:"branches,omitempty"`
Repositories []string `json:"repositories,omitempty"`
Labels []string `json:"labels,omitempty"`
Paths []string `json:"paths,omitempty"`
BaseBranches []string `json:"base_branches,omitempty"`
Draft *bool `json:"draft,omitempty"`
Sender []string `json:"sender,omitempty"`
}
GitHubConditionsRequest represents GitHub-specific conditions in requests
type GitHubConditionsResponse ¶ added in v1.155.0
type GitHubConditionsResponse struct {
Events []string `json:"events,omitempty"`
Actions []string `json:"actions,omitempty"`
Branches []string `json:"branches,omitempty"`
Repositories []string `json:"repositories,omitempty"`
Labels []string `json:"labels,omitempty"`
Paths []string `json:"paths,omitempty"`
BaseBranches []string `json:"base_branches,omitempty"`
Draft *bool `json:"draft,omitempty"`
Sender []string `json:"sender,omitempty"`
}
GitHubConditionsResponse represents GitHub-specific conditions in responses
type GitHubConfigRequest ¶ added in v1.155.0
type GitHubConfigRequest struct {
EnterpriseURL string `json:"enterprise_url,omitempty"`
AllowedEvents []string `json:"allowed_events,omitempty"`
AllowedRepositories []string `json:"allowed_repositories,omitempty"`
}
GitHubConfigRequest represents GitHub-specific configuration in requests
type GitHubConfigResponse ¶ added in v1.155.0
type GitHubConfigResponse struct {
EnterpriseURL string `json:"enterprise_url,omitempty"`
AllowedEvents []string `json:"allowed_events,omitempty"`
AllowedRepositories []string `json:"allowed_repositories,omitempty"`
}
GitHubConfigResponse represents GitHub-specific configuration in responses
type GitHubIssue ¶ added in v1.155.0
type GitHubIssue struct {
Number int `json:"number"`
Title string `json:"title"`
Body string `json:"body,omitempty"`
State string `json:"state"`
HTMLURL string `json:"html_url"`
User *GitHubUser `json:"user,omitempty"`
Labels []GitHubLabel `json:"labels,omitempty"`
}
GitHubIssue represents a GitHub issue
type GitHubLabel ¶ added in v1.155.0
GitHubLabel represents a GitHub label
type GitHubLoginRequest ¶
type GitHubLoginRequest struct {
Token string `json:"token"`
}
GitHubLoginRequest represents the HTTP request for GitHub login
type GitHubPayload ¶ added in v1.155.0
type GitHubPayload struct {
Action string `json:"action,omitempty"`
Ref string `json:"ref,omitempty"`
Repository *GitHubRepository `json:"repository,omitempty"`
Sender *GitHubUser `json:"sender,omitempty"`
// Pull request specific
PullRequest *GitHubPullRequest `json:"pull_request,omitempty"`
// Issue specific
Issue *GitHubIssue `json:"issue,omitempty"`
// Push specific
Commits []GitHubCommit `json:"commits,omitempty"`
HeadCommit *GitHubCommit `json:"head_commit,omitempty"`
// Raw payload for template rendering
Raw map[string]interface{} `json:"-"`
}
GitHubPayload represents relevant fields from a GitHub webhook payload
type GitHubPullRequest ¶ added in v1.155.0
type GitHubPullRequest struct {
Number int `json:"number"`
Title string `json:"title"`
Body string `json:"body,omitempty"`
State string `json:"state"`
Draft bool `json:"draft"`
HTMLURL string `json:"html_url"`
User *GitHubUser `json:"user,omitempty"`
Head *GitHubRef `json:"head,omitempty"`
Base *GitHubRef `json:"base,omitempty"`
Labels []GitHubLabel `json:"labels,omitempty"`
Merged bool `json:"merged"`
MergedAt string `json:"merged_at,omitempty"`
}
GitHubPullRequest represents a GitHub pull request
type GitHubRef ¶ added in v1.155.0
type GitHubRef struct {
Ref string `json:"ref"`
SHA string `json:"sha"`
Repo *GitHubRepository `json:"repo,omitempty"`
}
GitHubRef represents a git reference
type GitHubRepository ¶ added in v1.155.0
type GitHubRepository struct {
FullName string `json:"full_name"`
Name string `json:"name"`
Owner *GitHubUser `json:"owner,omitempty"`
DefaultBranch string `json:"default_branch,omitempty"`
HTMLURL string `json:"html_url,omitempty"`
CloneURL string `json:"clone_url,omitempty"`
}
GitHubRepository represents a GitHub repository
type GitHubUser ¶ added in v1.155.0
type GitHubUser struct {
Login string `json:"login"`
ID int64 `json:"id"`
AvatarURL string `json:"avatar_url,omitempty"`
HTMLURL string `json:"html_url,omitempty"`
}
GitHubUser represents a GitHub user
type HealthController ¶ added in v1.148.0
type HealthController struct{}
HealthController handles health check endpoints
func NewHealthController ¶ added in v1.148.0
func NewHealthController() *HealthController
NewHealthController creates a new HealthController instance
func (*HealthController) GetName ¶ added in v1.148.0
func (c *HealthController) GetName() string
GetName returns the name of this controller for logging
func (*HealthController) HealthCheck ¶ added in v1.148.0
func (c *HealthController) HealthCheck(ctx echo.Context) error
HealthCheck handles GET /health requests to check server health
type LoginRequest ¶
type LoginRequest struct {
Type string `json:"type"` // "password", "token", "api_key"
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Token string `json:"token,omitempty"`
APIKey string `json:"api_key,omitempty"`
}
LoginRequest represents the HTTP request for user login
type MCPServerRequest ¶ added in v1.148.0
type MCPServerRequest struct {
Type string `json:"type"` // "stdio", "http", "sse"
URL string `json:"url,omitempty"` // for http/sse
Command string `json:"command,omitempty"` // for stdio
Args []string `json:"args,omitempty"` // for stdio
Env map[string]string `json:"env,omitempty"` // environment variables
Headers map[string]string `json:"headers,omitempty"` // for http/sse
}
MCPServerRequest is the request body for a single MCP server
type MCPServerResponse ¶ added in v1.148.0
type MCPServerResponse struct {
Type string `json:"type"`
URL string `json:"url,omitempty"`
Command string `json:"command,omitempty"`
Args []string `json:"args,omitempty"`
EnvKeys []string `json:"env_keys,omitempty"` // only keys, not values
HeaderKeys []string `json:"header_keys,omitempty"` // only keys, not values
}
MCPServerResponse is the response body for a single MCP server
type MarketplaceRequest ¶ added in v1.148.0
type MarketplaceRequest struct {
URL string `json:"url"`
}
MarketplaceRequest is the request body for a single marketplace
type MarketplaceResponse ¶ added in v1.148.0
type MarketplaceResponse struct {
URL string `json:"url"`
}
MarketplaceResponse is the response body for a single marketplace
type MemoryController ¶ added in v1.242.0
type MemoryController struct {
// contains filtered or unexported fields
}
MemoryController handles memory entry HTTP requests
func NewMemoryController ¶ added in v1.242.0
func NewMemoryController(repo portrepos.MemoryRepository) *MemoryController
NewMemoryController creates a new MemoryController
func (*MemoryController) CreateMemory ¶ added in v1.242.0
func (c *MemoryController) CreateMemory(ctx echo.Context) error
CreateMemory handles POST /memories
func (*MemoryController) DeleteMemory ¶ added in v1.242.0
func (c *MemoryController) DeleteMemory(ctx echo.Context) error
DeleteMemory handles DELETE /memories/:memoryId
func (*MemoryController) GetMemory ¶ added in v1.242.0
func (c *MemoryController) GetMemory(ctx echo.Context) error
GetMemory handles GET /memories/:memoryId
func (*MemoryController) GetName ¶ added in v1.242.0
func (c *MemoryController) GetName() string
GetName returns the name of this controller for logging
func (*MemoryController) ListMemories ¶ added in v1.242.0
func (c *MemoryController) ListMemories(ctx echo.Context) error
ListMemories handles GET /memories Query params: scope, team_id, tag.*, q
func (*MemoryController) UpdateMemory ¶ added in v1.242.0
func (c *MemoryController) UpdateMemory(ctx echo.Context) error
UpdateMemory handles PUT /memories/:memoryId
type MemoryListResponse ¶ added in v1.242.0
type MemoryListResponse struct {
Memories []*MemoryResponse `json:"memories"`
Total int `json:"total"`
}
MemoryListResponse wraps a list of memory entries
type MemoryResponse ¶ added in v1.242.0
type MemoryResponse struct {
ID string `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Scope string `json:"scope"`
OwnerID string `json:"owner_id"`
TeamID string `json:"team_id,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
MemoryResponse is the response for a single memory entry
type NotificationController ¶
type NotificationController struct {
// contains filtered or unexported fields
}
NotificationController handles HTTP requests for notification operations
func NewNotificationController ¶
func NewNotificationController( sendNotificationUC *notification.SendNotificationUseCase, manageSubscriptionUC *notification.ManageSubscriptionUseCase, notificationPresenter presenters.NotificationPresenter, ) *NotificationController
NewNotificationController creates a new NotificationController
func (*NotificationController) CreateSubscription ¶
func (c *NotificationController) CreateSubscription(w http.ResponseWriter, r *http.Request)
CreateSubscription handles POST /subscriptions
func (*NotificationController) DeleteSubscription ¶
func (c *NotificationController) DeleteSubscription(w http.ResponseWriter, r *http.Request)
DeleteSubscription handles DELETE /subscriptions/{id}
func (*NotificationController) SendNotification ¶
func (c *NotificationController) SendNotification(w http.ResponseWriter, r *http.Request)
SendNotification handles POST /notifications
type NotificationHandlers ¶ added in v1.148.0
type NotificationHandlers struct {
// contains filtered or unexported fields
}
NotificationHandlers handles notification-related HTTP requests This is a simpler handler that uses the notification.Service directly
func NewNotificationHandlers ¶ added in v1.148.0
func NewNotificationHandlers(service *notification.Service) *NotificationHandlers
NewNotificationHandlers creates new notification handlers
func (*NotificationHandlers) DeleteSubscription ¶ added in v1.148.0
func (h *NotificationHandlers) DeleteSubscription(c echo.Context) error
DeleteSubscription handles DELETE /notification/subscribe
func (*NotificationHandlers) GetHistory ¶ added in v1.148.0
func (h *NotificationHandlers) GetHistory(c echo.Context) error
GetHistory handles GET /notifications/history
func (*NotificationHandlers) GetSubscriptions ¶ added in v1.148.0
func (h *NotificationHandlers) GetSubscriptions(c echo.Context) error
GetSubscriptions handles GET /notification/subscribe
type PersonalAPIKeyController ¶ added in v1.218.0
type PersonalAPIKeyController struct {
// contains filtered or unexported fields
}
PersonalAPIKeyController handles personal API key related requests
func NewPersonalAPIKeyController ¶ added in v1.218.0
func NewPersonalAPIKeyController( getOrCreateAPIKeyUC GetOrCreatePersonalAPIKeyUseCase, authService AuthServiceForPersonalAPIKey, ) *PersonalAPIKeyController
NewPersonalAPIKeyController creates a new PersonalAPIKeyController
func (*PersonalAPIKeyController) GetOrCreatePersonalAPIKey ¶ added in v1.218.0
func (c *PersonalAPIKeyController) GetOrCreatePersonalAPIKey(ctx echo.Context) error
GetOrCreatePersonalAPIKey handles GET /users/me/api-key and POST /users/me/api-key requests GET returns the existing API key (without revealing the key value for security) POST creates a new API key or regenerates if one already exists
type SendNotificationRequest ¶
type SendNotificationRequest struct {
Title string `json:"title"`
Body string `json:"body"`
URL *string `json:"url,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
IconURL *string `json:"icon_url,omitempty"`
}
SendNotificationRequest represents the HTTP request for sending a notification
type SessionConfigRequest ¶ added in v1.155.0
type SessionConfigRequest struct {
Environment map[string]string `json:"environment,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
InitialMessageTemplate string `json:"initial_message_template,omitempty"`
ReuseMessageTemplate string `json:"reuse_message_template,omitempty"`
Params *entities.SessionParams `json:"params,omitempty"`
ReuseSession bool `json:"reuse_session,omitempty"`
MountPayload bool `json:"mount_payload,omitempty"`
}
SessionConfigRequest represents session configuration in requests
type SessionConfigResponse ¶ added in v1.155.0
type SessionConfigResponse struct {
Environment map[string]string `json:"environment,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
InitialMessageTemplate string `json:"initial_message_template,omitempty"`
ReuseMessageTemplate string `json:"reuse_message_template,omitempty"`
Params *SessionParamsResponse `json:"params,omitempty"`
ReuseSession bool `json:"reuse_session,omitempty"`
MountPayload bool `json:"mount_payload,omitempty"`
}
SessionConfigResponse represents session configuration in responses
type SessionController ¶
type SessionController struct {
// contains filtered or unexported fields
}
SessionController handles session management endpoints
func NewSessionController ¶
func NewSessionController( sessionManagerProvider SessionManagerProvider, sessionCreator SessionCreator, ) *SessionController
NewSessionController creates a new SessionController instance
func (*SessionController) DeleteSession ¶
func (c *SessionController) DeleteSession(ctx echo.Context) error
DeleteSession handles DELETE /sessions/:sessionId requests to terminate a session
func (*SessionController) GetName ¶ added in v1.148.0
func (c *SessionController) GetName() string
GetName returns the name of this handler for logging
func (*SessionController) RegisterRoutes ¶ added in v1.148.0
func (c *SessionController) RegisterRoutes(e *echo.Echo) error
RegisterRoutes registers session management routes
func (*SessionController) RouteToSession ¶ added in v1.148.0
func (c *SessionController) RouteToSession(ctx echo.Context) error
RouteToSession routes requests to the appropriate agentapi server instance
func (*SessionController) SearchSessions ¶ added in v1.148.0
func (c *SessionController) SearchSessions(ctx echo.Context) error
SearchSessions handles GET /search requests to list and filter active sessions
func (*SessionController) StartSession ¶ added in v1.148.0
func (c *SessionController) StartSession(ctx echo.Context) error
StartSession handles POST /start requests to start a new agentapi server
type SessionCreationParams ¶ added in v1.234.0
type SessionCreationParams struct {
Webhook *entities.Webhook
Trigger *entities.WebhookTrigger
Payload map[string]interface{}
RawPayload []byte
Tags map[string]string
DefaultMessage string
MountPayload bool
}
SessionCreationParams holds all parameters needed to create a session from a webhook delivery.
type SessionCreator ¶ added in v1.148.0
type SessionCreator interface {
CreateSession(sessionID string, req entities.StartRequest, userID, userRole string, teams []string) (entities.Session, error)
DeleteSessionByID(sessionID string) error
}
SessionCreator is an interface for creating sessions
type SessionManagerProvider ¶ added in v1.148.0
type SessionManagerProvider interface {
GetSessionManager() repositories.SessionManager
}
SessionManagerProvider provides access to the session manager This allows the session manager to be swapped at runtime (e.g., for testing)
type SessionParamsResponse ¶ added in v1.155.0
type SessionParamsResponse struct {
GithubToken string `json:"github_token,omitempty"`
AgentType string `json:"agent_type,omitempty"`
Oneshot bool `json:"oneshot,omitempty"`
}
SessionParamsResponse represents session params in responses
type SettingsController ¶ added in v1.148.0
type SettingsController struct {
// contains filtered or unexported fields
}
SettingsController handles settings-related HTTP requests
func NewSettingsController ¶ added in v1.148.0
func NewSettingsController(repo repositories.SettingsRepository) *SettingsController
NewSettingsController creates new settings controller
func (*SettingsController) DeleteSettings ¶ added in v1.148.0
func (c *SettingsController) DeleteSettings(ctx echo.Context) error
DeleteSettings handles DELETE /settings/:name
func (*SettingsController) GetName ¶ added in v1.148.0
func (c *SettingsController) GetName() string
GetName returns the name of this controller for logging
func (*SettingsController) GetSettings ¶ added in v1.148.0
func (c *SettingsController) GetSettings(ctx echo.Context) error
GetSettings handles GET /settings/:name
func (*SettingsController) UpdateSettings ¶ added in v1.148.0
func (c *SettingsController) UpdateSettings(ctx echo.Context) error
UpdateSettings handles PUT /settings/:name
type SettingsResponse ¶ added in v1.148.0
type SettingsResponse struct {
Name string `json:"name"`
Bedrock *BedrockSettingsResponse `json:"bedrock,omitempty"`
MCPServers map[string]*MCPServerResponse `json:"mcp_servers,omitempty"`
Marketplaces map[string]*MarketplaceResponse `json:"marketplaces,omitempty"`
HasClaudeCodeOAuthToken bool `json:"has_claude_code_oauth_token"`
AuthMode string `json:"auth_mode,omitempty"`
EnabledPlugins []string `json:"enabled_plugins,omitempty"` // plugin@marketplace format
EnvVarKeys []string `json:"env_var_keys,omitempty"` // only keys, not values
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
SettingsResponse is the response body for settings
type ShareController ¶ added in v1.148.0
type ShareController struct {
// contains filtered or unexported fields
}
ShareController handles session sharing endpoints
func NewShareController ¶ added in v1.148.0
func NewShareController( sessionManagerProvider SessionManagerProvider, shareRepo repositories.ShareRepository, ) *ShareController
NewShareController creates a new ShareController instance
func (*ShareController) CreateShare ¶ added in v1.148.0
func (c *ShareController) CreateShare(ctx echo.Context) error
CreateShare handles POST /sessions/:sessionId/share to create a share URL
func (*ShareController) DeleteShare ¶ added in v1.148.0
func (c *ShareController) DeleteShare(ctx echo.Context) error
DeleteShare handles DELETE /sessions/:sessionId/share to revoke share
func (*ShareController) GetName ¶ added in v1.148.0
func (c *ShareController) GetName() string
GetName returns the name of this handler for logging
func (*ShareController) GetShare ¶ added in v1.148.0
func (c *ShareController) GetShare(ctx echo.Context) error
GetShare handles GET /sessions/:sessionId/share to get share status
func (*ShareController) RouteToSharedSession ¶ added in v1.148.0
func (c *ShareController) RouteToSharedSession(ctx echo.Context) error
RouteToSharedSession handles ANY /s/:shareToken/* to access shared session
type SlackBotController ¶ added in v1.261.0
type SlackBotController struct {
// contains filtered or unexported fields
}
SlackBotController handles SlackBot management API requests
func NewSlackBotController ¶ added in v1.261.0
func NewSlackBotController(repo repositories.SlackBotRepository, baseURL string, defaultSigningSecret string) *SlackBotController
NewSlackBotController creates a new SlackBotController
func (*SlackBotController) CreateSlackBot ¶ added in v1.261.0
func (c *SlackBotController) CreateSlackBot(ctx echo.Context) error
CreateSlackBot handles POST /slackbots
func (*SlackBotController) DeleteSlackBot ¶ added in v1.261.0
func (c *SlackBotController) DeleteSlackBot(ctx echo.Context) error
DeleteSlackBot handles DELETE /slackbots/:id
func (*SlackBotController) GetSlackBot ¶ added in v1.261.0
func (c *SlackBotController) GetSlackBot(ctx echo.Context) error
GetSlackBot handles GET /slackbots/:id
func (*SlackBotController) ListSlackBots ¶ added in v1.261.0
func (c *SlackBotController) ListSlackBots(ctx echo.Context) error
ListSlackBots handles GET /slackbots
func (*SlackBotController) UpdateSlackBot ¶ added in v1.261.0
func (c *SlackBotController) UpdateSlackBot(ctx echo.Context) error
UpdateSlackBot handles PUT /slackbots/:id
type SlackBotEventHandler ¶ added in v1.261.0
type SlackBotEventHandler struct {
// contains filtered or unexported fields
}
SlackBotEventHandler handles incoming Slack events and manages sessions
func NewSlackBotEventHandler ¶ added in v1.261.0
func NewSlackBotEventHandler( repo repositories.SlackBotRepository, sessionManager repositories.SessionManager, defaultSigningSecret string, defaultBotTokenSecretName string, defaultBotTokenSecretKey string, channelResolver *services.SlackChannelResolver, baseURL string, ) *SlackBotEventHandler
NewSlackBotEventHandler creates a new SlackBotEventHandler
func (*SlackBotEventHandler) HandleSlackEvent ¶ added in v1.261.0
func (h *SlackBotEventHandler) HandleSlackEvent(ctx echo.Context) error
HandleSlackEvent handles POST /hooks/slack/:id
type SlackBotResponse ¶ added in v1.261.0
type SlackBotResponse struct {
ID string `json:"id"`
Name string `json:"name"`
UserID string `json:"user_id"`
Scope entities.ResourceScope `json:"scope,omitempty"`
TeamID string `json:"team_id,omitempty"`
Status entities.SlackBotStatus `json:"status"`
SigningSecret string `json:"signing_secret"` // masked
HookURL string `json:"hook_url"`
BotTokenSecretName string `json:"bot_token_secret_name,omitempty"`
BotTokenSecretKey string `json:"bot_token_secret_key,omitempty"`
AllowedEventTypes []string `json:"allowed_event_types,omitempty"`
AllowedChannelNames []string `json:"allowed_channel_names,omitempty"`
SessionConfig *SlackBotSessionConfig `json:"session_config,omitempty"`
MaxSessions int `json:"max_sessions"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
SlackBotResponse is the API response for a SlackBot
type SlackBotSessionConfig ¶ added in v1.261.0
type SlackBotSessionConfig struct {
InitialMessageTemplate string `json:"initial_message_template,omitempty"`
ReuseMessageTemplate string `json:"reuse_message_template,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
Environment map[string]string `json:"environment,omitempty"`
Params *SlackBotSessionParams `json:"params,omitempty"`
}
SlackBotSessionConfig is the session configuration for a SlackBot
type SlackBotSessionParams ¶ added in v1.261.0
type SlackBotSessionParams struct {
AgentType string `json:"agent_type,omitempty"`
Oneshot bool `json:"oneshot,omitempty"`
}
SlackBotSessionParams contains session parameters for SlackBot sessions
type TaskController ¶ added in v1.246.0
type TaskController struct {
// contains filtered or unexported fields
}
TaskController handles task HTTP requests
func NewTaskController ¶ added in v1.246.0
func NewTaskController(repo portrepos.TaskRepository) *TaskController
NewTaskController creates a new TaskController
func (*TaskController) CreateTask ¶ added in v1.246.0
func (c *TaskController) CreateTask(ctx echo.Context) error
CreateTask handles POST /tasks
func (*TaskController) DeleteTask ¶ added in v1.246.0
func (c *TaskController) DeleteTask(ctx echo.Context) error
DeleteTask handles DELETE /tasks/:taskId
func (*TaskController) GetName ¶ added in v1.246.0
func (c *TaskController) GetName() string
GetName returns the name of this controller for logging
func (*TaskController) GetTask ¶ added in v1.246.0
func (c *TaskController) GetTask(ctx echo.Context) error
GetTask handles GET /tasks/:taskId
func (*TaskController) ListTasks ¶ added in v1.246.0
func (c *TaskController) ListTasks(ctx echo.Context) error
ListTasks handles GET /tasks Query params: scope, team_id, group_id, status, task_type
func (*TaskController) UpdateTask ¶ added in v1.246.0
func (c *TaskController) UpdateTask(ctx echo.Context) error
UpdateTask handles PUT /tasks/:taskId
type TaskGroupController ¶ added in v1.246.0
type TaskGroupController struct {
// contains filtered or unexported fields
}
TaskGroupController handles task group HTTP requests
func NewTaskGroupController ¶ added in v1.246.0
func NewTaskGroupController(repo portrepos.TaskGroupRepository) *TaskGroupController
NewTaskGroupController creates a new TaskGroupController
func (*TaskGroupController) CreateTaskGroup ¶ added in v1.246.0
func (c *TaskGroupController) CreateTaskGroup(ctx echo.Context) error
CreateTaskGroup handles POST /task-groups
func (*TaskGroupController) DeleteTaskGroup ¶ added in v1.246.0
func (c *TaskGroupController) DeleteTaskGroup(ctx echo.Context) error
DeleteTaskGroup handles DELETE /task-groups/:groupId
func (*TaskGroupController) GetName ¶ added in v1.246.0
func (c *TaskGroupController) GetName() string
GetName returns the name of this controller for logging
func (*TaskGroupController) GetTaskGroup ¶ added in v1.246.0
func (c *TaskGroupController) GetTaskGroup(ctx echo.Context) error
GetTaskGroup handles GET /task-groups/:groupId
func (*TaskGroupController) ListTaskGroups ¶ added in v1.246.0
func (c *TaskGroupController) ListTaskGroups(ctx echo.Context) error
ListTaskGroups handles GET /task-groups Query params: scope, team_id
func (*TaskGroupController) UpdateTaskGroup ¶ added in v1.246.0
func (c *TaskGroupController) UpdateTaskGroup(ctx echo.Context) error
UpdateTaskGroup handles PUT /task-groups/:groupId
type TaskGroupListResponse ¶ added in v1.246.0
type TaskGroupListResponse struct {
TaskGroups []*TaskGroupResponse `json:"task_groups"`
Total int `json:"total"`
}
TaskGroupListResponse wraps a list of task groups
type TaskGroupResponse ¶ added in v1.246.0
type TaskGroupResponse struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Scope string `json:"scope"`
OwnerID string `json:"owner_id"`
TeamID string `json:"team_id,omitempty"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
TaskGroupResponse is the response for a single task group
type TaskLinkRequest ¶ added in v1.246.0
TaskLinkRequest is the JSON body for a task link
type TaskLinkResponse ¶ added in v1.246.0
type TaskLinkResponse struct {
ID string `json:"id"`
URL string `json:"url"`
Title string `json:"title,omitempty"`
}
TaskLinkResponse is the response for a single task link
type TaskListResponse ¶ added in v1.246.0
type TaskListResponse struct {
Tasks []*TaskResponse `json:"tasks"`
Total int `json:"total"`
}
TaskListResponse wraps a list of tasks
type TaskResponse ¶ added in v1.246.0
type TaskResponse struct {
ID string `json:"id"`
Title string `json:"title"`
Description string `json:"description,omitempty"`
Status string `json:"status"`
TaskType string `json:"task_type"`
Scope string `json:"scope"`
OwnerID string `json:"owner_id"`
TeamID string `json:"team_id,omitempty"`
GroupID string `json:"group_id,omitempty"`
SessionID string `json:"session_id,omitempty"`
Links []TaskLinkResponse `json:"links"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
TaskResponse is the response for a single task
type TriggerConditionsRequest ¶ added in v1.155.0
type TriggerConditionsRequest struct {
GitHub *GitHubConditionsRequest `json:"github,omitempty"`
GoTemplate string `json:"go_template,omitempty"`
}
TriggerConditionsRequest represents trigger conditions in requests
type TriggerConditionsResponse ¶ added in v1.155.0
type TriggerConditionsResponse struct {
GitHub *GitHubConditionsResponse `json:"github,omitempty"`
GoTemplate string `json:"go_template,omitempty"`
}
TriggerConditionsResponse represents trigger conditions in responses
type TriggerMatchedTriggerInfo ¶ added in v1.235.0
TriggerMatchedTriggerInfo contains information about a matched trigger
type TriggerRequest ¶ added in v1.155.0
type TriggerRequest struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Priority int `json:"priority"`
Enabled bool `json:"enabled"`
Conditions TriggerConditionsRequest `json:"conditions"`
SessionConfig *SessionConfigRequest `json:"session_config,omitempty"`
StopOnMatch bool `json:"stop_on_match"`
}
TriggerRequest represents a trigger in requests
type TriggerResponse ¶ added in v1.155.0
type TriggerResponse struct {
ID string `json:"id"`
Name string `json:"name"`
Priority int `json:"priority"`
Enabled bool `json:"enabled"`
Conditions TriggerConditionsResponse `json:"conditions"`
SessionConfig *SessionConfigResponse `json:"session_config,omitempty"`
StopOnMatch bool `json:"stop_on_match"`
}
TriggerResponse represents a trigger in responses
type TriggerWebhookRequest ¶ added in v1.235.0
type TriggerWebhookRequest struct {
Payload map[string]interface{} `json:"payload"` // The test payload JSON
Event string `json:"event,omitempty"` // For GitHub webhooks: the event type (e.g., "push", "pull_request")
DryRun bool `json:"dry_run"` // If true, only evaluate triggers without creating a session
}
TriggerWebhookRequest represents the request body for triggering a webhook with a test payload
type TriggerWebhookResponse ¶ added in v1.235.0
type TriggerWebhookResponse struct {
Matched bool `json:"matched"` // Whether any trigger matched
MatchedTrigger *TriggerMatchedTriggerInfo `json:"matched_trigger,omitempty"` // Info about the matched trigger
SessionID string `json:"session_id,omitempty"` // Set when dry_run=false and session was created
SessionReused bool `json:"session_reused,omitempty"` // Whether an existing session was reused
DryRun bool `json:"dry_run"` // Echoes back the dry_run flag
InitialMessage string `json:"initial_message,omitempty"` // The rendered initial message (in dry_run mode)
Tags map[string]string `json:"tags,omitempty"` // The computed tags (in dry_run mode)
Environment map[string]string `json:"environment,omitempty"` // The computed environment (in dry_run mode)
Error string `json:"error,omitempty"` // Any error encountered during evaluation
}
TriggerWebhookResponse represents the response for a webhook trigger test
type UpdateMemoryRequest ¶ added in v1.242.0
type UpdateMemoryRequest struct {
Title *string `json:"title,omitempty"`
Content *string `json:"content,omitempty"`
// Tags, when present (even as {}), replaces ALL existing tags.
// When the field is absent from the JSON body, existing tags are preserved.
Tags *map[string]string `json:"tags,omitempty"`
}
UpdateMemoryRequest is the JSON body for PUT /memories/:memoryId. All fields are optional; omitted/null fields are not changed.
type UpdateSettingsRequest ¶ added in v1.148.0
type UpdateSettingsRequest struct {
Bedrock *BedrockSettingsRequest `json:"bedrock"`
MCPServers map[string]*MCPServerRequest `json:"mcp_servers,omitempty"`
Marketplaces map[string]*MarketplaceRequest `json:"marketplaces,omitempty"`
ClaudeCodeOAuthToken *string `json:"claude_code_oauth_token,omitempty"`
AuthMode *string `json:"auth_mode,omitempty"` // "oauth" or "bedrock"
EnabledPlugins []string `json:"enabled_plugins,omitempty"` // plugin@marketplace format
EnvVars map[string]string `json:"env_vars,omitempty"` // Custom environment variables
}
UpdateSettingsRequest is the request body for updating settings
type UpdateSlackBotRequest ¶ added in v1.261.0
type UpdateSlackBotRequest struct {
Name string `json:"name,omitempty"`
Status entities.SlackBotStatus `json:"status,omitempty"`
SigningSecret string `json:"signing_secret,omitempty"`
BotTokenSecretName string `json:"bot_token_secret_name,omitempty"`
BotTokenSecretKey string `json:"bot_token_secret_key,omitempty"`
AllowedEventTypes []string `json:"allowed_event_types,omitempty"`
AllowedChannelNames []string `json:"allowed_channel_names,omitempty"`
SessionConfig *SlackBotSessionConfig `json:"session_config,omitempty"`
MaxSessions int `json:"max_sessions,omitempty"`
}
UpdateSlackBotRequest is the request body for updating a SlackBot
type UpdateTaskGroupRequest ¶ added in v1.246.0
type UpdateTaskGroupRequest struct {
Name *string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
}
UpdateTaskGroupRequest is the JSON body for PUT /task-groups/:groupId
type UpdateTaskRequest ¶ added in v1.246.0
type UpdateTaskRequest struct {
Title *string `json:"title,omitempty"`
Description *string `json:"description,omitempty"`
Status *string `json:"status,omitempty"`
GroupID *string `json:"group_id,omitempty"`
SessionID *string `json:"session_id,omitempty"`
Links *[]TaskLinkRequest `json:"links,omitempty"`
}
UpdateTaskRequest is the JSON body for PUT /tasks/:taskId. All fields are optional; omitted/null fields are not changed.
type UpdateWebhookRequest ¶ added in v1.155.0
type UpdateWebhookRequest struct {
Name *string `json:"name,omitempty"`
Status *entities.WebhookStatus `json:"status,omitempty"`
SignatureHeader *string `json:"signature_header,omitempty"`
SignatureType *entities.WebhookSignatureType `json:"signature_type,omitempty"`
GitHub *GitHubConfigRequest `json:"github,omitempty"`
Triggers []TriggerRequest `json:"triggers,omitempty"`
SessionConfig *SessionConfigRequest `json:"session_config,omitempty"`
MaxSessions *int `json:"max_sessions,omitempty"`
}
UpdateWebhookRequest represents the request body for updating a webhook
type UserController ¶ added in v1.148.0
type UserController struct{}
UserController handles user-related endpoints
func NewUserController ¶ added in v1.148.0
func NewUserController() *UserController
NewUserController creates a new UserController instance
func (*UserController) GetName ¶ added in v1.148.0
func (c *UserController) GetName() string
GetName returns the name of this controller for logging
func (*UserController) GetUserInfo ¶ added in v1.148.0
func (c *UserController) GetUserInfo(ctx echo.Context) error
GetUserInfo handles GET /user/info requests
type UserInfoResponse ¶ added in v1.148.0
UserInfoResponse represents the response for /user/info endpoint
type WebhookController ¶ added in v1.155.0
type WebhookController struct {
// contains filtered or unexported fields
}
WebhookController handles webhook management HTTP requests
func NewWebhookController ¶ added in v1.155.0
func NewWebhookController(repo repositories.WebhookRepository) *WebhookController
NewWebhookController creates a new webhook controller
func (*WebhookController) CreateWebhook ¶ added in v1.155.0
func (c *WebhookController) CreateWebhook(ctx echo.Context) error
CreateWebhook handles POST /webhooks
func (*WebhookController) DeleteWebhook ¶ added in v1.155.0
func (c *WebhookController) DeleteWebhook(ctx echo.Context) error
DeleteWebhook handles DELETE /webhooks/:id
func (*WebhookController) GetName ¶ added in v1.155.0
func (c *WebhookController) GetName() string
GetName returns the name of this controller for logging
func (*WebhookController) GetWebhook ¶ added in v1.155.0
func (c *WebhookController) GetWebhook(ctx echo.Context) error
GetWebhook handles GET /webhooks/:id
func (*WebhookController) ListWebhooks ¶ added in v1.155.0
func (c *WebhookController) ListWebhooks(ctx echo.Context) error
ListWebhooks handles GET /webhooks
func (*WebhookController) RegenerateSecret ¶ added in v1.155.0
func (c *WebhookController) RegenerateSecret(ctx echo.Context) error
RegenerateSecret handles POST /webhooks/:id/regenerate-secret
func (*WebhookController) Repo ¶ added in v1.235.0
func (c *WebhookController) Repo() repositories.WebhookRepository
Repo returns the webhook repository for external access.
func (*WebhookController) SetBaseURL ¶ added in v1.155.0
func (c *WebhookController) SetBaseURL(baseURL string)
SetBaseURL sets the base URL for webhook URLs
func (*WebhookController) UpdateWebhook ¶ added in v1.155.0
func (c *WebhookController) UpdateWebhook(ctx echo.Context) error
UpdateWebhook handles PUT /webhooks/:id
func (*WebhookController) UserCanAccessWebhook ¶ added in v1.235.0
UserCanAccessWebhook checks if the current user can access the webhook.
type WebhookCustomController ¶ added in v1.162.0
type WebhookCustomController struct {
// contains filtered or unexported fields
}
WebhookCustomController handles custom webhook reception
func NewWebhookCustomController ¶ added in v1.162.0
func NewWebhookCustomController( repo repositories.WebhookRepository, sessionManager repositories.SessionManager, ) *WebhookCustomController
NewWebhookCustomController creates a new custom webhook controller
func (*WebhookCustomController) BuildCustomTagsForTest ¶ added in v1.235.0
func (c *WebhookCustomController) BuildCustomTagsForTest( webhook *entities.Webhook, trigger *entities.WebhookTrigger, ) map[string]string
BuildCustomTagsForTest builds custom webhook metadata tags for a test payload.
func (*WebhookCustomController) BuildDefaultMessageForTest ¶ added in v1.235.0
func (c *WebhookCustomController) BuildDefaultMessageForTest(payload map[string]interface{}) string
BuildDefaultMessageForTest builds a default message for a test payload.
func (*WebhookCustomController) GetName ¶ added in v1.162.0
func (c *WebhookCustomController) GetName() string
GetName returns the name of this controller for logging
func (*WebhookCustomController) HandleCustomWebhook ¶ added in v1.162.0
func (c *WebhookCustomController) HandleCustomWebhook(ctx echo.Context) error
HandleCustomWebhook handles POST /hooks/custom/:id
func (*WebhookCustomController) MatchTriggersForTest ¶ added in v1.235.0
func (c *WebhookCustomController) MatchTriggersForTest( triggers []entities.WebhookTrigger, payload map[string]interface{}, ) *entities.WebhookTrigger
MatchTriggersForTest evaluates triggers against a test payload.
func (*WebhookCustomController) SessionService ¶ added in v1.235.0
func (c *WebhookCustomController) SessionService() *WebhookSessionService
SessionService returns the session service for external access.
type WebhookGitHubController ¶ added in v1.155.0
type WebhookGitHubController struct {
// contains filtered or unexported fields
}
WebhookGitHubController handles GitHub webhook reception
func NewWebhookGitHubController ¶ added in v1.155.0
func NewWebhookGitHubController(repo repositories.WebhookRepository, sessionManager repositories.SessionManager) *WebhookGitHubController
NewWebhookGitHubController creates a new GitHub webhook controller
func (*WebhookGitHubController) BuildDefaultInitialMessageForTest ¶ added in v1.235.0
func (c *WebhookGitHubController) BuildDefaultInitialMessageForTest(event string, payload *GitHubPayload) string
BuildDefaultInitialMessageForTest builds a default initial message for a test payload.
func (*WebhookGitHubController) BuildGitHubTagsForTest ¶ added in v1.235.0
func (c *WebhookGitHubController) BuildGitHubTagsForTest( webhook *entities.Webhook, trigger *entities.WebhookTrigger, event string, payload *GitHubPayload, ) map[string]string
BuildGitHubTagsForTest builds GitHub-specific metadata tags for a test payload.
func (*WebhookGitHubController) GetName ¶ added in v1.155.0
func (c *WebhookGitHubController) GetName() string
GetName returns the name of this controller for logging
func (*WebhookGitHubController) HandleGitHubWebhook ¶ added in v1.155.0
func (c *WebhookGitHubController) HandleGitHubWebhook(ctx echo.Context) error
HandleGitHubWebhook handles POST /hooks/github/:id
func (*WebhookGitHubController) MatchTriggersForTest ¶ added in v1.235.0
func (c *WebhookGitHubController) MatchTriggersForTest( triggers []entities.WebhookTrigger, event string, payload *GitHubPayload, ) *entities.WebhookTrigger
MatchTriggersForTest evaluates triggers against a test payload. This reuses the same matching logic as HandleGitHubWebhook but without signature verification or HTTP context dependency.
func (*WebhookGitHubController) SessionService ¶ added in v1.235.0
func (c *WebhookGitHubController) SessionService() *WebhookSessionService
SessionService returns the session service for external access.
type WebhookResponse ¶ added in v1.155.0
type WebhookResponse struct {
ID string `json:"id"`
Name string `json:"name"`
UserID string `json:"user_id"`
Scope entities.ResourceScope `json:"scope,omitempty"`
TeamID string `json:"team_id,omitempty"`
Status entities.WebhookStatus `json:"status"`
Type entities.WebhookType `json:"type"`
Secret string `json:"secret"`
SignatureHeader string `json:"signature_header,omitempty"`
SignatureType entities.WebhookSignatureType `json:"signature_type,omitempty"`
WebhookURL string `json:"webhook_url"`
GitHub *GitHubConfigResponse `json:"github,omitempty"`
Triggers []TriggerResponse `json:"triggers"`
SessionConfig *SessionConfigResponse `json:"session_config,omitempty"`
MaxSessions int `json:"max_sessions"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
LastDelivery *DeliveryRecordResponse `json:"last_delivery,omitempty"`
DeliveryCount int64 `json:"delivery_count"`
}
WebhookResponse represents the response for a webhook
type WebhookSessionService ¶ added in v1.234.0
type WebhookSessionService struct {
// contains filtered or unexported fields
}
WebhookSessionService encapsulates common logic shared between GitHub and Custom webhook controllers: session creation, session reuse, template rendering, trigger sorting, session limits, and delivery recording.
func NewWebhookSessionService ¶ added in v1.234.0
func NewWebhookSessionService(repo repositories.WebhookRepository, sessionManager repositories.SessionManager) *WebhookSessionService
NewWebhookSessionService creates a new WebhookSessionService.
func (*WebhookSessionService) CreateSessionFromWebhook ¶ added in v1.234.0
func (s *WebhookSessionService) CreateSessionFromWebhook(ctx echo.Context, params SessionCreationParams) (string, bool, error)
CreateSessionFromWebhook creates or reuses a session based on webhook and trigger configuration. Returns sessionID, sessionReused flag, and error.
func (*WebhookSessionService) DryRunSessionConfig ¶ added in v1.235.0
func (s *WebhookSessionService) DryRunSessionConfig(params SessionCreationParams) (*DryRunResult, error)
DryRunSessionConfig evaluates all template rendering and config merging without creating a session. Returns the computed configuration.
func (*WebhookSessionService) RecordDelivery ¶ added in v1.234.0
func (s *WebhookSessionService) RecordDelivery(ctx context.Context, webhookID, deliveryID string, status entities.DeliveryStatus, trigger *entities.WebhookTrigger, sessionID string, sessionReused bool, deliveryErr error)
RecordDelivery records a webhook delivery event.
Source Files
¶
- auth_controller.go
- auth_info_controller.go
- health_controller.go
- memory_controller.go
- notification_controller.go
- notification_handlers.go
- personal_api_key_controller.go
- session_controller.go
- settings_controller.go
- share_controller.go
- slackbot_controller.go
- slackbot_event_handler.go
- task_controller.go
- task_group_controller.go
- user_controller.go
- webhook_controller.go
- webhook_custom_controller.go
- webhook_github_controller.go
- webhook_session_service.go