apiv1

package
v0.1.16 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2026 License: AGPL-3.0, AGPL-3.0-or-later Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HttpServerBaseRoute string = "/api/v1"
	HttpServerRootRoute string = ""
)

Variables

This section is empty.

Functions

func ErrorResponse

func ErrorResponse(c echo.Context, code int, message string) error

ErrorResponse returns an error response

func HTTPBadRequest

func HTTPBadRequest(message string) error

func HTTPConflict

func HTTPConflict(message string) error

func HTTPForbidden

func HTTPForbidden(message string) error

func HTTPInternalServerError

func HTTPInternalServerError(message string) error

func HTTPNotFound

func HTTPNotFound() error

func HTTPUnauthorized

func HTTPUnauthorized(message string) error

func NewFilesystemAuthMiddleware

func NewFilesystemAuthMiddleware(cfg FilesystemAuthConfig) echo.MiddlewareFunc

NewFilesystemAuthMiddleware creates middleware that validates workspace access It accepts both admin tokens and workspace tokens

func NewHTTPError

func NewHTTPError(code int, message string) error

func NewWorkspaceAuthMiddleware

func NewWorkspaceAuthMiddleware(cfg WorkspaceAuthConfig) echo.MiddlewareFunc

NewWorkspaceAuthMiddleware validates workspace access for admin and member tokens.

func RequireAdmin

func RequireAdmin() echo.MiddlewareFunc

RequireAdmin middleware requires admin role or cluster admin.

func SuccessResponse

func SuccessResponse(c echo.Context, data interface{}) error

SuccessResponse returns a successful response

func WithAuthContext

func WithAuthContext(ctx context.Context, workspaceID string, workspaceExt string) context.Context

WithAuthContext is a helper to wrap handlers that need auth context

Types

type ConnectionsGroup

type ConnectionsGroup struct {
	// contains filtered or unexported fields
}

func NewConnectionsGroup

func NewConnectionsGroup(g *echo.Group, backend repository.BackendRepository) *ConnectionsGroup

func (*ConnectionsGroup) Create

func (cg *ConnectionsGroup) Create(c echo.Context) error

func (*ConnectionsGroup) Delete

func (cg *ConnectionsGroup) Delete(c echo.Context) error

func (*ConnectionsGroup) List

func (cg *ConnectionsGroup) List(c echo.Context) error

type CreateConnectionRequest

type CreateConnectionRequest struct {
	MemberId        string            `json:"member_id,omitempty"` // Empty = shared
	IntegrationType string            `json:"integration_type"`
	Scope           string            `json:"scope,omitempty"`
	AccessToken     string            `json:"access_token,omitempty"`
	RefreshToken    string            `json:"refresh_token,omitempty"`
	APIKey          string            `json:"api_key,omitempty"`
	Extra           map[string]string `json:"extra,omitempty"`
}

type CreateMemberRequest

type CreateMemberRequest struct {
	Email string           `json:"email"`
	Name  string           `json:"name"`
	Role  types.MemberRole `json:"role"`
}

type CreateQueryRequest

type CreateQueryRequest struct {
	Integration  string `json:"integration"`   // e.g., "gmail", "gdrive"
	Name         string `json:"name"`          // Folder/file name
	Guidance     string `json:"guidance"`      // Optional user guidance for LLM
	OutputFormat string `json:"output_format"` // "folder" or "file"
	FileExt      string `json:"file_ext"`      // For files: ".json", ".md"
}

CreateQueryRequest represents a request to create a smart query

type CreateSessionRequest

type CreateSessionRequest struct {
	IntegrationType string `json:"integration_type"`
	ReturnTo        string `json:"return_to,omitempty"`
}

type CreateSessionResponse

type CreateSessionResponse struct {
	SessionID    string `json:"session_id"`
	AuthorizeURL string `json:"authorize_url"`
}

type CreateTaskRequest

