| Version | Supported |
|---|---|
| 12.x | ✅ Active |
| 11.x | |
| < 11.0 | ❌ No support |
Please do not open a public GitHub issue for security vulnerabilities.
To report a security issue, please email the repository maintainer directly or use GitHub's private vulnerability reporting.
Include:
- A description of the vulnerability
- Steps to reproduce
- Potential impact assessment
- Any suggested fix (optional)
You will receive a response within 72 hours acknowledging the report.
This project applies the following security practices:
- Minimal runtime dependencies — only 3 vetted libraries (
@supabase/supabase-js,dompurify,valibot) - Input sanitization — all user inputs pass through
sanitize(input, schema)insrc/utils/sanitize.js - No
innerHTMLwith user data —textContentonly for untrusted strings - CSP-friendly — no inline scripts or
eval()usage - OAuth only via approved allowlist —
isApprovedAdmin(email)gates all admin access - Session rotation — auth sessions rotate every 2 hours via
maybeRotateSession() npm audit— runs on every CI push at--audit-level=high- SRI hashes — generated via
npm run srifor all static assets
| In scope | Out of scope |
|---|---|
src/ ES modules |
Third-party OAuth SDKs |
public/sw.js service worker |
GitHub Actions secrets management |
scripts/ build scripts |
(none) |
This is a personal wedding management tool deployed on GitHub Pages. Guest data is stored
in the user's own browser localStorage and optionally in the user's own Google Sheets.
No data is transmitted to any server controlled by this repository.