Documentation
¶
Index ¶
- Variables
- type APIKeyHandler
- func (h *APIKeyHandler) CreateAPIKey(c *fiber.Ctx) error
- func (h *APIKeyHandler) DeleteAPIKey(c *fiber.Ctx) error
- func (h *APIKeyHandler) GetAPIKey(c *fiber.Ctx) error
- func (h *APIKeyHandler) GetStats(c *fiber.Ctx) error
- func (h *APIKeyHandler) GetUsage(c *fiber.Ctx) error
- func (h *APIKeyHandler) ListAPIKeysByProjectID(c *fiber.Ctx) error
- func (h *APIKeyHandler) ListAPIKeysByUserID(c *fiber.Ctx) error
- func (h *APIKeyHandler) RegisterRoutes(app *fiber.App, prefix string)
- func (h *APIKeyHandler) ResetBudget(c *fiber.Ctx) error
- func (h *APIKeyHandler) RevokeAPIKey(c *fiber.Ctx) error
- func (h *APIKeyHandler) UpdateAPIKey(c *fiber.Ctx) error
- func (h *APIKeyHandler) VerifyAPIKey(c *fiber.Ctx) error
- type AdminHandler
- func (h *AdminHandler) AddOrganizationMember(c *fiber.Ctx) error
- func (h *AdminHandler) CreateOrganization(c *fiber.Ctx) error
- func (h *AdminHandler) CreateUser(c *fiber.Ctx) error
- func (h *AdminHandler) DeleteOrganization(c *fiber.Ctx) error
- func (h *AdminHandler) DeleteUser(c *fiber.Ctx) error
- func (h *AdminHandler) GetOrganization(c *fiber.Ctx) error
- func (h *AdminHandler) GetUser(c *fiber.Ctx) error
- func (h *AdminHandler) ListOrganizationMembers(c *fiber.Ctx) error
- func (h *AdminHandler) ListOrganizations(c *fiber.Ctx) error
- func (h *AdminHandler) RemoveOrganizationMember(c *fiber.Ctx) error
- func (h *AdminHandler) UpdateOrganization(c *fiber.Ctx) error
- func (h *AdminHandler) UpdateUser(c *fiber.Ctx) error
- type CheckCreditsRequest
- type CheckCreditsResponse
- type ClerkOrganizationData
- type ClerkOrganizationInfo
- type ClerkOrganizationMembershipData
- type ClerkPublicUserData
- type ClerkWebhookEvent
- type ClerkWebhookHandler
- type CompletionHandler
- type CreateCheckoutSessionRequest
- type CreateCheckoutSessionResponse
- type CreditsHandler
- type GetBalanceResponse
- type GetTransactionHistoryResponse
- type HealthHandler
- type MessagesHandler
- type ProjectsHandler
- func (h *ProjectsHandler) AddMember(c *fiber.Ctx) error
- func (h *ProjectsHandler) CreateProject(c *fiber.Ctx) error
- func (h *ProjectsHandler) DeleteProject(c *fiber.Ctx) error
- func (h *ProjectsHandler) GetProject(c *fiber.Ctx) error
- func (h *ProjectsHandler) ListMembers(c *fiber.Ctx) error
- func (h *ProjectsHandler) ListProjects(c *fiber.Ctx) error
- func (h *ProjectsHandler) RemoveMember(c *fiber.Ctx) error
- func (h *ProjectsHandler) UpdateMemberRole(c *fiber.Ctx) error
- func (h *ProjectsHandler) UpdateProject(c *fiber.Ctx) error
- type ProviderConfigHandler
- func (h *ProviderConfigHandler) CreateOrganizationProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) CreateProjectProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) DeleteOrganizationProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) DeleteProjectProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) GetOrganizationProviders(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) GetProjectProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) GetProjectProviders(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) GetProviderConfigHistory(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) ToggleOrganizationProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) ToggleProjectProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) UpdateOrganizationProvider(c *fiber.Ctx) error
- func (h *ProviderConfigHandler) UpdateProjectProvider(c *fiber.Ctx) error
- type SelectModelHandler
- type StripeHandler
- type TransactionItem
- type UsageHandler
- func (h *UsageHandler) GetUsageByAPIKey(c *fiber.Ctx) error
- func (h *UsageHandler) GetUsageByPeriod(c *fiber.Ctx) error
- func (h *UsageHandler) GetUsageStats(c *fiber.Ctx) error
- func (h *UsageHandler) RecordUsage(c *fiber.Ctx) error
- func (h *UsageHandler) RegisterRoutes(app *fiber.App, basePath string)
Constants ¶
This section is empty.
Variables ¶
var (
ErrInvalidModelSpec = errors.New("invalid model specification")
)
Sentinel errors for proper HTTP status code mapping
Functions ¶
This section is empty.
Types ¶
type APIKeyHandler ¶
type APIKeyHandler struct {
// contains filtered or unexported fields
}
func NewAPIKeyHandler ¶
func NewAPIKeyHandler(service *usage.APIKeyService, budgetService *usage.Service, creditsEnabled bool, authProvider auth.AuthProvider) *APIKeyHandler
func (*APIKeyHandler) CreateAPIKey ¶
func (h *APIKeyHandler) CreateAPIKey(c *fiber.Ctx) error
func (*APIKeyHandler) DeleteAPIKey ¶
func (h *APIKeyHandler) DeleteAPIKey(c *fiber.Ctx) error
func (*APIKeyHandler) ListAPIKeysByProjectID ¶
func (h *APIKeyHandler) ListAPIKeysByProjectID(c *fiber.Ctx) error
func (*APIKeyHandler) ListAPIKeysByUserID ¶
func (h *APIKeyHandler) ListAPIKeysByUserID(c *fiber.Ctx) error
func (*APIKeyHandler) RegisterRoutes ¶
func (h *APIKeyHandler) RegisterRoutes(app *fiber.App, prefix string)
func (*APIKeyHandler) ResetBudget ¶
func (h *APIKeyHandler) ResetBudget(c *fiber.Ctx) error
func (*APIKeyHandler) RevokeAPIKey ¶
func (h *APIKeyHandler) RevokeAPIKey(c *fiber.Ctx) error
func (*APIKeyHandler) UpdateAPIKey ¶
func (h *APIKeyHandler) UpdateAPIKey(c *fiber.Ctx) error
func (*APIKeyHandler) VerifyAPIKey ¶
func (h *APIKeyHandler) VerifyAPIKey(c *fiber.Ctx) error
type AdminHandler ¶
type AdminHandler struct {
// contains filtered or unexported fields
}
func NewAdminHandler ¶
func NewAdminHandler(adminService *admin.Service) *AdminHandler
func (*AdminHandler) AddOrganizationMember ¶
func (h *AdminHandler) AddOrganizationMember(c *fiber.Ctx) error
func (*AdminHandler) CreateOrganization ¶
func (h *AdminHandler) CreateOrganization(c *fiber.Ctx) error
func (*AdminHandler) CreateUser ¶
func (h *AdminHandler) CreateUser(c *fiber.Ctx) error
func (*AdminHandler) DeleteOrganization ¶
func (h *AdminHandler) DeleteOrganization(c *fiber.Ctx) error
func (*AdminHandler) DeleteUser ¶
func (h *AdminHandler) DeleteUser(c *fiber.Ctx) error
func (*AdminHandler) GetOrganization ¶
func (h *AdminHandler) GetOrganization(c *fiber.Ctx) error
func (*AdminHandler) ListOrganizationMembers ¶
func (h *AdminHandler) ListOrganizationMembers(c *fiber.Ctx) error
func (*AdminHandler) ListOrganizations ¶
func (h *AdminHandler) ListOrganizations(c *fiber.Ctx) error
func (*AdminHandler) RemoveOrganizationMember ¶
func (h *AdminHandler) RemoveOrganizationMember(c *fiber.Ctx) error
func (*AdminHandler) UpdateOrganization ¶
func (h *AdminHandler) UpdateOrganization(c *fiber.Ctx) error
func (*AdminHandler) UpdateUser ¶
func (h *AdminHandler) UpdateUser(c *fiber.Ctx) error
type CheckCreditsRequest ¶
type CheckCreditsRequest struct {
OrganizationID string `json:"organization_id" binding:"required"`
Amount float64 `json:"amount" binding:"required,min=0"`
}
CheckCreditsRequest represents the request body for checking credits
type CheckCreditsResponse ¶
type CheckCreditsResponse struct {
HasEnoughCredits bool `json:"has_enough_credits"`
CurrentBalance float64 `json:"current_balance"`
RequiredAmount float64 `json:"required_amount"`
Shortfall float64 `json:"shortfall,omitempty"`
}
CheckCreditsResponse represents the response for credit checks
type ClerkOrganizationData ¶
type ClerkOrganizationInfo ¶
type ClerkOrganizationMembershipData ¶
type ClerkOrganizationMembershipData struct {
ID string `json:"id"`
Organization ClerkOrganizationInfo `json:"organization"`
PublicUserData ClerkPublicUserData `json:"public_user_data"`
Role string `json:"role"`
}
type ClerkPublicUserData ¶
type ClerkPublicUserData struct {
UserID string `json:"user_id"`
}
type ClerkWebhookEvent ¶
type ClerkWebhookEvent struct {
Type string `json:"type"`
Data json.RawMessage `json:"data"`
}
type ClerkWebhookHandler ¶
type ClerkWebhookHandler struct {
// contains filtered or unexported fields
}
func NewClerkWebhookHandler ¶
func NewClerkWebhookHandler(webhookSecret string, creditsService *usage.CreditsService, organizationsService *organizations.Service, projectsService *projects.Service) *ClerkWebhookHandler
func (*ClerkWebhookHandler) DeleteOrganizationData ¶
func (h *ClerkWebhookHandler) DeleteOrganizationData(c *fiber.Ctx) error
func (*ClerkWebhookHandler) HandleWebhook ¶
func (h *ClerkWebhookHandler) HandleWebhook(c *fiber.Ctx) error
type CompletionHandler ¶
type CompletionHandler struct {
// contains filtered or unexported fields
}
CompletionHandler handles chat completions end-to-end. It manages the lifecycle of chat completion requests, including provider selection, fallback handling, and response processing.
func NewCompletionHandler ¶
func NewCompletionHandler( cfg *config.Config, reqSvc *completions.RequestService, respSvc *completions.ResponseService, completionSvc *completions.CompletionService, modelRouter *model_router.ModelRouter, circuitBreakers map[string]*circuitbreaker.CircuitBreaker, providerConfigSvc *provider_config.Service, ) *CompletionHandler
NewCompletionHandler wires up dependencies and initializes the completion handler.
func (*CompletionHandler) ChatCompletion ¶
func (h *CompletionHandler) ChatCompletion(c *fiber.Ctx) error
ChatCompletion handles the chat completion HTTP request. It processes the request through provider selection, parameter configuration, and response handling with circuit breaking for reliability.
type CreateCheckoutSessionRequest ¶
type CreateCheckoutSessionRequest struct {
OrganizationID string `json:"organization_id" binding:"required"`
UserID string `json:"user_id" binding:"required"`
StripePriceID string `json:"stripe_price_id" binding:"required"`
CreditAmount float64 `json:"credit_amount" binding:"required,min=0"`
SuccessURL string `json:"success_url" binding:"required"`
CancelURL string `json:"cancel_url" binding:"required"`
CustomerEmail string `json:"customer_email,omitempty"`
}
CreateCheckoutSessionRequest represents the request body for creating a checkout session
type CreateCheckoutSessionResponse ¶
type CreateCheckoutSessionResponse struct {
SessionID string `json:"session_id"`
CheckoutURL string `json:"checkout_url"`
Amount float64 `json:"amount"`
}
CreateCheckoutSessionResponse represents the response for checkout session creation
type CreditsHandler ¶
type CreditsHandler struct {
// contains filtered or unexported fields
}
func NewCreditsHandler ¶
func NewCreditsHandler(creditsService *usage.CreditsService, authProvider auth.AuthProvider) *CreditsHandler
func (*CreditsHandler) CheckCredits ¶
func (h *CreditsHandler) CheckCredits(c *fiber.Ctx) error
CheckCredits checks if an organization has sufficient credits
func (*CreditsHandler) GetBalance ¶
func (h *CreditsHandler) GetBalance(c *fiber.Ctx) error
GetBalance retrieves the current credit balance for an organization
func (*CreditsHandler) GetTransactionHistory ¶
func (h *CreditsHandler) GetTransactionHistory(c *fiber.Ctx) error
GetTransactionHistory retrieves transaction history for an organization
type GetBalanceResponse ¶
type GetBalanceResponse struct {
OrganizationID string `json:"organization_id"`
Balance float64 `json:"balance"`
TotalPurchased float64 `json:"total_purchased"`
TotalUsed float64 `json:"total_used"`
}
GetBalanceResponse represents the response for balance queries
type GetTransactionHistoryResponse ¶
type GetTransactionHistoryResponse struct {
Transactions []TransactionItem `json:"transactions"`
Total int `json:"total"`
Limit int `json:"limit"`
Offset int `json:"offset"`
}
GetTransactionHistoryResponse represents a transaction in the history
type HealthHandler ¶
type HealthHandler struct {
// contains filtered or unexported fields
}
func NewHealthHandler ¶
func (*HealthHandler) HealthCheck ¶
func (h *HealthHandler) HealthCheck(c *fiber.Ctx) error
type MessagesHandler ¶
type MessagesHandler struct {
// contains filtered or unexported fields
}
MessagesHandler handles Anthropic Messages API requests using dedicated Anthropic services
func NewMessagesHandler ¶
func NewMessagesHandler( cfg *config.Config, modelRouter *model_router.ModelRouter, circuitBreakers map[string]*circuitbreaker.CircuitBreaker, usageService *usage.Service, usageWorker *usage.Worker, providerConfigSvc *provider_config.Service, ) *MessagesHandler
NewMessagesHandler creates a new MessagesHandler with Anthropic-specific services
type ProjectsHandler ¶
type ProjectsHandler struct {
// contains filtered or unexported fields
}
func NewProjectsHandler ¶
func NewProjectsHandler(projectsService *projects.Service) *ProjectsHandler
func (*ProjectsHandler) CreateProject ¶
func (h *ProjectsHandler) CreateProject(c *fiber.Ctx) error
func (*ProjectsHandler) DeleteProject ¶
func (h *ProjectsHandler) DeleteProject(c *fiber.Ctx) error
func (*ProjectsHandler) GetProject ¶
func (h *ProjectsHandler) GetProject(c *fiber.Ctx) error
func (*ProjectsHandler) ListMembers ¶
func (h *ProjectsHandler) ListMembers(c *fiber.Ctx) error
func (*ProjectsHandler) ListProjects ¶
func (h *ProjectsHandler) ListProjects(c *fiber.Ctx) error
func (*ProjectsHandler) RemoveMember ¶
func (h *ProjectsHandler) RemoveMember(c *fiber.Ctx) error
func (*ProjectsHandler) UpdateMemberRole ¶
func (h *ProjectsHandler) UpdateMemberRole(c *fiber.Ctx) error
func (*ProjectsHandler) UpdateProject ¶
func (h *ProjectsHandler) UpdateProject(c *fiber.Ctx) error
type ProviderConfigHandler ¶
type ProviderConfigHandler struct {
// contains filtered or unexported fields
}
ProviderConfigHandler handles provider configuration API requests
func NewProviderConfigHandler ¶
func NewProviderConfigHandler(service *provider_config.Service) *ProviderConfigHandler
NewProviderConfigHandler creates a new provider config handler
func (*ProviderConfigHandler) CreateOrganizationProvider ¶
func (h *ProviderConfigHandler) CreateOrganizationProvider(c *fiber.Ctx) error
CreateOrganizationProvider creates a provider config for an organization POST /v1/organizations/:id/providers/:provider
func (*ProviderConfigHandler) CreateProjectProvider ¶
func (h *ProviderConfigHandler) CreateProjectProvider(c *fiber.Ctx) error
CreateProjectProvider creates or updates a provider config for a project POST /v1/projects/:id/providers/:provider
func (*ProviderConfigHandler) DeleteOrganizationProvider ¶
func (h *ProviderConfigHandler) DeleteOrganizationProvider(c *fiber.Ctx) error
DeleteOrganizationProvider deletes a provider config for an organization DELETE /v1/organizations/:id/providers/:provider
func (*ProviderConfigHandler) DeleteProjectProvider ¶
func (h *ProviderConfigHandler) DeleteProjectProvider(c *fiber.Ctx) error
DeleteProjectProvider deletes a provider config for a project DELETE /v1/projects/:id/providers/:provider
func (*ProviderConfigHandler) GetOrganizationProviders ¶
func (h *ProviderConfigHandler) GetOrganizationProviders(c *fiber.Ctx) error
GetOrganizationProviders returns all database provider configs for an organization GET /v1/organizations/:id/providers
func (*ProviderConfigHandler) GetProjectProvider ¶
func (h *ProviderConfigHandler) GetProjectProvider(c *fiber.Ctx) error
GetProjectProvider returns a specific provider config for a project GET /v1/projects/:id/providers/:provider
func (*ProviderConfigHandler) GetProjectProviders ¶
func (h *ProviderConfigHandler) GetProjectProviders(c *fiber.Ctx) error
GetProjectProviders returns all database provider configs for a project GET /v1/projects/:id/providers
func (*ProviderConfigHandler) GetProviderConfigHistory ¶
func (h *ProviderConfigHandler) GetProviderConfigHistory(c *fiber.Ctx) error
GetProviderConfigHistory retrieves audit history for a provider config GET /v1/provider-configs/:id/history
func (*ProviderConfigHandler) ToggleOrganizationProvider ¶
func (h *ProviderConfigHandler) ToggleOrganizationProvider(c *fiber.Ctx) error
ToggleOrganizationProvider toggles the enabled status of an organization provider config PATCH /v1/organizations/:id/providers/:provider/toggle
func (*ProviderConfigHandler) ToggleProjectProvider ¶
func (h *ProviderConfigHandler) ToggleProjectProvider(c *fiber.Ctx) error
ToggleProjectProvider toggles the enabled status of a project provider config PATCH /v1/projects/:id/providers/:provider/toggle
func (*ProviderConfigHandler) UpdateOrganizationProvider ¶
func (h *ProviderConfigHandler) UpdateOrganizationProvider(c *fiber.Ctx) error
UpdateOrganizationProvider updates a provider config for an organization PATCH /v1/organizations/:id/providers/:provider
func (*ProviderConfigHandler) UpdateProjectProvider ¶
func (h *ProviderConfigHandler) UpdateProjectProvider(c *fiber.Ctx) error
UpdateProjectProvider updates a provider config for a project PATCH /v1/projects/:id/providers/:provider
type SelectModelHandler ¶
type SelectModelHandler struct {
// contains filtered or unexported fields
}
SelectModelHandler handles model selection requests. It determines which model/provider would be selected for a given provider-agnostic request without actually executing the completion.
func NewSelectModelHandler ¶
func NewSelectModelHandler( cfg *config.Config, requestSvc *select_model.RequestService, selectModelSvc *select_model.Service, responseSvc *select_model.ResponseService, circuitBreakers map[string]*circuitbreaker.CircuitBreaker, ) *SelectModelHandler
NewSelectModelHandler initializes the select model handler with injected dependencies.
func (*SelectModelHandler) SelectModel ¶
func (h *SelectModelHandler) SelectModel(c *fiber.Ctx) error
SelectModel handles the model selection HTTP request. It processes a provider-agnostic model selection request and returns the selected model/provider without actually executing the completion.
type StripeHandler ¶
type StripeHandler struct {
// contains filtered or unexported fields
}
func NewStripeHandler ¶
func NewStripeHandler(stripeService *usage.StripeService) *StripeHandler
func (*StripeHandler) CreateCheckoutSession ¶
func (h *StripeHandler) CreateCheckoutSession(c *fiber.Ctx) error
CreateCheckoutSession creates a Stripe checkout session for purchasing credits
func (*StripeHandler) HandleWebhook ¶
func (h *StripeHandler) HandleWebhook(c *fiber.Ctx) error
HandleWebhook processes Stripe webhook events
type TransactionItem ¶
type TransactionItem struct {
ID uint `json:"id"`
OrganizationID string `json:"organization_id"`
UserID string `json:"user_id"`
Type string `json:"type"`
Amount float64 `json:"amount"`
BalanceAfter float64 `json:"balance_after"`
Description string `json:"description"`
Metadata map[string]any `json:"metadata,omitempty"`
CreatedAt string `json:"created_at"`
}
TransactionItem represents a single transaction
type UsageHandler ¶
type UsageHandler struct {
// contains filtered or unexported fields
}
func NewUsageHandler ¶
func NewUsageHandler(usageService *usage.Service) *UsageHandler
func (*UsageHandler) GetUsageByAPIKey ¶
func (h *UsageHandler) GetUsageByAPIKey(c *fiber.Ctx) error
func (*UsageHandler) GetUsageByPeriod ¶
func (h *UsageHandler) GetUsageByPeriod(c *fiber.Ctx) error
func (*UsageHandler) GetUsageStats ¶
func (h *UsageHandler) GetUsageStats(c *fiber.Ctx) error
func (*UsageHandler) RecordUsage ¶
func (h *UsageHandler) RecordUsage(c *fiber.Ctx) error
func (*UsageHandler) RegisterRoutes ¶
func (h *UsageHandler) RegisterRoutes(app *fiber.App, basePath string)