services

package
v1.232.0 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2026 License: MIT Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Environment variable names for Claude credentials
	EnvClaudeAccessToken  = "CLAUDE_ACCESS_TOKEN"
	EnvClaudeRefreshToken = "CLAUDE_REFRESH_TOKEN"
	EnvClaudeExpiresAt    = "CLAUDE_EXPIRES_AT"
)
View Source
const (
	// EnvSecretPrefix is the prefix for environment variable Secret names
	EnvSecretPrefix = "agent-env-"
	// LabelEnv is the label key for environment variable resources
	LabelEnv = "agentapi.proxy/env"
	// LabelEnvName is the label key for environment variable name
	LabelEnvName = "agentapi.proxy/env-name"
	// LabelManagedBy is the label key for managed-by
	LabelManagedBy = "agentapi.proxy/managed-by"
)
View Source
const (
	// MarketplaceSecretPrefix is the prefix for marketplace Secret names
	MarketplaceSecretPrefix = "marketplaces-"
	// MarketplaceSecretDataKey is the key in the Secret data for marketplace configuration
	MarketplaceSecretDataKey = "marketplaces.json"
	// LabelMarketplaces is the label key for marketplace resources
	LabelMarketplaces = "agentapi.proxy/marketplaces"
	// LabelMarketplacesName is the label key for marketplace name
	LabelMarketplacesName = "agentapi.proxy/marketplaces-name"
)
View Source
const (
	// MCPSecretPrefix is the prefix for MCP servers Secret names
	// This matches the existing mcp_servers_user_secret_prefix default value
	MCPSecretPrefix = "mcp-servers-"
	// MCPSecretDataKey is the key in the Secret data for MCP servers configuration
	MCPSecretDataKey = "mcp-servers.json"
	// LabelMCPServers is the label key for MCP servers resources
	LabelMCPServers = "agentapi.proxy/mcp-servers"
	// LabelMCPServersName is the label key for MCP servers name
	LabelMCPServersName = "agentapi.proxy/mcp-servers-name"
)

Variables

This section is empty.

Functions

func BoolPtr added in v1.148.0

func BoolPtr(b bool) *bool

BoolPtr returns a pointer to a bool

func BootstrapPersonalAPIKeys added in v1.219.0

func BootstrapPersonalAPIKeys(
	ctx context.Context,
	authService *SimpleAuthService,
	personalAPIKeyRepo repositories.PersonalAPIKeyRepository,
) error

BootstrapPersonalAPIKeys loads existing personal API keys from Kubernetes into auth service

func BootstrapServiceAccounts added in v1.216.0

func BootstrapServiceAccounts(
	ctx context.Context,
	authService *SimpleAuthService,
	teamConfigRepo repositories.TeamConfigRepository,
) error

BootstrapServiceAccounts loads existing service accounts from Kubernetes and creates missing ones

func ExtractTeamEnvFile added in v1.148.0

func ExtractTeamEnvFile(tags map[string]string) string

ExtractTeamEnvFile extracts the env_file value from tags

func HashLabelValue added in v1.160.0

func HashLabelValue(value string) string

HashLabelValue creates a sha256 hash of a value for use as a Kubernetes label value This allows querying by values that may contain invalid characters (e.g., "/" in team IDs) The hash is truncated to 16 characters for brevity while maintaining uniqueness

func HashTeamID added in v1.148.0

func HashTeamID(teamID string) string

HashTeamID creates a sha256 hash of the team ID for use as a Kubernetes label value This allows querying by team_id without sanitization issues (e.g., "/" in team IDs) The hash is truncated to 63 characters to fit within Kubernetes label value limits

func Int64Ptr added in v1.148.0

func Int64Ptr(i int64) *int64

Int64Ptr returns a pointer to an int64

func MergeEnvironmentVariables added in v1.148.0

func MergeEnvironmentVariables(cfg EnvMergeConfig) (map[string]string, error)

MergeEnvironmentVariables merges environment variables from multiple sources with the following priority (highest to lowest): 1. Request environment variables 2. Team/organization specific environment file (from tags["env_file"]) 3. Auth team environment file (from team_role_mapping) 4. Role-based environment variables

