generated: '2026-09-06' method: derived source: openapi/dotcms-rest-api-openapi.json description: >- Entity-relationship graph derived from $ref edges between the 606 component schemas in the first-party dotCMS OpenAPI, plus id-reference fields on the core content entities. Wrapper schemas (ResponseEntity*, ImmutableList*, *PaginatedResult) are excluded — they are envelope and pagination machinery, not domain entities. stats: schemas_total: 606 core_entities: 20 relationships: 85 core_entities: - name: Contentlet domain: content schema: "#/components/schemas/Contentlet" - name: ContentType domain: content-model schema: "#/components/schemas/ContentType" - name: Field domain: content-model schema: "#/components/schemas/Field" - name: User domain: identity schema: "#/components/schemas/User" - name: Role domain: identity schema: "#/components/schemas/Role" - name: WorkflowScheme domain: workflow schema: "#/components/schemas/WorkflowScheme" - name: WorkflowStep domain: workflow schema: "#/components/schemas/WorkflowStep" - name: WorkflowAction domain: workflow schema: "#/components/schemas/WorkflowAction" - name: Folder domain: site schema: "#/components/schemas/Folder" - name: Template domain: presentation schema: "#/components/schemas/Template" - name: Container domain: presentation schema: "#/components/schemas/Container" - name: Language domain: i18n schema: "#/components/schemas/Language" - name: Permission domain: identity schema: "#/components/schemas/Permission" - name: Job domain: operations schema: "#/components/schemas/Job" - name: Experiment domain: personalization schema: "#/components/schemas/Experiment" - name: PublishingEndPoint domain: publishing schema: "#/components/schemas/PublishingEndPoint" - name: Environment domain: publishing schema: "#/components/schemas/Environment" - name: Persona domain: personalization schema: "#/components/schemas/Persona" - name: Variant domain: personalization schema: "#/components/schemas/Variant" - name: Condition domain: rules schema: "#/components/schemas/Condition" relationships: - from: BinaryField to: Field kind: has_one via: $ref - from: BulkWorkflowSchemeView to: WorkflowScheme kind: has_one via: $ref - from: CategoryField to: Field kind: has_one via: $ref - from: CheckboxField to: Field kind: has_one via: $ref - from: ColumnField to: Field kind: has_one via: $ref - from: CompletionsForm to: User kind: has_one via: $ref - from: ConstantField to: Field kind: has_one via: $ref - from: ContainerView to: Container kind: has_one via: $ref - from: ContentTypeForm to: ContentType kind: has_one via: $ref - from: ContentTypeWorkflowSchemesView to: WorkflowScheme kind: has_one via: $ref - from: ContentTypeWorkflowSchemesView to: WorkflowScheme kind: has_many via: $ref - from: Contentlet to: Field kind: has_one via: $ref - from: Contentlet to: UserAPI kind: has_one via: $ref - from: ContentletWorkflowStatusView to: WorkflowScheme kind: has_one via: $ref - from: ContentletWorkflowStatusView to: WorkflowStep kind: has_one via: $ref - from: CountWorkflowAction to: WorkflowAction kind: has_one via: $ref - from: CountWorkflowStep to: WorkflowStep kind: has_one via: $ref - from: CustomField to: Field kind: has_one via: $ref - from: DateField to: Field kind: has_one via: $ref - from: DateTimeField to: Field kind: has_one via: $ref - from: DotAssetContentType to: ContentType kind: has_one via: $ref - from: EmptyField to: Field kind: has_one via: $ref - from: EmptyPageView to: Contentlet kind: has_one via: $ref - from: EmptyPageView to: Experiment kind: has_one via: $ref - from: EmptyPageView to: Template kind: has_one via: $ref - from: Experiment to: Goals kind: has_one via: $ref - from: Experiment to: RunningIds kind: has_one via: $ref - from: Experiment to: Scheduling kind: has_one via: $ref - from: Experiment to: TargetingCondition kind: has_many via: $ref - from: Experiment to: TrafficProportion kind: has_one via: $ref - from: FieldResponseView to: Field kind: has_many via: $ref - from: FileAssetContentType to: ContentType kind: has_one via: $ref - from: FileField to: Field kind: has_one via: $ref - from: Folder to: Host kind: has_one via: $ref - from: FormContentType to: ContentType kind: has_one via: $ref - from: HTMLPageAsset to: Field kind: has_one via: $ref - from: HiddenField to: Field kind: has_one via: $ref - from: Host to: Field kind: has_one via: $ref - from: HostFolderField to: Field kind: has_one via: $ref - from: ImageField to: Field kind: has_one via: $ref - from: Job to: JobResult kind: has_one via: $ref - from: KeyValueContentType to: ContentType kind: has_one via: $ref - from: KeyValueField to: Field kind: has_one via: $ref - from: LineDividerField to: Field kind: has_one via: $ref - from: MultiSelectField to: Field kind: has_one via: $ref - from: PageContentType to: ContentType kind: has_one via: $ref - from: PageView to: Contentlet kind: has_one via: $ref - from: PageView to: Experiment kind: has_one via: $ref - from: PageView to: Template kind: has_one via: $ref - from: PermissionTabField to: Field kind: has_one via: $ref - from: Persona to: Field kind: has_one via: $ref - from: Persona to: UserAPI kind: has_one via: $ref - from: PersonaContentType to: ContentType kind: has_one via: $ref - from: RadioField to: Field kind: has_one via: $ref - from: RelationshipField to: Field kind: has_one via: $ref - from: RelationshipsTabField to: Field kind: has_one via: $ref - from: RowField to: Field kind: has_one via: $ref - from: SchemesAndSchemesContentTypeView to: WorkflowScheme kind: has_many via: $ref - from: SelectField to: Field kind: has_one via: $ref - from: SimpleContentType to: ContentType kind: has_one via: $ref - from: StoryBlockField to: Field kind: has_one via: $ref - from: SystemActionWorkflowActionMapping to: WorkflowAction kind: has_one via: $ref - from: TabDividerField to: Field kind: has_one via: $ref - from: TagField to: Field kind: has_one via: $ref - from: TextAreaField to: Field kind: has_one via: $ref - from: TextField to: Field kind: has_one via: $ref - from: TimeField to: Field kind: has_one via: $ref - from: UpdateFieldForm to: Field kind: has_one via: $ref - from: User to: Role kind: has_one via: $ref - from: UserAPI to: User kind: has_one via: $ref - from: UserAPI to: User kind: has_many via: $ref - from: VanityUrlContentType to: ContentType kind: has_one via: $ref - from: ViewAsPageStatus to: Contentlet kind: has_one via: $ref - from: ViewAsPageStatus to: Language kind: has_one via: $ref - from: Visitor to: Language kind: has_one via: $ref - from: Visitor to: Persona kind: has_one via: $ref - from: WidgetContentType to: ContentType kind: has_one via: $ref - from: WorkflowDefaultActionView to: WorkflowAction kind: has_one via: $ref - from: WorkflowDefaultActionView to: WorkflowScheme kind: has_one via: $ref - from: WorkflowDefaultActionView to: WorkflowStep kind: has_one via: $ref - from: WorkflowSchemeImportExportObjectView to: WorkflowAction kind: has_many via: $ref - from: WorkflowSchemeImportExportObjectView to: WorkflowScheme kind: has_many via: $ref - from: WorkflowSchemeImportExportObjectView to: WorkflowStep kind: has_many via: $ref - from: WorkflowSchemeImportObjectForm to: Permission kind: has_many via: $ref - from: WysiwygField to: Field kind: has_one via: $ref id_reference_fields: - entity: Contentlet field: variantId - entity: Contentlet field: languageId - entity: Contentlet field: structureInode - entity: Contentlet field: permissionId - entity: Contentlet field: contentTypeId - entity: Contentlet field: categoryId - entity: Contentlet field: versionId - entity: User field: companyId - entity: User field: actualCompanyId - entity: User field: recipientId - entity: User field: timeZoneId - entity: User field: languageId - entity: User field: skinId - entity: User field: smsId - entity: User field: aimId - entity: User field: icqId - entity: User field: msnId - entity: User field: ymId - entity: User field: userId - entity: WorkflowScheme field: entryActionId - entity: WorkflowStep field: schemeId - entity: WorkflowAction field: schemeId - entity: Folder field: hostId - entity: Template field: permissionId - entity: Template field: versionId - entity: Template field: categoryId - entity: Container field: hostId - entity: Container field: permissionId - entity: Container field: versionId - entity: Container field: categoryId - entity: Permission field: roleId - entity: Experiment field: pageId - entity: PublishingEndPoint field: groupId - entity: Environment field: permissionId - entity: Persona field: variantId - entity: Persona field: versionId - entity: Persona field: permissionId - entity: Persona field: languageId - entity: Persona field: structureInode - entity: Persona field: contentTypeId - entity: Persona field: categoryId