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-01 02:07:53 -04:00
2026-05-02 20:02:47 -04:00
2026-05-01 00:21:44 -04:00
2026-05-01 08:31:05 -04:00
2026-05-01 02:07:53 -04:00
2026-05-02 19:35:20 -04:00
2026-05-01 21:01:58 -04:00
2026-05-02 03:20:53 -04:00
2026-05-02 02:32:21 -04:00
2026-04-28 22:43:34 -04:00
2026-05-01 02:07:53 -04:00
2026-05-01 02:18:53 -04:00
2026-05-01 00:21:44 -04:00
2026-05-02 18:08:29 -04:00
2026-05-01 00:49:18 -04:00
2026-05-01 02:07:53 -04:00
2026-04-26 04:59:34 -04:00
2026-05-01 02:07:53 -04:00
2026-05-01 02:19:00 -04:00
2026-04-28 11:28:54 -04:00
2026-05-01 01:47:04 -04:00
2026-05-02 19:48:03 -04:00
2026-04-26 20:30:24 -04:00
2026-05-01 02:07:53 -04:00
2026-05-01 02:07:53 -04:00
2026-05-02 19:50:24 -04:00
2026-05-01 02:07:53 -04:00
2026-05-02 19:17:20 -04:00
2026-04-27 21:14:48 -04:00
2026-05-01 02:18:40 -04:00
2026-05-02 20:02:47 -04:00
2026-05-01 02:18:57 -04:00
2026-04-28 18:36:00 -04:00
2026-04-11 19:51:41 -04:00
2026-04-28 18:36:00 -04:00
2026-04-30 22:16:00 -04:00
2026-04-28 18:36:00 -04:00
2026-04-04 04:08:27 -03:00
2026-04-09 01:33:15 -04:00
2026-05-01 02:18:53 -04:00
2026-04-13 01:43:52 -04:00
2026-04-28 18:36:00 -04:00
2026-05-01 02:27:20 -04:00
2026-04-10 16:41:23 -04:00
2026-04-28 18:36:00 -04:00
2026-05-01 00:49:18 -04:00