management

package
v6.8.21 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2026 License: MIT Imports: 49 Imported by: 0

Documentation

Overview

Package management provides the management API handlers and middleware for configuring the server and managing auth files.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CompleteOAuthSession added in v6.6.30

func CompleteOAuthSession(state string)

func CompleteOAuthSessionsByProvider added in v6.6.40

func CompleteOAuthSessionsByProvider(provider string) int

func GetOAuthSession added in v6.6.30

func GetOAuthSession(state string) (provider string, status string, ok bool)

func IsOAuthSessionPending added in v6.6.30

func IsOAuthSessionPending(state, provider string) bool

func NormalizeOAuthProvider added in v6.6.30

func NormalizeOAuthProvider(provider string) (string, error)

func RegisterOAuthSession added in v6.6.30

func RegisterOAuthSession(state, provider string)

func SetOAuthSessionError added in v6.6.30

func SetOAuthSessionError(state, message string)

func ValidateOAuthState added in v6.6.30

func ValidateOAuthState(state string) error

func WriteConfig added in v6.2.24

func WriteConfig(path string, data []byte) error

func WriteOAuthCallbackFile added in v6.6.30

func WriteOAuthCallbackFile(authDir, provider, state, code, errorMessage string) (string, error)

func WriteOAuthCallbackFileForPendingSession added in v6.6.30

func WriteOAuthCallbackFileForPendingSession(authDir, provider, state, code, errorMessage string) (string, error)

Types

type Handler

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

Handler aggregates config reference, persistence path and helpers.

func NewHandler

func NewHandler(cfg *config.Config, configFilePath string, manager *coreauth.Manager) *Handler

NewHandler creates a new management handler instance.

func NewHandlerWithoutConfigFilePath added in v6.6.64

func NewHandlerWithoutConfigFilePath(cfg *config.Config, manager *coreauth.Manager) *Handler

NewHandler creates a new management handler instance.

func (*Handler) APICall added in v6.6.63

func (h *Handler) APICall(c *gin.Context)

APICall makes a generic HTTP request on behalf of the management API caller. It is protected by the management middleware.

Endpoint:

POST /v0/management/api-call

Authentication:

Same as other management APIs (requires a management key and remote-management rules).
You can provide the key via:
- Authorization: Bearer <key>
- X-Management-Key: <key>

Request JSON:

  • auth_index / authIndex / AuthIndex (optional): The credential "auth_index" from GET /v0/management/auth-files (or other endpoints returning it). If omitted or not found, credential-specific proxy/token substitution is skipped.
  • method (required): HTTP method, e.g. GET, POST, PUT, PATCH, DELETE.
  • url (required): Absolute URL including scheme and host, e.g. "https://api.example.com/v1/ping".
  • header (optional): Request headers map. Supports magic variable "$TOKEN$" which is replaced using the selected credential: 1) metadata.access_token 2) attributes.api_key 3) metadata.token / metadata.id_token / metadata.cookie Example: {"Authorization":"Bearer $TOKEN$"}. Note: if you need to override the HTTP Host header, set header["Host"].
  • data (optional): Raw request body as string (useful for POST/PUT/PATCH).

Proxy selection (highest priority first):

  1. Selected credential proxy_url
  2. Global config proxy-url
  3. Direct connect (environment proxies are not used)

Response JSON (returned with HTTP 200 when the APICall itself succeeds):

  • status_code: Upstream HTTP status code.
  • header: Upstream response headers.
  • body: Upstream response body as string.

Example:

curl -sS -X POST "http://127.0.0.1:8317/v0/management/api-call" \
  -H "Authorization: Bearer <MANAGEMENT_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"auth_index":"<AUTH_INDEX>","method":"GET","url":"https://api.example.com/v1/ping","header":{"Authorization":"Bearer $TOKEN$"}}'

curl -sS -X POST "http://127.0.0.1:8317/v0/management/api-call" \
  -H "Authorization: Bearer 831227" \
  -H "Content-Type: application/json" \
  -d '{"auth_index":"<AUTH_INDEX>","method":"POST","url":"https://api.example.com/v1/fetchAvailableModels","header":{"Authorization":"Bearer $TOKEN$","Content-Type":"application/json","User-Agent":"cliproxyapi"},"data":"{}"}'

func (*Handler) DeleteAPIKeys

func (h *Handler) DeleteAPIKeys(c *gin.Context)

func (*Handler) DeleteAmpModelMappings added in v6.5.56

func (h *Handler) DeleteAmpModelMappings(c *gin.Context)

DeleteAmpModelMappings removes specified model mappings by "from" field.

func (*Handler) DeleteAmpUpstreamAPIKey added in v6.5.56

func (h *Handler) DeleteAmpUpstreamAPIKey(c *gin.Context)

DeleteAmpUpstreamAPIKey clears the ampcode upstream API key.

func (*Handler) DeleteAmpUpstreamAPIKeys added in v6.6.65

func (h *Handler) DeleteAmpUpstreamAPIKeys(c *gin.Context)

DeleteAmpUpstreamAPIKeys removes specified upstream API keys entries. Body must be JSON: {"value": ["<upstream-api-key>", ...]}. If "value" is an empty array, clears all entries. If JSON is invalid or "value" is missing/null, returns 400 and does not persist any change.

func (*Handler) DeleteAmpUpstreamURL added in v6.5.56

func (h *Handler) DeleteAmpUpstreamURL(c *gin.Context)

DeleteAmpUpstreamURL clears the ampcode upstream URL.

func (*Handler) DeleteAuthFile

func (h *Handler) DeleteAuthFile(c *gin.Context)

Delete auth files: single by name or all

func (*Handler) DeleteClaudeKey

func (h *Handler) DeleteClaudeKey(c *gin.Context)

func (*Handler) DeleteCodexKey

func (h *Handler) DeleteCodexKey(c *gin.Context)

func (*Handler) DeleteGeminiKey added in v6.3.2

func (h *Handler) DeleteGeminiKey(c *gin.Context)

func (*Handler) DeleteLogs added in v6.2.14

func (h *Handler) DeleteLogs(c *gin.Context)

DeleteLogs removes all rotated log files and truncates the active log.

func (*Handler) DeleteOAuthExcludedModels added in v6.5.28

func (h *Handler) DeleteOAuthExcludedModels(c *gin.Context)

func (*Handler) DeleteOAuthModelAlias added in v6.7.0

func (h *Handler) DeleteOAuthModelAlias(c *gin.Context)

func (*Handler) DeleteOpenAICompat

func (h *Handler) DeleteOpenAICompat(c *gin.Context)

func (*Handler) DeleteProxyURL

func (h *Handler) DeleteProxyURL(c *gin.Context)

func (*Handler) DeleteVertexCompatKey added in v6.6.82

func (h *Handler) DeleteVertexCompatKey(c *gin.Context)

func (*Handler) DownloadAuthFile

func (h *Handler) DownloadAuthFile(c *gin.Context)

Download single auth file by name

func (*Handler) DownloadRequestErrorLog added in v6.5.12

func (h *Handler) DownloadRequestErrorLog(c *gin.Context)

DownloadRequestErrorLog downloads a specific error request log file by name.

func (*Handler) ExportUsageStatistics added in v6.6.56

func (h *Handler) ExportUsageStatistics(c *gin.Context)

ExportUsageStatistics returns a complete usage snapshot for backup/migration.

func (*Handler) GetAPIKeys

func (h *Handler) GetAPIKeys(c *gin.Context)

api-keys

func (*Handler) GetAmpCode added in v6.5.56

func (h *Handler) GetAmpCode(c *gin.Context)

GetAmpCode returns the complete ampcode configuration.

func (*Handler) GetAmpForceModelMappings added in v6.5.56