func SanitizeLabelKey added in v1.148.0

func SanitizeLabelKey(s string) string

SanitizeLabelKey sanitizes a string to be used as a Kubernetes label key

func SanitizeLabelValue added in v1.148.0

func SanitizeLabelValue(s string) string

SanitizeLabelValue sanitizes a string to be used as a Kubernetes label value

func SanitizeSecretName added in v1.148.0

func SanitizeSecretName(s string) string

SanitizeSecretName sanitizes a string to be used as a Kubernetes Secret name Secret names must be lowercase, alphanumeric, and may contain dashes Example: "myorg/backend-team" -> "myorg-backend-team"

Types

type AuthServiceForBootstrap added in v1.216.0

type AuthServiceForBootstrap interface {
	CreateServiceAccountForTeam(ctx context.Context, teamID string, teamConfigRepo repositories.TeamConfigRepository) error
	LoadServiceAccountFromTeamConfig(ctx context.Context, teamConfig interface{}) error
}

AuthServiceForBootstrap defines the interface for auth service methods needed by bootstrap

type ChainCredentialProvider added in v1.148.0

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

ChainCredentialProvider tries multiple providers in order until one succeeds

func NewChainCredentialProvider added in v1.148.0

func NewChainCredentialProvider(providers ...CredentialProvider) *ChainCredentialProvider

NewChainCredentialProvider creates a new ChainCredentialProvider

func (*ChainCredentialProvider) Load added in v1.148.0

Load attempts to load credentials from each provider in order Returns the first successful result Returns nil, nil if all providers return nil

func (*ChainCredentialProvider) Name added in v1.148.0

func (p *ChainCredentialProvider) Name() string

Name returns the provider name

type ClaudeCredentials added in v1.148.0

type ClaudeCredentials struct {
	AccessToken  string
	RefreshToken string
	ExpiresAt    string // epoch milliseconds as string

	// RawJSON contains the original credentials.json file content
	// When set, this should be used directly instead of reconstructing from fields
	RawJSON []byte
}

ClaudeCredentials represents Claude authentication credentials

type CredentialProvider added in v1.148.0

type CredentialProvider interface {
	// Name returns the provider name for logging purposes
	Name() string

	// Load attempts to load credentials from this provider for the specified user
	// userID is used to locate user-specific credential files
	// Returns nil, nil if credentials are not available (not an error)
	// Returns nil, error if there was an error loading credentials
	Load(userID string) (*ClaudeCredentials, error)
}

CredentialProvider is an interface for loading Claude credentials from various sources

func DefaultCredentialProvider added in v1.148.0

func DefaultCredentialProvider() CredentialProvider

DefaultCredentialProvider returns the default credential provider chain Order: Environment variables (highest priority) -> File

type EncryptionServiceFactory added in v1.179.0

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

EncryptionServiceFactory は EncryptionService の実装を作成するファクトリー

func NewEncryptionServiceFactory added in v1.179.0

func NewEncryptionServiceFactory(prefix string) *EncryptionServiceFactory

NewEncryptionServiceFactory は EncryptionServiceFactory を作成する 環境変数から設定を読み込む prefix が空の場合は "AGENTAPI_ENCRYPTION" を使用

func (*EncryptionServiceFactory) Create added in v1.179.0

Create は EncryptionService の実装を作成する 優先順位: KMS → Local → Noop

type EncryptionServiceRegistry added in v1.179.0

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

EncryptionServiceRegistry manages multiple EncryptionService implementations and selects the appropriate one based on encryption metadata

func NewEncryptionServiceRegistry added in v1.179.0

func NewEncryptionServiceRegistry(primary services.EncryptionService) *EncryptionServiceRegistry

NewEncryptionServiceRegistry creates a new registry

func (*EncryptionServiceRegistry) GetForDecryption added in v1.179.0

GetForDecryption returns the appropriate service for decrypting based on metadata Falls back to primary if no matching service is found

func (*EncryptionServiceRegistry) GetForEncryption added in v1.179.0

