Skip to content

fix(api-server): harden jobs API — input limits, field whitelist, startup check, tests#2456

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-40b195db
Mar 22, 2026
Merged

fix(api-server): harden jobs API — input limits, field whitelist, startup check, tests#2456
teknium1 merged 1 commit into
mainfrom
hermes/hermes-40b195db

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Follow-up to #2450 (jobs API endpoints). Five hardening improvements:

  1. Cron startup check — module imported once at class load, all endpoints return 501 if unavailable (vs 500 per-request import error)
  2. Input limits — name ≤ 200 chars, prompt ≤ 5000 chars, repeat must be positive int
  3. Update field whitelist — only name/schedule/prompt/deliver/skills/repeat/enabled pass through to update_job(), preventing arbitrary key injection via raw body merge
  4. Deduplicated validation_check_job_id() and _check_jobs_available() helpers replace boilerplate
  5. 32 new tests — list, create (6 validation cases), get, update (whitelist enforcement), delete, pause, resume, run, auth required (5 cases), cron unavailable (7 cases)

114 total API server tests pass (72 existing + 32 new + 10 webhook).

…rtup check, tests

Five improvements to the /api/jobs endpoints:

1. Startup availability check — cron module imported once at class load,
   endpoints return 501 if unavailable (not 500 per-request import error)
2. Input limits — name ≤ 200 chars, prompt ≤ 5000 chars, repeat must be
   positive int
3. Update field whitelist — only name/schedule/prompt/deliver/skills/
   repeat/enabled pass through to cron.jobs.update_job, preventing
   arbitrary key injection
4. Deduplicated validation — _check_job_id and _check_jobs_available
   helpers replace repeated boilerplate
5. 32 new tests covering all endpoints, validation, auth, and
   cron-unavailable cases
@teknium1 teknium1 merged commit c0c13e4 into main Mar 22, 2026
1 check failed
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
…rtup check, tests (NousResearch#2456)

fix(api-server): harden jobs API — input limits, field whitelist, startup check, tests
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…rtup check, tests (NousResearch#2456)

fix(api-server): harden jobs API — input limits, field whitelist, startup check, tests
olympus-terminal pushed a commit to olympus-terminal/hermes-agent that referenced this pull request May 16, 2026
…rtup check, tests (NousResearch#2456)

fix(api-server): harden jobs API — input limits, field whitelist, startup check, tests
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…rtup check, tests (NousResearch#2456)

fix(api-server): harden jobs API — input limits, field whitelist, startup check, tests
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…rtup check, tests (NousResearch#2456)

fix(api-server): harden jobs API — input limits, field whitelist, startup check, tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant