upstream

package
v2.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2026 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnavailable = errors.New("credential service is unavailable; try again later")
	ErrConnect     = errors.New("connect your upstream account in the MCPHub personal portal")
	ErrReconnect   = errors.New("upstream authorization expired or changed; reconnect your account in the MCPHub personal portal")
	ErrConflict    = errors.New("account connection changed; refresh the page and try again")
)

Functions

func VerifyBackend

func VerifyBackend(ctx context.Context, cfg config.BackendConfig, secret Secret) error

Types

type Endpoint

type Endpoint struct {
	ID, UID, URL string
	Credentials  *config.CredentialConfig
}

func (Endpoint) Policy

func (e Endpoint) Policy() string

type Login

type Login struct {
	Endpoint                 Endpoint
	Binding                  configstore.CredentialBinding
	Browser, Verifier, Nonce string
	IssuerRequired           bool
	OAuth                    *oauth2.Config
	Expires                  time.Time
}

type Manager

type Manager struct {
	Vault *Vault
	Store *configstore.Store
	HTTP  *http.Client
	// contains filtered or unexported fields
}

func New

func New(cfg *config.VaultConfig, store *configstore.Store) (*Manager, error)

func (*Manager) Authorize

func (*Manager) Binding

func (m *Manager) Binding(ctx context.Context, e Endpoint, issuer, subject string) (configstore.CredentialBinding, error)

func (*Manager) Close

func (m *Manager) Close()

func (*Manager) Disconnect

func (m *Manager) Disconnect(ctx context.Context, e Endpoint, issuer, subject string, expected int64) error

func (*Manager) Exchange

func (m *Manager) Exchange(ctx context.Context, l Login, code, responseIssuer string) (configstore.CredentialBinding, Secret, error)

func (*Manager) Maintain

func (m *Manager) Maintain(ctx context.Context) error

func (*Manager) Shared

func (m *Manager) Shared(e Endpoint) func(context.Context) (http.Header, error)

func (*Manager) StartLogin

func (m *Manager) StartLogin(ctx context.Context, e Endpoint, issuer, subject, browser, redirect string) (string, error)

func (*Manager) TakeLogin

func (m *Manager) TakeLogin(state, issuer, subject, browser string) (Login, error)

type Secret

type Secret struct {
	Token   *oauth2.Token `json:"token"`
	Scopes  []string      `json:"scopes"`
	Invalid bool          `json:"invalid,omitempty"`
}

type Vault

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

func NewVault

func NewVault(cfg config.VaultConfig) (*Vault, error)

func (*Vault) Check

func (v *Vault) Check(ctx context.Context) error

func (*Vault) Close

func (v *Vault) Close()

func (*Vault) Delete

func (v *Vault) Delete(ctx context.Context, path string) error

func (*Vault) Header

func (v *Vault) Header(ctx context.Context, c *config.CredentialConfig, path string) (http.Header, error)

func (*Vault) Read

func (v *Vault) Read(ctx context.Context, path string, target any) (int, error)

func (*Vault) Write

func (v *Vault) Write(ctx context.Context, path string, value any, version int) error

Jump to

Keyboard shortcuts

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