Commit Graph

  • d59b9cf837 fix: use Mojo::Path for url escaping main Kharec 2026-01-19 11:38:43 +01:00
  • 77a45cc58e test: tighten integration gating Kharec 2026-01-15 11:57:12 +01:00
  • 17eb69fed0 test: cover error formatting Kharec 2026-01-12 10:56:15 +01:00
  • 7aa400b936 test: remove obsoletes tests Kharec 2026-01-05 17:37:57 +01:00
  • 1a82fbac12 clean: trim db api (setnx handles potential collisions) Kharec 2026-01-05 17:37:46 +01:00
  • 285d25223e tests: run async for https url Kharec 2026-01-05 07:26:46 +01:00
  • d88e35b965 tests: update ssl tests Kharec 2026-01-05 07:26:33 +01:00
  • b0aa64053b refactor: check_ssl is async by default Kharec 2026-01-05 07:25:55 +01:00
  • c398ff843d test: accept async validation Kharec 2026-01-05 07:22:20 +01:00
  • 385084afc5 tests: align async validation tests Kharec 2026-01-05 07:22:13 +01:00
  • 777b589946 feat: speed up validation Kharec 2026-01-05 07:22:05 +01:00
  • 72013a9a08 test: add DNS cache coverage Kharec 2025-12-29 16:11:31 +01:00
  • e6fc9c919f feat: add DNS cache and subprocess resolution Kharec 2025-12-29 16:11:24 +01:00
  • 39bead9da1 test: expect 400 for invalid short code Kharec 2025-12-29 16:03:45 +01:00
  • 699f660ec2 fix: respond_once uses stash flag Kharec 2025-12-29 16:03:35 +01:00
  • 2c28b603da test: adjust validation expectations for redirects Kharec 2025-12-29 15:46:10 +01:00
  • 76fa8a7334 fix: correct IPv6 private range checks Kharec 2025-12-29 15:45:52 +01:00
  • 8495d6ab26 fix: validate redirect targets to prevent SSRF via redirect chains Kharec 2025-12-29 15:37:17 +01:00
  • b203bcad78 refactor: normalize range checks into one clear path Kharec 2025-12-29 15:34:33 +01:00
  • 7005e0852a refactor: use respond_once helper in async handlers Kharec 2025-12-29 15:31:59 +01:00
  • af5a924ae3 refactor: add respond_once helper and refactor async handlers to use it Kharec 2025-12-29 15:31:43 +01:00
  • 4730c577fa test: cover head/get fallback Kharec 2025-12-29 15:25:24 +01:00
  • 940f60e471 test: add UTF-8 path case Kharec 2025-12-29 15:25:16 +01:00
  • 407289cd2a fix: head/get reachability fallback Kharec 2025-12-29 15:25:08 +01:00
  • b5ab00ef93 fix: decode UTF-8 after url_unescape Kharec 2025-12-29 15:24:56 +01:00
  • 0b277a3e65 fix: use Socket getaddrinfo for host resolution Kharec 2025-12-29 15:13:46 +01:00
  • e9c298110d test: update validation specs for DNS SSRF logic Kharec 2025-12-29 15:08:53 +01:00
  • ae1dab8116 feat: add DNS-based SSRF checks Kharec 2025-12-29 15:08:46 +01:00
  • eb4c4e4c4c feat: use secure RNG for short codes Kharec 2025-12-29 15:08:35 +01:00
  • e2c4916565 fix: guard async responses with local flag Kharec 2025-12-29 15:08:26 +01:00
  • 15f082fcdc deps: lock Bytes::Random::Secure and transitive deps Kharec 2025-12-29 15:08:05 +01:00
  • 8e6665971e deps: add Bytes::Random::Secure Kharec 2025-12-29 15:07:58 +01:00
  • 09a0fe017a fix: use $c->rendered instead of stash->{rendered} Kharec 2025-12-29 14:48:06 +01:00
  • 9fc620130c fix: use $c->rendered instead of stash->{rendered} Kharec 2025-12-29 14:47:59 +01:00
  • 2903aa51ff revert: cpanfile.snapshot Kharec 2025-12-29 08:59:41 +01:00
  • bf9579ab14 fix: deploy templates/public but not cpanfile.snapshot Kharec 2025-12-29 08:57:39 +01:00
  • 48f2b8448a docs: update readme Kharec 2025-12-29 08:56:43 +01:00
  • 10fd579d0b docs: update readme Kharec 2025-12-29 08:48:53 +01:00
  • 4810966b1c feat: add version in /health Kharec 2025-12-29 08:43:55 +01:00
  • 8c62bff80b clean: remove div Kharec 2025-12-29 08:43:05 +01:00
  • 17857a6b56 feat: add brand-version to display version bottom right Kharec 2025-12-29 08:42:59 +01:00
  • 4053b89cf4 feat: title top left, version bottom right Kharec 2025-12-29 08:42:48 +01:00
  • 331dba9211 feat: setup version Kharec 2025-12-29 08:42:27 +01:00
  • bd4c6c9a1d test: add unit testing for URL.pm Kharec 2025-12-28 19:40:50 +01:00
  • 6f40a4569a clean: shorten title Kharec 2025-12-28 19:32:47 +01:00
  • 9f8570eea2 test: add unit testing for App.pm Kharec 2025-12-28 19:30:37 +01:00
  • 611a25c88d fix: center the box and its button Kharec 2025-12-28 17:59:08 +01:00
  • 801b09ac83 feat: favicon Kharec 2025-12-28 17:55:55 +01:00
  • 39fd9d5c20 feat: add our favicon Kharec 2025-12-28 17:55:51 +01:00
  • b15b473033 clean: remove useless label Kharec 2025-12-28 17:53:58 +01:00
  • e9969841b1 feat: add brand-mark class to place "urupam" Kharec 2025-12-28 17:53:41 +01:00
  • edc1c8cd66 refactor: extract shared styles to app.css Kharec 2025-12-28 17:48:58 +01:00
  • fcbb8f8e5e feat: adopt layout and improve error handling Kharec 2025-12-28 17:48:37 +01:00
  • d8c43cd29b feat: add a shared html layout Kharec 2025-12-28 17:48:17 +01:00
  • 2ae22a271b feat: use shared layout Kharec 2025-12-28 17:48:05 +01:00
  • 6912495a04 test: use perl.org for reachability edge case Kharec 2025-12-28 17:46:49 +01:00
  • aa9f557aa0 docs: remove warning Kharec 2025-12-28 17:37:57 +01:00
  • fb500c7799 feat: create main template Kharec 2025-12-28 17:37:50 +01:00
  • d9b05bab33 feat: render our new main template Kharec 2025-12-28 17:37:43 +01:00
  • 6ce43f4608 feat: use HTML templates for public errors Kharec 2025-12-28 17:32:25 +01:00
  • 09abbd84dc feat: template for error 500 Kharec 2025-12-28 17:31:40 +01:00
  • 43253e6fc6 feat: template for 404 Kharec 2025-12-28 17:31:32 +01:00
  • 64a9db7324 fix: prevent double-rendering in async route handlers Kharec 2025-12-28 17:29:10 +01:00
  • 40b848eeee fix: prevent double-rendering in async promise chains Kharec 2025-12-28 17:28:53 +01:00
  • 7d46eb3922 rename: db is third alphabetical module Kharec 2025-12-28 17:25:45 +01:00
  • 71c5d4b628 test: add some testing for DB module Kharec 2025-12-28 17:24:58 +01:00
  • 4e4820c165 test: simplify utils test cases with tables Kharec 2025-12-28 17:20:24 +01:00
  • 7ffa61846f test: add unit test for Validation module Kharec 2025-12-28 08:48:40 +01:00
  • 1826f7e847 fix: guard validation helpers against undef IP Kharec 2025-12-28 08:48:29 +01:00
  • 86007a74d8 fix: guard validation helpers against undef host Kharec 2025-12-28 08:48:24 +01:00
  • 4d48f90ceb chore: update cpanfile.snapshot Kharec 2025-12-28 08:47:37 +01:00
  • 8c4aaad6a5 build: add Test::MockObject as test requirement Kharec 2025-12-28 08:47:29 +01:00
  • 0c75d2b5b5 feat: add a dummy / route while frontend is in progress Kharec 2025-12-26 08:26:30 +01:00
  • a1ae380ffa feat: use /health to build a healthcheck in compose Kharec 2025-12-26 08:12:07 +01:00
  • 3e7a6f7b20 test: update with latest route architecture Kharec 2025-12-24 18:51:05 +01:00
  • add71c68e4 fix: return the normalized URL from the validator in the response Kharec 2025-12-24 18:48:20 +01:00
  • 795d3d8e9f test: update test with new route architecture Kharec 2025-12-24 18:46:09 +01:00
  • 7c967b179e feat: new route architecture Kharec 2025-12-24 18:45:54 +01:00
  • a67a6214d1 feat: add a ping method Kharec 2025-12-24 18:45:41 +01:00
  • f0731b40f8 fix: preserve unicode letters/digits while still stripping unsafe characters Kharec 2025-12-24 18:45:30 +01:00
  • 990a471af4 revert: error, we need it Kharec 2025-12-24 18:14:00 +01:00
  • fd51393917 clean: get rid of FindBin Kharec 2025-12-23 08:31:20 +01:00
  • cf9597a25d feat: ignore local at docker build Kharec 2025-12-23 04:14:58 +01:00
  • f1197626be fix: double copy + local useless copy Kharec 2025-12-23 04:14:50 +01:00
  • 76cbd130a0 refactor: export functions Kharec 2025-12-22 20:23:42 +01:00
  • 6a5dcd91b7 refactor: explicit function imports Kharec 2025-12-22 20:20:41 +01:00
  • e495bc6f4f refactor: explicit function import Kharec 2025-12-22 20:20:27 +01:00
  • 5241c1b758 clean: remove unused import Kharec 2025-12-22 20:20:01 +01:00
  • f259113a88 feat: Dockerfile Kharec 2025-12-22 20:13:23 +01:00
  • b368b4103a fix: hypnotoad runs by default on 8080 Kharec 2025-12-22 20:13:05 +01:00
  • d992f68a6a build: re-add Mojolicious Kharec 2025-12-22 18:54:17 +01:00
  • 8c4f376563 feat: create docker-compose.yml for the app Kharec 2025-12-22 17:57:12 +01:00
  • a6e3866427 test: add use_ok() Kharec 2025-12-22 17:43:48 +01:00
  • 9ce3a97ca9 test: add utils unit tests Kharec 2025-12-22 17:40:21 +01:00
  • 0228cd9c9d feat: harden sanitize_url host parsing Kharec 2025-12-22 17:37:37 +01:00
  • 3369b018e3 test: API unit testing Kharec 2025-12-22 17:24:02 +01:00
  • db9fab083d test: add integration tests Kharec 2025-12-22 17:04:44 +01:00
  • 747dbc3782 build: update cpanfile Kharec 2025-12-22 16:35:19 +01:00
  • 47302c4bf2 docs: update readme Kharec 2025-12-22 16:35:11 +01:00
  • 87f1f67c50 refactor: use Utils get_error_status Kharec 2025-12-22 15:42:53 +01:00