Skip to content
Open
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
507b6a5
new schedule table and model; add FK to export
c-mac May 12, 2026
1970e69
schedule job service
c-mac May 12, 2026
10c801d
worker polls for scheduled jobs
c-mac May 12, 2026
22d40e3
schedule admin view
c-mac May 12, 2026
64e7e9f
scheduler tests
c-mac May 12, 2026
08dc515
lint
c-mac May 12, 2026
6462d31
frontend: copy batch map url
c-mac May 12, 2026
6991c83
batch map url instead of json
c-mac May 12, 2026
6a022b8
worker on compose network
c-mac May 12, 2026
805f202
Merge branch 'master' into cam/schedule-batch-map
c-mac May 13, 2026
9c77fb5
fix double copy
c-mac May 13, 2026
91b99bf
Merge branch 'cam/schedule-batch-map' of github.com:WFP-VAM/prism-app…
c-mac May 13, 2026
d78b746
fix lint
c-mac May 13, 2026
8c8d973
disable flag
c-mac May 13, 2026
f7d2ba3
fix fe test
c-mac May 13, 2026
325d797
Move alerting to python
ericboucher May 16, 2026
729c632
improve threshold email styling
ericboucher May 16, 2026
bcc1466
Merge branch 'master' into move-alerting
ericboucher Jun 5, 2026
f12671a
Delete alerting node folder and mentions
ericboucher Jun 5, 2026
1377a37
fix(api): regenerate poetry.lock and CI lint deps
ericboucher Jun 5, 2026
122bdbe
chore: block Cursor co-author on git commits
ericboucher Jun 5, 2026
936f3a1
Simplify
ericboucher Jun 5, 2026
b5135dd
Merge branch 'master' into move-alerting
ericboucher Jun 9, 2026
e2437d8
Merge branch 'master' into move-alerting
ericboucher Jun 11, 2026
171a9e2
Potential fix for pull request finding
ericboucher Jun 11, 2026
d645532
Potential fix for pull request finding
ericboucher Jun 11, 2026
ccfc2b7
fix threshold worker syntax regression
Copilot Jun 11, 2026
fce1aa3
Merge branch 'master' into move-alerting
ericboucher Jun 12, 2026
0cc61f2
Merge branch 'master' into move-alerting
ericboucher Jun 12, 2026
46c8191
Merge branch 'master' into move-alerting
c-mac Jun 15, 2026
709e2e2
Merge branch 'move-alerting' of github.com:WFP-VAM/prism-app into mov…
c-mac Jun 15, 2026
b736099
remove orphaned alerting files
c-mac Jun 17, 2026
374f98e
remove redeundant alerting-db compose service
c-mac Jun 17, 2026
f20ea8c
port over old ssh setting from alerting cron connection
c-mac Jun 17, 2026
920fb6c
port over old alerting tests
c-mac Jun 17, 2026
a94ee3e
db connection consistency
c-mac Jun 17, 2026
82c8b0a
send test flood emails
c-mac Jun 17, 2026
40d507e
update lock file
c-mac Jun 17, 2026
f24c915
Merge branch 'master' into move-alerting
c-mac Jun 17, 2026
0a36d83
fix lock
c-mac Jun 17, 2026
0aa9b5c
fix snapshot
c-mac Jun 17, 2026
a7f68f3
harden worker error handling, fail fast in prod if no smtp creds
c-mac Jun 18, 2026
b7d8afb
no ethereal in prod
c-mac Jun 18, 2026
6390450
Merge branch 'master' into move-alerting
c-mac Jun 18, 2026
7a985b5
Merge branch 'master' into move-alerting
c-mac Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .cursor/rules/git-commits-no-cursor.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
description: Never add Cursor as git commit author or co-author
alwaysApply: true
---

# Git commits — no Cursor attribution

Do **not** add Cursor to commits in any form:

- No `Co-authored-by: Cursor <cursoragent@cursor.com>` (or variants)
- No `--trailer "Co-authored-by: ..."` for Cursor
- Author must remain the human user only

When creating commits via `git commit`:

- Use a plain `-m` message or HEREDOC **without** co-author trailers
- If a tool or template adds Cursor automatically, amend or rewrite the message before push

Repo ships `.githooks/prepare-commit-msg` to strip Cursor trailers locally. Enable once per clone:

```bash
./scripts/install-githooks.sh
```
2 changes: 0 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,5 @@
# NOT for the python api (see api/.dockerignore for that)
common/node_modules/**
frontend/node_modules/**
alerting/db_data/*
alerting/node_modules/*
api/*
docs/*
21 changes: 21 additions & 0 deletions .githooks/prepare-commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
# Remove Cursor co-author trailers (IDE/agent sometimes inject these).
set -euo pipefail

MSG_FILE="${1:?}"

if [[ ! -f "$MSG_FILE" ]]; then
exit 0
fi

# Portable in-place sed (GNU vs BSD).
strip_cursor_trailers() {
grep -Ev '^Co-authored-by:[[:space:]]*Cursor[[:space:]]*<' "$MSG_FILE" > "${MSG_FILE}.tmp" || true
if [[ -s "${MSG_FILE}.tmp" ]] || [[ ! -s "$MSG_FILE" ]]; then
mv "${MSG_FILE}.tmp" "$MSG_FILE"
else
rm -f "${MSG_FILE}.tmp"
fi
}

strip_cursor_trailers
62 changes: 0 additions & 62 deletions .github/workflows/alerting.yml

This file was deleted.

55 changes: 39 additions & 16 deletions .github/workflows/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ jobs:

steps:
- uses: actions/checkout@v4
- name: Ensure cron scripts are executable
run: |
cd api
for f in crons/cron_*.sh crons/_compose_run.sh; do
if [ ! -x "$f" ]; then
echo "$f is not executable (missing chmod +x)"
exit 1
fi
done
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
Expand All @@ -37,7 +46,7 @@ jobs:
- name: Upgrade pip (CVE-2026-1703)
run: |
cd api
poetry run pip install --upgrade 'pip>=26.0'
poetry run pip install --upgrade 'pip>=26.1.2'
- name: Check formatting with black and isort
run: |
cd api
Expand Down Expand Up @@ -93,6 +102,28 @@ jobs:
sys.exit(1)
PY

# Pure unit tests: SMTP + templates + threshold helpers (no PRISM_ALERTS_DATABASE_URL).
alert_workers_unit_no_db:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: snok/install-poetry@v1
with:
version: 2.3.3
virtualenvs-create: true
virtualenvs-in-project: true
- name: Install API dependencies
run: |
cd api
poetry install
- name: pytest test_alert_workers_no_db
run: |
cd api
PYTHONPATH=. poetry run pytest prism_app/tests/test_alert_workers_no_db.py -v --tb=short

# Trivy: OS + language packages inside the built images (pip-audit above is Poetry-only).
docker_image_cve_scan:
name: Docker CVE scan (${{ matrix.image_label }})
Expand Down Expand Up @@ -141,7 +172,7 @@ jobs:
- name: Run tests
run: cd api && make api-test

# Ephemeral Postgres: alembic upgrade → Node schema contract + worker smoke → API tests
# Ephemeral Postgres: alembic upgrade → Python alerts schema smoke → API tests
# (alerts CRUD, /stats fixture, admin list routes, alembic_version).
alerts_db_alembic_and_alerting:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -181,23 +212,15 @@ jobs:
- name: Upgrade pip (CVE-2026-1703)
run: |
cd api
poetry run pip install --upgrade 'pip>=26.0'
poetry run pip install --upgrade 'pip>=26.1.2'
- name: Alembic upgrade head
run: cd api && poetry run alembic upgrade head
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Alerting install and DB checks
env:
PUPPETEER_SKIP_DOWNLOAD: "true"
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: "true"
- name: Alerts DB contract + pool smoke + worker smoke (Python)
run: |
cd alerting
yarn install --frozen-lockfile
yarn setup:common
yarn check-alerts-db-contract
yarn smoke-alerts-db-pool
yarn smoke-alerting-workers
cd api
PYTHONPATH=. poetry run python -m prism_app.ci.alert_db_contract
PYTHONPATH=. poetry run python -m prism_app.ci.alert_db_smoke
PYTHONPATH=. poetry run python -m prism_app.workers.alert_runner smoke
- name: API alerts integration tests (same database)
env:
# Ubuntu runner Poetry venv has rasterio but not a full gdal_calc CLI like the API Docker image.
Expand Down
11 changes: 0 additions & 11 deletions alerting/.env.example

This file was deleted.

1 change: 0 additions & 1 deletion alerting/.eslintignore

This file was deleted.

80 changes: 0 additions & 80 deletions alerting/.eslintrc

This file was deleted.

12 changes: 0 additions & 12 deletions alerting/.gitignore

This file was deleted.

4 changes: 0 additions & 4 deletions alerting/.prettierrc

This file was deleted.

29 changes: 0 additions & 29 deletions alerting/Dockerfile

This file was deleted.

Loading
Loading