GetForEncryption returns the primary service used for encrypting new values

func (*EncryptionServiceRegistry) Register added in v1.179.0

Register adds an EncryptionService to the registry

func (*EncryptionServiceRegistry) SetPrimary added in v1.179.0

func (r *EncryptionServiceRegistry) SetPrimary(service services.EncryptionService)

SetPrimary sets the primary encryption service

type EnvCredentialProvider added in v1.148.0

type EnvCredentialProvider struct{}

EnvCredentialProvider loads credentials from environment variables

func NewEnvCredentialProvider added in v1.148.0

func NewEnvCredentialProvider() *EnvCredentialProvider

NewEnvCredentialProvider creates a new EnvCredentialProvider

func (*EnvCredentialProvider) Load added in v1.148.0

Load attempts to load credentials from environment variables userID is ignored for environment variable provider Returns nil, nil if CLAUDE_ACCESS_TOKEN is not set

func (*EnvCredentialProvider) Name added in v1.148.0

func (p *EnvCredentialProvider) Name() string

Name returns the provider name

type EnvMergeConfig added in v1.148.0

type EnvMergeConfig struct {
	RoleEnvFiles    *config.RoleEnvFilesConfig
	UserRole        string
	TeamEnvFile     string // From tags["env_file"]
	AuthTeamEnvFile string // From team_role_mapping
	RequestEnv      map[string]string
}

EnvMergeConfig contains configuration for environment variable merging

type FileCredentialProvider added in v1.148.0

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

FileCredentialProvider loads credentials from user-specific credential files When userID is provided, it looks for credentials at: $HOME/.agentapi-proxy/myclaudes/[userID]/.claude/.credentials.json When userID is empty, it falls back to ~/.claude/.credentials.json

func NewFileCredentialProvider added in v1.148.0

func NewFileCredentialProvider() *FileCredentialProvider

NewFileCredentialProvider creates a new FileCredentialProvider with default path

func NewFileCredentialProviderWithPath added in v1.148.0

func NewFileCredentialProviderWithPath(path string) *FileCredentialProvider

NewFileCredentialProviderWithPath creates a new FileCredentialProvider with custom path This is primarily used for testing

func (*FileCredentialProvider) Load added in v1.148.0

Load attempts to load credentials from the file If userID is provided, looks in the user-specific directory Returns nil, nil if the file doesn't exist Returns nil, error if there was an error reading the file

func (*FileCredentialProvider) Name added in v1.148.0

func (p *FileCredentialProvider) Name() string

Name returns the provider name

type KMSEncryptionService added in v1.179.0

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

KMSEncryptionService は AWS KMS を使用した暗号化サービス

func NewKMSEncryptionService added in v1.179.0

func NewKMSEncryptionService(keyID, region string) (*KMSEncryptionService, error)

NewKMSEncryptionService は KMSEncryptionService を作成する

func (*KMSEncryptionService) Algorithm added in v1.179.0

func (s *KMSEncryptionService) Algorithm() string

Algorithm は "aws-kms" を返す

func (*KMSEncryptionService) Decrypt added in v1.179.0

func (s *KMSEncryptionService) Decrypt(ctx context.Context, encrypted *services.EncryptedData) (string, error)

Decrypt は AWS KMS で暗号化されたデータを復号する

func (*KMSEncryptionService) Encrypt added in v1.179.0

func (s *KMSEncryptionService) Encrypt(ctx context.Context, plaintext string) (*services.EncryptedData, error)

Encrypt は平文を AWS KMS で暗号化する

func (*KMSEncryptionService) KeyID added in v1.179.0

func (s *KMSEncryptionService) KeyID() string

KeyID は KMS キー ID を返す

type KubernetesCredentialsSecretSyncer added in v1.106.0

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

KubernetesCredentialsSecretSyncer implements CredentialsSecretSyncer using Kubernetes Secrets

func NewKubernetesCredentialsSecretSyncer added in v1.106.0

func NewKubernetesCredentialsSecretSyncer(client kubernetes.Interface, namespace string) *KubernetesCredentialsSecretSyncer

