A lexicon-driven AppView for ATProto.
Something went wrong. Try again.
Markdown
HappyView Plugin System #
HappyView supports WASM plugins for extending functionality. The first plugin type is external auth providers (Steam, GOG, Epic, etc.).
Configuration #
Environment Variables #
TOKEN_ENCRYPTION_KEY: Base64-encoded 32-byte key for encrypting OAuth tokens (required for external auth)PLUGIN_URLS: Comma-separated list of plugins to load from URLs
PLUGIN_URLS Format #
id|url|sha256:hash,id|url|sha256:hash
Example:
PLUGIN_URLS=steam|https://github.com/org/plugins/releases/download/v1.0.0/steam.wasm|sha256:abc123
File-based Plugins #
Place plugins in the ./plugins/ directory:
plugins/
steam/
plugin.wasm
plugin.toml
API Endpoints #
GET /external-auth/providers- List available auth providersGET /external-auth/{plugin_id}/authorize?redirect_uri=...- Start auth flowGET /external-auth/{plugin_id}/callback- OAuth callbackPOST /external-auth/{plugin_id}/sync- Sync account dataPOST /external-auth/{plugin_id}/unlink- Unlink account
Plugin Development #
See the Plugin Development Guide for creating custom plugins.
Security #
- OAuth tokens are encrypted at rest using AES-256-GCM
- Plugins run in a sandboxed WASM environment
- Plugins can only access host functions (HTTP, KV, secrets, logging)
- KV storage is scoped per-plugin and per-user