Skip to content

Modernize SnapPass: client-side encryption - #457

Open
neuhaus wants to merge 21 commits into
pinterest:masterfrom
neuhaus:patch-1
Open

Modernize SnapPass: client-side encryption#457
neuhaus wants to merge 21 commits into
pinterest:masterfrom
neuhaus:patch-1

Conversation

@neuhaus

@neuhaus neuhaus commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Pretty comprehensive patch with breaking API changes:

  • client-side encryption with the password in the hash part of the URL, never touching the server
  • remove legacy UI dependencies,
  • modernize python packaging,
  • accessibility improvements.

Fixes #436
Fixes #456
Fixes #415
Fixes #458

Co-Authored-By: Google Gemini

neuhaus added 16 commits July 28, 2026 00:08
…cies, modernize python packaging, accessibility improvements.

Fixes pinterest#436
Fixes pinterest#456
Fixes pinterest#415
…NTRIBUTING.rst, and remove obsolete MANIFEST.in
- Removed requirements.txt and dev-requirements.txt
- Bumped Flask, Flask-Babel, and redis-py to modern versions
- Bumped fakeredis to natively support RESP3/HELLO protocol
- Updated Makefile, Dockerfile, and tox pipelines to use pyproject.toml
- Fixed pip-audit vulnerabilities by bumping pytest and wheel
- Configured .bumpversion.cfg to manage pyproject.toml and __init__.py versions
- Documented release process in CONTRIBUTING.rst
- Enforced Python 3.10+ requirement in pyproject.toml
- Bumped coverage, ruff, pip-audit, freezegun, tox, and mypy to latest versions
- Cleaned up unused imports in tests.py
- Updated CHANGELOG.rst for the 1.7.0 release
@neuhaus

neuhaus commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

You might want to bump the version number to 2.0

neuhaus added 5 commits July 30, 2026 21:25
- Fix SECRET_KEY evaluation in docker-compose.yml and main.py to prevent empty keys from bypassing checks.
- Update redis.conf to require a minimum of 1mb for proto-max-bulk-len.
- Restrict Redis ACL to only allow access to keys matching the exact 22-character urlsafe base64 length and 'snappass' prefix.
- Add MAX_CONTENT_LENGTH of 512KB to Flask to prevent memory exhaustion.
- Enforce 256KB payload limit in API routes and set_password UI.
- Add localized error handling for payload size limits and update translations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant