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)