[NEW] Tiki Manager inside Tiki and related enhancements
This MR aims at integrating Tiki Manager within Tiki as an optional package and feature. Once enabled, it exposes manager CLI commands to the console Tiki app, it adds a section in Admin for GUI operations with Tiki Manager. For now, you can list instances, auto-create local instance (the one you run manager on), fix permissions, get info and update an instance. This should serve as an example of how Tiki Manager functionality can be executed inside Tiki. Check Manager/Controller.php for examples.
Additionally, this MR adds a basic background jobs execution engine - it builds on top of Schedulers, divides one-time items from repeated items and calls one-time items bg jobs. They can be scheduled to execute immediately (via Scheduler_Manager::queueJob method) and will execute upon next scheduler cron run. We can enhance them with queues, priorities and distinct workers rather than relying on the cron engine but this should be a good start.
Tiki manager commands can currently be executed in 3 distinct ways:
- via Tiki manager console application (see info command).
- via direct interface of classes inside Tiki manager (see update command in foreground).
- via background console command execution of relevant manager:instance:xyz command (see update in background command).
Commands that take a lot of time like backups, instance updates, upgrades, clone, etc. should be run in the background. There is sufficient interface to review the results of these commands from Scheduler logs.
Commands that are almost instant can run in the foreground. The goal here is to port the whole existing manager gui (https://gitlab.com/tikiwiki/tiki-manager/-/tree/master/www/include) into Tiki using one of the 3 command execution actions above and proper UI inside Tiki. We can then add whatever is missing. Note that the preferred way to do this is via cli command execution of the relevant manager command but this is not always possible as some cli commands expect interactive input from console (e.g. import). Such commands must interactively take the input from user's browser and then execute relevant calls to Tiki manager object methods. See existing manager GUI for more info how it is done.
Additionally, a wiki plugin called tikimanager has been added that exposes the manager services controller actions and allows configuration - it essentially runs tiki manager gui in a wiki page. Note that it loads interface, navigation and initial instances list directly but then each action is an ajax hook to the corresponding service, so we don't duplicate frontend and backend logic too much. I expect most of the actions here in the wiki plugin and also in the standalone tiki manager page in Tiki will use helper bootstrap modals to collect information and report results. It is preferred to keep the TikiManager integration code all in one place - in the services - so API support is easy to add and also it is easy to update the integration code once Tiki Manager itself evolves.
Finally, a tracker field TikiManager is added that will eventually replace Show.tiki.org tracker field. It supports managing one or more Tikies much likes the wiki plugin but also can create one private Tiki and execute actions on it - e.g. when people use this to reproduce a bug. The plan here is to add more actions like applying a patch or a set of patches to the instance, so bug fixing can be a collaborative work.
Merge request reports
Activity
assigned to @kroky
- Resolved by Victor Emanouilov
added 21 commits
-
d435fb05...f8e30ed7 - 16 commits from branch
tikiwiki:master
- 8c026003 - [NEW] Tiki Manager inside Tiki - ability to enable the feature, install it via...
- 2f9ce30f - [ENH] add Tiki Manager console commands to main tiki console script if manager...
- 2200bdf1 - [ENH] divide scheduler items to repeating items and one-time jobs, add ability...
- aa04d15a - [ENH] add tiki manager fix command to the GUI
- ed262151 - [FIX license of tiki manager
Toggle commit list-
d435fb05...f8e30ed7 - 16 commits from branch
added 1 commit
- f33dae1d - [FIX] tighten Tiki Manager integration - setup env paths to tiki storage...
added 1 commit
- cef22413 - [ENH] add tikimanager wiki plugin that interacts with ajax services to execute instance commands
Here is some brainstorming about this feature: https://dev.tiki.org/Tiki-Manager-within-Tiki
This will have a massive impact on Tiki and the community by converging efforts related to deployment,
mentioned in issue tiki-manager#30 (closed)
added 1 commit
- 16e42b9b - [ENH] TikiManager tracker field - replacement for Show.tiki.org tracker field...
mentioned in merge request tiki-manager!280 (merged)
added 1 commit
- 7727205d - [FIX] use symfony component libraries compatible with tiki manager
added 1 commit
- 4d8f39c8 - [FIX] suppress console io output when initializing tiki manager inside tiki
added 104 commits
-
4d8f39c8...cd88335b - 94 commits from branch
tikiwiki:master
- a505ad3d - [NEW] Tiki Manager inside Tiki - ability to enable the feature, install it via...
- 23d72cca - [ENH] add Tiki Manager console commands to main tiki console script if manager...
- 55039522 - [ENH] divide scheduler items to repeating items and one-time jobs, add ability...
- 2bf9dbaf - [ENH] add tiki manager fix command to the GUI
- 856b2a5e - [FIX license of tiki manager
- b5b2f773 - [FIX] tighten Tiki Manager integration - setup env paths to tiki storage...
- fa21f3d5 - [ENH] add tikimanager wiki plugin that interacts with ajax services to execute instance commands
- 4934f23b - [ENH] TikiManager tracker field - replacement for Show.tiki.org tracker field...
- d9351cab - [FIX] use symfony component libraries compatible with tiki manager
- da2a17f5 - [FIX] suppress console io output when initializing tiki manager inside tiki
Toggle commit list-
4d8f39c8...cd88335b - 94 commits from branch
added 15 commits
-
b1cc181a...48e0ee0f - 2 commits from branch
tikiwiki:master
- 3bf02818 - [NEW] Tiki Manager inside Tiki - ability to enable the feature, install it via...
- e67cfa0f - [ENH] add Tiki Manager console commands to main tiki console script if manager...
- e99f3bed - [ENH] divide scheduler items to repeating items and one-time jobs, add ability...
- 85862d59 - [ENH] add tiki manager fix command to the GUI
- 17b44f0c - [FIX license of tiki manager
- 3226cb5b - [FIX] tighten Tiki Manager integration - setup env paths to tiki storage...
- f7db1f9a - [ENH] add tikimanager wiki plugin that interacts with ajax services to execute instance commands
- 1885feeb - [ENH] TikiManager tracker field - replacement for Show.tiki.org tracker field...
- 9ced785a - [FIX] use symfony component libraries compatible with tiki manager
- d921de8c - [FIX] suppress console io output when initializing tiki manager inside tiki
- 8cd75476 - [FIX] TikiManager tracker field typo
- 87f1d434 - [FIX] symfony yaml upgrade include directive test and implementation
- 97eba1e2 - [FIX] composer update
Toggle commit list-
b1cc181a...48e0ee0f - 2 commits from branch