Skip to content

Architecture

Igor Chudov edited this page Mar 2, 2020 · 3 revisions

Architecture

Contents


Glossary of terms

  • Plugin - is a facility to unconditionally run some actions or programs before gpoa start.
  • Backend - is a facility to retrieve settings from various sources like GPOs, FreeIPA, databases, network filesystems, etc.
  • Storage - is a universal thing to store retrieved settings no matter how settings were acquired.
  • Frontend - is a set of modules which are working each with its own part of storage and perform actions according to retrieved settings.

General architecture

General Project Architecture

Plugins

  • ADP - runner for ADP application.
  • roles - module to interact with libnss-role settings (disabled at the moment).

Backends

  • nodomain_backend - Thing to read locally stored settings. This module is able to work even if machine is not part of Samba or FreeIPA domain.
  • samba_backend - Thing to read settings from Samba domain.
  • freeipa_backend - Planned. Thing to read settings from FreeIPA.

Storages

All storages are internal objects and are retrieved via factory method allowing transparent transition from one kind of storage to another.

  • sqlite_registry - Simple SQLite3 database.

Frontends

  • control_applier - Module to operate on ALT Linux control framework.
  • systemd_applier - Module to start and stop systemd services.
  • shortcuts_applier - Module to create XDG .desktop files for users.
  • polkit_applier - Module to generate PolicyKit .rules.
  • gsettings_applier - Module to deploy GSettings .override files.

Storage architecture

The storage consists of several simple tables which are not related to each other:

Database Entity Relationship Schema

Clone this wiki locally