Content Types (Schema) - NIAID-Data-Ecosystem/nde-strapi GitHub Wiki

This section outlines the content types and their relationships used in the NIAID Data Ecosystem portal.

Collection Types

Collection types are content-types managing several entries. For each available collection type, multiple entries can be created.

Category

Purpose: Organizes content across the portal into meaningful groups.

API Routes

GET /api/categories?populate=*

Fields

Field Type Required Description
name string βœ… Display name of the category.
docs Relation to Doc ❌ Documentation pages associated with this category.
events Relation to Event ❌ Events grouped under this category.
feature Relation to Featured ❌ Featured pages associated with this category.
news Relation to News ❌ News items assigned to this category.
order number ❌ Used to determine display order of categories in lists.

Doc

Purpose: Provides user-facing documentation, guides, and informational content for the portal.

API Routes

GET /api/docs?populate=*

Fields

Field Type Required Description
name string βœ… Title of the documentation page.
slug UID βœ… Auto-generated URL path where the documentation page is accessible.
subtitle string ❌ Secondary heading or summary shown below the title.
description rich text ❌ Main content body, supporting Markdown formatting.
category Relation to Category ❌ One or more categories the page is associated with.
order number ❌ Determines the position of this page relative to others in category listings.

Event

Purpose: Information about events related to the NIAID Data Ecosystem.

API Routes

GET /api/events?populate=*

Fields

Field Type Required Description
name string βœ… Title of the event.
shortDescription string βœ… Short content to display as a preview in homepage cards.
slug UID βœ… Auto-generated URL path where the event long content is accessible.
subtitle string ❌ Secondary heading or summary shown below the title.
eventDate date ❌ Date when the event takes place.
description rich text ❌ Main content body, supporting Markdown formatting.
image media ❌ Uploads and links to one media asset (e.g., JPG, PNG, SVG) to be used as thumbnail.
categories Relation to Category ❌ One or more categories the event is associated with.

Link Category

Purpose: A category of links that allows grouping of similar links.

API Routes

GET /api/link-categories?populate=*

Fields

Field Type Required Description
name string βœ… Name of the category to group links by.
url string ❌ Optional URL for the category.
description string ❌ Optional description of the category.

News

Purpose: Updates about features and releases related to the NIAID Data Ecosystem.

API Routes

GET /api/news-reports?populate=*

Fields

Field Type Required Description
name string βœ… Title of the news item.
shortDescription string βœ… Short content to display as a preview in homepage cards.
slug UID βœ… Auto-generated URL path where the news long content is accessible.
subtitle string ❌ Secondary heading or summary shown below the title.
description rich text ❌ Main content body, supporting Markdown formatting.
image media ❌ Uploads and links to one media asset (e.g., JPG, PNG, SVG) to be used as thumbnail.
categories Relation to Category ❌ One or more categories the news item is associated with.

Notice

Purpose: Displays alerts about downtimes or other issues that may impact users. Notices appear in a banner across the top of all portal pages.

API Routes

GET /api/notices?populate=*

Fields

Field Type Required Description
heading string βœ… Short title displayed in the notice banner.
description rich text βœ… Full message content. Supports Markdown formatting.
state enum βœ… Defines the type of notice (e.g., info, error, warning, success). Defaults to warning.
isActive boolean βœ… Toggle to show or hide the notice on the portal. Defaults to true.
affectedRepository string ❌ Optional name of the repository affected by the issue.

Single Types

Single types are content-types with only one entry.

About page

Purpose: Holds the static content displayed on the portal’s "About" page.

API Routes

GET /api/about-page?populate=*

Fields

Field Type Required Description
name string βœ… Title of the about page.
description rich text βœ… Main content on the about page, supporting Markdown formatting.
subtitle string ❌ Secondary heading or summary shown below the title.

Disclaimer page

Purpose: Holds the static content displayed on the portal’s "Disclaimer" page.

API Routes

GET /api/disclaimer-page?populate=*

Fields

Field Type Required Description
name string βœ… Title of the disclaimer page.
description rich text βœ… Main content on the disclaimer page, supporting Markdown formatting.
subtitle string ❌ Secondary heading or summary shown below the title.

Integration page

Purpose: The Knowledge Center's integration page has a unique layout. This single type contains the static content.

API Routes

GET /api/integration-page?populate=*

Top-Level Fields

Field Type Required Description
title string βœ… Main title of the page.
description rich text ❌ Primary body content. Supports Markdown formatting.
overview Component (repeatable) ❌ Introductory or summary section cards.
tabs Component ❌ Contains grouped content organized under tabs.
textBlocks Component (repeatable) ❌ Additional modular text sections that may be reused elsewhere.

Component: overview (Repeatable)

Field Type Required Description
title string βœ… Title of the section.
slug UID βœ… Auto-generated URL path used for anchor links.
description rich text ❌ Main description content.
image media ❌ Optional image representing the section.

Component: tabs

Field Type Required Description
title string βœ… Tab group title.
slug UID βœ… Auto-generated URL path used for anchor links.
description rich text ❌ Optional text describing the group of tabs.
panels Component (repeatable) ❌ Panels within the tab group.

Component: panels (Repeatable)

Field Type Required Description
title string βœ… Panel title shown in the UI.
cards Component (repeatable) ❌ List of card items inside the panel.

Component: cards (Repeatable)

Field Type Required Description
title string βœ… Card title.
content rich text βœ… Rich text or Markdown content.
additionalInfo rich text ❌ Optional supplementary text.
icon media ❌ Icon representing the card’s topic.
isRequired boolean ❌ Signals to user that this card item is a requirement.

Component: textBlocks (Repeatable)

Field Type Required Description
title string βœ… Section title.
slug UID ❌ Auto-generated URL path used for anchor links.
description rich text ❌ Main content block. Supports Markdown.

Shared Components


Component: Link Item

Purpose: A reusable component with properties often used in tandem with link URLs.

Field Type Required Description
label string βœ… Label or name associated with the link.
url UID βœ… Link URL.
isExternal boolean βœ… Whether the link points to an external page.
image media ❌ Accompanying image or logo.
categories Component (repeatable) - Link-category ❌ Associated Link Category group with this URL.

πŸ“– Relevant Strapi documentation