Follow-ups: D1 scraper in container + cron, F3 backup, A3 history, C1/C2 UI #7

Open
morris wants to merge 1 commit from feat/followups-d1-c1c2-f3 into main
Owner

Alle drie niet-blokkerende follow-ups uit de v3-plan, plus A3/C1/C2.

D1 — scraper volledig in de container:

  • Dockerfile: COPY scraper ./scraper + COPY backend/scrape.sh.
  • entrypoint.sh schrijft een cron.d-job (dagelijks 06:15) die scripts/scrape.sh draait.
  • scraper/fetch.js stuurt nu Authorization: Bearer $AUTH_TOKEN mee, dus D1 werkt ook als AUTH_TOKEN gezet is.

F3 — nachtelijke SQLite-backup:

  • backend/backup.mjs: PRAGMA wal_checkpoint(TRUNCATE) + file-copy (geen backup() op Node 22), rotatie. Cron 04:30.
  • backend/backup.test.js dekt restoreerbaarheid.

A3 — history_start:

  • /api/status geeft history_start terug; statusbalk toont 'geschiedenis sinds (N d)'.

C1 — zoeken + filteren: product-zoek, categoriefilter (), 'alleen aanbiedingen'.

C2 — legenda: uitklapbare uitleg van symbolen en de '-'-gaps.

Verificatie:

  • npm test backend: 15/15 groen (incl. nieuwe backup.test.js).
  • Playwright smoke: 2/2 (comparison render + C1 filter).
  • Container gebouwd en live getest: app healthy, cron.d correct gegenereerd, backup schreef restoreerbare copy, echte scrape postte 25 ok / 5 url_unknown / 2 other en history_start verscheen in /api/status.

Review-first: niet naar main mergen zonder goedkeuring.

Alle drie niet-blokkerende follow-ups uit de v3-plan, plus A3/C1/C2. D1 — scraper volledig in de container: - Dockerfile: COPY scraper ./scraper + COPY backend/scrape.sh. - entrypoint.sh schrijft een cron.d-job (dagelijks 06:15) die scripts/scrape.sh draait. - scraper/fetch.js stuurt nu Authorization: Bearer $AUTH_TOKEN mee, dus D1 werkt ook als AUTH_TOKEN gezet is. F3 — nachtelijke SQLite-backup: - backend/backup.mjs: PRAGMA wal_checkpoint(TRUNCATE) + file-copy (geen backup() op Node 22), rotatie. Cron 04:30. - backend/backup.test.js dekt restoreerbaarheid. A3 — history_start: - /api/status geeft history_start terug; statusbalk toont 'geschiedenis sinds <datum> (N d)'. C1 — zoeken + filteren: product-zoek, categoriefilter (<select>), 'alleen aanbiedingen'. C2 — legenda: uitklapbare uitleg van symbolen en de '-'-gaps. Verificatie: - npm test backend: 15/15 groen (incl. nieuwe backup.test.js). - Playwright smoke: 2/2 (comparison render + C1 filter). - Container gebouwd en live getest: app healthy, cron.d correct gegenereerd, backup schreef restoreerbare copy, echte scrape postte 25 ok / 5 url_unknown / 2 other en history_start verscheen in /api/status. Review-first: niet naar main mergen zonder goedkeuring.
D1: bake scraper into image (COPY scraper); entrypoint.sh installs a cron.d
job that runs scripts/scrape.sh daily. Scraper forwards AUTH_TOKEN so D1
survives an auth-gated deploy.
F3: backend/backup.mjs checkpoints the WAL and copies a restorable SQLite
backup nightly (covered by backup.test.js).
A3: /api/status now exposes history_start; status bar shows how long real
history has been accumulating.
C1: product search + category <select> + 'alleen aanbiedingen' filter.
C2: collapsible legend explaining symbols and the '-' gaps.
Also adds .dockerignore and gitignores Playwright artifacts.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/followups-d1-c1c2-f3:feat/followups-d1-c1c2-f3
git switch feat/followups-d1-c1c2-f3

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feat/followups-d1-c1c2-f3
git switch feat/followups-d1-c1c2-f3
git rebase main
git switch main
git merge --ff-only feat/followups-d1-c1c2-f3
git switch feat/followups-d1-c1c2-f3
git rebase main
git switch main
git merge --no-ff feat/followups-d1-c1c2-f3
git switch main
git merge --squash feat/followups-d1-c1c2-f3
git switch main
git merge --ff-only feat/followups-d1-c1c2-f3
git switch main
git merge feat/followups-d1-c1c2-f3
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morris/prijsvergelijker!7
No description provided.