FusionSuite retrospective & roadmap - January 12, 2023

FusionSuite - retrospective & roadmap

January 12, 2023
David Durieux: david@durieux.family

FusionSuite retrospective & roadmap - January 12, 2023

Who am I?

Who am I
FusionSuite retrospective & roadmap - January 12, 2023

David Durieux

  • live in France (countryside near Lyon)
  • admin & developer since 1999, self-taught
  • leader of FusionSuite project
  • leader of FusionInventory project
  • Innovation and expertise manager at DCS EASYWARE company
Who am I | David Durieux
FusionSuite retrospective & roadmap - January 12, 2023

Reminder: what is FusionSuite?

FusionSuite is a free software for IT service management, but also more generally:

  • incident management
  • request management
  • change management
  • assets management
  • ...
Reminder: what is FusionSuite?
FusionSuite retrospective & roadmap - January 12, 2023

Architecture

FusionSuite is made up of 2 parts:

  • Backend
  • Frontend
Architecture
FusionSuite retrospective & roadmap - January 12, 2023

Backend

The backend is the part managing the data, stored into database.

It's made of:

  • REST API (documented)
  • support of many database types (ORM Eloquent)
  • good performances
  • simplicity & stability
Architecture | Backend
FusionSuite retrospective & roadmap - January 12, 2023

Frontend

The frontend is the web interface:

  • coded in Typescript with Angular
  • responsive (desktop, smartphone, tablet)
  • dynamic interface
  • will be generated in different formats:
    • web
    • desktop app
    • android & iOS app
Architecture | Frontend
FusionSuite retrospective & roadmap - January 12, 2023

Retrospective 2022

Retrospective 2022
FusionSuite retrospective & roadmap - January 12, 2023

General

The project has 1 year!

Retrospective 2022 | General
FusionSuite retrospective & roadmap - January 12, 2023

Communication

Several means of communicating with people have been implemented in recent months.

Retrospective 2022 | General | Communication
FusionSuite retrospective & roadmap - January 12, 2023

Useful links

Several means of communication have been set up:

Retrospective 2022 | General | Useful links
FusionSuite retrospective & roadmap - January 12, 2023

Monthly reports

Each month, or sometimes every 2 months, I write, on the website, the report of the month on what is happening around the project:

  • the news
  • the difficulties
  • the features implemented
  • other information
Retrospective 2022 | General | Monthly reports
FusionSuite retrospective & roadmap - January 12, 2023

Backend

This is the base, so a lot of time has been spent on it.

Retrospective 2022 | Backend
FusionSuite retrospective & roadmap - January 12, 2023

Technologies

The backend is written in PHP and composed of:

  • Slim Framework: used for the REST API interface
  • Eloquent: ORM for the database
  • phinx: for the installation and migration of data in database
  • slim-jwt-auth: to manage authentication (JWT token)
  • Rakit Validation: to validate all data received in the backend
  • many other little libraries
Retrospective 2022 | Backend | Technologies
FusionSuite retrospective & roadmap - January 12, 2023

Cli

Add a cli for many operations like configure database, generate security keys, reset the database...

Retrospective 2022 | Backend | Cli
FusionSuite retrospective & roadmap - January 12, 2023

Databases

The databases supported:

  • MySQL: 5.7 | 8
  • MariaDB: 10.4 | 10.5 | 10.6 | 10.7
  • PostgreSQL: 11 | 12 | 13 | 14 | 15
  • Microsoft SQL (not sure yet because have errors with UTF-8, if anyone has skills)
Retrospective 2022 | Backend | Databases
FusionSuite retrospective & roadmap - January 12, 2023

Item management

The item management has been implemented.

You can attach properties to them with many different types (string, integer, link to another item...).

The items can the tree, with mutliple root or not. It can have also unique name.

Retrospective 2022 | Backend | Item management
FusionSuite retrospective & roadmap - January 12, 2023

Organizations

Organizations has been implemented to store data in organizations.

Organizations are hierarchical.

The organizations are items like other objects, and it's possible to add properties ;)

Retrospective 2022 | Backend | Organizations
FusionSuite retrospective & roadmap - January 12, 2023

Users

The users has been implemented.

It's items too, so users have minimal properties (can't be deleted in this case), but you can add properties (for example manager, location, matricule...).

Retrospective 2022 | Backend | Users
FusionSuite retrospective & roadmap - January 12, 2023

Roles and permissions

You can have on all items (view, create, update, soft delete, delete) or only on some of them.

When you have view on item, you can too have permission to view and/or update each properties of the item.

Example: a user can view property serial number of a laptop, another user will not see it.

Retrospective 2022 | Backend | Roles and permissions
FusionSuite retrospective & roadmap - January 12, 2023

Audit

All connections (success and failed) and write operations (create, update, delete) are written in an audit database table.

All errors in backend are too written in it.

Retrospective 2022 | Backend | Audit
FusionSuite retrospective & roadmap - January 12, 2023

Changes

All modifications are stored in changes.
The changes are sent when you get one item.

We have:

  • old value
  • new value
  • message (will be possible to be customized later)
  • user
  • date
Retrospective 2022 | Backend | Changes
FusionSuite retrospective & roadmap - January 12, 2023

Action scripts

For the moment, 3 action scripts has been written:

  • Zabbix (register a device in Zabbix for monitoring)
  • Discord notification
  • email notification

Will require a little more work, will have more scripts and will be used with rules

Retrospective 2022 | Backend | Action scripts
FusionSuite retrospective & roadmap - January 12, 2023

Custom display

The frontend will be able to display many things customized by admin and/or user.

