controllers

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2026 License: AGPL-3.0 Imports: 22 Imported by: 0

Documentation

Overview

Package controllers contains HTTP handlers for the Starport API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminController

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

AdminController handles administrative endpoints

func NewAdminController

func NewAdminController(identities identity.Repository) *AdminController

NewAdminController creates a new admin controller

func (*AdminController) CreateKey

func (h *AdminController) CreateKey(w http.ResponseWriter, r *http.Request)

CreateKey handles POST /api/v1/admin/keys

func (*AdminController) DeleteKey

func (h *AdminController) DeleteKey(w http.ResponseWriter, r *http.Request)

DeleteKey handles DELETE /api/v1/admin/keys/{key_id}

func (*AdminController) GetKey

func (h *AdminController) GetKey(w http.ResponseWriter, r *http.Request)

GetKey handles GET /api/v1/admin/keys/{key_id}

func (*AdminController) ListKeys

func (h *AdminController) ListKeys(w http.ResponseWriter, r *http.Request)

ListKeys handles GET /api/v1/admin/keys

func (*AdminController) Metrics

func (h *AdminController) Metrics(w http.ResponseWriter, _ *http.Request)

Metrics handles GET /api/v1/admin/metrics

func (*AdminController) SystemInfo

func (h *AdminController) SystemInfo(w http.ResponseWriter, _ *http.Request)

SystemInfo handles GET /api/v1/admin/info

func (*AdminController) UpdateKey

func (h *AdminController) UpdateKey(w http.ResponseWriter, r *http.Request)

UpdateKey handles PUT /api/v1/admin/keys/{key_id}

type BaseHandler

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

BaseHandler provides common functionality for all handlers

func NewBaseHandler

func NewBaseHandler(service proxy.Proxy) *BaseHandler

NewBaseHandler creates a new base handler

func NewProtocolBaseHandler

func NewProtocolBaseHandler(service proxy.Proxy, protocol Protocol) *BaseHandler

NewProtocolBaseHandler creates a handler for one explicit wire dialect.

type ChatController

type ChatController struct {
	*BaseHandler
}

ChatController handles chat completion endpoints

func NewChatController

func NewChatController(service proxy.Proxy) *ChatController

NewChatController creates a new chat controller

func NewOpenRouterChatController

func NewOpenRouterChatController(service proxy.Proxy) *ChatController

NewOpenRouterChatController creates an OpenRouter chat controller.

func (*ChatController) Create

func (h *ChatController) Create(w http.ResponseWriter, r *http.Request)

Create handles POST /v1/chat/completions and /api/v1/chat/completions

type Config

type Config struct {
	Service      proxy.Proxy
	ProviderKeys byok.ProviderKeys
	Identities   identity.Repository
	ServiceName  string
	Version      string
	ChatUI       *chatui.Handler
}

Config holds configuration for creating handlers

type Controllers

type Controllers struct {
	Health               *HealthController
	Chat                 *ChatController
	OpenRouterChat       *ChatController
	Embeddings           *EmbeddingsController
	OpenRouterEmbeddings *EmbeddingsController
	Models               *ModelsController
	OpenRouterModels     *ModelsController
	Providers            *ProvidersController
	ProviderKeys         *ProviderKeysController
	Admin                *AdminController
	ChatUI               *chatui.Handler
}

Controllers holds all HTTP Controllers

func NewControllers

func NewControllers(cfg Config) *Controllers

NewControllers creates a new controller collection

type EmbeddingsController

type EmbeddingsController struct {
	*BaseHandler
}

EmbeddingsController handles embeddings endpoints

func NewEmbeddingsController

func NewEmbeddingsController(service proxy.Proxy) *EmbeddingsController

NewEmbeddingsController creates a new embeddings controller

func NewOpenRouterEmbeddingsController

func NewOpenRouterEmbeddingsController(service proxy.Proxy) *EmbeddingsController

NewOpenRouterEmbeddingsController creates an OpenRouter embeddings controller.

func (*EmbeddingsController) Create

Create handles POST /v1/embeddings and /api/v1/embeddings

type HealthController

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

HealthController handles health check endpoints

func NewHealthController

func NewHealthController(service, version string) *HealthController

NewHealthController creates a new health controller

func (*HealthController) Live

Live handles GET /health/live

func (*HealthController) Ready

Ready handles GET /health/ready

type ModelsController

type ModelsController struct {
	*BaseHandler
}

ModelsController handles model-related endpoints

func NewModelsController

func NewModelsController(service proxy.Proxy) *ModelsController

NewModelsController creates a new models controller

func NewOpenRouterModelsController

func NewOpenRouterModelsController(service proxy.Proxy) *ModelsController

NewOpenRouterModelsController creates an OpenRouter models controller.

func (*ModelsController) Get

Get handles GET /v1/models/{model} and /api/v1/models/{model}

func (*ModelsController) GetEndpoints

func (h *ModelsController) GetEndpoints(w http.ResponseWriter, r *http.Request)

GetEndpoints handles GET /api/v1/models/{model}/endpoints

func (*ModelsController) List

List handles GET /v1/models and /api/v1/models

type Protocol

type Protocol string

Protocol identifies one external HTTP dialect.

const (
	// ProtocolOpenAI selects the OpenAI v1 contract.
	ProtocolOpenAI Protocol = "openai"
	// ProtocolOpenRouter selects the OpenRouter v1 contract.
	ProtocolOpenRouter Protocol = "openrouter"
)

type ProviderKeysController

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

ProviderKeysController handles provider key management endpoints

func NewProviderKeysController

func NewProviderKeysController(providerKeys byok.ProviderKeys) *ProviderKeysController

NewProviderKeysController creates a new provider keys controller

func (*ProviderKeysController) Create

Create handles POST /api/v1/keys/{key_id}/provider-keys

func (*ProviderKeysController) Delete

Delete handles DELETE /api/v1/keys/{key_id}/provider-keys/{provider}

func (*ProviderKeysController) Get

Get handles GET /api/v1/keys/{key_id}/provider-keys/{provider}

func (*ProviderKeysController) GetUsage

GetUsage handles GET /api/v1/keys/{key_id}/usage/provider-keys

func (*ProviderKeysController) GetUsageComparison

func (h *ProviderKeysController) GetUsageComparison(w http.ResponseWriter, _ *http.Request)

GetUsageComparison handles GET /api/v1/keys/{key_id}/usage/comparison

func (*ProviderKeysController) List

List handles GET /api/v1/keys/{key_id}/provider-keys

func (*ProviderKeysController) Update

Update handles PUT /api/v1/keys/{key_id}/provider-keys/{provider}

func (*ProviderKeysController) Validate

Validate handles POST /api/v1/keys/{key_id}/provider-keys/{provider}/validate

type ProvidersController

type ProvidersController struct {
	*BaseHandler
}

ProvidersController handles provider-related endpoints

func NewProvidersController

func NewProvidersController(service proxy.Proxy) *ProvidersController

NewProvidersController creates a new providers controller

func (*ProvidersController) List

List handles GET /api/v1/providers

Jump to

Keyboard shortcuts

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