@DomainNode(topLevelQueryName = "trackables", searchQueryName = "searchTrackables")
@AggregatedNodeRelationship(name = "assignedUsers", description = "The set of Users assigned to any issue", property = "issues", path = [AggregationEntry(property = "assignments"), AggregationEntry(property = "user") ] )
@AggregatedNodeRelationship(name = "usedIssueTemplates", description = "The set of IssueTemplates used by any issue", property = "issues", path = [AggregationEntry(property = "template") ] )
@AggregatedNodeRelationship(name = "usedIssueTypes", description = "The set of IssueTypes used by any issue", property = "issues", path = [AggregationEntry(property = "type") ] )
@AggregatedNodeRelationship(name = "usedIssueStates", description = "The set of IssueStates used by any issue", property = "issues", path = [AggregationEntry(property = "state") ] )
@AggregatedNodeRelationship(name = "usedIssuePriorities", description = "The set of IssuePriorities used by any issue", property = "issues", path = [AggregationEntry(property = "priority") ] )
@AggregatedNodeRelationship(name = "usedLabels", description = "The set of Labels used by any issue (including Labels not on this Trackable)", property = "issues", path = [AggregationEntry(property = "labels") ] )
@AggregatedNodeRelationship(name = "affectedEntities", description = "The set of entities affected by any Issue", property = "issues", path = [AggregationEntry(property = "affects") ] )
@Authorization(name = "READ", allow = [Rule(beanRef = "relatedToNodePermissionRule") ] )
@Authorization(name = "ADMIN", allow = [Rule(beanRef = "relatedToNodePermissionRule") ] )
@Authorization(name = "MANAGE_IMS", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
@Authorization(name = "CREATE_ISSUES", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN", "MANAGE_ISSUES", "MODERATOR"] ) ] )
@Authorization(name = "MODERATOR", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
@Authorization(name = "COMMENT", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN", "MANAGE_ISSUES", "MODERATOR"] ) ] )
@Authorization(name = "MANAGE_LABELS", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
@Authorization(name = "MANAGE_ARTEFACTS", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
@Authorization(name = "MANAGE_ISSUES", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
@Authorization(name = "EXPORT_ISSUES", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
@Authorization(name = "EXPORT_LABELS", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
@Authorization(name = "AFFECT_ENTITIES_WITH_ISSUES", allow = [Rule(beanRef = "relatedToNodePermissionRule", options = ["ADMIN"] ) ] )
An entity which can have Issues, Labels and Artefacts. Has pinned issues. Can be synced to an IMS by creating an IMSProject. Can be affected by Issues.
Inheritors
Constructors
Properties
Link copied to clipboard
@NodeRelationship(type = "AFFECTS", direction = Direction.INCOMING)
@FilterProperty
The issues which affect this entity
Link copied to clipboard
The description of this entity.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@NodeRelationship(type = "ISSUE", direction = Direction.OUTGOING)
@FilterProperty
The set of Issues which are part of this Trackable. An Issue has to be part of a Trackable to use the Labels and Artefacts defined by the Trackable.
Link copied to clipboard
@ConvertWith(converter = LazyLoadingContextConverter::class)
Link copied to clipboard
Version used for optimistic locking
Link copied to clipboard
Link copied to clipboard
@NodeRelationship(type = "PINNED_ON", direction = Direction.INCOMING)
@FilterProperty
Issues which are pinned to this trackable, subset of `issues`.
Link copied to clipboard
Link copied to clipboard
If existing, the URL of the repository (e.g. a GitHub repository).
Link copied to clipboard
@NodeRelationship(type = "SYNCS_TO", direction = Direction.OUTGOING)
@FilterProperty
IMSProjects this Trackable is synced to and from.
Functions
Link copied to clipboard
internal suspend fun getFromGraphQL(@Autowired nodeQueryParser: NodeQueryParser, dataFetchingEnvironment: DataFetchingEnvironment): Any?
Link copied to clipboard
Link copied to clipboard
internal suspend fun <T : Node?> loadNodesOfRelationship(property: KProperty1<*, *>, loader: LazyLoadingSubqueryGenerator<T>.() -> Unit?)
Link copied to clipboard
Link copied to clipboard
protected fun <T : Node> NodeSetProperty(): PropertyDelegateProvider<Node, NodeSetPropertyDelegate<T>>
Link copied to clipboard