type CreateTaskRequest struct {
	WorkspaceID   string            `json:"workspace_id"`   // External workspace ID
	WorkspaceName string            `json:"workspace_name"` // Or workspace name
	Prompt        string            `json:"prompt"`         // Claude Code prompt (auto-sets image)
	Image         string            `json:"image"`          // Container image (optional if prompt provided)
	Entrypoint    []string          `json:"entrypoint"`
	Env           map[string]string `json:"env"`
}

type CreateTokenRequest

type CreateTokenRequest struct {
	MemberId  string `json:"member_id"`
	Email     string `json:"email"`
	Name      string `json:"name"`
	ExpiresIn int    `json:"expires_in"`
}

type CreateToolProviderRequest

type CreateToolProviderRequest struct {
	Name           string                 `json:"name"`
	ProviderType   string                 `json:"provider_type"` // "mcp"
	MCP            *types.MCPServerConfig `json:"mcp,omitempty"`
	SkipValidation bool                   `json:"skip_validation,omitempty"` // Skip connection validation
}

CreateToolProviderRequest represents a request to create a workspace tool provider

type CreateWorkerTokenRequest

type CreateWorkerTokenRequest struct {
	Name      string  `json:"name"`
	PoolName  *string `json:"pool_name,omitempty"`
	ExpiresIn int     `json:"expires_in"`
}

type CreateWorkspaceRequest

type CreateWorkspaceRequest struct {
	Name string `json:"name" validate:"required"`
}

type DownloadURLResponse

type DownloadURLResponse struct {
	DownloadURL string `json:"download_url"`
}

DownloadURLResponse contains the presigned download URL

type FilesystemAuthConfig

type FilesystemAuthConfig struct {
	AdminToken string
	Backend    repository.BackendRepository
}

FilesystemAuthConfig holds auth configuration for the filesystem API

type FilesystemGroup

type FilesystemGroup struct {
	// contains filtered or unexported fields
}

FilesystemGroup handles filesystem API endpoints

func NewFilesystemGroup

func NewFilesystemGroup(
	routerGroup *echo.Group,
	backend repository.BackendRepository,
	storageService *services.StorageService,
	sourceService *services.SourceService,
	sourceRegistry *sources.Registry,
	toolRegistry *tools.Registry,
	s2Client *streams.S2Client,
) *FilesystemGroup

NewFilesystemGroup creates a new filesystem API group. storageService handles all S3-backed paths (skills and user-created folders).

func (*FilesystemGroup) CreateQuery

func (g *FilesystemGroup) CreateQuery(c echo.Context) error

CreateQuery creates a new smart query via LLM inference

func (*FilesystemGroup) CreateToolProvider

func (g *FilesystemGroup) CreateToolProvider(c echo.Context) error

CreateToolProvider creates a new workspace tool provider (MCP server)

func (*FilesystemGroup) DeletePath

func (g *FilesystemGroup) DeletePath(c echo.Context) error

DeletePath deletes a file or directory (optionally recursive for directories)

func (*FilesystemGroup) DeleteQuery

func (g *FilesystemGroup) DeleteQuery(c echo.Context) error

DeleteQuery removes a smart query by external_id

func (*FilesystemGroup) DeleteToolProvider

func (g *FilesystemGroup) DeleteToolProvider(c echo.Context) error

DeleteToolProvider deletes a workspace tool provider

func (*FilesystemGroup) GetDownloadURL

func (g *FilesystemGroup) GetDownloadURL(c echo.Context) error

GetDownloadURL returns a presigned URL for downloading a file

func (*FilesystemGroup) GetQuery

func (g *FilesystemGroup) GetQuery(c echo.Context) error

GetQuery retrieves a smart query by path

func (*FilesystemGroup) GetToolProvider

func (g *FilesystemGroup) GetToolProvider(c echo.Context) error

GetToolProvider retrieves a workspace tool provider by name

func (*FilesystemGroup) GetToolSetting

func (g *FilesystemGroup) GetToolSetting(c echo.Context) error

GetToolSetting returns the setting for a specific tool

func (*FilesystemGroup) GetUploadURL

func (g *FilesystemGroup) GetUploadURL(c echo.Context) error

