Data Model (ERD)

Every entity below also carries the built-in platform fields: idcreated_dateupdated_datecreated_by_id

Platform Core

  • idstring
  • full_namestring
  • emailstring
  • role'admin' | 'user'
  • created_datedate

Built-in. Records join via invite only — never created directly.

  • appName / logoUrl / faviconUrlstring
  • footerLogoUrl / footerTaglinestring
  • utilityBarTaglinestring
  • heroBackgroundImageUrlstring (MediaFile url)
  • statsBackgroundImageUrlstring (MediaFile url)
  • ctaBackgroundImageUrl / ctaBackgroundColorstring

Singleton — site-wide branding & backgrounds.

  • fileName / fileUrlstring
  • fileTypeimage | video | pdf | document | other
  • mimeType / altText / descriptionstring
  • tagsstring[]
  • sizenumber

Central media library. Other entities reference its fileUrl via their imageUrl fields.

  • entityName / fieldKey / labelstring
  • fieldTypetext | textarea | number | boolean | date | url | image | enum | enum_array | id | id_array | object_array
  • options / subFieldsstring[]
  • refEntity→ linked entity (id / id_array fields)
  • required / isSystem / orderboolean / boolean / number

Defines admin-editable fields per content entity (drives the Content Entities manager).

Site Structure & Navigation

  • label / pathstring
  • ordernumber
  • parentItemId→ NavigationItem
  • isExternal / highlightboolean
  • section'primary' | 'utility'
  • iconstring

Main + utility nav. Self-referencing parent/child tree.

  • label / path / externalUrlstring
  • ordernumber
  • sectionstring
  • sectionTitlestring
  • isExternalboolean

Grouped footer links (section + sectionTitle).

  • imageUrlstring (MediaFile url)
  • altTextstring
  • ordernumber

Rotating background images for the homepage hero slider.

  • keystring (unique)
  • page / sectionstring
  • plainTextstring
  • imageUrlstring (MediaFile url)
  • imageAltTextstring

Keyed content blocks per page/section — drives editable homepage copy & images.

  • recipientEmail / ccEmailstring
  • successMessage / emailSubjectPrefixstring
  • formFieldsFieldConfig[] (id, label, type, required, width, options)

Consumed by the submitContactForm backend function.

Programs & Training

  • program_title / abbreviationstring (unique)
  • offering_typestring (Curriculum, Program, Training, …)
  • service_line / program_audiencestring[]
  • summary / descriptionstring
  • logostring (MediaFile url)
  • languagesstring[]
  • training_requiredboolean
  • cta_label / cta_url / preview_url / eval_brief_urlstring
  • publish_statusDraft | In Review | Published | Archived

Published curricula & programs — powers the program catalog, search, and program links.

  • training_code / training_namestring (unique)
  • offering_type / service_linestring / string[]
  • training_audience / training_level / training_delivery_modestring[] / string
  • ceu_eligibleboolean
  • summary / descriptionstring
  • logostring (MediaFile url)
  • start_date / end_date / cost_usddate / number
  • cta_label / cta_url / fallback_cta_*string
  • publish_statusDraft | In Review | Published | Archived
  • program_offering_ids→ ProgramOffering[]

Facilitator trainings — powers both public calendars and the training catalog.

  • session_id / namestring (unique)
  • training_offering_id→ TrainingOffering
  • date / time / locationstring
  • cost_override_usdnumber
  • notesstring

Individual sessions for a TrainingOffering (scheduled dates, cost overrides).

  • event_id / namestring (unique)
  • event_type / service_linestring
  • date / end_date / time / locationstring
  • registration_url / description / image_urlstring
  • host_org_id→ Organization
  • staff_ids→ StaffMember[]
  • program_offering_id→ ProgramOffering
  • project_id→ Project

Public events, coalitions, and program sessions (host, staff, program, project links).

  • title / summary / seriesLabel / briefTypestring
  • curriculumNamestring (free-text program name)
  • imageUrl / pdfUrlstring (URL)
  • keyFindings / participantQuotes / tagsstring[]
  • yearnumber
  • isActive / orderboolean / number
  • evaluationSnapshotobject (participants, locations, design, …)

Evidence brief repository. Soft-links to programs by name.

Projects & Partners

  • titlestring (unique)
  • service_lines / project_status / timeframe_labelstring[] / string
  • start_date / end_datedate
  • summary / description / outcomesstring
  • resource_links[]{label, url, link_type}[]
  • other_partners_notestring (unmatched partner mentions)
  • partner_org_ids / funder_org_ids→ Organization[]
  • training_offering_ids / program_offering_idsstring[]
  • featured_photo_id→ Photo
  • publish_statusDraft | In Review | Published | Archived

Consulting & community projects — links partners, funders, programs, and trainings.

  • namestring (unique)
  • org_rolesstring[] (Partner, Funder, Customer, …)
  • logostring (MediaFile url)
  • website_url / descriptionstring
  • show_logo_publiclyboolean

Partner, funder, customer, and coalition organizations.

  • photo_filestring (MediaFile url)
  • caption / alt_textstring
  • organization_id→ Organization
  • project_ids→ Project[]
  • training_offering_ids / program_offering_idsstring[]
  • testimonial_id→ Testimonial

Captioned photos linked to organizations, projects, programs, or testimonials.

People & Voices

  • name / role / biostring
  • photoUrlstring (MediaFile url)
  • languagesstring[]
  • ordernumber

Team page roster; linked as leading staff on PublicEvents.

  • name / role / affiliation / biostring
  • photoUrlstring (MediaFile url)
  • linkedinUrlstring (URL)
  • ordernumber

Board of directors page roster.

  • quotestring
  • attribution_name / attribution_rolestring
  • service_linesstring[]
  • permission_on_fileboolean
  • organization_id / project_id / training_offering_id / program_offering_idstring
  • isActive / orderboolean / number

Community Voices section on the homepage; links to orgs, projects, programs, and trainings.

Relationships

  • All entities→User(created_by_id → User.id (platform-managed))
  • NavigationItem→NavigationItem(parentItemId → NavigationItem.id (self-referencing menu tree))
  • ContactFormSettings→submitContactForm (function)(recipient & subject config for the contact form handler)
  • ContentFieldDef→All content entities(entityName → entity (defines admin-editable custom fields, incl. custom_json))
  • GlobalSettings, HeroSlide, PageContent, ProgramOffering, TrainingOffering, Organization, Project, StaffMember, BoardMember, Photo, ResearchBrief→MediaFile(logo / image / photo fields store MediaFile.fileUrl)
  • PageContent→Home, and all pages(keyed blocks (e.g. homepage-hero-heading) override default copy per page)
  • TrainingSession→TrainingOffering(training_offering_id → TrainingOffering.id (sessions within a training))
  • TrainingOffering→ProgramOffering(program_offering_ids → ProgramOffering.id (many-to-many))
  • PublicEvent→Organization, StaffMember, ProgramOffering, Project(host_org_id / staff_ids / program_offering_id / project_id links)
  • Project→Organization(partner_org_ids / funder_org_ids → Organization.id)
  • Project→Photo(featured_photo_id → Photo.id)
  • Photo→Organization, Project, Testimonial(organization_id / project_ids / testimonial_id links)
  • Testimonial→Organization, Project, TrainingOffering, ProgramOffering(optional single links per quote)