NewKubernetesCredentialsSecretSyncer creates a new KubernetesCredentialsSecretSyncer

func (*KubernetesCredentialsSecretSyncer) Delete added in v1.106.0

Delete removes the environment secret for the given name

func (*KubernetesCredentialsSecretSyncer) MigrateSecrets added in v1.163.0

func (s *KubernetesCredentialsSecretSyncer) MigrateSecrets(ctx context.Context) error

MigrateSecrets migrates old agent-credentials-* secrets to agent-env-* secrets This function is idempotent and safe to run multiple times

func (*KubernetesCredentialsSecretSyncer) ResyncSecretsForOAuthMode added in v1.189.0

func (s *KubernetesCredentialsSecretSyncer) ResyncSecretsForOAuthMode(ctx context.Context) error

ResyncSecretsForOAuthMode ensures OAuth mode secrets have empty Bedrock env vars This function is idempotent and safe to run multiple times It patches existing secrets that are in OAuth mode but missing empty Bedrock override values

func (*KubernetesCredentialsSecretSyncer) Sync added in v1.106.0

Sync creates or updates the environment secret based on settings

type KubernetesMCPSecretSyncer added in v1.124.0

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

KubernetesMCPSecretSyncer implements MCPSecretSyncer using Kubernetes Secrets

func NewKubernetesMCPSecretSyncer added in v1.124.0

func NewKubernetesMCPSecretSyncer(client kubernetes.Interface, namespace string) *KubernetesMCPSecretSyncer

NewKubernetesMCPSecretSyncer creates a new KubernetesMCPSecretSyncer

func (*KubernetesMCPSecretSyncer) Delete added in v1.124.0

func (s *KubernetesMCPSecretSyncer) Delete(ctx context.Context, name string) error

Delete removes the MCP servers secret for the given name

func (*KubernetesMCPSecretSyncer) Sync added in v1.124.0

Sync creates or updates the MCP servers secret based on settings

type KubernetesMarketplaceSecretSyncer added in v1.129.0

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

KubernetesMarketplaceSecretSyncer implements MarketplaceSecretSyncer using Kubernetes Secrets

func NewKubernetesMarketplaceSecretSyncer added in v1.129.0

func NewKubernetesMarketplaceSecretSyncer(client kubernetes.Interface, namespace string) *KubernetesMarketplaceSecretSyncer

NewKubernetesMarketplaceSecretSyncer creates a new KubernetesMarketplaceSecretSyncer

func (*KubernetesMarketplaceSecretSyncer) Delete added in v1.129.0

Delete removes the marketplace secret for the given name

func (*KubernetesMarketplaceSecretSyncer) Sync added in v1.129.0

Sync creates or updates the marketplace secret based on settings

type KubernetesSession added in v1.148.0

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

KubernetesSession represents a session running in a Kubernetes Deployment

func NewKubernetesSession added in v1.148.0

func NewKubernetesSession(
	id string,
	request *entities.RunServerRequest,
	deploymentName, serviceName, pvcName, namespace string,
	servicePort int,
	cancelFunc context.CancelFunc,
	webhookPayload []byte,
) *KubernetesSession

NewKubernetesSession creates a new KubernetesSession

func (*KubernetesSession) Addr added in v1.148.0

func (s *KubernetesSession) Addr() string

Addr returns the address (host:port) the session is running on For Kubernetes sessions, this returns the Service DNS name with port

func (*KubernetesSession) Cancel added in v1.148.0

func (s *KubernetesSession) Cancel()

Cancel cancels the session context to trigger shutdown

func (*KubernetesSession) DeploymentName added in v1.148.0

func (s *KubernetesSession) DeploymentName() string

DeploymentName returns the Kubernetes Deployment name

func (*KubernetesSession) Description added in v1.148.0

func (s *KubernetesSession) Description() string

Description returns the session description (cached initial message)

func (*KubernetesSession) ID added in v1.148.0

func (s *KubernetesSession) ID() string

ID returns the session ID

func (*KubernetesSession) Namespace added in v1.148.0

