generated: '2026-10-09' method: derived generator: derive-data-model.py source: - openapi/dependency-track-openapi.yml - openapi/dependency-track-v2-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 203 entities_in_spec: 203 relationships: 147 entities: - name: About fields: 5 - name: AclMappingRequest fields: 2 - name: AffectedComponent fields: 10 - name: AffectedProject fields: 6 - name: AffectedVersionAttribution fields: 3 - name: AnalysisRequest fields: 10 - name: AnalysisTrailResponse fields: 15 - name: ApiKey fields: 8 - name: BomSubmitRequest fields: 11 - name: BomUploadResponse fields: 2 - name: CelExpressionError fields: 3 description: Errors identified during CEL expression compilation - name: CloneProjectRequest fields: 11 - name: Comment fields: 3 description: Audit trail of analysis comments - name: Component fields: 51 - name: ComponentOccurrence fields: 6 - name: ComponentProperty fields: 6 - name: ComponentPropertyResponse fields: 6 - name: ConciseLicenseResponse fields: 7 - name: ConciseProject fields: 15 description: A concise representation of a project - name: ConciseProjectMetrics fields: 16 description: A concise representation of a project's metrics - name: ConfigPropertyResponse fields: 5 - name: CreateComponentPropertyRequest fields: 5 - name: CreateLicenseGroupRequest fields: 1 - name: CreateLicenseRequest fields: 10 - name: CreateNotificationPublisherRequest fields: 5 - name: CreateNotificationRuleRequest fields: 4 - name: CreateOidcGroupRequest fields: 1 - name: CreatePolicyConditionRequest fields: 4 - name: CreateProjectPropertyRequest fields: 5 - name: CreateRepositoryRequest fields: 8 - name: CreateScheduledNotificationRuleRequest fields: 4 - name: CvssScoreResponse fields: 6 - name: Cwe fields: 2 - name: DataClassification fields: 2 - name: DeleteNotificationRuleRequest fields: 1 - name: DeleteProjectPropertyRequest fields: 2 - name: DeleteTeamRequest fields: 1 - name: DeleteUserRequest fields: 1 - name: DependencyGraphResponse fields: 6 - name: DependencyMetrics fields: 29 - name: Epss fields: 3 - name: ExternalReference fields: 3 - name: Finding fields: 5 - name: Framework fields: 4 - name: IdentifiableObject fields: 1 - name: InvalidBomProblemDetails fields: 0 - name: InvalidNotificationFilterExpressionProblemDetails fields: 0 - name: IsTokenBeingProcessedResponse fields: 2 - name: LdapUser fields: 5 - name: License fields: 13 - name: LicenseGroup fields: 4 - name: LicenseGroupResponse fields: 4 - name: LicenseResponse fields: 13 - name: ListProjectsResponseItem fields: 29 - name: ManagedUser fields: 11 - name: MappedLdapGroup fields: 2 - name: MappedLdapGroupRequest fields: 2 - name: MappedLdapGroupResponse fields: 2 - name: MappedOidcGroup fields: 2 - name: MappedOidcGroupRequest fields: 2 - name: MappedOidcGroupResponse fields: 2 - name: NotificationPublisher fields: 7 - name: NotificationPublisherResponse fields: 7 - name: NotificationRule fields: 20 - name: OidcGroup fields: 2 - name: OidcGroupResponse fields: 2 - name: OidcUser fields: 5 - name: OrganizationalContact fields: 3 - name: OrganizationalEntity fields: 3 - name: Parent fields: 3 - name: Permission fields: 5 - name: Policy fields: 11 - name: PolicyCondition fields: 6 - name: PolicyConditionResponse fields: 5 - name: PolicyViolation fields: 8 - name: PortfolioMetrics fields: 33 - name: ProblemDetails fields: 5 description: An RFC 9457 problem object - name: Project fields: 33 - name: ProjectMetadata fields: 3 - name: ProjectMetrics fields: 31 - name: ProjectPropertyResponse fields: 5 - name: ProjectVersion fields: 4 - name: Publisher fields: 1 - name: RepositoryMetaComponent fields: 6 - name: RepositoryResponse fields: 10 - name: Score fields: 6 - name: ServiceAccount fields: 5 - name: ServiceComponent fields: 18 - name: Tag fields: 1 - name: TagListResponseItem fields: 6 - name: TagOperationProblemDetails fields: 0 - name: TagResponse fields: 1 - name: TaggedCollectionProjectListResponseItem fields: 3 - name: TaggedPolicyListResponseItem fields: 2 - name: TaggedProjectListResponseItem fields: 3 - name: TaggedVulnerabilityListResponseItem fields: 3 - name: Team fields: 10 - name: TeamAlreadyExistsProblemDetails fields: 7 - name: TeamPermissionsSetRequest fields: 2 - name: TeamSelfResponse fields: 3 - name: TeamsSetRequest fields: 2 - name: Tools fields: 2 - name: UpdateConfigPropertyRequest fields: 3 - name: UpdateLicenseGroupRequest fields: 2 - name: UpdateNotificationPublisherRequest fields: 6 - name: UpdateNotificationRuleRequest fields: 13 - name: UpdateOidcGroupRequest fields: 2 - name: UpdatePolicyConditionRequest fields: 5 - name: UpdateProjectPropertyRequest fields: 3 - name: UpdateRepositoryRequest fields: 7 - name: User fields: 4 - name: UserPermissionsSetRequest fields: 2 - name: VexSubmitRequest fields: 4 - name: ViolationAnalysis fields: 4 - name: ViolationAnalysisComment fields: 3 - name: ViolationAnalysisRequest fields: 6 - name: ViolationAnalysisResponse fields: 3 - name: VisibleTeams fields: 2 - name: Vulnerability fields: 45 - name: VulnerabilityAlias fields: 9 - name: VulnerabilityMetrics fields: 4 - name: cel-expression-error fields: 3 - name: clone-project-request fields: 3 - name: clone-project-response fields: 1 - name: component-project fields: 3 - name: constraint-violation-error fields: 3 - name: create-component-request fields: 21 - name: create-oauth-token-request fields: 6 - name: create-oauth-token-response fields: 4 - name: create-secret-request fields: 3 - name: create-service-account-api-key-request fields: 2 - name: create-service-account-api-key-response fields: 3 - name: create-service-account-request fields: 2 - name: create-vuln-policy-request fields: 10 - name: create-workload-identity-binding-request fields: 3 - name: create-workload-identity-binding-response fields: 1 - name: create-workload-identity-provider-request fields: 7 - name: dependency-metrics fields: 27 - name: extension-config-schema fields: 1 - name: extension-test-check fields: 3 - name: get-extension-config-response fields: 1 - name: get-service-account-response fields: 2 - name: get-vuln-policy-response fields: 14 - name: hashes fields: 14 - name: invalid-cel-expression-problem-details fields: 1 - name: invalid-request-problem-details fields: 1 - name: invalid-sort-field-problem-details fields: 2 - name: json-schema-validation-error fields: 5 description: A JSON Schema validation error as per - name: json-schema-validation-problem-details fields: 1 - name: kev-assertion fields: 10 description: A single assertion that a vulnerability is known to be exploited. - name: kev-data-source-mirror-status fields: 4 - name: license fields: 6 - name: list-components-response fields: 1 - name: list-components-response-item fields: 21 - name: list-extension-points-response fields: 1 - name: list-extension-points-response-item fields: 1 - name: list-extensions-response fields: 1 - name: list-extensions-response-item fields: 4 - name: list-project-components-response fields: 1 - name: list-project-components-response-item fields: 21 - name: list-secrets-response fields: 1 - name: list-service-account-api-keys-response fields: 1 - name: list-service-accounts-response fields: 1 - name: list-task-queues-response fields: 1 - name: list-vuln-kev-assertions-response fields: 1 - name: list-vuln-policies-response fields: 1 - name: list-vuln-policies-response-item fields: 7 - name: list-vuln-policy-bundles-response fields: 1 - name: list-vuln-policy-bundles-response-item fields: 6 - name: list-workflow-run-events-response fields: 1 - name: list-workflow-run-events-response-item fields: 2 - name: list-workflow-runs-response fields: 1 - name: list-workload-identity-bindings-response fields: 1 - name: list-workload-identity-providers-response fields: 1 - name: oauth-token-error fields: 2 - name: organizational-contact fields: 3 - name: organizational-entity fields: 3 - name: package-artifact-metadata fields: 4 description: Artifact-level metadata for the component's exact version from configured package repositories. Only present when the component has a PURL with a version, the PURL type is supported by at least one co - name: package-metadata fields: 3 description: Latest version information from configured package registries. Only present when the component has a PURL with a type supported by at least one configured repository, and metadata has been successfull - name: paginated-response fields: 2 - name: problem-details fields: 5 description: An RFC 9457 problem object. - name: secret-metadata fields: 4 - name: service-account fields: 4 - name: service-account-api-key fields: 5 - name: service-account-team fields: 2 - name: system-capabilities-response fields: 1 - name: task-queue fields: 6 - name: test-extension-request fields: 1 - name: test-extension-response fields: 1 - name: total-count fields: 2 - name: update-extension-config-request fields: 1 - name: update-secret-request fields: 2 - name: update-service-account-request fields: 2 - name: update-task-queue-request fields: 2 - name: update-vuln-policy-request fields: 10 - name: update-workload-identity-provider-request fields: 5 - name: vuln-data-source-mirror-status fields: 4 - name: vuln-policy-analysis fields: 5 - name: vuln-policy-bundle-sync-status fields: 4 - name: vuln-policy-rating fields: 4 - name: workflow-run-metadata fields: 14 - name: workload-identity-binding fields: 6 - name: workload-identity-provider fields: 8 relationships: - from: About to: Framework type: has_one via: framework - from: AffectedComponent to: AffectedVersionAttribution type: has_many via: affectedVersionAttributions - from: AnalysisTrailResponse to: Comment type: has_many via: analysisComments - from: BomSubmitRequest to: Tag type: has_many via: projectTags - from: Component to: OrganizationalContact type: has_many via: authors - from: Component to: ExternalReference type: has_many via: externalReferences - from: Component to: DependencyMetrics type: has_one via: metrics - from: Component to: Project type: has_one via: project - from: Component to: ComponentProperty type: has_many via: properties - from: Component to: RepositoryMetaComponent type: has_one via: repositoryMeta - from: Component to: License type: has_one via: resolvedLicense - from: Component to: OrganizationalEntity type: has_one via: supplier - from: Component to: Vulnerability type: has_many via: vulnerabilities - from: ConciseLicenseResponse to: License type: belongs_to via: licenseId - from: ConciseProject to: ConciseProjectMetrics type: has_one via: metrics - from: ConciseProject to: Tag type: has_many via: tags - from: ConciseProject to: Team type: has_many via: teams - from: CreateLicenseRequest to: License type: belongs_to via: licenseId - from: CreateNotificationRuleRequest to: Publisher type: has_one via: publisher - from: CreateScheduledNotificationRuleRequest to: Publisher type: has_one via: publisher - from: InvalidNotificationFilterExpressionProblemDetails to: CelExpressionError type: has_many via: errors - from: LdapUser to: Permission type: has_many via: permissions - from: LdapUser to: Team type: has_many via: teams - from: License to: LicenseGroup type: has_many via: licenseGroups - from: LicenseGroup to: License type: has_many via: licenses - from: LicenseGroupResponse to: License type: has_many via: licenses - from: LicenseResponse to: LicenseGroup type: has_many via: licenseGroups - from: LicenseResponse to: License type: belongs_to via: licenseId - from: ListProjectsResponseItem to: OrganizationalContact type: has_many via: authors - from: ListProjectsResponseItem to: Tag type: has_one via: collectionTag - from: ListProjectsResponseItem to: ExternalReference type: has_many via: externalReferences - from: ListProjectsResponseItem to: OrganizationalEntity type: has_one via: manufacturer - from: ListProjectsResponseItem to: ProjectMetadata type: has_one via: metadata - from: ListProjectsResponseItem to: ProjectMetrics type: has_one via: metrics - from: ListProjectsResponseItem to: Parent type: has_one via: parent - from: ListProjectsResponseItem to: OrganizationalEntity type: has_one via: supplier - from: ListProjectsResponseItem to: Tag type: has_many via: tags - from: ManagedUser to: Permission type: has_many via: permissions - from: ManagedUser to: Team type: has_many via: teams - from: MappedOidcGroup to: OidcGroup type: has_one via: group - from: MappedOidcGroupResponse to: OidcGroupResponse type: has_one via: group - from: NotificationRule to: Project type: has_many via: projects - from: NotificationRule to: NotificationPublisher type: has_one via: publisher - from: NotificationRule to: Tag type: has_many via: tags - from: NotificationRule to: Team type: has_many via: teams - from: OidcUser to: Permission type: has_many via: permissions - from: OidcUser to: Team type: has_many via: teams - from: OrganizationalEntity to: OrganizationalContact type: has_many via: contacts - from: Permission to: LdapUser type: has_many via: ldapUsers - from: Permission to: ManagedUser type: has_many via: managedUsers - from: Permission to: OidcUser type: has_many via: oidcUsers - from: Policy to: PolicyCondition type: has_many via: policyConditions - from: Policy to: Project type: has_many via: projects - from: Policy to: Tag type: has_many via: tags - from: PolicyCondition to: Policy type: has_one via: policy - from: PolicyViolation to: ViolationAnalysis type: has_one via: analysis - from: PolicyViolation to: Component type: has_one via: component - from: PolicyViolation to: PolicyCondition type: has_one via: policyCondition - from: PolicyViolation to: Project type: has_one via: project - from: Project to: Team type: has_many via: accessTeams - from: Project to: OrganizationalContact type: has_many via: authors - from: Project to: Tag type: has_one via: collectionTag - from: Project to: ExternalReference type: has_many via: externalReferences - from: Project to: OrganizationalEntity type: has_one via: manufacturer - from: Project to: ProjectMetadata type: has_one via: metadata - from: Project to: ProjectMetrics type: has_one via: metrics - from: Project to: OrganizationalEntity type: has_one via: supplier - from: Project to: Tag type: has_many via: tags - from: Project to: ProjectVersion type: has_many via: versions - from: ProjectMetadata to: OrganizationalContact type: has_many via: authors - from: ProjectMetadata to: OrganizationalEntity type: has_one via: supplier - from: ProjectMetadata to: Tools type: has_one via: tools - from: ServiceAccount to: Permission type: has_many via: permissions - from: ServiceAccount to: Team type: has_many via: teams - from: ServiceComponent to: DataClassification type: has_many via: data - from: ServiceComponent to: ExternalReference type: has_many via: externalReferences - from: ServiceComponent to: Project type: has_one via: project - from: ServiceComponent to: OrganizationalEntity type: has_one via: provider - from: ServiceComponent to: Vulnerability type: has_many via: vulnerabilities - from: Team to: ApiKey type: has_many via: apiKeys - from: Team to: LdapUser type: has_many via: ldapUsers - from: Team to: ManagedUser type: has_many via: managedUsers - from: Team to: MappedLdapGroup type: has_many via: mappedLdapGroups - from: Team to: MappedOidcGroup type: has_many via: mappedOidcGroups - from: Team to: OidcUser type: has_many via: oidcUsers - from: Team to: Permission type: has_many via: permissions - from: Team to: ServiceAccount type: has_many via: serviceAccounts - from: TeamSelfResponse to: Permission type: has_many via: permissions - from: Tools to: Component type: has_many via: components - from: Tools to: ServiceComponent type: has_many via: services - from: UpdateNotificationRuleRequest to: Tag type: has_many via: tags - from: User to: Permission type: has_many via: permissions - from: User to: Team type: has_many via: teams - from: ViolationAnalysis to: ViolationAnalysisComment type: has_many via: analysisComments - from: ViolationAnalysisResponse to: Comment type: has_many via: analysisComments - from: Vulnerability to: AffectedComponent type: has_many via: affectedComponents - from: Vulnerability to: VulnerabilityAlias type: has_many via: aliases - from: Vulnerability to: Component type: has_many via: components - from: Vulnerability to: Cwe type: has_many via: cwes - from: Vulnerability to: Epss type: has_one via: epss - from: Vulnerability to: ServiceComponent type: has_many via: serviceComponents - from: Vulnerability to: Tag type: has_many via: tags - from: list-components-response to: list-components-response-item type: has_many via: items - from: create-component-request to: hashes type: has_one via: hashes - from: create-component-request to: organizational-entity type: has_one via: supplier - from: create-component-request to: organizational-contact type: has_many via: authors - from: invalid-request-problem-details to: constraint-violation-error type: has_many via: errors - from: list-extension-points-response to: list-extension-points-response-item type: has_many via: items - from: list-extensions-response to: list-extensions-response-item type: has_many via: items - from: json-schema-validation-problem-details to: json-schema-validation-error type: has_many via: errors - from: test-extension-response to: extension-test-check type: has_many via: checks - from: list-project-components-response to: list-project-components-response-item type: has_many via: items - from: list-secrets-response to: secret-metadata type: has_many via: items - from: list-service-accounts-response to: service-account type: has_many via: items - from: get-service-account-response to: service-account-team type: has_many via: teams - from: list-service-account-api-keys-response to: service-account-api-key type: has_many via: items - from: list-workload-identity-bindings-response to: workload-identity-binding type: has_many via: items - from: invalid-cel-expression-problem-details to: cel-expression-error type: has_many via: errors - from: list-workload-identity-providers-response to: workload-identity-provider type: has_many via: items - from: list-vuln-policies-response to: list-vuln-policies-response-item type: has_many via: items - from: create-vuln-policy-request to: vuln-policy-analysis type: has_one via: analysis - from: create-vuln-policy-request to: vuln-policy-rating type: has_many via: ratings - from: get-vuln-policy-response to: vuln-policy-analysis type: has_one via: analysis - from: get-vuln-policy-response to: vuln-policy-rating type: has_many via: ratings - from: update-vuln-policy-request to: vuln-policy-analysis type: has_one via: analysis - from: update-vuln-policy-request to: vuln-policy-rating type: has_many via: ratings - from: list-vuln-policy-bundles-response to: list-vuln-policy-bundles-response-item type: has_many via: items - from: list-vuln-kev-assertions-response to: kev-assertion type: has_many via: items - from: list-task-queues-response to: task-queue type: has_many via: items - from: workflow-run-metadata to: Parent type: belongs_to via: parent_id - from: list-workflow-runs-response to: workflow-run-metadata type: has_many via: items - from: list-workflow-run-events-response to: list-workflow-run-events-response-item type: has_many via: items - from: paginated-response to: total-count type: has_one via: total - from: list-components-response-item to: hashes type: has_one via: hashes - from: list-components-response-item to: license type: has_one via: resolved_license - from: list-components-response-item to: component-project type: has_one via: project - from: list-components-response-item to: dependency-metrics type: has_one via: metrics - from: list-components-response-item to: package-metadata type: has_one via: package_metadata - from: list-components-response-item to: package-artifact-metadata type: has_one via: package_artifact_metadata - from: organizational-entity to: organizational-contact type: has_many via: contacts - from: list-project-components-response-item to: hashes type: has_one via: hashes - from: list-project-components-response-item to: license type: has_one via: resolved_license - from: list-project-components-response-item to: dependency-metrics type: has_one via: metrics - from: list-project-components-response-item to: package-metadata type: has_one via: package_metadata - from: list-project-components-response-item to: package-artifact-metadata type: has_one via: package_artifact_metadata - from: license to: License type: belongs_to via: license_id - from: package-artifact-metadata to: hashes type: has_one via: hashes