Skip to content

Domain map

Updated 13 Jul 2026jirkamotejl

This page is an orientation map of the domain. It does not replace models in code, but it gives the team shared language for product and documentation discussion.

flowchart TD
  CompanySpace[CompanySpace] --> UICS[UserInCompanySpace]
  User[User] --> UICS
  CompanySpace --> UserGroup[UserGroup]
  UICS --> UserInUserGroup[UserInUserGroup]
  UserGroup --> UserInUserGroup
  UserGroup --> GroupLeader[GroupLeader]
  UICS --> GroupLeader

  CompanySpace --> CICS[ContentInCompanySpace]
  Content[Content] --> CICS
  Content --> ContentVersion[ContentVersion]
  CICS --> AssignedContent[AssignedContent]
  UserGroup --> AssignedContent
  UICS --> AssignedContent
  AssignedContent --> ParticipationSource[ParticipationSource]
  ParticipationSource --> ContentParticipation[ContentParticipation]
  ContentVersion --> ContentParticipation
  User --> ContentParticipation
  CICS --> ContentLicense[ContentLicense]
  UICS --> ContentLicense
AreaMain entitiesWhy it matters
TenantCompanySpaceSeparates client data, settings, and ownership.
IdentityUser, UserInCompanySpaceOne person can have different roles and states in different spaces.
OrganizationUserGroup, UserInUserGroup, GroupLeaderGroups drive bulk processes and blended learning.
ContentContent, ContentVersion, ContentInCompanySpaceSeparates a course, its versions, and availability for a client.
AssignmentAssignedContent, ParticipationSourceExplains why a user should study content.
StudyContentParticipation, StepParticipation, TestAttemptHolds learning state, progress, completion, and certificates.
IntegrationREST API, webhooksExternal contract for client systems.

This map is derived from Rails models in knowspread/app/models. If it differs from code, code wins and the page should be fixed.