func (s *KubernetesSession) Namespace() string

Namespace returns the Kubernetes namespace

func (*KubernetesSession) PVCName added in v1.148.0

func (s *KubernetesSession) PVCName() string

PVCName returns the Kubernetes PVC name

func (*KubernetesSession) Request added in v1.148.0

Request returns the run server request

func (*KubernetesSession) Scope added in v1.148.0

Scope returns the resource scope ("user" or "team")

func (*KubernetesSession) ServiceDNS added in v1.148.0

func (s *KubernetesSession) ServiceDNS() string

ServiceDNS returns the Kubernetes Service DNS name for this session

func (*KubernetesSession) ServiceName added in v1.148.0

func (s *KubernetesSession) ServiceName() string

ServiceName returns the Kubernetes Service name

func (*KubernetesSession) ServicePort added in v1.148.0

func (s *KubernetesSession) ServicePort() int

ServicePort returns the service port

func (*KubernetesSession) SetDescription added in v1.169.0

func (s *KubernetesSession) SetDescription(desc string)

SetDescription sets the session description (used for restored sessions from Secret)

func (*KubernetesSession) SetStartedAt added in v1.148.0

func (s *KubernetesSession) SetStartedAt(t time.Time)

SetStartedAt sets the session start time (used for restored sessions)

func (*KubernetesSession) SetStatus added in v1.148.0

func (s *KubernetesSession) SetStatus(status string)

SetStatus updates the session status

func (*KubernetesSession) SetUpdatedAt added in v1.190.0

func (s *KubernetesSession) SetUpdatedAt(t time.Time)

SetUpdatedAt sets the last updated time (used for restored sessions)

func (*KubernetesSession) StartedAt added in v1.148.0

func (s *KubernetesSession) StartedAt() time.Time

StartedAt returns when the session was started

func (*KubernetesSession) Status added in v1.148.0

func (s *KubernetesSession) Status() string

Status returns the current status of the session

func (*KubernetesSession) Tags added in v1.148.0

func (s *KubernetesSession) Tags() map[string]string

Tags returns the session tags

func (*KubernetesSession) TeamID added in v1.148.0

func (s *KubernetesSession) TeamID() string

TeamID returns the team ID when Scope is "team"

func (*KubernetesSession) TouchUpdatedAt added in v1.190.0

func (s *KubernetesSession) TouchUpdatedAt()

TouchUpdatedAt updates the updatedAt timestamp to now

func (*KubernetesSession) UpdatedAt added in v1.190.0

func (s *KubernetesSession) UpdatedAt() time.Time

UpdatedAt returns when the session was last updated

func (*KubernetesSession) UserID added in v1.148.0

func (s *KubernetesSession) UserID() string

UserID returns the user ID that owns this session

func (*KubernetesSession) WebhookPayload added in v1.205.0

func (s *KubernetesSession) WebhookPayload() []byte

WebhookPayload returns the webhook payload JSON

type KubernetesSessionManager added in v1.148.0

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

KubernetesSessionManager manages sessions using Kubernetes Deployments

func NewKubernetesSessionManager added in v1.148.0

func NewKubernetesSessionManager(
	cfg *config.Config,
	verbose bool,
	lgr *logger.Logger,
) (*KubernetesSessionManager, error)

NewKubernetesSessionManager creates a new KubernetesSessionManager

func NewKubernetesSessionManagerWithClient added in v1.148.0

func NewKubernetesSessionManagerWithClient(
	cfg *config.Config,
	verbose bool,
	lgr *logger.Logger,
	client kubernetes.Interface,
) (*KubernetesSessionManager, error)

NewKubernetesSessionManagerWithClient creates a new KubernetesSessionManager with a custom client This is useful for testing with a fake client

func (*KubernetesSessionManager) CreateSession added in v1.148.0

func (m *KubernetesSessionManager) CreateSession(ctx context.Context, id string, req *entities.RunServerRequest, webhookPayload []byte) (entities.Session, error)

CreateSession creates a new session with a Kubernetes Deployment

func (*KubernetesSessionManager) DeleteSession added in v1.148.0

func (m *KubernetesSessionManager) DeleteSession(id string) error

DeleteSession stops and removes a session If the session is not in memory, it attempts to restore from Kubernetes Service first

func (*KubernetesSessionManager) GetClient added in v1.148.0

GetClient returns the Kubernetes client (used by subscription secret syncer)

func (*KubernetesSessionManager) GetInitialMessage added in v1.211.0

func (m *KubernetesSessionManager) GetInitialMessage(ctx context.Context, session *KubernetesSession) string

GetInitialMessage retrieves the initial message from Secret for a given session

func (*KubernetesSessionManager) GetMessages added in v1.201.0

func (m *KubernetesSessionManager) GetMessages(ctx context.Context, id string) ([]portrepos.Message, error)

GetMessages retrieves conversation history from a session

func (*KubernetesSessionManager) GetNamespace added in v1.148.0

func (m *KubernetesSessionManager) GetNamespace() string

GetNamespace returns the Kubernetes namespace (used by subscription secret syncer)

func (*KubernetesSessionManager) GetPersonalAPIKeyRepository added in v1.219.0

func (m *KubernetesSessionManager) GetPersonalAPIKeyRepository() portrepos.PersonalAPIKeyRepository

GetPersonalAPIKeyRepository returns the personal API key repository

func (*KubernetesSessionManager) GetSession added in v1.148.0

func (m *KubernetesSessionManager) GetSession(id string) entities.Session

GetSession returns a session by ID If the session is not in memory, it attempts to restore from Kubernetes Service

func (*KubernetesSessionManager) ListSessions added in v1.148.0

ListSessions returns all sessions matching the filter Sessions are retrieved from Kubernetes Services to survive proxy restarts

func (*KubernetesSessionManager) SendMessage added in v1.194.0

func (m *KubernetesSessionManager) SendMessage(ctx context.Context, id string, message string) error

SendMessage sends a message to an existing session

func (*KubernetesSessionManager) SetPersonalAPIKeyRepository added in v1.218.0

func (m *KubernetesSessionManager) SetPersonalAPIKeyRepository(repo portrepos.PersonalAPIKeyRepository)

SetPersonalAPIKeyRepository sets the personal API key repository

func (*KubernetesSessionManager) SetSettingsRepository added in v1.148.0

func (m *KubernetesSessionManager) SetSettingsRepository(repo portrepos.SettingsRepository)

SetSettingsRepository sets the settings repository for Bedrock configuration

func (*KubernetesSessionManager) SetTeamConfigRepository added in v1.217.0

func (m *KubernetesSessionManager) SetTeamConfigRepository(repo portrepos.TeamConfigRepository)

SetTeamConfigRepository sets the team config repository for service account configuration

func (*KubernetesSessionManager) Shutdown added in v1.148.0

func (m *KubernetesSessionManager) Shutdown(timeout time.Duration) error

Shutdown gracefully stops all sessions Note: This does NOT delete Kubernetes resources (Deployment, Service, PVC, Secret). Resources are preserved so sessions can be restored when the proxy restarts. Use DeleteSession to explicitly delete a session and its resources.

func (*KubernetesSessionManager) UpdateServiceAnnotation added in v1.190.0

func (m *KubernetesSessionManager) UpdateServiceAnnotation(ctx context.Context, sessionID, key, value string) error

UpdateServiceAnnotation updates a specific annotation on a session's Service

type KubernetesSubscriptionSecretSyncer added in v1.148.0

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

KubernetesSubscriptionSecretSyncer syncs subscription data to Kubernetes Secrets

func NewKubernetesSubscriptionSecretSyncer added in v1.148.0

func NewKubernetesSubscriptionSecretSyncer(
	clientset kubernetes.Interface,
	namespace string,
	storage notification.Storage,
	secretPrefix string,
) *KubernetesSubscriptionSecretSyncer

NewKubernetesSubscriptionSecretSyncer creates a new KubernetesSubscriptionSecretSyncer

func (*KubernetesSubscriptionSecretSyncer) GetSecretName added in v1.148.0

