fs

package
v0.1.35 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2026 License: Apache-2.0 Imports: 17 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FSAPIKeyStore

type FSAPIKeyStore struct {
	StoragePath string
	// contains filtered or unexported fields
}

FSAPIKeyStore stores API keys as JSON files

func NewFSAPIKeyStore

func NewFSAPIKeyStore(storagePath string) *FSAPIKeyStore

NewFSAPIKeyStore creates a new file-based API key store

func (*FSAPIKeyStore) CreateAPIKey

func (*FSAPIKeyStore) GetAPIKeyByID

func (*FSAPIKeyStore) ListSubjectAPIKeys added in v0.1.3

func (*FSAPIKeyStore) RevokeAPIKey

func (*FSAPIKeyStore) UpdateAPIKeyLastUsed

func (*FSAPIKeyStore) ValidateAPIKey

type FSAppStore added in v0.0.81

type FSAppStore struct {
	StoragePath string
	// contains filtered or unexported fields
}

FSAppStore implements core.AppRegistrationStore by persisting each registration as a JSON file under {basePath}/apps/{client_id}.json.

Mirrors the FSKeyStore design: file-per-record (so concurrent ops don't serialize on a single mutex outside this process), atomic writes via temp-file + rename (so a crash mid-write leaves either the old file or the new file intact, never a half-written one), and safeName guarding path-traversal in client_ids.

In-process concurrency is mediated by sync.RWMutex. Multi-process deployments need a backend with real transaction semantics — see GORMAppStore (#167).

func NewFSAppStore added in v0.0.81

func NewFSAppStore(storagePath string) *FSAppStore

NewFSAppStore creates a filesystem-backed AppRegistrationStore. The {basePath}/apps/ directory is created lazily on first write.

func (*FSAppStore) DeleteApp added in v0.0.81

DeleteApp removes the registration for req.ClientID. Returns core.ErrAppNotFound if no such registration exists, matching InMemoryAppStore semantics.

func (*FSAppStore) GetApp added in v0.0.81

GetApp returns the registration for req.ClientID, or core.ErrAppNotFound if no such file exists. A corrupt JSON file surfaces as a parse error rather than ErrAppNotFound — callers should distinguish "registration absent" from "registration unreadable" so an unexpected on-disk corruption isn't silently treated as a missing client.

func (*FSAppStore) ListApps added in v0.0.81

ListApps returns every registration in the store. Files that fail to parse are skipped (with no error returned) so a single hand-corrupted file does not lock out admin tooling — partial recovery beats total failure here. Callers needing strict integrity should validate at the store level (e.g., periodic fsck) rather than relying on ListApps.

Returns an empty slice (not an error) when the apps dir does not yet exist, matching the InMemory backend's "fresh store has no apps" shape.

func (*FSAppStore) SaveApp added in v0.0.81

SaveApp persists req.App to disk. Overwrites any existing registration with the same client_id. Empty client_id is rejected.

type FSChannelStore

type FSChannelStore struct {
	StoragePath string
}

FSChannelStore stores channels as JSON files

func NewFSChannelStore

func NewFSChannelStore(storagePath string) *FSChannelStore

func (*FSChannelStore) GetChannel

func (*FSChannelStore) SaveChannel

type FSDeviceAuthorizationStore added in v0.1.23

type FSDeviceAuthorizationStore struct {
	StoragePath string
	// contains filtered or unexported fields
}

FSDeviceAuthorizationStore persists RFC 8628 device authorizations as per-record JSON files under <storage>/device_authorizations/. Two files are written per record so user_code lookup is also O(1):

<storage>/device_authorizations/dc-<sha256(device_code)>.json
<storage>/device_authorizations/uc-<sha256(upper(user_code))>.json

The user_code file contains the device_code hash so GetByUserCode can resolve via a single extra read. Both files are written and removed atomically; the device_code file is the source of truth for the record payload.

func NewFSDeviceAuthorizationStore added in v0.1.23

func NewFSDeviceAuthorizationStore(storagePath string) *FSDeviceAuthorizationStore

NewFSDeviceAuthorizationStore returns a store rooted at storagePath.

func (*FSDeviceAuthorizationStore) ApproveDeviceAuthorization added in v0.1.23

func (*FSDeviceAuthorizationStore) CleanupExpired added in v0.1.23

func (*FSDeviceAuthorizationStore) CreateDeviceAuthorization added in v0.1.23

func (*FSDeviceAuthorizationStore) DeleteDeviceAuthorization added in v0.1.23

func (*FSDeviceAuthorizationStore) DenyDeviceAuthorization added in v0.1.23

func (*FSDeviceAuthorizationStore) GetByDeviceCode added in v0.1.23

func (*FSDeviceAuthorizationStore) GetByUserCode added in v0.1.23

func (*FSDeviceAuthorizationStore) UpdatePollingState added in v0.1.23

type FSIdentityStore

type FSIdentityStore struct {
	StoragePath string
}

FSIdentityStore stores identities as JSON files

func NewFSIdentityStore

func NewFSIdentityStore(storagePath string) *FSIdentityStore

func (*FSIdentityStore) GetIdentity

func (*FSIdentityStore) SaveIdentity

type FSKeyStore added in v0.0.32

type FSKeyStore struct {
	StoragePath string
	// contains filtered or unexported fields
}

FSKeyStore implements keys.KeyStorage using filesystem storage.

func NewFSKeyStore added in v0.0.32

func NewFSKeyStore(storagePath string) *FSKeyStore

NewFSKeyStore creates a new filesystem-backed KeyStore.

func (*FSKeyStore) DeleteKey added in v0.0.32

func (*FSKeyStore) GetKey added in v0.0.38

func (*FSKeyStore) GetKeyByKid added in v0.0.38

func (*FSKeyStore) ListKeyIDs added in v0.0.38

func (*FSKeyStore) PutKey added in v0.0.38

type FSKidStore added in v0.0.83

type FSKidStore struct {
	StoragePath string
	// contains filtered or unexported fields
}

FSKidStore implements keys.KidStorage using filesystem storage.

func NewFSKidStore added in v0.0.83

func NewFSKidStore(storagePath string) *FSKidStore

NewFSKidStore creates a new filesystem-backed KidStorage.

func (*FSKidStore) Add added in v0.0.83

func (*FSKidStore) CleanExpired added in v0.0.83

func (*FSKidStore) GetKey added in v0.0.83

func (*FSKidStore) GetKeyByKid added in v0.0.83

func (*FSKidStore) Remove added in v0.0.83

type FSRefreshTokenStore

type FSRefreshTokenStore struct {
	StoragePath string
	// contains filtered or unexported fields
}

FSRefreshTokenStore stores refresh tokens as JSON files

func NewFSRefreshTokenStore

func NewFSRefreshTokenStore(storagePath string) *FSRefreshTokenStore

NewFSRefreshTokenStore creates a new file-based refresh token store

func (*FSRefreshTokenStore) CleanupExpiredTokens

func (*FSRefreshTokenStore) CreateRefreshToken

func (*FSRefreshTokenStore) GetRefreshToken

func (*FSRefreshTokenStore) GetSubjectTokens added in v0.1.3

func (*FSRefreshTokenStore) RevokeRefreshToken

func (*FSRefreshTokenStore) RevokeSubjectTokens added in v0.1.3

func (*FSRefreshTokenStore) RevokeTokenFamily

func (*FSRefreshTokenStore) RotateRefreshToken

type FSTokenStore

type FSTokenStore struct {
	StoragePath string
}

FSTokenStore stores localauth verification and reset tokens as JSON files. Satisfies localauth.VerificationTokenStore.

func NewFSTokenStore

func NewFSTokenStore(storagePath string) *FSTokenStore

type FSUser

type FSUser struct {
	UserId      string         `json:"user_id"`
	IsActive    bool           `json:"is_active"`
	UserProfile map[string]any `json:"profile"`
	CreatedAt   time.Time      `json:"created_at"`
	UpdatedAt   time.Time      `json:"updated_at"`
}

FSUser implements the accounts.User interface

func (*FSUser) Id

func (u *FSUser) Id() string

func (*FSUser) Profile

func (u *FSUser) Profile() map[string]any

type FSUserStore

type FSUserStore struct {
	StoragePath string
}

FSUserStore stores users as JSON files

func NewFSUserStore

func NewFSUserStore(storagePath string) *FSUserStore

func (*FSUserStore) CreateUser

func (*FSUserStore) GetUserById

func (*FSUserStore) SaveUser

type FSUsername added in v0.0.26

type FSUsername struct {
	NormalizedUsername string    `json:"normalized_username"`
	Username           string    `json:"username"`
	UserID             string    `json:"user_id"`
	Version            int       `json:"version"`
	CreatedAt          time.Time `json:"created_at"`
	UpdatedAt          time.Time `json:"updated_at"`
}

FSUsername represents a username reservation stored as JSON

type FSUsernameStore added in v0.0.26

type FSUsernameStore struct {
	StoragePath string
}

FSUsernameStore implements accounts.UsernameStore using filesystem storage.

func NewFSUsernameStore added in v0.0.26

func NewFSUsernameStore(storagePath string) *FSUsernameStore

func (*FSUsernameStore) ChangeUsername added in v0.0.26

func (*FSUsernameStore) GetUserByUsername added in v0.0.26

func (*FSUsernameStore) ReleaseUsername added in v0.0.26

func (*FSUsernameStore) ReserveUsername added in v0.0.26

Jump to

Keyboard shortcuts

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