WHO Ebola Monitoring

…

Remote LLM configuration

Stored in D1 app_config. Overrides worker env vars. Survives redeploys. The API key itself stays as a Cloudflare Worker secret.
Setting Effective value Source Override

Examples: llm_provider=together, llm_base_url=https://api.together.xyz/v1, llm_vision_model=Qwen/Qwen2.5-VL-72B-Instruct. Changes apply on the next cron tick (or after a manual POST /run-now).

API key status: checking…

Create user

New users can edit figures. Admin users can also create / disable other users and change remote LLM config.

Existing users

Username Role Status Created Last login

Bootstrap first admin

If the user table is empty, post the bootstrap secret to create the initial admin. Rotate ADMIN_BOOTSTRAP_SECRET afterwards.

Force scrape

Re-fetch WHO page and re-run the vision LLM

Triggers POST /run-now on the scraper Worker. Enable Force LLM to bypass the "skip LLM if image unchanged" optimization — useful for testing prompt changes.

Email notifications

Transactional alerts via Cloudflare Email Service when the scraper writes new figures or detects page diffs. Subject and body use Jinja-style templates you can edit below.
Setting Effective value Source Override
Template syntax (Jinja-lite subset)
Variables:    {{ var }}   {{ var.field }}   {{ var | filter }}
Filters:      upper · lower · trim · length · default('x') · json
Control:      {% if condition %}...{% endif %}  (no elif/else — chain another {% if %} instead)
              {% for x in list %}...{% endfor %}
Comments:     {# this is a comment #}
Available:    scrape_run_id · scraped_at · source_url · dashboard_url
              presentation ('image' | 'html_table')
              r2_image_url · table_html · table_html_url
              figure_count · change_count
              figures[].country · figures[].suspected · figures[].confirmed
              figures[].deaths · figures[].probable · figures[].recovered
              figures[].date

Sign in

Admin actions require sign-in.