Issue Management
Issues are the heart of Open Task Hub. Each issue belongs to a project, has a sequential number (e.g. ALPHA-7), and carries rich metadata to help your team track work precisely.
Issue Types
Classify every piece of work with a meaningful type.
Priorities
Signal urgency clearly with four priority levels.
Issue Statuses
Seven statuses cover the full life of every issue, including special terminal states for rejected or duplicate work.
| Status | Meaning |
|---|---|
| OPEN | Not yet started — in the backlog. |
| IN PROGRESS | Actively being worked on. |
| BLOCKED | Cannot proceed — waiting on something. |
| IN REVIEW | Work done, under review (PR, QA…). |
| DONE | Completed and accepted. |
| REJECTED | Will not be implemented. |
| DUPLICATE | Same as another existing issue. |
Comments & Internal Notes
Team members can add comments to any issue. Mark a comment as an internal note to make it visible to project members only — useful for sensitive context without cluttering the public view.
Sprint Management
Organise work into time-boxed sprints. Each sprint belongs to a project and moves through a defined lifecycle.
Sprint Lifecycle
Sprint fields
- Name — e.g. "Sprint 1"
- Goal — what the sprint delivers
- Start date and end date
- Status — PLANNING / ACTIVE / COMPLETED
Issue assignment
- Add any project issue to a sprint
- Remove issues from a sprint at any time
- One issue can be in at most one active sprint
- Carry-over unfinished issues to next sprint via API
API operations
POST /sprints— create sprintPOST /sprints/{id}/start— activatePOST /sprints/{id}/complete— finishPOST/DELETE /sprints/{id}/issues/{n}
Projects & Members
Each project has a unique short key (e.g. ALPHA), a name, description, and a visibility setting.
Project visibility
| Visibility | Who can see issues? |
|---|---|
| PUBLIC | Any authenticated user can browse the project. |
| PRIVATE | Only project members (and admins) can access it. |
Member roles
| Role | Permissions |
|---|---|
| OWNER | Full control: manage members, settings, delete project, create/edit/delete all issues and sprints. |
| MEMBER | Create and edit issues, add comments, manage sprints. Cannot change project settings or members. |
| VIEWER | Read-only access. Can view issues and comments. Cannot create or modify anything. |
Labels & Categories
Labels are per-project, fully customisable tags that help you filter, categorise and quickly scan issues. Each label has:
- A name (e.g. "frontend", "performance")
- A hex colour for visual distinction
- An optional description
Labels are scoped to the project — teams can define exactly the taxonomy that fits their workflow.
Example label set
Labels above are examples only. Create any label with any colour in each project.
Audit Log
Every significant action in Open Task Hub is recorded as an immutable audit event. Nothing is ever silently changed — leadership and compliance teams can always see who did what.
Example audit events
| Timestamp | Actor | Event | Target | Detail |
|---|---|---|---|---|
| 2026-06-06 09:14:02 | alice | ISSUE_CREATED | ALPHA-7 | Issue "Set up CI pipeline" created with priority NORMAL |
| 2026-06-06 10:31:45 | bob | ISSUE_STATUS_CHANGED | ALPHA-7 | Status changed from OPEN to IN_PROGRESS |
| 2026-06-06 11:05:17 | alice | SPRINT_STARTED | Sprint 1 | Sprint "Sprint 1" (ALPHA) moved to ACTIVE |
| 2026-06-06 14:22:59 | charlie | COMMENT_ADDED | ALPHA-7 | Internal note added (visible to members only) |
| 2026-06-06 16:00:00 | alice | ISSUE_STATUS_CHANGED | ALPHA-7 | Status changed from IN_REVIEW to DONE |
Audit events are stored in the database and can be queried from the dashboard. They capture the actor, timestamp, event type, target entity, and a human-readable detail string.
REST API Overview
All data in Open Task Hub is accessible via a RESTful API rooted at /api. Authenticate with HTTP Basic using your username and password.
GET/POST /api/projects
List or create projects.
GET/POST /api/projects/{key}/issues
List or create issues in a project.
GET /api/projects/{key}/issues/{n}
Get a specific issue by number.
GET/POST /api/projects/{key}/sprints
List or create sprints.
POST /sprints/{id}/start
Activate a sprint.
POST/DELETE /sprints/{id}/issues/{n}
Add or remove issues from a sprint.
Web UI — Thymeleaf
The entire user interface is rendered server-side with Thymeleaf templates. No client-side framework required — the app works even with JavaScript disabled.
- Form-based login at
/login - Dashboard at
/dashboardwith stats - Project list, issue list, issue detail
- Sprint management pages
- Member management
- Label management
- Audit event timeline
Authentication
Two authentication mechanisms are supported simultaneously:
Form Login (Browser)
POST to /login with username and password fields. Session cookie is returned. Best for human users.
HTTP Basic (API)
Send Authorization: Basic <base64> header with every request. Ideal for scripts, CI/CD and integrations.