Organization Repository
Component Detail
Data Layer
high complexity
Shared Component
backend
1
Dependencies
2
Dependents
4
Entities
0
Integrations
Description
Data access layer for the full organizational hierarchy including organizations, regions, and local associations. Executes all SQL queries with mandatory tenant-scoping applied at the repository level to prevent cross-organization data leakage. Supports both fine-grained node lookups and bulk hierarchy reads for admin tree rendering.
organization-repository
Responsibilities
- CRUD operations for organizations, regions, and local_associations tables
- Enforce tenant-scoped queries so no data crosses organizational boundaries
- Provide efficient tree-loading queries for hierarchy navigation
- Manage user_organization_roles join table for user-node-role assignments
- Support bulk seed inserts for known hierarchy initialization at deploy time
Interfaces
findOrganizationById(id: string): Organization
findAllOrganizations(): Organization[]
findRegionsByOrganization(orgId: string): Region[]
findLocalAssociationsByRegion(regionId: string): LocalAssociation[]
findLocalAssociationsByOrganization(orgId: string): LocalAssociation[]
findUserOrganizationRoles(userId: string): UserOrganizationRole[]
upsertUserOrganizationRole(userId: string, orgNodeId: string, roleId: string): void
deleteUserOrganizationRole(userId: string, orgNodeId: string): void
createOrganization(data: OrganizationInput): Organization
updateOrganization(id: string, data: Partial<OrganizationInput>): Organization
createRegion(data: RegionInput): Region
createLocalAssociation(data: LocalAssociationInput): LocalAssociation
getFullHierarchyTree(orgId: string): OrgTreeNode
countNodesAtLevel(orgId: string, level: string): number
Relationships
Dependencies (1)
Components this component depends on
Dependents (2)
Components that depend on this component
Related Data Entities (4)
Data entities managed by this component