Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Port string `env:"PORT" envDefault:"8989"`
BaseURL string `env:"BASE_URL,required"`
Whoop Whoop `envPrefix:"WHOOP_"`
RateLimit RateLimit `envPrefix:"RATE_"`
WhoopRateLimit WhoopRateLimit `envPrefix:"WHOOP_RATE_LIMIT_"`
Redis Redis `envPrefix:"REDIS_"`
Database Database `envPrefix:"DATABASE_"`
}
func ReadConfig ¶
func (Config) GetClientID ¶
func (Config) GetClientSecret ¶
func (Config) GetRedirectURL ¶
type WhoopRateLimit ¶
type WhoopRateLimit struct {
// per-user daily limit
PerUserDayLimit int `env:"PER_USER_DAY_LIMIT" envDefault:"1000"`
// w/ safety buffers from WHOOP's 100/min, 10k/day
GlobalMinuteLimit int `env:"GLOBAL_MINUTE_LIMIT" envDefault:"95"`
GlobalDayLimit int `env:"GLOBAL_DAY_LIMIT" envDefault:"9950"`
// dynamic per-user minute limiting
ReserveBuffer int `env:"RESERVE_BUFFER" envDefault:"5"` // reserve for new users joining
MinPerUserMinuteLimit int `env:"MIN_PER_USER_MINUTE_LIMIT" envDefault:"5"` // floor (never go below this)
ActiveWindowSeconds int `env:"ACTIVE_WINDOW_SECONDS" envDefault:"60"` // window for tracking active users
}
Directories
¶
| Path | Synopsis |
|---|---|
|
Package templates provides HTML templates for server pages.
|
Package templates provides HTML templates for server pages. |
Click to show internal directories.
Click to hide internal directories.