func (h *Handler) GetAmpForceModelMappings(c *gin.Context)

GetAmpForceModelMappings returns whether model mappings are forced.

func (*Handler) GetAmpModelMappings added in v6.5.56

func (h *Handler) GetAmpModelMappings(c *gin.Context)

GetAmpModelMappings returns the ampcode model mappings.

func (*Handler) GetAmpRestrictManagementToLocalhost added in v6.5.56

func (h *Handler) GetAmpRestrictManagementToLocalhost(c *gin.Context)

GetAmpRestrictManagementToLocalhost returns the localhost restriction setting.

func (*Handler) GetAmpUpstreamAPIKey added in v6.5.56

func (h *Handler) GetAmpUpstreamAPIKey(c *gin.Context)

GetAmpUpstreamAPIKey returns the ampcode upstream API key.

func (*Handler) GetAmpUpstreamAPIKeys added in v6.6.65

func (h *Handler) GetAmpUpstreamAPIKeys(c *gin.Context)

GetAmpUpstreamAPIKeys returns the ampcode upstream API keys mapping.

func (*Handler) GetAmpUpstreamURL added in v6.5.56

func (h *Handler) GetAmpUpstreamURL(c *gin.Context)

GetAmpUpstreamURL returns the ampcode upstream URL.

func (*Handler) GetAuthFileModels added in v6.6.11

func (h *Handler) GetAuthFileModels(c *gin.Context)

GetAuthFileModels returns the models supported by a specific auth file

func (*Handler) GetAuthStatus

func (h *Handler) GetAuthStatus(c *gin.Context)

func (*Handler) GetClaudeKeys

func (h *Handler) GetClaudeKeys(c *gin.Context)

claude-api-key: []ClaudeKey

func (*Handler) GetCodexKeys

func (h *Handler) GetCodexKeys(c *gin.Context)

codex-api-key: []CodexKey

func (*Handler) GetConfig

func (h *Handler) GetConfig(c *gin.Context)

func (*Handler) GetConfigYAML added in v6.2.24

func (h *Handler) GetConfigYAML(c *gin.Context)

GetConfigYAML returns the raw config.yaml file bytes without re-encoding. It preserves comments and original formatting/styles.

func (*Handler) GetDebug

func (h *Handler) GetDebug(c *gin.Context)

Debug

func (*Handler) GetErrorLogsMaxFiles added in v6.7.40

func (h *Handler) GetErrorLogsMaxFiles(c *gin.Context)

ErrorLogsMaxFiles

func (*Handler) GetForceModelPrefix added in v6.6.82

func (h *Handler) GetForceModelPrefix(c *gin.Context)

ForceModelPrefix

func (*Handler) GetGeminiKeys added in v6.3.2

func (h *Handler) GetGeminiKeys(c *gin.Context)

gemini-api-key: []GeminiKey

func (*Handler) GetLatestVersion added in v6.5.42

func (h *Handler) GetLatestVersion(c *gin.Context)

GetLatestVersion returns the latest release version from GitHub without downloading assets.

func (*Handler) GetLoggingToFile added in v6.0.5

func (h *Handler) GetLoggingToFile(c *gin.Context)

UsageStatisticsEnabled

func (*Handler) GetLogs added in v6.2.14

func (h *Handler) GetLogs(c *gin.Context)

GetLogs returns log lines with optional incremental loading.

func (*Handler) GetLogsMaxTotalSizeMB added in v6.6.82

func (h *Handler) GetLogsMaxTotalSizeMB(c *gin.Context)

LogsMaxTotalSizeMB

func (*Handler) GetMaxRetryInterval added in v6.5.13

func (h *Handler) GetMaxRetryInterval(c *gin.Context)

Max retry interval

func (*Handler) GetOAuthExcludedModels added in v6.5.28

func (h *Handler) GetOAuthExcludedModels(c *gin.Context)

oauth-excluded-models: map[string][]string

func (*Handler) GetOAuthModelAlias added in v6.7.0

func (h *Handler) GetOAuthModelAlias(c *gin.Context)

oauth-model-alias: map[string][]OAuthModelAlias

func (*Handler) GetOpenAICompat

func (h *Handler) GetOpenAICompat(c *gin.Context)

openai-compatibility: []OpenAICompatibility

func (*Handler) GetProxyURL

func (h *Handler) GetProxyURL(c *gin.Context)

Proxy URL

func (*Handler) GetRequestErrorLogs added in v6.5.12

func (h *Handler) GetRequestErrorLogs(c *gin.Context)

GetRequestErrorLogs lists error request log files when RequestLog is disabled. It returns an empty list when RequestLog is enabled.

func (*Handler) GetRequestLog

func (h *Handler) GetRequestLog(c *gin.Context)

Request log

func (*Handler) GetRequestLogByID added in v6.6.51

func (h *Handler) GetRequestLogByID(c *gin.Context)

GetRequestLogByID finds and downloads a request log file by its request ID. The ID is matched against the suffix of log file names (format: *-{requestID}.log).

func (*Handler) GetRequestRetry

func (h *Handler) GetRequestRetry(c *gin.Context)

Request retry

func (*Handler) GetRoutingStrategy added in v6.6.82

func (h *Handler) GetRoutingStrategy(c *gin.Context)

RoutingStrategy

func (*Handler) GetStaticModelDefinitions added in v6.7.26

func (h *Handler) GetStaticModelDefinitions(c *gin.Context)

GetStaticModelDefinitions returns static model metadata for a given channel. Channel is provided via path param (:channel) or query param (?channel=...).

func (*Handler) GetSwitchPreviewModel

func (h *Handler) GetSwitchPreviewModel(c *gin.Context)

func (*Handler) GetSwitchProject

func (h *Handler) GetSwitchProject(c *gin.Context)

Quota exceeded toggles

func (*Handler) GetUsageStatistics

func (h *Handler) GetUsageStatistics(c *gin.Context)

GetUsageStatistics returns the in-memory request statistics snapshot.

func (*Handler) GetUsageStatisticsEnabled added in v6.0.5

func (h *Handler) GetUsageStatisticsEnabled(c *gin.Context)

UsageStatisticsEnabled

func (*Handler) GetVertexCompatKeys added in v6.6.82

func (h *Handler) GetVertexCompatKeys(c *gin.Context)

vertex-api-key: []VertexCompatKey

func (*Handler) GetWebsocketAuth added in v6.3.31

func (h *Handler) GetWebsocketAuth(c *gin.Context)

Websocket auth

func (*Handler) ImportUsageStatistics added in v6.6.56

func (h *Handler) ImportUsageStatistics(c *gin.Context)

ImportUsageStatistics merges a previously exported usage snapshot into memory.

func (*Handler) ImportVertexCredential added in v6.3.31

func (h *Handler) ImportVertexCredential(c *gin.Context)

ImportVertexCredential handles uploading a Vertex service account JSON and saving it as an auth record.

func (*Handler) ListAuthFiles

func (h *Handler) ListAuthFiles(c *gin.Context)

func (*Handler) Middleware

func (h *Handler) Middleware() gin.HandlerFunc

Middleware enforces access control for management endpoints. All requests (local and remote) require a valid management key. Additionally, remote access requires allow-remote-management=true.

func (*Handler) PatchAPIKeys

func (h *Handler) PatchAPIKeys(c *gin.Context)

func (*Handler) PatchAmpModelMappings added in v6.5.56

func (h *Handler) PatchAmpModelMappings(c *gin.Context)

PatchAmpModelMappings adds or updates model mappings.

func (*Handler) PatchAmpUpstreamAPIKeys added in v6.6.65

func (h *Handler) PatchAmpUpstreamAPIKeys(c *gin.Context)

PatchAmpUpstreamAPIKeys adds or updates upstream API keys entries. Matching is done by upstream-api-key value.

