Commit Graph

45 Commits

Author SHA1 Message Date
7005e0852a refactor: use respond_once helper in async handlers 2025-12-29 15:31:59 +01:00
af5a924ae3 refactor: add respond_once helper and refactor async handlers to use it 2025-12-29 15:31:43 +01:00
407289cd2a fix: head/get reachability fallback 2025-12-29 15:25:08 +01:00
b5ab00ef93 fix: decode UTF-8 after url_unescape 2025-12-29 15:24:56 +01:00
0b277a3e65 fix: use Socket getaddrinfo for host resolution 2025-12-29 15:13:46 +01:00
ae1dab8116 feat: add DNS-based SSRF checks 2025-12-29 15:08:46 +01:00
eb4c4e4c4c feat: use secure RNG for short codes 2025-12-29 15:08:35 +01:00
e2c4916565 fix: guard async responses with local flag 2025-12-29 15:08:26 +01:00
09a0fe017a fix: use $c->rendered instead of stash->{rendered} 2025-12-29 14:48:06 +01:00
9fc620130c fix: use $c->rendered instead of stash->{rendered} 2025-12-29 14:47:59 +01:00
4810966b1c feat: add version in /health 2025-12-29 08:43:55 +01:00
331dba9211 feat: setup version 2025-12-29 08:42:27 +01:00
d9b05bab33 feat: render our new main template 2025-12-28 17:37:43 +01:00
6ce43f4608 feat: use HTML templates for public errors 2025-12-28 17:32:25 +01:00
64a9db7324 fix: prevent double-rendering in async route handlers 2025-12-28 17:29:10 +01:00
40b848eeee fix: prevent double-rendering in async promise chains 2025-12-28 17:28:53 +01:00
1826f7e847 fix: guard validation helpers against undef IP 2025-12-28 08:48:29 +01:00
86007a74d8 fix: guard validation helpers against undef host 2025-12-28 08:48:24 +01:00
0c75d2b5b5 feat: add a dummy / route while frontend is in progress 2025-12-26 08:26:30 +01:00
add71c68e4 fix: return the normalized URL from the validator in the response 2025-12-24 18:48:20 +01:00
7c967b179e feat: new route architecture 2025-12-24 18:45:54 +01:00
a67a6214d1 feat: add a ping method 2025-12-24 18:45:41 +01:00
f0731b40f8 fix: preserve unicode letters/digits while still stripping unsafe characters 2025-12-24 18:45:30 +01:00
76cbd130a0 refactor: export functions 2025-12-22 20:23:42 +01:00
6a5dcd91b7 refactor: explicit function imports 2025-12-22 20:20:41 +01:00
e495bc6f4f refactor: explicit function import 2025-12-22 20:20:27 +01:00
5241c1b758 clean: remove unused import 2025-12-22 20:20:01 +01:00
0228cd9c9d feat: harden sanitize_url host parsing 2025-12-22 17:37:37 +01:00
87f1f67c50 refactor: use Utils get_error_status 2025-12-22 15:42:53 +01:00
52ec5a010a clean: remove redundant helper 2025-12-22 15:42:36 +01:00
ab68257e74 feat: add URL shortening API endpoints to app 2025-12-22 15:39:46 +01:00
50a12816b1 feat: implement API 2025-12-22 15:39:28 +01:00
65570d3b6d fix: remove redundant short code validation from get_original_url 2025-12-22 15:35:18 +01:00
86258332c8 feat: sanitize error message 2025-12-22 15:34:25 +01:00
0743db5a12 feat: comprehensive URL validation module with security checks 2025-12-22 15:04:57 +01:00
2b993e11a4 feat: create setnx() 2025-12-22 15:03:43 +01:00
57fd42604e feat: add app utils 2025-12-22 15:03:31 +01:00
1b79d48dc6 feat: url generation and handling logic 2025-12-22 15:03:20 +01:00
9cf87f6e57 feat: add check ssl and check url reachability 2025-12-22 14:13:06 +01:00
3eb09c5cda feat: add basic validators 2025-12-22 14:01:18 +01:00
bc4e5c353c feat: add incr() and exists() methods 2025-12-22 13:52:16 +01:00
45f8072679 feat: render the dummy test in json 2025-12-18 09:31:57 +01:00
acb1f63bae feat: add a dummy set/get in the main route to try redis 2025-12-18 07:28:24 +01:00
6565be735d feat: add basic db logic 2025-12-18 07:27:55 +01:00
f84c9dcbb4 feat: add basic skeleton app 2025-12-17 14:15:27 +01:00