store

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	ClientID     string           `yaml:"client_id"`
	ClientSecret string           `yaml:"client_secret"`
	RedirectURI  string           `yaml:"redirect_uri,omitempty"`
	DefaultUser  string           `yaml:"default_user,omitempty"`
	OAuth2Tokens map[string]Token `yaml:"oauth2_tokens,omitempty"`
	OAuth1Token  *Token           `yaml:"oauth1_token,omitempty"`
	BearerToken  *Token           `yaml:"bearer_token,omitempty"`
}

App holds the credentials and tokens for a single registered X API application.

type OAuth1Token

type OAuth1Token struct {
	AccessToken    string `yaml:"access_token" json:"access_token"`
	TokenSecret    string `yaml:"token_secret" json:"token_secret"`
	ConsumerKey    string `yaml:"consumer_key" json:"consumer_key"`
	ConsumerSecret string `yaml:"consumer_secret" json:"consumer_secret"`
}

Represents OAuth1 authentication tokens

type OAuth2Token

type OAuth2Token struct {
	AccessToken    string `yaml:"access_token" json:"access_token"`
	RefreshToken   string `yaml:"refresh_token" json:"refresh_token"`
	ExpirationTime uint64 `yaml:"expiration_time" json:"expiration_time"`
}

Represents OAuth2 authentication tokens

type Token

type Token struct {
	Type   TokenType    `yaml:"type" json:"type"`
	Bearer string       `yaml:"bearer,omitempty" json:"bearer,omitempty"`
	OAuth2 *OAuth2Token `yaml:"oauth2,omitempty" json:"oauth2,omitempty"`
	OAuth1 *OAuth1Token `yaml:"oauth1,omitempty" json:"oauth1,omitempty"`
}

Token represents an authentication token

type TokenStore

type TokenStore struct {
	Apps       map[string]*App `yaml:"apps"`
	DefaultApp string          `yaml:"default_app"`
	FilePath   string          `yaml:"-"`
}

Manages authentication tokens across multiple apps.

func NewTokenStore

func NewTokenStore() *TokenStore

Creates a new TokenStore, loading from ~/.xurl (auto-migrating legacy JSON).

func NewTokenStoreWithCredentials

func NewTokenStoreWithCredentials(clientID, clientSecret string) *TokenStore

NewTokenStoreWithCredentials creates a TokenStore and backfills the given client credentials into any app that was migrated without them (i.e. legacy JSON migration where CLIENT_ID / CLIENT_SECRET came from env vars).

func (*TokenStore) AddApp

func (s *TokenStore) AddApp(name, clientID, clientSecret string) error

AddApp registers a new application. If it's the only app it becomes default.

func (*TokenStore) ClearAll

func (s *TokenStore) ClearAll() error

ClearAll clears all tokens from the resolved app.

func (*TokenStore) ClearAllForApp

func (s *TokenStore) ClearAllForApp(appName string) error

ClearAllForApp clears all tokens from the named app.

func (*TokenStore) ClearBearerToken

func (s *TokenStore) ClearBearerToken() error

ClearBearerToken clears the bearer token from the resolved app.

func (*TokenStore) ClearBearerTokenForApp

func (s *TokenStore) ClearBearerTokenForApp(appName string) error

ClearBearerTokenForApp clears the bearer token from the named app.

func (*TokenStore) ClearOAuth1Tokens

func (s *TokenStore) ClearOAuth1Tokens() error

ClearOAuth1Tokens clears OAuth1 tokens from the resolved app.

func (*TokenStore) ClearOAuth1TokensForApp

func (s *TokenStore) ClearOAuth1TokensForApp(appName string) error

ClearOAuth1TokensForApp clears OAuth1 tokens from the named app.

func (*TokenStore) ClearOAuth2Token

func (s *TokenStore) ClearOAuth2Token(username string) error

ClearOAuth2Token clears an OAuth2 token for a username from the resolved app.

func (*TokenStore) ClearOAuth2TokenForApp

func (s *TokenStore) ClearOAuth2TokenForApp(appName, username string) error

ClearOAuth2TokenForApp clears an OAuth2 token for a username from the named app.

func (*TokenStore) GetActiveAppName

func (s *TokenStore) GetActiveAppName(explicit string) string

GetActiveAppName returns the name of the active app (explicit or default).

func (*TokenStore) GetApp

func (s *TokenStore) GetApp(name string) *App

GetApp returns an app by name.

func (*TokenStore) GetAppRedirectURI added in v1.1.0

func (s *TokenStore) GetAppRedirectURI(name string) (string, error)

GetAppRedirectURI gets the stored redirect URI for an existing app.

func (*TokenStore) GetBearerToken

func (s *TokenStore) GetBearerToken() *Token

GetBearerToken gets the bearer token from the resolved app.

func (*TokenStore) GetBearerTokenForApp

func (s *TokenStore) GetBearerTokenForApp(appName string) *Token

GetBearerTokenForApp gets the bearer token from the named app.

func (*TokenStore) GetDefaultApp

func (s *TokenStore) GetDefaultApp() string

GetDefaultApp returns the default app name.

func (*TokenStore) GetDefaultUser

func (s *TokenStore) GetDefaultUser(appName string) string

