LinkBreeze v1.0.2
Security
- SVG upload XSS eliminated — Removed
.svgfrom the upload allowlist entirely. AddedContent-Security-Policy: default-src 'none'andX-Content-Type-Options: nosniffheaders to the uploads serving route. Closes #15. - Login rate limiting — 5 attempts/min per IP. Closes #1.
- Production secret key warning — Console warning when
SECRET_KEYunset in production +secretKeySetflag in health endpoint. Closes #9. - Backup row validation — Zod schemas validate every row before DB transaction.
- Analytics foreign key —
analytics_clicks.link_idnow has FK withON DELETE CASCADE.
Added
Fixed
- Login sidebar bug —
/loginredirects authenticated users to/dashboard. - Health endpoint version — Reads dynamically from
package.json.
Changed
- Atomic transactions for reorderLinks, clearAnalytics, setActiveTheme
- Proactive rate-limit cleanup every 30s
- Shared analytics-range module (deduplicated sinceExpr/parseRange)
- npm overrides for postcss + esbuild — 0 vulnerabilities
- CI workflow runs Vitest, Docker release workflow on tag push
Full Changelog: v1.0.1...v1.0.2