Development tools in LexiFi - Packages.

Hi all,

Historically, code templates for document automation, grid reporting, global configuration, and other functionalities were stored in disparate local directories, lacking packaging. This fragmented approach posed numerous risks and challenges, including issues with dependency management, security vulnerabilities, and complex deployment processes.

Recognizing the need for a more organized and streamlined solution, LexiFi’s team of experts opted for packages. This approach helps to mitigate the risks mentioned above by offering a standardized, dependable, and efficient method for creating, modifying, managing and distributing code templates and their associated dependencies.
Instead of resorting to complex IT processes, packages allow for an easy and streamlined approach. With a single operation, users can integrate new developments quickly, easily, and securely.

Advantages

Packages typically refer to modular units of code, configurations, libraries, or resources bundled together for easy distribution, deployment, and reuse and offer many advantages, such as:

  • Modularity: it is easier to manage and maintain code thanks to modular programming, as complex systems are broken down into smaller, manageable components.
  • Reusability: packages can be reused across different projects or within the same project. Instead of reinventing the wheel, developers can leverage existing packages to save time and effort.
  • Versioning: package content can easily be versioned using the version control system of your choice (eg. Git, …) to manage changes and updates. Version control systems help manage package versions and dependencies.
  • Distribution and deployment: packages are distributed through package repositories or registries, where developers can upload and share their packages with others. Package managers allow authorized developers to easily install, update, and uninstall packages from these repositories in one single operation.

alt text

“The use of packages facilitates the integration of modern development practices into LexiFi, ranging from versioning code and documents on Git to collaborative project management. The time and productivity gains for developers working on the application are immediate.”
Laurent Peyré, Front Office Developer, Silex

Installation modes

There are two possible installation modes for a package:

  • Local (modifiable): This option enables users to import the package locally, granting them the flexibility to make modifications as needed. Only super users possess the access rights to modify the packages. Configuration adjustments are conducted locally, allowing users to review and test modifications before pushing them to the database. By pushing local items to the database, modifications are applied to all users, streamlining the deployment process for LexiFi’s configuration components.
  • For hosted users, packages are published on the database for all modules (read-only format).

alt text

Database storage

Storing packages in the database instead of being saved locally as files offers several advantages:

  • Centralized Storage: storing packages in a database provides a centralized location for managing and accessing them. This simplifies administration and reduces the risk of package loss or corruption.
  • Scalability: databases are designed to handle large amounts of data and can scale more easily than file systems. This makes them well-suited for storing a large number of packages or package versions.
  • Access Control: databases offer built-in access control mechanisms, allowing administrators to restrict access to packages based on user roles or permissions. This enhances security and ensures that only authorized users can access or modify packages. This helps maintain data integrity and prevents conflicts or inconsistencies when multiple users are accessing or modifying packages simultaneously.
  • Versioning and history: possibility to easily track versioning and history for packages, with a third party tool like Git, allowing users to view past versions, revisions, or changes. This enables better traceability and auditability of package updates.

alt text

“Lexifi’s packages technology streamlines configuration development by organizing code for various needs. It easily integrates with version control systems, maintaining a detailed development history and providing engineers with powerful tools for collaborative coding. This feature enables advanced users to test and deploy smoothly, enhancing agility and efficiency in managing configurations."
Rene Hess, Founder, 42 Consulting

However, it’s worth noting that package contents may still be stored as files on a file system. The decision to store packages in a database versus locally as files depends on various factors, including performance considerations, organizational preferences, and specific requirements of the development environment.

Packages have already streamlined LexiFi’s client support activities, and we’re pushing further improvements. We’re currently working on integrating this paradigm with VS Code, enabling users to directly access and modify code templates within VS Code, which offers enhanced functionality. Any changes made in VS Code will seamlessly synchronize with LexiFi’s editor, ensuring a smooth workflow, especially when using the local modifiable mode, as the package maintainer can observe immediately the consequences of the code changes. This integration is particularly effective when files are stored within packages. Stay tuned for further developments on this front!


What we're reading Vdom 0.3 brings Elm-style decoders to OCaml
Latest client stories  QUINTET PRIVATE BANK: Fabrice Todeschini, Group Head of Global Structured Solutions, explains the success of the collaboration between Quintet Private Bank and LexiFi.
SILEX: Alexis de Bernis, Chief Technology Officer at Silex, speaks about Silex’s main achievements with LexiFi Apropos, and more
Features in focus Document customization

Grid Reporting

Structured investments document automation

Custom view inputs




Client stories

Features

Thanks!

LexiFi team