Repository navigation
Monodrop
TOTP / Two-factor authentication
Full MFA lifecycle: setup, enable, disable, and TOTP verification step during login. Profile page includes QR-code scanner flow and manual entry fallback. Documented and translated in all six supported languages.
User soft-delete
Users can be deactivated without permanent deletion. Middleware blocks access for deactivated accounts; audit trail is preserved (GDPR Article 30).
Audit log
New audit_logs table tracks export actions with user name/email, IP, user agent, entity type, and project context. Deleted users leave their entries intact. Admin and project-scoped audit log views added to the UI.
Security
- Refresh token replaced from ULID to 32-byte
crypto/rand - Redis fail-closed: login is blocked (not silently degraded) when Redis is unavailable
Reports
- Date range preset picker (30 days / 90 days / year / all time)
- Age group filter type cast fixed
- Enum values translated in filter dropdowns
- Wider dropdowns for readability
Households
- Search by name and date filters
- Head-of-household name joined in list view
- Autofill styling improvements
Frontend
- Case status colour coding in people list
- Selected tag chips moved to a dedicated row below the filter bar
- Unknown file formats use dashed icon; AVIF/HEIF excluded from thumbnails
- 189-test frontend suite across 33 files
- Route smoke tests via
@tanstack/react-router
Backend
WithTxdatabase transaction abstraction for multi-step operations- Comprehensive handler and use-case test suite
- Export handler tests (people, support records, pets, households)
- Tag use-case wired to handler layer
CLI
observer setupcommand for first-run configuration- Improved help text across all sub-commands
CI / Ops
- GitHub Actions for Go build and test
- GitHub Actions for Hugo documentation deployment
- GoReleaser:
linux/amd64,linux/arm64,darwin/amd64,darwin/arm64
Documentation
- CLI guide, demo setup, deployment docs
- Multilingual TOTP/MFA docs (en, ky, ru, uk, de, tr)
- OpenAPI spec updated
Migrations
Migrations 000028–000030 must be applied before running this version:
| # | Description |
|---|---|
| 000028 | Create audit_logs table with indexes |
| 000029 | Fix audit_logs cascade; add entity index |
| 000030 | Add deactivated_at to users |
Run observer migrate to apply.