Commit Graph

  • 869b5ba67f Stamp the tag or short commit in a plain docker build (closes #166) next clawbot 2026-10-02 06:01:40 +02:00
  • 3a2eb1f4d2 Read the architecture at run time, not via a Buildarch ldflag (closes #164) clawbot 2026-10-02 01:17:33 +02:00
  • 422b7c020b Test shutdown exit codes, Sentry startup failure and the processing wait (closes #86) issue-86-shutdown-correctness clawbot 2026-09-29 11:08:46 +00:00
  • 4009490242 Share one fetch and transcode among concurrent misses (closes #65) issue-65-share-concurrent-misses clawbot 2026-09-29 09:21:20 +00:00
  • bcd5363d99 Test that concurrent misses for one variant share one fetch (closes #65) clawbot 2026-09-29 09:06:42 +00:00
  • 62f46c3a49 Send CORS headers only from the image routes (closes #98) issue-98-cors-image-routes-only clawbot 2026-09-29 11:00:22 +00:00
  • 6748bbd637 Test that only the image routes send CORS headers (closes #98) clawbot 2026-09-29 10:54:50 +00:00
  • fd7d7ed205 Container makes /var/lib/pixa usable before starting pixad (closes #159) clawbot 2026-09-29 12:44:37 +02:00
  • bce8860c2e Keep variant content types in memory for cache hits (closes #70) clawbot 2026-09-29 12:00:10 +02:00
  • 99735f479b Answer image requests with 503 in maintenance mode (closes #71) clawbot 2026-09-29 11:01:30 +02:00
  • baf457d21e Bound concurrent image processing and upstream fetches (closes #64) clawbot 2026-09-29 10:32:16 +02:00
  • 0c99be939a Install Dockerfile build dependencies through script/bootstrap (closes #95) clawbot 2026-09-29 09:11:20 +02:00
  • 56217cbf4a Add the four settings the README documented but pixa lacked (closes #61) clawbot 2026-09-29 08:49:18 +02:00
  • 46a55ec15d Move migrations to internal/db/migrations (closes #96) clawbot 2026-09-29 07:42:05 +02:00
  • 1b920fe000 Correct trusted_proxies advice and state signature padding (closes #150) clawbot 2026-09-29 06:05:44 +02:00
  • e98b998cb6 Make the cache stats count what is cached, fetched and transcoded (closes #56) clawbot 2026-09-29 05:25:10 +02:00
  • ed3f8770e6 Give pixad a fixed uid and gid 65532 (closes #151) clawbot 2026-09-29 04:44:49 +02:00
  • 2afe61e301 Keep max-age within an expiring image URL's lifetime (closes #63) clawbot 2026-09-29 03:51:58 +02:00
  • 05678eaae5 next -> main (1.0.0 milestone) (#118) main sneak 2026-09-29 03:01:06 +02:00
  • be060a8305 Strip metadata from processed images (closes #82) clawbot 2026-09-29 02:18:25 +02:00
  • e410146fb6 Rate limit login attempts per client address (closes #66) clawbot 2026-09-29 01:03:37 +02:00
  • 6010f5beb0 Refuse an unparseable exp with 400; log swallowed cache errors (closes #72) clawbot 2026-09-28 19:59:39 +02:00
  • f149813c7e Refuse an empty fit on /v1/image/ with 400 (closes #139) clawbot 2026-09-28 18:07:11 +02:00
  • 45869572ff Refuse a q outside 1-100 on /v1/image/ with 400 (closes #134) clawbot 2026-09-28 17:46:49 +02:00
  • 0f3700f7f5 Abort startup on an unknown PIXA_ environment variable (closes #133) clawbot 2026-09-28 16:12:57 +02:00
  • 582ff66ba6 Describe what --health-interval does in docker-smoke on current Docker (closes #132) clawbot 2026-09-28 15:48:53 +02:00
  • f8d40b89a7 Validate dimensions and fit mode on encrypted URLs (closes #62) clawbot 2026-09-28 15:24:32 +02:00
  • 50123b2a6d Start on a fresh upaas volume and document running under upaas (closes #129) clawbot 2026-09-28 15:12:48 +02:00
  • 2f7365cc9b Run all linting in Docker through script/lint (closes #104) clawbot 2026-09-28 14:27:35 +02:00
  • 0f5bd51b09 Every setting can be given as an environment variable (closes #128) clawbot 2026-09-28 13:46:56 +02:00
  • db784bf561 Include quality and fit in the URL signature (closes #60) clawbot 2026-09-28 13:02:21 +02:00
  • b7c1226c38 Add a Docker HEALTHCHECK and make docker-smoke (closes #111) clawbot 2026-09-28 12:06:29 +02:00
  • 10eab440e7 Resolve real client IP behind trusted proxies (closes #94) clawbot 2026-09-22 10:25:41 +02:00
  • 3cfcda0730 feat: blocked_networks config and extended SSRF ranges (closes #67) clawbot 2026-09-22 00:43:27 +02:00
  • 1798cba96c Take the image signing key from PIXA_SIGNING_KEY and refuse the example placeholder (closes #110) clawbot 2026-09-21 21:59:24 +02:00
  • 37d49ade11 Harden http.Server: slowloris timeouts and form body limit (closes #92) clawbot 2026-09-21 20:59:24 +02:00
  • b4e5300feb feat: add HSTS, CSP, and Permissions-Policy security headers (closes #91) clawbot 2026-09-21 20:43:13 +02:00
  • 4f95cb6a37 docs: update TODO.md Workflow and Status for the next branching model (closes #106) clawbot 2026-09-21 19:59:51 +02:00
  • 6f416eac31 test: cover redirect SSRF and semaphore release in httpfetcher (closes #78) clawbot 2026-09-21 19:59:26 +02:00
  • b95ef1eb69 fix: script/test conditional-verbose-rerun with -cover (closes #59) clawbot 2026-09-21 19:43:21 +02:00
  • a96eba8083 CSRF protection on the login and URL-generator forms (closes #93) clawbot 2026-09-21 19:26:18 +02:00
  • 04b5db6fbf next -> main (1.0.0 milestone) (#105) prod clawbot 2026-09-21 09:31:54 +02:00
  • 63fbc98e63 feat: cache size management and LRU eviction (closes #51) (#55) clawbotandsneak 2026-08-09 13:22:51 +02:00
  • 61f42e6602 feat: validate configuration on startup, fail fast on bad config (closes #52) (#53) clawbotandsneak 2026-08-07 22:39:40 +02:00
  • 5d0b5f864e docs: record manual test pass of auth and encrypted URL flows (closes #49) (#50) clawbotandsneak 2026-08-07 18:44:01 +02:00
  • 6573b9d1ef refactor: extract signature package from imgcache (#46) clawbotandsneak 2026-08-07 17:44:00 +02:00
  • 275e145a6d fix: set Secure/HttpOnly/SameSite on session cookies (closes #47) (#48) clawbotandsneak 2026-08-07 17:41:03 +02:00
  • b6e9ac2a93 refactor: extract httpfetcher package from imgcache (#43) 2026-07-25 12:26:18 +02:00
  • 504afea4f8 scripts-to-rule-them-all (#45) sneak 2026-07-07 02:14:03 +02:00
  • 2fb909283d Update TODO.md: standard structure and Workflow section (#44) sneak 2026-07-06 21:20:56 +02:00
  • 6b4a1d7607 refactor: extract magic byte detection into internal/magic package (#42) clawbotanduser 2026-04-07 00:41:48 +02:00
  • e34743f070 refactor: extract whitelist package from internal/imgcache (#41) 2026-03-25 20:44:56 +01:00
  • 7010d55d72 Move schema_migrations table creation into 000.sql (#36) 2026-03-25 02:20:52 +01:00
  • a50364bfca Enforce and document exact-match-only for signature verification (#40) clawbotanduser 2026-03-20 23:56:45 +01:00
  • e85b5ff033 Consolidate appname to internal/globals as a constant (#34) 2026-03-20 07:04:54 +01:00
  • 55a609dd77 Bound imageprocessor.Process input read to prevent unbounded memory use (#37) 2026-03-20 07:01:15 +01:00
  • 9c29cb57df feat: parse version prefix from migration filenames (#33) clawbotanduser 2026-03-18 03:18:38 +01:00
  • 35af9c99d5 Add µPaaS deployment setup for fsn1app1 feat/upaas-deployment-setup user 2026-03-17 02:17:15 -07:00
  • e241b99d22 remove suffix matching from host whitelist remove-whitelist-suffix-matching user 2026-03-17 01:55:19 -07:00
  • 55bb620de0 docs: update README and config to reflect exact-match-only whitelist fix/remove-whitelist-suffix-matching user 2026-03-15 11:18:44 -07:00
  • 215ddb7f72 fix: remove suffix matching from host whitelist user 2026-03-15 11:18:25 -07:00
  • 27739da046 test: add failing tests for removing suffix matching from whitelist user 2026-03-15 11:18:01 -07:00
  • 2e934c8894 fix: QA audit fixes for 1.0/MVP readiness (#25) clawbotanduser 2026-03-15 17:58:13 +01:00
  • 2f15340f26 Split Dockerfile: pre-built golangci-lint stage for faster CI (#23) clawbotandclawbot 2026-03-02 21:09:51 +01:00
  • de38b03508 feat: split Dockerfile into dedicated lint and build stages fix/20-split-dockerfile clawbot 2026-03-02 00:05:52 -08:00
  • 811c210b09 Merge pull request 'fix: Docker build failures on arm64 (closes #15)' (#16) from fix/docker-multiarch-lint into main sneak 2026-02-25 20:51:44 +01:00
  • 18b6f86eec fix: resolve all 16 lint failures — make check passes clean ci/make-check clawbot 2026-02-20 03:20:23 -08:00
  • 28771144bf ci: pin golangci-lint go install to commit hash user 2026-02-20 03:08:39 -08:00
  • c01222a597 security: pin CI actions to commit SHAs user 2026-02-20 02:58:12 -08:00
  • 06e1cba0a9 ci: add Gitea Actions workflow for make check user 2026-02-20 02:48:41 -08:00
  • 5ca64a37ce fix: detect architecture for golangci-lint download in Docker build clawbot 2026-02-25 06:12:47 -08:00
  • 118bca1151 Merge pull request 'bring repo into compliance with repo policies' (#14) from chore/repo-compliance into main sneak 2026-02-25 14:52:56 +01:00
  • 85729d9181 fix: update Dockerfile to Go 1.25.4 and resolve gosec lint findings clawbot 2026-02-25 05:44:49 -08:00
  • a1c0ae0a44 fix: auto-detect native deps, skip nix-shell in Docker sneak 2026-02-25 20:11:02 +07:00
  • 429926fb71 chore: use nix-shell for CGO-dependent Makefile targets sneak 2026-02-25 20:08:04 +07:00
  • ce6db7627d fix: resolve all golangci-lint errors sneak 2026-02-25 19:58:37 +07:00
  • 454de2f170 fix: restore original whitelist hosts in config.example.yml sneak 2026-02-25 19:53:23 +07:00
  • 133d9e5a4a chore: consolidate duplicate example config files sneak 2026-02-25 19:48:03 +07:00
  • 73f1073d61 chore: restructure README with required policy sections sneak 2026-02-25 19:47:34 +07:00
  • d0fe5e7334 chore: pin Docker images by hash and run make check in build sneak 2026-02-25 19:47:14 +07:00
  • c4fc1e1548 chore: update .dockerignore to policy standards sneak 2026-02-25 18:22:35 +07:00
  • 39fa0a5d05 chore: update .gitignore to policy standards sneak 2026-02-25 18:22:33 +07:00
  • 2f53b49a88 chore: add Gitea Actions CI workflow sneak 2026-02-25 18:22:24 +07:00
  • ce360880f7 chore: add REPO_POLICIES.md from prompts repo sneak 2026-02-25 18:22:19 +07:00
  • 9d71fabdd7 chore: add GPL-3.0 LICENSE file sneak 2026-02-25 18:22:13 +07:00
  • 8a2b630864 chore: add .editorconfig sneak 2026-02-25 18:18:06 +07:00
  • 0000188265 chore: add hooks target and 30s test timeout to Makefile sneak 2026-02-25 18:18:00 +07:00
  • f702e64139 Merge pull request 'chore: remove local dev config files' (#12) from chore/remove-stale-files into main sneak 2026-02-20 12:05:28 +01:00
  • c4368b1541 chore: remove local dev config files user 2026-02-20 02:59:30 -08:00
  • 2fb36c5ccb Merge pull request 'fix: propagate AllowHTTP to SourceURL() scheme selection (closes #1)' (#6) from fix/issue-1 into main sneak 2026-02-09 01:41:31 +01:00
  • 40c4b53b01 fix: propagate AllowHTTP to SourceURL() scheme selection clawbot 2026-02-08 15:58:02 -08:00
  • b800ef86d8 Merge pull request 'fix: check negative cache in Service.Get() before fetching upstream (closes #3)' (#8) from fix/issue-3 into main sneak 2026-02-09 01:32:26 +01:00
  • 3d857da237 Merge branch 'main' into fix/issue-3 sneak 2026-02-09 01:32:17 +01:00
  • 46a92c3514 Merge pull request 'fix: correct Stats() column scanning and HitRate computation (closes #4)' (#9) from fix/issue-4 into main sneak 2026-02-09 01:31:18 +01:00
  • 39354e41c3 Merge branch 'main' into fix/issue-4 sneak 2026-02-09 01:31:03 +01:00
  • d1eff1315b Merge pull request 'fix: encode source query in GenerateSignedURL to avoid malformed URLs (closes #2)' (#7) from fix/issue-2 into main sneak 2026-02-09 01:30:51 +01:00
  • 814c735295 Merge branch 'main' into fix/issue-2 sneak 2026-02-09 01:29:07 +01:00
  • 7ce6f81d8d Merge pull request 'fix: guard against division by zero when fetchBytes is 0 (closes #5)' (#10) from fix/issue-5 into main sneak 2026-02-09 01:05:24 +01:00
  • e651e672aa fix: check negative cache in Service.Get() before fetching upstream clawbot 2026-02-08 15:59:00 -08:00
  • 79ceed2ee4 fix: guard against division by zero when fetchBytes is 0 clawbot 2026-02-08 15:59:51 -08:00