GetUploadURL returns a presigned URL for uploading a file

func (*FilesystemGroup) List

func (g *FilesystemGroup) List(c echo.Context) error

List returns directory contents as VirtualFile entries

func (*FilesystemGroup) ListToolProviders

func (g *FilesystemGroup) ListToolProviders(c echo.Context) error

ListToolProviders returns all workspace-defined tool providers

func (*FilesystemGroup) ListToolSettings

func (g *FilesystemGroup) ListToolSettings(c echo.Context) error

ListToolSettings returns all tools with their enabled/disabled state for the workspace

func (*FilesystemGroup) Mkdir

func (g *FilesystemGroup) Mkdir(c echo.Context) error

Mkdir creates a new directory

func (*FilesystemGroup) NotifyUploadComplete

func (g *FilesystemGroup) NotifyUploadComplete(c echo.Context) error

NotifyUploadComplete invalidates caches after a file upload

func (*FilesystemGroup) Read

func (g *FilesystemGroup) Read(c echo.Context) error

Read returns file contents

func (*FilesystemGroup) Search added in v0.1.10

func (g *FilesystemGroup) Search(c echo.Context) error

Search performs filename search across the workspace

func (*FilesystemGroup) Stat

func (g *FilesystemGroup) Stat(c echo.Context) error

Stat returns file/directory info as VirtualFile

func (*FilesystemGroup) Tree

func (g *FilesystemGroup) Tree(c echo.Context) error

Tree returns a flat listing of a subtree

func (*FilesystemGroup) UpdateQuery

func (g *FilesystemGroup) UpdateQuery(c echo.Context) error

UpdateQuery updates an existing smart query by external_id

func (*FilesystemGroup) UpdateToolProvider

func (g *FilesystemGroup) UpdateToolProvider(c echo.Context) error

UpdateToolProvider updates a workspace tool provider's config

func (*FilesystemGroup) UpdateToolSetting

func (g *FilesystemGroup) UpdateToolSetting(c echo.Context) error

UpdateToolSetting updates the enabled/disabled state of a tool

type GetSessionResponse

type GetSessionResponse struct {
	Status       string `json:"status"`
	Error        string `json:"error,omitempty"`
	ConnectionID string `json:"connection_id,omitempty"`
}

type HealthGroup

type HealthGroup struct {
	// contains filtered or unexported fields
}

func NewHealthGroup

func NewHealthGroup(g *echo.Group, rdb *common.RedisClient) *HealthGroup

func (*HealthGroup) HealthCheck

func (h *HealthGroup) HealthCheck(c echo.Context) error

type MembersGroup

type MembersGroup struct {
	// contains filtered or unexported fields
}

func NewMembersGroup

func NewMembersGroup(g *echo.Group, backend repository.BackendRepository) *MembersGroup

func (*MembersGroup) Create

func (mg *MembersGroup) Create(c echo.Context) error

func (*MembersGroup) Delete

func (mg *MembersGroup) Delete(c echo.Context) error

func (*MembersGroup) Get

func (mg *MembersGroup) Get(c echo.Context) error

func (*MembersGroup) List

func (mg *MembersGroup) List(c echo.Context) error

func (*MembersGroup) Update

func (mg *MembersGroup) Update(c echo.Context) error

type MkdirRequest

type MkdirRequest struct {
	Path string `json:"path"`
}

MkdirRequest represents a request to create a directory

type OAuthGroup

type OAuthGroup struct {
	// contains filtered or unexported fields
}

OAuthGroup handles OAuth endpoints for workspace integrations.

func NewOAuthGroup

func NewOAuthGroup(g *echo.Group, store *oauth.Store, registry *oauth.Registry, backend repository.BackendRepository) *OAuthGroup

NewOAuthGroup creates and registers OAuth routes.

func (*OAuthGroup) Callback added in v0.1.15

func (og *OAuthGroup) Callback(c echo.Context) error

Callback handles OAuth callbacks from all providers. Provider is determined from session state, not URL path.

func (*OAuthGroup) CreateSession

