Worklog for task "Unify request interfaces"

8 сент. 2026 г., 09:39:27

Unified pass requests in GraphQL and the new user account

Historically, the Kilfor system had three different types of pass requests:

  • visitor requests;
  • material entry/exit requests;
  • vehicle entry requests.

These types use different database table sets, and in some scenarios, the set of fields also differs. I intentionally did not change the database structure or the existing business logic so as not to affect the stable legacy backend.

The unification was done at the GraphQL API and frontend level. A union type and unified resolvers were added to GraphQL, allowing different pass types to be retrieved through a common interface. As a result, requests from different sources are now read and displayed as a single list regardless of which physical tables they are stored in.

On the frontend, a unified request creation form with a pass type switcher was implemented. The user works with a single interface, while the necessary set of fields and form logic adapt to the selected scenario: visitor, material entry/exit, or vehicle.

This removed the historical fragmentation of the interface into several separate pages and forms while preserving the existing data structure and access permissions. The result is a unified UX for pass requests without risky data migration and rewriting the MODX backend.

03.09.2026