func (s *KubernetesSubscriptionSecretSyncer) GetSecretName(userID string) string

GetSecretName returns the secret name for a given user ID

func (*KubernetesSubscriptionSecretSyncer) Sync added in v1.148.0

Sync creates or updates the subscription Secret for a user

type LocalEncryptionService added in v1.179.0

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

LocalEncryptionService は AES-256-GCM を使用したローカル暗号化サービス

func NewLocalEncryptionService added in v1.179.0

func NewLocalEncryptionService(keyPath string, keyEnvVar string) (*LocalEncryptionService, error)

NewLocalEncryptionService は LocalEncryptionService を作成する keyPath が指定されていない場合、環境変数から読み込む keyEnvVar が空の場合は "AGENTAPI_ENCRYPTION_KEY" を使用

func (*LocalEncryptionService) Algorithm added in v1.179.0

func (s *LocalEncryptionService) Algorithm() string

Algorithm は "aes-256-gcm" を返す

func (*LocalEncryptionService) Decrypt added in v1.179.0

func (s *LocalEncryptionService) Decrypt(ctx context.Context, encrypted *services.EncryptedData) (string, error)

Decrypt は AES-256-GCM で暗号化されたデータを復号する

func (*LocalEncryptionService) Encrypt added in v1.179.0

func (s *LocalEncryptionService) Encrypt(ctx context.Context, plaintext string) (*services.EncryptedData, error)

Encrypt は平文を AES-256-GCM で暗号化する

func (*LocalEncryptionService) KeyID added in v1.179.0

func (s *LocalEncryptionService) KeyID() string

KeyID はキーのフィンガープリントを返す

type MCPConfig added in v1.124.0

type MCPConfig struct {
	MCPServers map[string]MCPServerConfig `json:"mcpServers"`
}

MCPConfig represents the structure of MCP configuration (matches pkg/mcp/merge.go)

type MCPServerConfig added in v1.124.0

type MCPServerConfig struct {
	Type    string            `json:"type,omitempty"`
	URL     string            `json:"url,omitempty"`
	Command string            `json:"command,omitempty"`
	Args    []string          `json:"args,omitempty"`
	Env     map[string]string `json:"env,omitempty"`
	Headers map[string]string `json:"headers,omitempty"`
}

MCPServerConfig represents a single MCP server configuration

type MarketplaceConfig added in v1.129.0

type MarketplaceConfig struct {
	Marketplaces map[string]MarketplaceServerConfig `json:"marketplaces"`
}

MarketplaceConfig represents the structure of marketplace configuration

type MarketplaceServerConfig added in v1.129.0

type MarketplaceServerConfig struct {
	URL string `json:"url"`
}

MarketplaceServerConfig represents a single marketplace configuration

type NoopEncryptionService added in v1.179.0

type NoopEncryptionService struct{}

NoopEncryptionService は暗号化を行わないダミーの実装 インターフェースが通る状態を作るために使用する

func NewNoopEncryptionService added in v1.179.0

func NewNoopEncryptionService() *NoopEncryptionService

NewNoopEncryptionService は NoopEncryptionService を作成する

func (*NoopEncryptionService) Algorithm added in v1.179.0

func (s *NoopEncryptionService) Algorithm() string

Algorithm は "noop" を返す

func (*NoopEncryptionService) Decrypt added in v1.179.0

func (s *NoopEncryptionService) Decrypt(ctx context.Context, encrypted *services.EncryptedData) (string, error)

Decrypt は暗号化されたデータをそのまま返す(復号しない)

func (*NoopEncryptionService) Encrypt added in v1.179.0

func (s *NoopEncryptionService) Encrypt(ctx context.Context, plaintext string) (*services.EncryptedData, error)

Encrypt は平文をそのまま返す(暗号化しない)

func (*NoopEncryptionService) KeyID added in v1.179.0

func (s *NoopEncryptionService) KeyID() string

KeyID は "noop" を返す

type SimpleAuthService

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

SimpleAuthService implements AuthService with simple in-memory authentication

func NewSimpleAuthService