func (og *OAuthGroup) CreateSession(c echo.Context) error

CreateSession creates a new OAuth session and returns the authorization URL.

func (*OAuthGroup) GetSession

func (og *OAuthGroup) GetSession(c echo.Context) error

GetSession returns the status of an OAuth session.

type Response

type Response struct {
	Success bool        `json:"success"`
	Data    interface{} `json:"data,omitempty"`
	Error   string      `json:"error,omitempty"`
}

Response is a standard API response structure

type SetTaskResultRequest

type SetTaskResultRequest struct {
	ExitCode int    `json:"exit_code"`
	Error    string `json:"error"`
}

SetTaskResult is called by workers to report task completion

type SmartQueryResponse

type SmartQueryResponse struct {
	ExternalID   string `json:"external_id"`
	Integration  string `json:"integration"`
	Path         string `json:"path"`
	Name         string `json:"name"`
	QuerySpec    string `json:"query_spec"`
	Guidance     string `json:"guidance"`
	OutputFormat string `json:"output_format"`
	FileExt      string `json:"file_ext"`
	CacheTTL     int    `json:"cache_ttl"`
	CreatedAt    int64  `json:"created_at"`
	UpdatedAt    int64  `json:"updated_at"`
}

SmartQueryResponse represents a smart query in API responses

type TaskResponse

type TaskResponse struct {
	ExternalID  string            `json:"external_id"`
	WorkspaceID string            `json:"workspace_id"`
	Status      string            `json:"status"`
	Prompt      string            `json:"prompt,omitempty"`
	Image       string            `json:"image"`
	Entrypoint  []string          `json:"entrypoint"`
	Env         map[string]string `json:"env"`
	ExitCode    *int              `json:"exit_code,omitempty"`
	Error       string            `json:"error,omitempty"`
	CreatedAt   string            `json:"created_at"`
	StartedAt   string            `json:"started_at,omitempty"`
	FinishedAt  string            `json:"finished_at,omitempty"`
}

type TasksGroup

type TasksGroup struct {
	// contains filtered or unexported fields
}

func NewTasksGroup

func NewTasksGroup(
	routerGroup *echo.Group,
	backend repository.BackendRepository,
	taskQueue repository.TaskQueue,
	s2Client *streams.S2Client,
) *TasksGroup

func (*TasksGroup) CancelTask

func (g *TasksGroup) CancelTask(c echo.Context) error

CancelTask cancels a pending or running task

func (*TasksGroup) CreateTask

func (g *TasksGroup) CreateTask(c echo.Context) error

CreateTask creates a new task and queues it for execution

func (*TasksGroup) DeleteTask

func (g *TasksGroup) DeleteTask(c echo.Context) error

DeleteTask deletes a task by external ID

func (*TasksGroup) GetTask

func (g *TasksGroup) GetTask(c echo.Context) error

GetTask returns a task by external ID

func (*TasksGroup) ListTasks

func (g *TasksGroup) ListTasks(c echo.Context) error

ListTasks returns tasks, optionally filtered by workspace

func (*TasksGroup) SetTaskResult

func (g *TasksGroup) SetTaskResult(c echo.Context) error

func (*TasksGroup) StreamLogs

func (g *TasksGroup) StreamLogs(c echo.Context) error

StreamLogs streams task logs via SSE from S2.

type TokenResponse

type TokenResponse struct {
	Token    string      `json:"token"`
	Info     interface{} `json:"info"`
	MemberId string      `json:"member_id,omitempty"`
}

type TokensGroup

type TokensGroup struct {
	// contains filtered or unexported fields
}

TokensGroup handles workspace-scoped token management.

func NewTokensGroup

func NewTokensGroup(g *echo.Group, backend repository.BackendRepository) *TokensGroup

func (*TokensGroup) Create

func (tg *TokensGroup) Create(c echo.Context) error

func (*TokensGroup) List

func (tg *TokensGroup) List(c echo.Context) error

func (*TokensGroup) Revoke

func (tg *TokensGroup) Revoke(c echo.Context) error

type ToolProviderResponse

