Issue
Issue
An issue in Redmine. It is datamodels.jp's Task under Redmine's name: the short name is Issue, the type IRI is Task's (https://datamodels.jp/ns/task/Task), so applications that know Task read it as a Task. State and priority follow RFC 8984 (JSCalendar); the Redmine status name and tracker are kept in statusLabel and subtype. Location may be any geometry.
- Stage
- experimental
- Kind
- entity
- Type IRI
- https://datamodels.jp/ns/task/Task
- Another name for
- https://datamodels.jp/ns/task/Task
- Extends
- https://datamodels.jp/ns/task/Task v1.0.0 (index)
- JSON Schema
- https://models.gtt-project.org/schema/redmine/Issue/v0.2.0.json
- @context
- https://models.gtt-project.org/context/redmine/v0.jsonld
- Example
- https://models.gtt-project.org/examples/redmine/Issue/example.json
Attributes
name
Name or subject
string, required. IRI: https://uri.etsi.org/ngsi-ld/name
description
Description
string. IRI: http://purl.org/dc/terms/description
project
The project this belongs to, when the source system has projects
string, uri. IRI: https://datamodels.jp/ns/task/project
milestone
The milestone (version, release) this is planned for
string, uri. IRI: https://datamodels.jp/ns/task/milestone
parent
Parent task (RFC 8984 relatedTo parent)
string, uri. IRI: https://datamodels.jp/ns/task/parent
relatedTo
Related tasks. Always an array in the key-values form, even with one target. The kind of relation (blocks, precedes, duplicates) is left to extensions
array. IRI: https://datamodels.jp/ns/task/relatedTo
refersTo
The entity this task is about (a report, an asset, a road)
string, uri. IRI: https://datamodels.jp/ns/task/refersTo
progress
Normalised state (RFC 8984 progress): needs-action = not started, in-process = in progress, completed = done, failed = failed, cancelled = cancelled. When no value fits, leave it out and give the local wording in statusLabel.
string. IRI: https://datamodels.jp/ns/task/progress
statusLabel
The source system's own status name, unchanged (for example "In progress", "Resolved"). Required when progress is left out
string. IRI: https://datamodels.jp/ns/task/statusLabel
subtype
The source system's kind, for example a tracker, an issue type or a category
string. IRI: https://datamodels.jp/ns/task/subtype
category
The Redmine issue category, a name that the project defines (for example "Pothole"), unchanged
string. IRI: https://models.gtt-project.org/ns/redmine#category
priority
Priority 0 to 9: 1 highest, 9 lowest, 0 undefined (RFC 8984)
integer. IRI: https://datamodels.jp/ns/task/priority
assignee
Assignees: person, organisation or team entities, possibly outside this subject. Always an array in the key-values form, even with one target
array. IRI: https://datamodels.jp/ns/task/assignee
author
Creator (a person, organisation or team entity)
string, uri. IRI: https://schema.org/author
start
Planned start: a date, or a date and time (RFC 8984 start)
string. IRI: https://datamodels.jp/ns/task/start
due
Due: a date, or a date and time (RFC 8984 due)
string. IRI: https://datamodels.jp/ns/task/due
completedAt
When progress became completed
string, date-time. IRI: https://datamodels.jp/ns/task/completedAt
estimatedDuration
Estimated effort as an ISO 8601 duration, e.g. PT1H30M (RFC 8984 estimatedDuration)
string. IRI: https://datamodels.jp/ns/task/estimatedDuration
percentComplete
Completion 0 to 100 (RFC 8984 percentComplete)
integer. IRI: https://datamodels.jp/ns/task/percentComplete
keywords
Keywords or labels
array. IRI: https://schema.org/keywords
location
Location as any GeoJSON geometry: point, line, polygon or a collection
object. IRI: https://uri.etsi.org/ngsi-ld/location
spatialId
Spatial IDs (ZFXY) covering the task. Optional
array. IRI: https://datamodels.jp/ns/task/spatialId
isPrivate
true when private; default false
boolean. IRI: https://datamodels.jp/ns/task/isPrivate
source
URL of this object in the system of record
string, uri. IRI: https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/source
externalId
Identifier in the system of record
string. IRI: https://datamodels.jp/ns/task/externalId
dateCreated
Creation time in the system of record (distinct from the broker attribute createdAt)
string, date-time. IRI: https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateCreated
dateModified
Last modification time in the system of record
string, date-time. IRI: https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateModified
Notes
- The same type as datamodels.jp's Task (https://datamodels.jp/ns/task/Task, v1.0.0) under Redmine's name: in this subject's @context the term Issue stands for Task's IRI. With this @context an entity reads "type": "Issue"; with datamodels.jp's, the same entity reads Task, and a query for Task finds it. The @context sets the term Task to null, so that a broker answering with this @context writes Issue, not Task (both terms would name the same IRI, and JSON-LD would pick the shorter one). One attribute is added that Redmine has and Task does not: category, the issue category that each Redmine project defines.
- The other Redmine fields map to Task as in datamodels.jp's Redmine mapping table (https://github.com/geolonia/datamodels/blob/main/models/task/Task/mapping/redmine.yaml): subject to name, status to progress and statusLabel, tracker to subtype, the priority's position to priority 1 to 9, target version to milestone, start date and due date to start and due.
- Left out: the priority's name (Redmine's "Normal", "Urgent"), which no application needs yet; trackers as subtypes and custom fields, which differ between Redmine instances and stay in each instance's own @context.
- Replaces GTT's Issue vocabulary (https://gtt-project.org/ns/fiware), retired on 2026-10-11 before it had users outside the project. Version 0.1.0 of this subject named the model Task; 0.2.0 names it Issue (2026-10-11).
- Redmine's trackers are not a model here: each Redmine instance defines its own, so the plugin sends the tracker as subtype, and each instance's own @context declares its trackers as subtypes of the issue type.