func (*Handler) PatchAuthFileFields added in v6.8.20

func (h *Handler) PatchAuthFileFields(c *gin.Context)

PatchAuthFileFields updates editable fields (prefix, proxy_url, priority) of an auth file.

func (*Handler) PatchAuthFileStatus added in v6.7.18

func (h *Handler) PatchAuthFileStatus(c *gin.Context)

PatchAuthFileStatus toggles the disabled state of an auth file

func (*Handler) PatchClaudeKey

func (h *Handler) PatchClaudeKey(c *gin.Context)

func (*Handler) PatchCodexKey

func (h *Handler) PatchCodexKey(c *gin.Context)

func (*Handler) PatchGeminiKey added in v6.3.2

func (h *Handler) PatchGeminiKey(c *gin.Context)

func (*Handler) PatchOAuthExcludedModels added in v6.5.28

func (h *Handler) PatchOAuthExcludedModels(c *gin.Context)

func (*Handler) PatchOAuthModelAlias added in v6.7.0

func (h *Handler) PatchOAuthModelAlias(c *gin.Context)

func (*Handler) PatchOpenAICompat

func (h *Handler) PatchOpenAICompat(c *gin.Context)

func (*Handler) PatchVertexCompatKey added in v6.6.82

func (h *Handler) PatchVertexCompatKey(c *gin.Context)

func (*Handler) PostOAuthCallback added in v6.6.30

func (h *Handler) PostOAuthCallback(c *gin.Context)

func (*Handler) PutAPIKeys

func (h *Handler) PutAPIKeys(c *gin.Context)

func (*Handler) PutAmpForceModelMappings added in v6.5.56

func (h *Handler) PutAmpForceModelMappings(c *gin.Context)

PutAmpForceModelMappings updates the force model mappings setting.

func (*Handler) PutAmpModelMappings added in v6.5.56

func (h *Handler) PutAmpModelMappings(c *gin.Context)

PutAmpModelMappings replaces all ampcode model mappings.

func (*Handler) PutAmpRestrictManagementToLocalhost added in v6.5.56

func (h *Handler) PutAmpRestrictManagementToLocalhost(c *gin.Context)

PutAmpRestrictManagementToLocalhost updates the localhost restriction setting.

func (*Handler) PutAmpUpstreamAPIKey added in v6.5.56

func (h *Handler) PutAmpUpstreamAPIKey(c *gin.Context)

PutAmpUpstreamAPIKey updates the ampcode upstream API key.

func (*Handler) PutAmpUpstreamAPIKeys added in v6.6.65

func (h *Handler) PutAmpUpstreamAPIKeys(c *gin.Context)

PutAmpUpstreamAPIKeys replaces all ampcode upstream API keys mappings.

func (*Handler) PutAmpUpstreamURL added in v6.5.56

func (h *Handler) PutAmpUpstreamURL(c *gin.Context)

PutAmpUpstreamURL updates the ampcode upstream URL.

func (*Handler) PutClaudeKeys

func (h *Handler) PutClaudeKeys(c *gin.Context)

func (*Handler) PutCodexKeys

func (h *Handler) PutCodexKeys(c *gin.Context)

func (*Handler) PutConfigYAML added in v6.2.24

func (h *Handler) PutConfigYAML(c *gin.Context)

func (*Handler) PutDebug

func (h *Handler) PutDebug(c *gin.Context)

func (*Handler) PutErrorLogsMaxFiles added in v6.7.40

func (h *Handler) PutErrorLogsMaxFiles(c *gin.Context)

func (*Handler) PutForceModelPrefix added in v6.6.82

func (h *Handler) PutForceModelPrefix(c *gin.Context)

func (*Handler) PutGeminiKeys added in v6.3.2

func (h *Handler) PutGeminiKeys(c *gin.Context)

func (*Handler) PutLoggingToFile added in v6.0.5

func (h *Handler) PutLoggingToFile(c *gin.Context)

