config

package
v1.19.0 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIKey added in v0.13.0

type APIKey struct {
	Key         string   `json:"key" mapstructure:"key"`
	UserID      string   `json:"user_id" mapstructure:"user_id"`
	Role        string   `json:"role" mapstructure:"role"`
	Permissions []string `json:"permissions" mapstructure:"permissions"`
	CreatedAt   string   `json:"created_at" mapstructure:"created_at"`
	ExpiresAt   string   `json:"expires_at,omitempty" mapstructure:"expires_at"`
}

APIKey represents an API key configuration

func (*APIKey) HasPermission added in v0.13.0

func (apiKey *APIKey) HasPermission(permission string) bool

HasPermission checks if a user has a specific permission

type AuthConfig added in v0.13.0

type AuthConfig struct {
	Enabled bool              `json:"enabled" mapstructure:"enabled"`
	Static  *StaticAuthConfig `json:"static,omitempty" mapstructure:"static"`
	GitHub  *GitHubAuthConfig `json:"github,omitempty" mapstructure:"github"`
}

AuthConfig represents authentication configuration

type Config

type Config struct {
	// StartPort is the starting port for agentapi servers
	StartPort int `json:"start_port" mapstructure:"start_port"`
	// Auth represents authentication configuration
	Auth AuthConfig `json:"auth" mapstructure:"auth"`
	// Persistence represents session persistence configuration
	Persistence PersistenceConfig `json:"persistence" mapstructure:"persistence"`
}

Config represents the proxy configuration

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig returns a default configuration

func LoadConfig

func LoadConfig(filename string) (*Config, error)

LoadConfig loads configuration from a JSON file

func (*Config) ValidateAPIKey added in v0.13.0

func (c *Config) ValidateAPIKey(key string) (*APIKey, bool)

ValidateAPIKey validates an API key and returns user information

type GitHubAuthConfig added in v1.0.0

type GitHubAuthConfig struct {
	Enabled     bool              `json:"enabled" mapstructure:"enabled"`
	BaseURL     string            `json:"base_url" mapstructure:"base_url"`
	TokenHeader string            `json:"token_header" mapstructure:"token_header"`
	UserMapping GitHubUserMapping `json:"user_mapping" mapstructure:"user_mapping"`
}

GitHubAuthConfig represents GitHub OAuth authentication

type GitHubUserMapping added in v1.0.0

type GitHubUserMapping struct {
	DefaultRole        string                  `json:"default_role" mapstructure:"default_role"`
	DefaultPermissions []string                `json:"default_permissions" mapstructure:"default_permissions"`
	TeamRoleMapping    map[string]TeamRoleRule `json:"team_role_mapping" mapstructure:"team_role_mapping"`
}

GitHubUserMapping represents user role mapping configuration

type PersistenceConfig added in v1.0.0

type PersistenceConfig struct {
	Enabled               bool   `json:"enabled" mapstructure:"enabled"`
	Backend               string `json:"backend" mapstructure:"backend"` // "file", "sqlite", "postgres"
	FilePath              string `json:"file_path" mapstructure:"file_path"`
	SyncInterval          int    `json:"sync_interval_seconds" mapstructure:"sync_interval_seconds"`
	EncryptSecrets        bool   `json:"encrypt_sensitive_data" mapstructure:"encrypt_sensitive_data"`
	SessionRecoveryMaxAge int    `json:"session_recovery_max_age_hours" mapstructure:"session_recovery_max_age_hours"` // Max age in hours for session recovery
}

PersistenceConfig represents session persistence configuration

type StaticAuthConfig added in v1.0.0

type StaticAuthConfig struct {
	Enabled    bool     `json:"enabled" mapstructure:"enabled"`
	APIKeys    []APIKey `json:"api_keys" mapstructure:"api_keys"`
	KeysFile   string   `json:"keys_file" mapstructure:"keys_file"`
	HeaderName string   `json:"header_name" mapstructure:"header_name"`
}

StaticAuthConfig represents static API key authentication

type TeamRoleRule added in v1.0.0

type TeamRoleRule struct {
	Role        string   `json:"role" mapstructure:"role"`
	Permissions []string `json:"permissions" mapstructure:"permissions"`
}

TeamRoleRule represents a team-based role rule

Jump to

Keyboard shortcuts

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