MWStake MediaWiki Manager: Difference between revisions
Jump to navigation
Jump to search
Lex Sulzer (talk | contribs) (→�) |
Lex Sulzer (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
== Project Reasoning and Potential Goals == | == Project Reasoning and Potential Goals == | ||
# MWM (not integrated, but besides MW): | # MWM (not integrated, but besides MW): | ||
## <code>git clone</code> | ## <code>git clone</code> | ||
Line 14: | Line 9: | ||
##** MediaWiki Stakeholders Group Certified Extensions Service | ##** MediaWiki Stakeholders Group Certified Extensions Service | ||
##* Backup/restore/clone/compare/consolidate system(s) (snapshots) | ##* Backup/restore/clone/compare/consolidate system(s) (snapshots) | ||
##* Inject/extract/facet/edit/consolidate/import/export/remove apps/structures/ontologies | ##* Inject/extract/facet/edit/consolidate/import/export/remove apps/structures/ontologies | ||
##** MediaWiki Stakeholders Group Certified Apps Service | ##** MediaWiki Stakeholders Group Certified Apps Service | ||
##* Script/automate/schedule tasks | ##* Script/automate/schedule tasks | ||
##* Package/move/archive/migrate system(s) | ##* Package/move/archive/migrate system(s) | ||
__TOC__ | __TOC__ | ||
== MWM Implementation Aspects == | == MWM Implementation Aspects == | ||
'''How and Why?''' | '''How and Why?''' | ||
Line 44: | Line 35: | ||
# Pod "mwm" | # Pod "mwm" | ||
# Container "mediawiki" + user volumes and config envs | # Container "mediawiki" + user volumes and config envs | ||
# Container "mariadb" + config envs | # Container "mariadb" + config envs | ||
Line 74: | Line 64: | ||
|} | |} | ||
== Target User Groups == | == Target User Groups == |
Revision as of 03:33, 20 April 2021
Project Reasoning and Potential Goals
- MWM (not integrated, but besides MW):
git clone
install.sh
- 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)
- Inject/extract/facet/edit/consolidate/import/export/remove apps/structures/ontologies
- MediaWiki Stakeholders Group Certified Apps Service
- Script/automate/schedule tasks
- Package/move/archive/migrate system(s)
MWM Implementation Aspects
How and Why?
- Dissect system…
- …into as few as possible but into as many as necessary interfacing components…
- …in order to fulfill all intended use cases…
- …in accordance with corresponding users' capabilities and needs.
Abstraction Layers
CLI <-- API <-- UI
- UI is GUI for API
- API wraps CLI
- CLI means bash scripts covering all use cases
Podman-managed MWM Kubernetes deploy manifest ("Containers")
- Pod "mwm"
- Container "mediawiki" + user volumes and config envs
- Container "mariadb" + config envs
Config envs
Pending: podman secret
# my-new-system.env
export WG_DB_PASSWORD=8n65f%6n5
|
⇒ envsubst ⇒ | # mediawiki-manager.yml
...
containers:
- image: docker.io/dataspects/mediawiki:1.35.0-2104121740
name: mediawiki
env:
- name: WG_DB_PASSWORD
value: 8n65f%6n5
- ...
...
|
⇒ | # Localsettings.php
$wgDBpassword = getenv("WG_DB_PASSWORD");
|
Target User Groups
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
|
|
PLUS
| |
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/run/operate system(s)
Where | How | Why |
---|---|---|
locally on a single computer | as a containerized app | for personal/private/development use |
in an intranet |
|
for corporate internal use |
on the internet/in the cloud |
|
for corporate internal/external/public use |
CLI: Bash scripts
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.
API (prototype)
Backup/restore/clone/compare/consolidate system(s) (snapshots)
Troubleshoot/safe mode
Inject/extract/facet/edit/consolidate/import/export/remove apps/structures/ontologies
CLI (Bash)
https://github.com/dataspects/mediawiki-manager/tree/main/cli/manage-content
Scripting
CLI (Bash)
https://github.com/dataspects/mediawiki-manager/blob/main/cli/manage-extensions/tests.sh
Package system(s)
MediaWiki Stakeholders Group Certified Extensions Service
- Some background:
- Format right now: https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/extensions.json
- Management, roles, responsibilities, privileges, processes, QA?
- Hosting?
MWStake MWM Service Portfolio
Abstraction Layers
ALcontainerization: Podman
- The mediawiki container image contains a full MediaWiki installation.
- 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.
- 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
Development Broadcasting
There are videos about MWStake MWM at dataspects' YouTube channel.