Factorizer/Cluster ERP WikiCluster ERP Türkçe
Home / Business modules

Reference

Intranet directory

Reference for the directory sub-module of intranet, a live employee directory and org chart read from employees and parties over the EventBus.

This page describes the directory sub-module in src/cluster_erp/modules/intranet/directory/. The directory is a live view over the employees of the owned_organisations module and the parties of the parties module. It stores no person row of its own; opening a colleague opens the real party card (src/cluster_erp/modules/intranet/directory/services.py:1-8).

Scope and source

  • Defined in: directory/services.py (DirectoryService), directory/routes.py, directory/schemas.py, and directory/metadata.py.
  • Count: no table, 4 routes in directory/routes.py, no ActionMeta.
  • The metadata entity intranet_employee_projection carries an identity redirect to the party entity of the parties module (src/cluster_erp/modules/intranet/directory/metadata.py:1-4, src/cluster_erp/modules/intranet/directory/metadata.py:30). See party unification.

How a person row is built

_live_people builds each row from three batched EventBus calls (src/cluster_erp/modules/intranet/directory/services.py:57-144):

Step Contract Purpose Source
1 ListDirectoryEmployees the employees, with department, organisation, title, manager, and active flag src/cluster_erp/modules/intranet/directory/services.py:60-63
2 SearchParties the party names, in one call with a limit of 10000 src/cluster_erp/modules/intranet/directory/services.py:74-80
3 ResolveEntityEmails the primary e-mail addresses src/cluster_erp/modules/intranet/directory/services.py:91-95

A failure of the name or e-mail lookup is logged and the directory continues (src/cluster_erp/modules/intranet/directory/services.py:85-86, src/cluster_erp/modules/intranet/directory/services.py:105).

Operations

Method Purpose Source
list Search and filter the live people src/cluster_erp/modules/intranet/directory/services.py:146-168
get One person by party id src/cluster_erp/modules/intranet/directory/services.py:170-178
reports The people whose manager_party_id is the given party src/cluster_erp/modules/intranet/directory/services.py:180-187
org_chart All live people; the chart is derived from manager links src/cluster_erp/modules/intranet/directory/services.py:189-190
active_party_ids Every active employee's party id, used as the audience "everyone" and as the source of segment membership src/cluster_erp/modules/intranet/directory/services.py:192-199

Routes

Method and path Purpose Permission Source
GET /directory/ List intranet_employee_projection.read src/cluster_erp/modules/intranet/directory/routes.py:22-45
GET /directory/org-chart Org chart intranet_employee_projection.read src/cluster_erp/modules/intranet/directory/routes.py:48-57
GET /directory/{party_id} One person intranet_employee_projection.read src/cluster_erp/modules/intranet/directory/routes.py:60-69
GET /directory/{party_id}/reports Direct reports intranet_employee_projection.read src/cluster_erp/modules/intranet/directory/routes.py:72-82

Constraints and validation

  • The directory has no write route (src/cluster_erp/modules/intranet/directory/routes.py:22-82).
  • The model docstring states that there is no stored person projection and no stored org closure, so nothing goes stale (src/cluster_erp/modules/intranet/models.py:23-28).

Terms introduced

Term Code identifier Definition Turkish term Source
live directory DirectoryService The employee directory read on demand from employees and parties, without a stored copy. Canlı rehber src/cluster_erp/modules/intranet/directory/services.py:1-8

Verified against commit 92f8051 on 2026-11-13.

Verified against commit 92f8051 · 2026-11-13