func (*Handler) PutLogsMaxTotalSizeMB added in v6.6.82

func (h *Handler) PutLogsMaxTotalSizeMB(c *gin.Context)

func (*Handler) PutMaxRetryInterval added in v6.5.13

func (h *Handler) PutMaxRetryInterval(c *gin.Context)

func (*Handler) PutOAuthExcludedModels added in v6.5.28

func (h *Handler) PutOAuthExcludedModels(c *gin.Context)

func (*Handler) PutOAuthModelAlias added in v6.7.0

func (h *Handler) PutOAuthModelAlias(c *gin.Context)

func (*Handler) PutOpenAICompat

func (h *Handler) PutOpenAICompat(c *gin.Context)

func (*Handler) PutProxyURL

func (h *Handler) PutProxyURL(c *gin.Context)

func (*Handler) PutRequestLog

func (h *Handler) PutRequestLog(c *gin.Context)

func (*Handler) PutRequestRetry

func (h *Handler) PutRequestRetry(c *gin.Context)

func (*Handler) PutRoutingStrategy added in v6.6.82

func (h *Handler) PutRoutingStrategy(c *gin.Context)

func (*Handler) PutSwitchPreviewModel

func (h *Handler) PutSwitchPreviewModel(c *gin.Context)

func (*Handler) PutSwitchProject

func (h *Handler) PutSwitchProject(c *gin.Context)

func (*Handler) PutUsageStatisticsEnabled added in v6.0.5

func (h *Handler) PutUsageStatisticsEnabled(c *gin.Context)

func (*Handler) PutVertexCompatKeys added in v6.6.82

func (h *Handler) PutVertexCompatKeys(c *gin.Context)

func (*Handler) PutWebsocketAuth added in v6.3.31

func (h *Handler) PutWebsocketAuth(c *gin.Context)

func (*Handler) RequestAnthropicToken

func (h *Handler) RequestAnthropicToken(c *gin.Context)

func (*Handler) RequestAntigravityToken added in v6.5.4

func (h *Handler) RequestAntigravityToken(c *gin.Context)

func (*Handler) RequestCodexToken

func (h *Handler) RequestCodexToken(c *gin.Context)

func (*Handler) RequestGeminiCLIToken

func (h *Handler) RequestGeminiCLIToken(c *gin.Context)

func (*Handler) RequestIFlowCookieToken added in v6.3.58

func (h *Handler) RequestIFlowCookieToken(c *gin.Context)

func (*Handler) RequestIFlowToken added in v6.1.0

func (h *Handler) RequestIFlowToken(c *gin.Context)

func (*Handler) RequestKimiToken added in v6.8.0

func (h *Handler) RequestKimiToken(c *gin.Context)

func (*Handler) RequestQwenToken

func (h *Handler) RequestQwenToken(c *gin.Context)

func (*Handler) SetAuthManager

func (h *Handler) SetAuthManager(manager *coreauth.Manager)

SetAuthManager updates the auth manager reference used by management endpoints.

func (*Handler) SetConfig

func (h *Handler) SetConfig(cfg *config.Config)

SetConfig updates the in-memory config reference when the server hot-reloads.

func (*Handler) SetLocalPassword added in v6.0.1

func (h *Handler) SetLocalPassword(password string)

SetLocalPassword configures the runtime-local password accepted for localhost requests.

func (*Handler) SetLogDirectory added in v6.2.14

func (h *Handler) SetLogDirectory(dir string)

SetLogDirectory updates the directory where main.log should be looked up.

func (*Handler) SetUsageStatistics

func (h *Handler) SetUsageStatistics(stats *usage.RequestStatistics)

SetUsageStatistics allows replacing the usage statistics reference.

func (*Handler) UploadAuthFile

func (h *Handler) UploadAuthFile(c *gin.Context)

Upload auth file: multipart or raw JSON with ?name=

Jump to

Keyboard shortcuts

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