Skip to content

v2.0.1

Choose a tag to compare

@Zingzy Zingzy released this 04 Jul 19:55
· 480 commits to main since this release

What's Changed

  • Refactor code using flask blueprints by @Zingzy in #3
  • Bump gunicorn from 20.0.4 to 22.0.0 by @dependabot[bot] in #5
  • Feature Add Bot Blocking for Users by @Zingzy in #25
  • Feature Add Average URL Redirection Time by @Zingzy in #26
  • 12 feature add tests to the project using pytest by @Zingzy in #29
  • Add 'ips' field to redirect_url function configuration by @Zingzy in #33
  • Update IP handling to ensure 'ips' field is not empty before processing by @Zingzy in #35
  • Fix: Stats not updating properly by @Zingzy in #37
  • Update mongoDB schema to store referrers in sanitized format by @Zingzy in #39
  • Optimize IP Existence Check in ips Array Field by @Zingzy in #41
  • Add aggregation functions for URLs statistics to reduce load times by @Zingzy in #43
  • Bump actions/setup-python from 2 to 5 by @dependabot[bot] in #45
  • Bump actions/checkout from 2 to 4 by @dependabot[bot] in #44
  • Remove console log from password validation function by @Zingzy in #50
  • Remove debug mode from app.run in main.py by @Zingzy in #51
  • [BUG] Submitting an invalid short-code to the /stats endpoint causes an Internal Server Error by @Zingzy in #54
  • Bump aiohttp from 3.10.10 to 3.10.11 by @dependabot[bot] in #58
  • Bump jinja2 from 3.1.4 to 3.1.5 by @dependabot[bot] in #57
  • Bump werkzeug from 3.0.4 to 3.0.6 by @dependabot[bot] in #56
  • [BUG] Retrieve Visitor's Real IP Behind Cloudflare Proxy by @Zingzy in #61
  • Bump jinja2 from 3.1.5 to 3.1.6 by @dependabot[bot] in #63
  • Bump setuptools from 75.1.0 to 78.1.1 by @dependabot[bot] in #67
  • Bump flask-cors from 5.0.0 to 6.0.0 by @dependabot[bot] in #66
  • Bump flask-cors from 5.0.0 to 6.0.0 by @dependabot[bot] in #69
  • Redis based query caching to improve DB performance during load by @Zingzy in #70
  • Fix password protected URLs 500 error by @Zingzy in #72
  • Bump requests from 2.32.3 to 2.32.4 by @dependabot[bot] in #74
  • Fix: Cache Stampede in /metric endpoint by @Zingzy in #75
  • Move the old docs and self-hosting gudie to the new docs by @Zingzy in #76
  • Refactor IP address handling in rate limiter by @Zingzy in #78
  • Increase alias limit from 12 to 16 chars and minor api improvements by @Zingzy in #81
  • Bump urllib3 from 2.4.0 to 2.5.0 by @dependabot[bot] in #80
  • Add login System + Complete system overhaul by @Zingzy in #94
  • feat: add URL preview feature by @Zingzy in #95
  • chore(deps): bump werkzeug from 3.1.3 to 3.1.4 by @dependabot[bot] in #98
  • chore(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #96
  • feat: optimize stats aggregation by implementing $facet for single DB stats aggeragations by @Zingzy in #100
  • chore(deps): bump urllib3 from 2.5.0 to 2.6.0 by @dependabot[bot] in #102
  • Chore/Oauth Refactor & Dead code Cleanup by @Zingzy in #116
  • Upgrade deps by @Zingzy in #117
  • Feat/architecture revamp by @Zingzy in #121
  • chore(deps): bump astral-sh/setup-uv from 6 to 7 by @dependabot[bot] in #123
  • chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #122
  • fix: add field validator to handle null owner_id in UrlV2Doc by @Zingzy in #124
  • Fix incorrect github star count by @Zingzy in #126
  • chore(deps): bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in #129
  • Fix email confirm access bug by @Zingzy in #131
  • fix: update pre-commit configuration and dependencies by @Zingzy in #132
  • fix: handle document overflow in update operations Legacy URLs by @Zingzy in #137
  • fix: prevent modification and deletion of blocked URLs in UrlService by @Zingzy in #141
  • Feat/strenumify hardcoded strings by @Zingzy in #142
  • feat: redirect to dashboard on login for authenticated users in landing page by @Zingzy in #143
  • refactor: simplify error page layout by @Zingzy in #144
  • feat: improve hCaptcha support & site analytics support by @Zingzy in #145
  • feat: enhance JWT security checks and improve OTP verification logic by @Zingzy in #138
  • feat: enhance mobile navigation and update progress dot functionality in V2 announcement modal by @Zingzy in #148
  • feat: improve validation error responses with detailed field information by @Zingzy in #149
  • feat: implement service wiring and enhance repository error handling by @Zingzy in #156
  • refactor: field handler registry, response DTO factories, and password verification on UrlCacheData by @Zingzy in #157
  • feat: add apps management page and device authorization flow by @Zingzy in #146
  • refactor: reorganize authentication routes and services by @Zingzy in #158
  • refactor: update dependencies and streamline service imports by @Zingzy in #159
  • feat: create base email template and refactor existing email template… by @Zingzy in #163
  • Feat/frontend rearchirecture by @Zingzy in #150
  • feat: production deploy via Hetzner + Cloudflare Tunnel by @Zingzy in #169
  • fix(deploy): write IMAGE_TAG to .env, use explicit --env-file by @Zingzy in #171
  • upgrade deps by @Zingzy in #172
  • feat(infra): replace CF Tunnel with direct origin + Caddy by @Zingzy in #173
  • Feat: Feature rollout system by @Zingzy in #179
  • feat: Introduce domain handling for URL services and caching by @Zingzy in #180
  • build(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #178
  • build(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #177
  • build(deps): bump appleboy/ssh-action from 1.0.3 to 1.2.5 by @dependabot[bot] in #176
  • build(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #175
  • build(deps): bump docker/build-push-action from 5 to 7 by @dependabot[bot] in #174
  • chore(deps): bump python from 3.12-slim to 3.14-slim by @dependabot[bot] in #135
  • feat: Implement tenant resolver and domain ownership verification strategies by @Zingzy in #181
  • feat: Implement Cloudflare SaaS integration for custom domain management by @Zingzy in #186
  • feat: Implement Cloudflare Worker for custom domain traffic routing by @Zingzy in #187
  • Refactor CF SaaS backend and custom domain service for improved DNS h… by @Zingzy in #188
  • feat(custom-domains): public API + dashboard + tenant routing policy by @Zingzy in #189
  • feat(custom-domains): lifecycle fixes + add/manage flow redesign by @Zingzy in #190
  • feat(custom-domains): implement per-domain routing configuration updates by @Zingzy in #191
  • feat(apps): mark spoo-cli live with loopback redirect URI by @Zingzy in #202
  • chore(deps): upgrade Python dependencies via uv by @Zingzy in #204
  • build(deps): bump codecov/codecov-action from 6 to 7 by @dependabot[bot] in #200
  • build(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #182
  • fix(tests): restore CI compat with pyjwt 2.13 and fastapi 0.137 by @Zingzy in #206
  • Feat/click event fanout by @Zingzy in #213
  • build(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #208
  • chore: bump dependencies by @Zingzy in #215
  • chore: ship click worker logs to axiom by @Zingzy in #217
  • CF edge cache for hot URLs by @Zingzy in #218
  • Fix edge deploy job toolchain by @Zingzy in #222
  • Beta environment slice by @Zingzy in #220
  • Pin production KV namespace id by @Zingzy in #223
  • ci: release-based deploy pipeline by @Zingzy in #219

New Contributors

Full Changelog: https://github.com/spoo-me/spoo/commits/v2.0.1