MWStake MediaWiki Manager: Difference between revisions

From MWStake
Jump to navigation Jump to search
(Moving API)
Line 105: Line 105:
=== MediaWiki Manager API ===
=== MediaWiki Manager API ===


* PHP right now (preferably Go)
* PHP right now, moving to https://github.com/dataspects/mwmapi
* Security review (e.g. exec commands)
* Security review (e.g. exec commands)



Revision as of 11:59, 3 March 2021

Manage (settings), upgrades, extensions, snapshots and content through an independent UI/API

Resources

https://github.com/dataspects/mediawiki-manager
https://github.com/dataspects/mwmui
  1. docker-compose.yml (Apache PHP Dockerfile)
  2. extensions.json
  3. upgrades.json
  4. mediawiki-apps.json
  5. systemSettings.json
  6. mwmapi.php (MediaWiki Manager API)
  7. mwmui (User Interface)
  8. Integration Testing

MediaWiki Manager

Usecase: 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, see Apache PHP Dockerfile.

MWM Normal Mode MWM Safe Mode

Mwm-normal-mode.png

https://github.com/dataspects/mediawiki-manager/blob/main/start.sh
version: "3.7"
services:
  mediawiki:
    env_file:
      - CanastaInstanceSettings.env
    container_name: mediawiki_canasta
    image: dataspects/php-apache:7.4.7_2103031212incsamo
    ports:
      - 80:80
      - 443:443
    volumes:
      # MediaWiki >>>
      - ./mediawiki_root/w/LocalSettings.php:/var/www/html/w/LocalSettings.php
      - ./mediawiki_root/w/extensions:/var/www/html/w/extensions
      - ./mediawiki_root/w/images:/var/www/html/w/images
      # MediaWiki Manager >>>
      - ./mediawiki_root/api:/var/www/html/api
      - ./mediawiki_root/dsmwm.log:/var/www/html/dsmwm.log
      - ./mediawiki_root/restic_password:/var/www/html/restic_password
      - ./mediawiki_root/ui:/var/www/html/ui
      - ./mediawiki_root/cloneLocation:/var/www/html/cloneLocation
      - ./restic_data:/var/www/html/restic-repo
      - ./conf:/etc/apache2/sites-available
  mysql:
    container_name: mysql_canasta
    image: mariadb:10.5.5
    volumes:
      - ./mysql_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}

Mwm-safe-mode.png

https://github.com/dataspects/mediawiki-manager/blob/main/start-SAFE-MODE.sh
version: "3.7"
services:
  mediawiki:
    env_file:
      - CanastaInstanceSettings.env
    container_name: mediawiki_canasta
    image: dataspects/php-apache:7.4.7_2103031212incsamo
    ports:
      - 80:80
      - 443:443
    volumes:
      # MediaWiki >>>
      #- ./mediawiki_root/w/LocalSettings.php:/var/www/html/w/LocalSettings.php
      #- ./mediawiki_root/w/extensions:/var/www/html/w/extensions
      - ./mediawiki_root/w/images:/var/www/html/w/images
      # MediaWiki Manager >>>
      - ./mediawiki_root/api:/var/www/html/api
      - ./mediawiki_root/dsmwm.log:/var/www/html/dsmwm.log
      - ./mediawiki_root/restic_password:/var/www/html/restic_password
      - ./mediawiki_root/ui:/var/www/html/ui
      - ./mediawiki_root/cloneLocation:/var/www/html/cloneLocation
      - ./restic_data:/var/www/html/restic-repo
      - ./conf:/etc/apache2/sites-available
  mysql:
    container_name: mysql_canasta
    image: mariadb:10.5.5
    volumes:
      - ./mysql_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}

MediaWiki Manager API

Usecase: edit system settings

Experimental, see https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/systemSettings.json

Usecase: enable (install) and disable extension

See

Usecase: upgrade MediaWiki "package"

See https://github.com/dataspects/mediawiki-manager/blob/ca621f9dab7ba784c6d16f6fa71f0d500e9544d8/mwmapi/system.php#L12

Usecase: take snapshot

See https://github.com/dataspects/mediawiki-manager/blob/ca621f9dab7ba784c6d16f6fa71f0d500e9544d8/mwmapi/snapshots.php#L19

Usecase: inject dataspects ontology

See https://github.com/dataspects/mediawiki-manager/blob/ca621f9dab7ba784c6d16f6fa71f0d500e9544d8/mwmapi/app.php#L27

MediaWiki Manager UI

  • Gatsby/React/MaterialUI
  • Security review
  • Protection: .htaccess or own user management?

MediaWiki Stakeholders Group Certified Extensions Catalogue

Integration Testing

  1. https://github.com/dataspects/mediawiki-manager/blob/main/mwmapi/test.php