anti
7036a86e76
refactor(artifacts): extract resolve_artifact_path to shared module
...
Move artifact path validation + symlink-escape check out of the
admin-gated download endpoint into decnet/artifacts/paths.py so the
TTP EmailLifter can disk-reach .eml files at tag-time without
duplicating regex/root logic (DEBT-047).
The router now catches ArtifactPathError and re-raises HTTPException(400);
behavior is unchanged.
2026-05-02 20:02:47 -04:00
..
2026-05-02 20:02:47 -04:00
2026-04-23 13:25:28 -04:00
2026-04-09 18:32:46 -04:00
2026-04-26 09:20:17 -04:00
2026-04-28 22:34:45 -04:00
2026-04-19 20:24:29 -04:00
2026-04-26 03:40:08 -04:00
2026-04-25 07:51:20 -04:00
2026-04-30 20:49:29 -04:00
2026-04-19 17:57:45 -04:00
2026-04-17 17:48:42 -04:00
2026-04-26 08:36:17 -04:00
2026-04-12 08:01:21 -04:00
2026-04-26 22:56:48 -04:00
2026-04-30 21:17:03 -04:00
2026-04-10 01:50:08 -04:00
2026-04-15 15:47:02 -04:00
2026-04-19 22:42:52 -04:00
2026-04-19 01:01:09 -04:00
2026-04-27 16:33:04 -04:00
2026-04-24 01:18:40 -04:00
2026-05-02 02:55:05 -04:00
2026-04-24 16:24:33 -04:00
2026-04-22 14:12:29 -04:00
2026-04-09 12:24:09 -04:00
2026-04-28 18:36:00 -04:00
2026-04-28 18:36:00 -04:00
2026-04-28 18:36:00 -04:00
2026-04-28 18:36:00 -04:00
2026-04-28 18:36:00 -04:00
2026-04-28 18:36:00 -04:00
2026-04-28 18:36:00 -04:00
2026-05-01 21:26:46 -04:00
2026-04-28 18:36:00 -04:00
2026-04-28 18:36:00 -04:00