func NewSimpleAuthService() *SimpleAuthService

NewSimpleAuthService creates a new SimpleAuthService

func (*SimpleAuthService) AddUser

func (s *SimpleAuthService) AddUser(user *entities.User)

AddUser adds a user to the service (for testing/demo purposes)

func (*SimpleAuthService) AuthenticateUser

func (s *SimpleAuthService) AuthenticateUser(ctx context.Context, credentials *services.Credentials) (*entities.User, error)

AuthenticateUser authenticates a user with the given credentials

func (*SimpleAuthService) CreateServiceAccountForTeam added in v1.216.0

func (s *SimpleAuthService) CreateServiceAccountForTeam(ctx context.Context, teamID string, teamConfigRepo repositories.TeamConfigRepository) (*entities.User, *entities.ServiceAccount, error)

CreateServiceAccountForTeam creates a service account for a team

func (*SimpleAuthService) GenerateAPIKey

func (s *SimpleAuthService) GenerateAPIKey(ctx context.Context, userID entities.UserID, permissions []entities.Permission) (*services.APIKey, error)

GenerateAPIKey generates a new API key for a user

func (*SimpleAuthService) LoadPersonalAPIKey added in v1.219.0

func (s *SimpleAuthService) LoadPersonalAPIKey(ctx context.Context, personalAPIKey *entities.PersonalAPIKey) error

LoadPersonalAPIKey loads a personal API key into memory

func (*SimpleAuthService) LoadServiceAccountFromTeamConfig added in v1.216.0

func (s *SimpleAuthService) LoadServiceAccountFromTeamConfig(ctx context.Context, teamConfig *entities.TeamConfig) error

LoadServiceAccountFromTeamConfig loads a service account from team config into memory

func (*SimpleAuthService) RefreshUserInfo

func (s *SimpleAuthService) RefreshUserInfo(ctx context.Context, user *entities.User) (*entities.User, error)

RefreshUserInfo refreshes user information from external sources

func (*SimpleAuthService) RevokeAPIKey

func (s *SimpleAuthService) RevokeAPIKey(ctx context.Context, apiKey string) error

RevokeAPIKey revokes an existing API key

func (*SimpleAuthService) SetGitHubAuthConfig added in v1.71.0

func (s *SimpleAuthService) SetGitHubAuthConfig(cfg *config.GitHubAuthConfig)

SetGitHubAuthConfig sets the GitHub authentication configuration

func (*SimpleAuthService) ValidateAPIKey

func (s *SimpleAuthService) ValidateAPIKey(ctx context.Context, apiKey string) (*entities.User, error)

ValidateAPIKey validates an API key and returns the associated user

func (*SimpleAuthService) ValidatePermission

func (s *SimpleAuthService) ValidatePermission(ctx context.Context, user *entities.User, permission entities.Permission) error

ValidatePermission checks if a user has a specific permission

type SimpleNotificationService

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

SimpleNotificationService implements NotificationService with basic functionality

func NewSimpleNotificationService

func NewSimpleNotificationService() *SimpleNotificationService

NewSimpleNotificationService creates a new SimpleNotificationService

func (*SimpleNotificationService) SendBulkNotifications

func (s *SimpleNotificationService) SendBulkNotifications(ctx context.Context, notification *entities.Notification, subscriptions []*entities.Subscription) ([]*services.NotificationResult, error)

SendBulkNotifications sends notifications to multiple subscriptions

func (*SimpleNotificationService) SendNotification

func (s *SimpleNotificationService) SendNotification(ctx context.Context, notification *entities.Notification, subscription *entities.Subscription) error

SendNotification sends a notification to a specific subscription

func (*SimpleNotificationService) TestNotification

func (s *SimpleNotificationService) TestNotification(ctx context.Context, subscription *entities.Subscription) error

TestNotification sends a test notification to verify the subscription

func (*SimpleNotificationService) ValidateSubscription

func (s *SimpleNotificationService) ValidateSubscription(ctx context.Context, subscription *entities.Subscription) error

ValidateSubscription validates a push notification subscription

Jump to

Keyboard shortcuts

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