•  
     
    story #24228 create/update/delete mediawiki-standalone in my project
Summary
Empty
create/update/delete mediawiki-standalone in my project
Empty

Mediawiki

At service activation,

  • Tuleap will asynchronously call a REST endpoint on Mediawiki to do all the initialization workflow (db, storage & co).
  • Until the DB is fully created there is an empty state when ppl load the MW endpoint
  • If the service was already previously activated, it's un-suspended

At service deactivation,

  • Tuleap will asynchronously call a REST endpoint on Mediawiki to suspend the MW instance (as when the project is suspended)

When project is created with MW service activated

  • Same as service activation

When project is deleted

  • Tuleap will asynchronously call a REST endpoint on Mediawiki to delete the instance

When project is renamed:

  • Mediawiki supports rename as well (POST /tuleap/instance/rename/{oldname}/{newname})

Services change

This story also covers a bunch of changes in the way Services are managed. This is mostly internal work but it has consequences visible to users:

  1. Introduce a new way to instantiate services in existing project. The problem exists since we create projects based on XML templates: some services cannot be activated in those projects because there is no entry in the services table in DB. It's the source of all the services changes done in the context of this story. In order to be able to activate Mediawiki Standalone service in all project, this has to be fixed.
  2. Solving the previous issue introduce yet another event to be implemented by plugins to properly have services.
  3. In order to limit the added the complexity, an existing event (ServiceUrlCollector) is removed
  4. As ServiceUrlCollector also ensured that services urls were not modified by project administrators, this protection is now native to services and all services enforce it. We know this can be a source of regression at update for people that abused the previous way of working (for instance updating Agile Dashboard url to make point somewhere else but keeping the icon). This is wrong at many level:
  • First the UX is inconsistent from one project to another. A user expect to click on something called "Agile Dashboard" (for instance) and go to the agile dashboard of the current project, not be moved somewhere else.
  • It could also be used by an attacker to redirect people to a fraudulent service and capture information.
  • It's source of nightmarish bugs when those kind of changes are made in a template project.
  1. Finally as it's almost impossible to do it right, a new interface for plugins is proposed with all the events that should be listened to have service done right.
Empty
Empty
Status
Mediawiki Standalone
Done
Development
  • [ ] Does it involves User Interface? 
  • [ ] Are there any mockups?
  • [ ] Are permissions checked?
  • [ ] Does it need Javascript development?
  • [ ] Does it need a forge upgrade bucket?
  • [ ] Does it need to execute things in system events?
  • [ ] Does it impact project creation (templates)?
  • [ ] Is it exploratory?
Empty
Details
#24228
Manuel Vacelet (vaceletm)
2022-07-21 10:54
2021-12-21 11:16
3496

References
Referencing story #24228

Git commit

tuleap/tuleap/stable

feat(mediawiki): Create new mediawiki instance 5d0cc340cd
feat(mediawiki): Suspend & Resume instances eac3f94c5e
feat: allow admins to activate a plugin not in db f8223102c7
chore: Remove ServiceURLCollector event 9c1561cfd9
chore: Service aware interface f44f4c32b6
Clean-up unused properties d7d9a542c2
chore(mediawiki): Rename Service Availability classes f933311f79
feat(mediawiki): Create instance on service activation 7d1f41d88c
chore: Refactor events for project suspend/active/delete 5ec4712276
Logs out users from the MediaWiki instances when project or site level access change 429237f8f1
feat(mediawiki): Suspend and resume projects 826a514e97
feat(mediawiki): delete instance affd2ce15d
feat(mediawiki): Activate service at project duplication 04e3419f1c
chore: Plugins that provides a service implement PluginWithService 59d596e1b7
feat(mediawiki): rename project f4b022c172

Follow-ups

User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
Thomas Gerbet (tgerbet)2022-05-20 08:53

gerrit #25954 (Create new mediawiki instance) integrated into Tuleap 13.8.99.112.


  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
  • Category set to Mediawiki Standalone
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
  • Category set to
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
  • Status changed from Ready (stalled) to On going
User avatar
  • I want to
    -create new mediawiki when service is activated 
    +create/update/delete mediawiki-standalone in my project 
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes