platform

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: May 29, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitLogger

func InitLogger()

InitLogger configures zerolog. When LOG_FORMAT=pretty (or LOG_PRETTY=true), uses colorized console output for development. Otherwise outputs JSON for production/log aggregation.

func IsDuplicateKey

func IsDuplicateKey(err error) bool

IsDuplicateKey returns true if err is a Postgres unique-violation (SQLSTATE 23505).

func Migrate

func Migrate(db *sql.DB) error

func MigrateDown

func MigrateDown(db *sql.DB) error

func MigrateStatus

func MigrateStatus(db *sql.DB) error

func NewPool

func NewPool(ctx context.Context, databaseURL string) (*pgxpool.Pool, error)

func OpenDB

func OpenDB(databaseURL string) (*sql.DB, error)

func RequestLogger

func RequestLogger(next http.Handler) http.Handler

RequestLogger is a Chi-compatible middleware that logs every request using zerolog. Logs method, path, status, duration, and remote IP.

func RunMigrations

func RunMigrations(ctx context.Context, pool *pgxpool.Pool) error

Types

type Config

type Config struct {
	DatabaseURL   string
	StoragePath   string
	ListenAddr    string
	APIKey        string
	DisableSignup bool
	GitHubToken   string
}

Config holds all runtime configuration for the skael server.

func LoadConfig

func LoadConfig() (*Config, error)

LoadConfig reads configuration from environment variables. DATABASE_URL is required; returns an error if absent. API_KEY is optional but deprecated — user accounts and personal API keys are preferred. STORAGE_PATH defaults to "./data/skills"; LISTEN_ADDR defaults to ":8080". DISABLE_SIGNUP=true prevents new user registrations.

type Storage

type Storage struct {
	BasePath string
}

Storage provides local filesystem storage for skill archive files.

func NewStorage

func NewStorage(basePath string) (*Storage, error)

NewStorage creates a Storage rooted at basePath, creating the directory if it does not already exist.

func (*Storage) Delete

func (s *Storage) Delete(name string) error

Delete removes the file stored under name (relative to BasePath).

func (*Storage) Read

func (s *Storage) Read(name string) (io.ReadCloser, error)

Read opens the file stored under name (relative to BasePath) for reading. The caller is responsible for closing the returned ReadCloser.

func (*Storage) Write

func (s *Storage) Write(name string, r io.Reader) (string, error)

Write stores the content from r under name (relative to BasePath). It uses an atomic write: content is first written to a .tmp file which is then renamed to the final destination, ensuring no partial files are visible. Returns the full path of the written file.

Jump to

Keyboard shortcuts

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