type ToolProviderResponse struct {
	ExternalId   string `json:"external_id"`
	Name         string `json:"name"`
	ProviderType string `json:"provider_type"`
	ToolCount    int    `json:"tool_count,omitempty"`
	Warning      string `json:"warning,omitempty"` // Validation warning if any
	CreatedAt    string `json:"created_at"`
	UpdatedAt    string `json:"updated_at"`
}

ToolProviderResponse represents a workspace tool provider in API responses

type ToolSettingResponse

type ToolSettingResponse struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	Enabled     bool   `json:"enabled"`
	Origin      string `json:"origin,omitempty"`
	ExternalId  string `json:"external_id,omitempty"`
}

ToolSettingResponse represents a tool with its enabled state

type UpdateMemberRequest

type UpdateMemberRequest struct {
	Name string           `json:"name"`
	Role types.MemberRole `json:"role"`
}

type UpdateQueryRequest

type UpdateQueryRequest struct {
	Name     string `json:"name"`     // New name (optional)
	Guidance string `json:"guidance"` // New guidance (optional)
}

UpdateQueryRequest represents a request to update a smart query

type UpdateToolSettingRequest

type UpdateToolSettingRequest struct {
	Enabled bool `json:"enabled"`
}

UpdateToolSettingRequest represents a request to update tool settings

type UploadURLRequest

type UploadURLRequest struct {
	Path        string `json:"path"`
	ContentType string `json:"content_type,omitempty"`
}

UploadURLRequest represents a request to get a presigned upload URL

type UploadURLResponse

type UploadURLResponse struct {
	UploadURL string `json:"upload_url"`
	Key       string `json:"key"`
}

UploadURLResponse contains the presigned upload URL and key

type WorkerTokensGroup

type WorkerTokensGroup struct {
	// contains filtered or unexported fields
}

WorkerTokensGroup handles cluster-level worker tokens (admin only).

func NewWorkerTokensGroup

func NewWorkerTokensGroup(g *echo.Group, backend repository.BackendRepository) *WorkerTokensGroup

func (*WorkerTokensGroup) Create

func (wt *WorkerTokensGroup) Create(c echo.Context) error

func (*WorkerTokensGroup) List

func (wt *WorkerTokensGroup) List(c echo.Context) error

func (*WorkerTokensGroup) Revoke

func (wt *WorkerTokensGroup) Revoke(c echo.Context) error

type WorkspaceAuthConfig

type WorkspaceAuthConfig struct {
	AdminToken string
	Backend    repository.BackendRepository
}

WorkspaceAuthConfig for workspace-scoped API routes.

type WorkspaceResponse

type WorkspaceResponse struct {
	ExternalID string `json:"external_id"`
	Name       string `json:"name"`
	CreatedAt  string `json:"created_at"`
	UpdatedAt  string `json:"updated_at"`
}

type WorkspacesGroup

type WorkspacesGroup struct {
	// contains filtered or unexported fields
}

func NewWorkspacesGroup

func NewWorkspacesGroup(routerGroup *echo.Group, backend repository.BackendRepository, storageClient *clients.StorageClient) *WorkspacesGroup

NewWorkspacesGroup creates a new workspaces API group. storageClient can be nil if workspace storage is not configured.

func (*WorkspacesGroup) CreateWorkspace

func (g *WorkspacesGroup) CreateWorkspace(c echo.Context) error

CreateWorkspace creates a new workspace and its S3 storage bucket

func (*WorkspacesGroup) DeleteWorkspace

func (g *WorkspacesGroup) DeleteWorkspace(c echo.Context) error

DeleteWorkspace deletes a workspace by external ID

func (*WorkspacesGroup) GetWorkspace

func (g *WorkspacesGroup) GetWorkspace(c echo.Context) error

GetWorkspace returns a workspace by external ID

func (*WorkspacesGroup) ListWorkspaces

func (g *WorkspacesGroup) ListWorkspaces(c echo.Context) error

ListWorkspaces returns all workspaces

Jump to

Keyboard shortcuts

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