API Reference Mishka Installer v0.0.4

modules

Modules

Elixir programming language plugin management system

MishkaInstaller CI Hex.pm GitHub license GitHub issues

This module is for communication with Activities table and has essential functions such as adding, editing, deleting, and displaying. This module is related to module MishkaInstaller.Database.ActivitySchema.

This module has been implemented to create the Activities table schema.

This module has been implemented to create the Dependencies table schema.

This module provides some functions as utility tools to work with a database and other things.

This module has been implemented to create the Plugins table schema.

This module has been implemented to create the Settings table schema.

With the assistance of this module, you will be able to construct a queue to process and install extensions.

This module provides assistance to your software so that it may check all of the plugins and libraries that you have installed to see whether a newer version of those extensions has been made available.

This module is for communication with Dependencies table and has essential functions such as adding, editing, deleting, and displaying. This module is related to module MishkaInstaller.Database.DependencySchema.

You can find some utility functions in this module. It will be merged with the other helper module.

You can find some utility functions in this module which help you to download dependencies from Hex and GitHub and prepare them as library.

To begin, we look at the hex.pm website in an effort to get some fundamental information. Despite this, after several versions of MishkaInstaller have been released, this API may prove to be helpful for managing packages from within an administrative panel.

This module offers a number of necessary functions that can be used to access the runtime configuration. The owner of the system has the ability to make changes to these parameters, which will then be updated in the database. This section was formerly a part of MishkaCMS, and the accompanying system is likewise a very straightforward one for saving particular settings when the system is being executed.

In addition to being one of the most significant modules of the MishkaInstaller library, the Hook module gives you the ability to make the library as a whole, as well as the projects that make use of this library, more modular.

This module serializes how to get and install a library and add it to your system. Based on the structure of MishkaInstaller, this module should not be called independently.

A module aggregates several operational functions to simplify the integration of all activities, including adding - removing, and updating a library in the project. For this purpose, you can use this module directly in your program or just call some helper functions. It should be noted that this module, like the MishkaInstaller.Installer.RunTimeSourcing module, has a primary function that performs all the mentioned operations based on the request type (run/2). Also, to perform some activities before applying any changes, the database and extensions.json file of your project will be rechecked.

Allows you to work with installed extensions in a simple and efficient manner. Some important tools and removal/installation facilities are accessible for usage. It's not necessary to install this module; you may do it in a matter of seconds. Using this dashboard will need the usage of Phoenix LiveView, as it was built entirely using this library. Bootstrap is used to construct the HTML components, but if you don't have it, you'll need to add the CSS yourself. Real-time services are available in this section. A different LiveView file can also be used, as can calling it directly from the router. It is through this layer that the Port and Phoenix Pubsub modules are linked to keep tabs on the installation.

In version 0.0.2, the MishkaInstaller library was used to download a dependency from the project's own mix.exs file, so this module was written to edit this file. In fact, this module uses the Sourceror library to change the mentioned mix.exs file (with AST). Another use of this module is reading information from the programmer's Git or custom link.

Using this module, you can independently add a downloaded-library while your system is running, with minimal dependencies. The important thing to note is that you are actually adding a complete dependency and a complete Elixir project which is compiled to the system, and this is not Hot Coding. At the time of this section's development, we have been very aware that with the least dependence and only with the Erlang and Elixir functions do all the process. We covered the whole process, but without informing different sectors and being able to notify the installation, removing, and updating process, it would be incomplete. We couldn't leave the programmers. Hence, the Phoenix Pubsub library can be an excellent option to notice processes are subscribed to in the MishkaInstaller channel.

This module is for communication with Plugins table and has essential functions such as adding, editing, deleting, and displaying. This module is related to module MishkaInstaller.Database.PluginSchema.

This module provides a series of essential functions for storing plugins on ETS.

This module served as the first layer in the domain of plugin state management in earlier versions; however, following optimization using ETS, it is now regarded as the main structure in the second layer.

This module supervises the states created during the registration of each plugin.

Note: Please do not use it, it will be changed in the next version

Note: Please do not use it, it will be changed in the next version

Note: Please do not use it, it will be changed in the next version

This module is for communication with Settings table and has essential functions such as adding, editing, deleting, and displaying. This module is related to module MishkaInstaller.Database.SettingSchema.

mix-tasks

Mix Tasks

Generates MishkaInstallers required migrations.