GetDefaultUser returns the default OAuth2 user for the named (or default) app.

func (*TokenStore) GetFirstOAuth2Token

func (s *TokenStore) GetFirstOAuth2Token() *Token

GetFirstOAuth2Token gets the first OAuth2 token from the resolved app.

func (*TokenStore) GetFirstOAuth2TokenForApp

func (s *TokenStore) GetFirstOAuth2TokenForApp(appName string) *Token

GetFirstOAuth2TokenForApp gets the default user's token, or the first OAuth2 token from the named app.

func (*TokenStore) GetFirstOAuth2TokenRecordForApp added in v1.1.0

func (s *TokenStore) GetFirstOAuth2TokenRecordForApp(appName string) (string, *Token)

GetFirstOAuth2TokenRecordForApp gets the preferred OAuth2 token key and token from the named app.

func (*TokenStore) GetOAuth1Tokens

func (s *TokenStore) GetOAuth1Tokens() *Token

GetOAuth1Tokens gets OAuth1 tokens from the resolved app.

func (*TokenStore) GetOAuth1TokensForApp

func (s *TokenStore) GetOAuth1TokensForApp(appName string) *Token

GetOAuth1TokensForApp gets OAuth1 tokens from the named app.

func (*TokenStore) GetOAuth2Token

func (s *TokenStore) GetOAuth2Token(username string) *Token

GetOAuth2Token gets an OAuth2 token for a username from the resolved app.

func (*TokenStore) GetOAuth2TokenForApp

func (s *TokenStore) GetOAuth2TokenForApp(appName, username string) *Token

GetOAuth2TokenForApp gets an OAuth2 token for a username from the named app.

func (*TokenStore) GetOAuth2Usernames

func (s *TokenStore) GetOAuth2Usernames() []string

GetOAuth2Usernames gets all OAuth2 usernames from the resolved app.

func (*TokenStore) GetOAuth2UsernamesForApp

func (s *TokenStore) GetOAuth2UsernamesForApp(appName string) []string

GetOAuth2UsernamesForApp gets all OAuth2 usernames from the named app.

func (*TokenStore) HasBearerToken

func (s *TokenStore) HasBearerToken() bool

HasBearerToken checks if a bearer token exists in the resolved app.

func (*TokenStore) HasOAuth1Tokens

func (s *TokenStore) HasOAuth1Tokens() bool

HasOAuth1Tokens checks if OAuth1 tokens exist in the resolved app.

func (*TokenStore) ListApps

func (s *TokenStore) ListApps() []string

ListApps returns sorted app names.

func (*TokenStore) RemoveApp

func (s *TokenStore) RemoveApp(name string) error

RemoveApp removes a registered application and its tokens.

func (*TokenStore) ResolveApp

func (s *TokenStore) ResolveApp(name string) *App

ResolveApp returns the app for the given name, or the default app.

func (*TokenStore) SaveBearerToken

func (s *TokenStore) SaveBearerToken(token string) error

SaveBearerToken saves a bearer token into the resolved app.

func (*TokenStore) SaveBearerTokenForApp

func (s *TokenStore) SaveBearerTokenForApp(appName, token string) error

SaveBearerTokenForApp saves a bearer token into the named app.

func (*TokenStore) SaveOAuth1Tokens

func (s *TokenStore) SaveOAuth1Tokens(accessToken, tokenSecret, consumerKey, consumerSecret string) error

SaveOAuth1Tokens saves OAuth1 tokens into the resolved app.

func (*TokenStore) SaveOAuth1TokensForApp

func (s *TokenStore) SaveOAuth1TokensForApp(appName, accessToken, tokenSecret, consumerKey, consumerSecret string) error

SaveOAuth1TokensForApp saves OAuth1 tokens into the named app.

func (*TokenStore) SaveOAuth2Token

func (s *TokenStore) SaveOAuth2Token(username, accessToken, refreshToken string, expirationTime uint64) error

SaveOAuth2Token saves an OAuth2 token into the resolved app.

func (*TokenStore) SaveOAuth2TokenForApp

func (s *TokenStore) SaveOAuth2TokenForApp(appName, username, accessToken, refreshToken string, expirationTime uint64) error

SaveOAuth2TokenForApp saves an OAuth2 token into the named app.

func (*TokenStore) SetAppRedirectURI added in v1.1.0

func (s *TokenStore) SetAppRedirectURI(name, redirectURI string) error

SetAppRedirectURI sets the redirect URI of an existing app.

func (*TokenStore) SetDefaultApp

func (s *TokenStore) SetDefaultApp(name string) error

SetDefaultApp sets the default application by name.

func (*TokenStore) SetDefaultUser

func (s *TokenStore) SetDefaultUser(appName, username string) error

SetDefaultUser sets the default OAuth2 user for the named (or default) app.

func (*TokenStore) UpdateApp

func (s *TokenStore) UpdateApp(name, clientID, clientSecret string) error

UpdateApp updates the credentials of an existing application.

type TokenType

type TokenType string

Represents the type of token

const (
	BearerTokenType TokenType = "bearer"
	OAuth2TokenType TokenType = "oauth2"
	OAuth1TokenType TokenType = "oauth1"
)

Jump to

Keyboard shortcuts

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