MWStake MediaWiki Manager: Difference between revisions

From MWStake
Jump to navigation Jump to search
Line 25: Line 25:


* [https://www.youtube.com/watch?v=MTYq2a2Xsls First glimpse at the idea of an MWStake MediaWiki Manager]
* [https://www.youtube.com/watch?v=MTYq2a2Xsls First glimpse at the idea of an MWStake MediaWiki Manager]
== Project Reasoning and Potential Goals ==
<div style="margin:20px; padding:50px; border-radius:50px; background-color:beige;">
Slide 1/10: '''Why and How?'''
# Your kitchen / hotel chain kitchens
#* appliances vs. parts
#* integration levels and interfaces
# MWM:
## <code>git clone</code>
## <code>install.sh</code>
## manage:
##* Install/configure/upgrade system(s)
##* Install/enable/disable/upgrade/configure extensions
##** MediaWiki Stakeholders Group Certified Extensions Service
##* Backup/restore/clone/compare/consolidate system(s) (snapshots)
##* Troubleshoot/safe mode
##* Inject/extract/facet/edit/consolidate/import/export/remove apps/structures/ontologies
##** MediaWiki Stakeholders Group Certified Apps Service
##* Scripting/automate/schedule tasks
##* Package/move/archive/migrate system(s)
</div>


== Target User Groups ==
== Target User Groups ==
<div style="margin:20px; padding:50px; border-radius:50px; background-color:beige;">
<div style="margin:20px; padding:50px; border-radius:50px; background-color:beige;">
Slide 1/10: '''Who can use the concepts in MWM how?'''
Slide 2/10: '''Who can use the concepts in MWM how?'''
Here I try to segregate target users into groups that share capabilities and needs.
Here I try to segregate target users into groups that share capabilities and needs.
{|class=wikitable
{|class=wikitable

Revision as of 06:08, 13 April 2021

What is this about?

  1. Install MediaWiki.
  
  2. Manage (settings), upgrades, extensions, snapshots and content through an independent CLI/API/UI.
  
  3. Put MediaWiki in SafeMode in case of problems.

MWStake MWM Service Portfolio

Mediawiki-manager-Service-Protfolio.png

Development Broadcasting

There are videos about MWStake MWM at dataspects' YouTube channel.

Project Reasoning and Potential Goals

Slide 1/10: Why and How?

  1. Your kitchen / hotel chain kitchens
    • appliances vs. parts
    • integration levels and interfaces
  2. MWM:
    1. git clone
    2. install.sh
    3. manage:
      • Install/configure/upgrade system(s)
      • Install/enable/disable/upgrade/configure extensions
        • MediaWiki Stakeholders Group Certified Extensions Service
      • Backup/restore/clone/compare/consolidate system(s) (snapshots)
      • Troubleshoot/safe mode
      • Inject/extract/facet/edit/consolidate/import/export/remove apps/structures/ontologies
        • MediaWiki Stakeholders Group Certified Apps Service
      • Scripting/automate/schedule tasks
      • Package/move/archive/migrate system(s)

Target User Groups

Slide 2/10: Who can use the concepts in MWM how? Here I try to segregate target users into groups that share capabilities and needs.

User Group Point/Select/Type/Click CLI/SSH Scripting Edit configuration junior Edit configuration senior
Examples "Web Interface" Automate/schedule tasks
  • Edit LocalSettings.php
  • Run composer

PLUS

  • Interpret logs
  • Report bugs/feature request
  • Branch code, develop and PR
UGUI "WebAdmin" Yes - "Macro" style only from within UI
("Excel Record Macro Style")
- -
UGAdmin "SysAdmin" Yes Yes Run/arrange .sh scripts Yes -
UGCoder "Developer" Yes Yes Run/arrange/compose/create/edit .sh scripts including API calls Yes Yes

Use Cases

Install/configure/upgrade system(s)

Where How Why
locally on a single computer as a containerized app for personal/private/development use
in an intranet
  • as a containerized app on a root server
  • as a containerized app on a PAAS
for corporate internal use

on the internet/in the cloud

  • on a shared host
  • as a containerized app on a root server
  • as a containerized app on a PAAS
for corporate internal/external/public use

Install/enable/disable/upgrade/configure extensions

CLI (Bash)

The command:

./cli/manage-extensions/show-extension-catalogue.sh

parses https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/extensions.json to offer the selection of "certified" extensions upon which the commands:

  • ./cli/manage-extensions/enable-extension.sh <EXTNAME> and
  • ./cli/manage-extensions/disable-extension.sh <EXTNAME>

can be executed.

MWM manage extensions on cli bash abstraction level.png

Backup/restore/clone/compare/consolidate system(s) (snapshots)

Troubleshoot/safe mode

Idea: if someone corrupts extensions/ and/or LocalSettings.php, then ./start-SAFE-MODE.sh restarts the wiki in safe mode, by falling back to container-internal versions of extensions/ and LocalSettings.php.

MWMSafeModeAlert.png

MWM Normal Mode MWM Safe Mode

Mwm-normal-mode.png

Mwm-safe-mode.png

Inject/extract/facet/edit/consolidate/import/export/remove apps/structures/ontologies

Scripting

Package system(s)

  1. mediawiki-apps.json

MediaWiki Stakeholders Group Certified Extensions Service

Abstraction Layers

Mediawiki-manager-Service-Architecture.png

ALcontainerization: Podman

  1. The mediawiki container image contains a full MediaWiki installation.
  2. initialize-persistent-mediawiki-service-volumes.sh will copy the 5 persistence-relevant files/directories out to the host so they can be volumed in when starting the mediawiki container.
  3. This shall allow for start-SAFE-MODE.sh.

ALcli: shell scripts using MWAPI and CRUDing files in service volumes

ALapi: MWM API (Go) wrapping and parametrizing ALcli shell scripts and using MWAPI

https://github.com/dataspects/mwmapi

Unit Testing

ALui: MWM UI (React/Material UI) using and parametrizing ALapi endpoints

https://github.com/dataspects/mwmui

Integration Testing