US02-04 — Expose Job APIs and Activity Events #11

Closed
opened 2026-07-13 13:10:40 +02:00 by domverse · 3 comments
Owner

Source specification: delivery_backlog/stories/US02-04-job-api-events.md

US02-04 — Expose Job APIs and Activity Events

Epic: E02

As a frontend client, I want versioned job commands, status APIs, and activity events
so the browser can operate workflows without HTML responses or internal imports.

Acceptance criteria

  • /api/v1 exposes typed job start, status, cancel, blocker, and event contracts.
  • Operational endpoints return JSON; the event endpoint returns SSE with resumable IDs.
  • SSE reconnects without duplicate/lost durable events and polling is sufficient as a
    fallback.
  • Errors use the shared JSON envelope and correct status codes, including 409.

Automated tests

  • OpenAPI/contract tests validate schemas, status codes, errors, and content types.
  • Black-box tests cover SSE disconnect/reconnect, polling, idempotency, and cancellation.

Dependencies

  • US02-02, US02-03
Source specification: [delivery_backlog/stories/US02-04-job-api-events.md](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/stories/US02-04-job-api-events.md) # US02-04 — Expose Job APIs and Activity Events Epic: [E02](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/E02-unified-workflow-shell.md) As a frontend client, I want versioned job commands, status APIs, and activity events so the browser can operate workflows without HTML responses or internal imports. ## Acceptance criteria - `/api/v1` exposes typed job start, status, cancel, blocker, and event contracts. - Operational endpoints return JSON; the event endpoint returns SSE with resumable IDs. - SSE reconnects without duplicate/lost durable events and polling is sufficient as a fallback. - Errors use the shared JSON envelope and correct status codes, including `409`. ## Automated tests - OpenAPI/contract tests validate schemas, status codes, errors, and content types. - Black-box tests cover SSE disconnect/reconnect, polling, idempotency, and cancellation. ## Dependencies - US02-02, US02-03
domverse added this to the E02 — Unified Workflow Shell milestone 2026-07-13 13:10:40 +02:00
domverse added the area/backendtype/featurepriority/normal labels 2026-07-13 13:10:40 +02:00
domverse added a new dependency 2026-07-13 13:11:18 +02:00
domverse added a new dependency 2026-07-13 13:11:18 +02:00
domverse added a new dependency 2026-07-13 13:11:18 +02:00
domverse added a new dependency 2026-07-13 13:11:20 +02:00
domverse added this to the Photo Analyzer Delivery project 2026-07-13 13:19:44 +02:00
domverse added the status/backlog label 2026-07-13 13:52:46 +02:00
domverse added status/in-progress and removed status/backlog labels 2026-07-16 20:07:34 +02:00
domverse self-assigned this 2026-07-16 20:07:35 +02:00
Author
Owner

Claimed for implementation on branch us/US02-04-expose-job-apis-and-activity-events.

Claimed for implementation on branch `us/US02-04-expose-job-apis-and-activity-events`.
domverse added status/review and removed status/in-progress labels 2026-07-16 20:15:41 +02:00
Author
Owner

Submitted for review: #57

Tests passed:

  • work_item/scripts/python -m unittest discover -s work_item/tests -v
  • work_item/scripts/python -m pytest tests -q
  • work_item/scripts/python -m pytest tests/integration -q
Submitted for review: https://git.domverse-berlin.eu/domverse/photoanalyzer/pulls/57 Tests passed: - `work_item/scripts/python -m unittest discover -s work_item/tests -v` - `work_item/scripts/python -m pytest tests -q` - `work_item/scripts/python -m pytest tests/integration -q`
domverse added status/done and removed status/review labels 2026-07-16 20:15:59 +02:00
Author
Owner

Completed and merged via PR #57.

Completed and merged via PR #57.
domverse moved this to Done in Photo Analyzer Delivery on 2026-08-16 11:58:16 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: domverse/photoanalyzer#11