The properties in items, the menu... It's stored in the backend in a special place, it's separate from the data.

Retrospective 2022 | Backend | Custom display
FusionSuite retrospective & roadmap - January 12, 2023

Documentation

The REST API is documented in the code. For each merge of new code, the documentation is updated on API REST documentation online.

Retrospective 2022 | Backend | Documentation
FusionSuite retrospective & roadmap - January 12, 2023

Tests

The backend must be super strong, I added a lot of tests, we are near 2200 tests, it represent about 42000 database queries, all in 2 minutes only ;)

Retrospective 2022 | Backend | Tests
FusionSuite retrospective & roadmap - January 12, 2023

Frontend

It's the user interface.

Retrospective 2022 | Frontend
FusionSuite retrospective & roadmap - January 12, 2023

Technologies

The frontend is written in Typescript and composed of:

Retrospective 2022 | Frontend | Technologies
FusionSuite retrospective & roadmap - January 12, 2023

Responsive

The frontend is developped to be responsive, it looks different:

  • on computer with normal screen
  • on computer with wide screen
  • tablet
  • smartphones
Retrospective 2022 | Frontend | Responsive
FusionSuite retrospective & roadmap - January 12, 2023

Design

With Probesys partner, we have explored some possible designs and we have choose it (you will see on the demo).

It can still evolve in the coming months.

Retrospective 2022 | Frontend | Design
FusionSuite retrospective & roadmap - January 12, 2023

Menu 1/2

The menu is customizable (submenu, items, icons) and have 2 main parts:

  • business: admin create the menu and you display it (some items not if you don't have permissions)
  • personal: it's your favorite items, limited in number (not yet defined)
Retrospective 2022 | Frontend | Menu
FusionSuite retrospective & roadmap - January 12, 2023

Menu 2/2

Retrospective 2022 | Frontend | Menu
FusionSuite retrospective & roadmap - January 12, 2023

Items

The item page is currently in a design I want.
The page is composed by panels and items on this panels (customizable)

There are 2 types of display:

  • standard: have only panels and changes timeline are in end
  • timeline: have timeline + conversation at left, and panels at right
Retrospective 2022 | Frontend | Items
FusionSuite retrospective & roadmap - January 12, 2023

Tests

End to end tests have started to be written, it simulates a user in front of website and do same actions and check the behavior is the same.

Retrospective 2022 | Frontend | Tests
FusionSuite retrospective & roadmap - January 12, 2023

Demo

Demo
FusionSuite retrospective & roadmap - January 12, 2023

Roadmap 2023

Roadmap 2023
FusionSuite retrospective & roadmap - January 12, 2023

Rules 1/2

Rule management to finish to code in backend and add interface into frontend.

Example of what it might look like (inspiration):

Roadmap 2023 | Rules
FusionSuite retrospective & roadmap - January 12, 2023
Roadmap 2023 | Rules
FusionSuite retrospective & roadmap - January 12, 2023

Provisionning

The provisionning can be done with REST API, but want add the possibility to do too with LDAP directory.

Roadmap 2023 | Provisionning
FusionSuite retrospective & roadmap - January 12, 2023

SSO

The connection will be possible with SSO (SAML2, OpenID, Azure connect...) for strong and centralized authentication.

Roadmap 2023 | SSO
FusionSuite retrospective & roadmap - January 12, 2023

FusionInventory integration

The FusionInventory integration must be done on backend and frontend:

  • computer inventory
  • network discovery
  • network inventory (SNMP)
  • software deployment
Roadmap 2023 | FusionInventory integration
FusionSuite retrospective & roadmap - January 12, 2023

search

The search engine must be implemented. Several tracks have been considered but not yet chosen for that. We aim to have something very simple but can be used for complex user needs.

Roadmap 2023 | Search
FusionSuite retrospective & roadmap - January 12, 2023

Templates website

The properties and items can be created manually. It's cool but need to have something more industrial (export, import).

We will launch before the release a website where the community will post their templates of configuration. We will propose too some templates like incident management, FusionInventory assets...

Roadmap 2023 | Templates website
FusionSuite retrospective & roadmap - January 12, 2023

Software versions centralized

With (or without) the help of FusionInventory agent send the softwares, I want to manage a central database of softwares and the versions, will be hosted on FusionSuite server (with website). This database will be imported / updated into FusionSuite (perhaps with action scripts) and you will be able to see your softwares that are not up to date.

Some researches has been made last year to plan how to retrieve new versions of software on internet.

Roadmap 2023 | Software versions centralized
FusionSuite retrospective & roadmap - January 12, 2023

Performances

Time will be used to test the performances and optimize everything possible.

Roadmap 2023 | Performances
FusionSuite retrospective & roadmap - January 12, 2023

Security

Security has begun to be tested and will continue until release.

Roadmap 2023 | Security
FusionSuite retrospective & roadmap - January 12, 2023

Documentation

The documentation will be filled for:

  • developers (REST API)
  • administrators (installation, configuration...)
  • end user
Roadmap 2023 | Documentation
FusionSuite retrospective & roadmap - January 12, 2023

Interface translation

The interface already has the mechanism for translating fixed texts.
People will be able to translate it on dedicated tool.

Roadmap 2023 | Interface translation
FusionSuite retrospective & roadmap - January 12, 2023
Planning
FusionSuite retrospective & roadmap - January 12, 2023

Join us

If you (user or company) want to join us to contribute to FusionSuite project, contact me!

Join us
FusionSuite retrospective & roadmap - January 12, 2023

Thanks

Thank you for following this presentation.

Thanks