3.9 KiB
3.9 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.4.0 - 2026-05-02
Added
POST /manage/import— import emotes from a legacy JSON endpoint, downloading each image and mirroring it to S3 with original timestamps preserved.- Duplicate detection: emotes whose name already exists are skipped (compatible with both SQLite and PostgreSQL).
- Host allowlist for import source URLs, configurable via
[import] allowed_hostsinconfig.toml(default:["smutba.se"]). - Dry-run mode (
"dry_run": truein request body): previews the import without writing to S3 or the database. Result statuses are"would_import"and"would_skip"instead of"imported"and"skipped".
0.3.0 - 2026-04-28
Added
- Management UI at
GET /managefor adding, editing, and deleting emotes. GET /manage/emotes— admin JSON endpoint returning full emote data (uuid, name, alias, url, timestamps) for use by the management UI.AdminEmoteResponsemodel exposinguuidandaliasfields not present in the publicEmoteResponse.- Client-side search on the management page filtering emotes by name or alias.
- HTTP Basic Auth middleware protecting
/manageand all emote write endpoints (POST /emotes,PUT /emotes/{uuid},DELETE /emotes/{uuid}). Credentials are configured via[auth]inconfig.tomlor theAPP__AUTH__USERNAME/APP__AUTH__PASSWORDenvironment variables. Omitting the section causes all protected routes to return 401.
0.2.4 - 2026-04-11
Fixed
- Gitea release workflow: remove
target_commitishfrom release creation API call to fix 409 conflict when creating releases for existing tags.
0.2.3 - 2026-04-11
Fixed
- Gitea release workflow: retry release creation with backoff to handle timing between tag push and tag availability in the API.
0.2.2 - 2026-04-09
Fixed
- Updated Gitea container registry token in CI.
0.2.1 - 2026-04-09
Removed
- Deleted old GitHub Actions workflows (superseded by Gitea workflows).
0.2.0 - 2026-04-09
Added
- Emotes listing HTML page at
GET /with styled table (accent colors, drop shadow, glow effects). GET /health check endpoint (returns 200 OK).- Dockerfile and Docker build/push workflow targeting the Gitea container registry.
Fixed
- Error handling added to the client-side emotes fetch call on the HTML page.
0.1.0 - 2026-03-18
Added
- Rust/Axum HTTP server with SQLite and PostgreSQL support via
sqlx::AnyPool. EmoteRowDB model andEmoteResponseJSON API response type.POST /emotes— create emote (multipart:name,alias?,file).PUT /emotes/{uuid}— update emote metadata.DELETE /emotes/{uuid}— delete emote from DB and S3.GET /json— list all emotes as JSON.GET /version— git commit hash and tag baked in at build time viabuild.rs.- S3/Wasabi storage backend with configurable endpoint and public URL.
- Database migrations run automatically on startup.
- GitHub Actions release workflow building a Linux binary on
v*tag push.