eFront is a client-server web application, designed to be delivered in a browser using the HTTP protocol. The client side is implemented using HTML, JavaScript, and CSS. The server side is written in PHP and built on a small set of open-source components: Slim (HTTP routing and middleware), Smarty (templates), PHP-DI (dependency injection), and ADOdb (database access).
The server-side architecture follows the MVC pattern, which imposes a 3-way division of the application logic:
The Model represents real-world entities and relationships; The View implements the user interface of the application, and the Controller binds user interactions with models to perform operations.
All data is stored in a relational database management system (RDBMS). eFront runs on a MySQL-compatible database, MariaDB in the standard deployment, and reaches it through ADOdb, an open-source PHP data abstraction library.
In addition to the traditional client-server interface, eFront offers a server-to-server interface, implemented as a versioned REST API that returns JSON. Calls are authenticated with an API key, and a key can be scoped to a branch so an integration only sees that branch's data. See How to integrate eFront with your system with REST JSON API for setup, authentication, and examples.
This allows any 3rd party application to exchange data with the system, provided that it is equipped with a proper API key.
eFront also integrates with standards-based identity systems: SAML and OpenID Connect single sign-on, LDAP authentication, and SCIM 2.0 user provisioning from your identity provider. For a worked example, see How to configure SCIM with Azure AD.
