478ba2a406
feat: GET /api/v1/users/{userRef}/members/{memberRef}
78afb8b9c4
feat: GET /api/v1/users/{userRef}/members
e908e67ca6
chore: license headers
d182b07482
feat: GET /api/v1/members/{id}, api v1 flags
2281b3e478
fix: replace port 5000 in example docs with port 6000
7791c91960
feat(backend): initial /api/v1/users endpoint
5e7df2e074
feat(frontend): add footer
e24c4f9b00
feat(frontend): self-service delete, force delete pages
3f8f6d0f23
delete stray console.log
661c3eab0f
fix(backend): save data exports as data-export.zip
96725cc304
feat: self-service deletion API, reactivate account page
8a2ffd7d69
feat(frontend): preference cheatsheet
546e900204
feat(backend): report context, fix deleting reports
bd21eeebcf
feat(frontend): report profile page
05913a3b2f
chore: update svelte
1fb1d8dd14
update gitignore
ddd96e415a
refactor(frontend): use handleError hook for errors instead of try/catch
d518cdf739
feat: filters on reports list
27846a4fe4
fix: make query parameters consistent
f766a2054b
feat: allow suspended *and* self-deleted users to access a handful of pages
36cb1d2043
feat: moderation API
d518cdf739
feat: filters on reports list
27846a4fe4
fix: make query parameters consistent
f766a2054b
feat: allow suspended *and* self-deleted users to access a handful of pages
79b8c4799e
feat: new migrator
b36b54f9e6
docker: expose metrics and internal API
9d33093339
feat: forgot password/reset password
26b32b40e2
feat: show utc offset on profile
5cdadc6158
fix: remove scoped styles from user pages
39a3098a99
fix: fix all eslint errors