Date:
16 May 2021
Author:
Greg Netsas

About Drupal modules

Drupal modules are distinct pieces of code that either provide new features or enhance the existing functionality of the content management system (CMS). GovCMS is a Drupal distribution, which means that it’s based on the core Drupal CMS, with the addition of a carefully selected and maintained list of additional modules that have been contributed by the open source community.

In the GovCMS 8 contributed and custom modulesExternal Link article published 2 years ago, we outlined the modules included in the GovCMS distribution at the time. With the release of version 9 of GovCMS, this article aims to list which modules have been removed, and which new ones have been added in the distribution.

Modules that have been removed or replaced

Modules are removed from the GovCMS distribution if they have become deprecated or unmaintained, because keeping them in the distribution beyond that point may be a potential security risk as well as maintenance overhead. To maintain stability and any current functionality of existing sites hosted on the GovCMS platform, modules are only removed from the GovCMS distribution between major versions, which are released every few years (so between version 8 and 9 for example), not between minor releases, which are released multiple times throughout the course of each year. This allows site owners time to plan for possible alternatives if the functionality previously provided by these modules is absolutely necessary for the site.

What follows is a list of modules that have been removed from the distribution, or that have been replaced by other modules or core Drupal modules/functionality:

CAPTCHA: In GovCMS version 8, this module was included alongside the reCAPTCHA module. Both of these modules are used in web forms to add a challenge-response test. This allows determining whether the user submitting the form is human, and blocks spambots, which are automated scripts that post spam content everywhere they can. Having both modules available allowed site owners to gradually switch to using the reCAPTCHA module early in the process of upgrading from GovCMS 8 to 9. In GovCMS 9, the CAPTCHA module has been removed, leaving reCAPTCHA as the only module providing this functionality.

Events Log Track: This module tracks logs of specific events that need to be reviewed. The events performed by the users (using the forms in the administration interface) are saved in the database and can then be viewed on a dedicated reports page. You could use this to track the number of times any create/update/delete operations are performed by specific users. This module was only being used by very few sites, and was removed from the distribution for performance reasons, and to reduce maintenance overhead.

govCMS8 UI and GovCMS8 Starter Theme: These modules/themes are not required nor relevant in GovCMS/Drupal 9 - they have been superseded/deprecated.

GraphQL: The module was not being used by any of the hundreds of sites hosted on the GovCMS platform, so it was removed from the distribution to reduce maintenance overhead.

Mail System: This module has been replaced with the Swift Mailer module, which provides the same functionality. Swift Mailer is also to eventually be replaced by a native Symfony Mailer implementation in the future. These changes should be transparent to site owners hosted on GovCMS SaaS.

Module Filter: This module would allow filtering the modules listed in the respective management page, which can become quite lengthy and troublesome to manage. This functionality is built into recent versions of Drupal core, so the module was not required any longer.

Page Manager: The functionality of this module has now either been implemented in Drupal core modules, such as the Layout Builder, or provided by other contributed modules included in the GovCMS distribution (such as the Panels and Panelizer modules).

Permissions by Term: This module was not being used by any site hosted on the GovCMS platform running version 8 of the distribution. Similar functionality is now provided by the Entity Reference Hierarchy module, which was added in version 9 of the GovCMS distribution.

REST UI: This module was removed because of security concerns for customers on the SaaS plan. There was no exact replacement module added in its place.

Modules that have been added to the distribution

Over time, requests are made by the community to provide popular features and commonly used/requested functionality to the sites built on GovCMS. Often these features cannot be implemented by custom code (especially with customers that select the SaaS plan, where custom code/modules are not allowed). The answer is the addition of carefully selected and security-audited contributed modules to the distribution.

What follows is a list of new modules that have been added to the distribution:

Address: This module provides functionality for validating and storing postal addresses in a more flexible manner, while at the same time allowing addresses to be displayed in a modern and international/standardised manner. Addresses in previous versions of GovCMS needed to be added as plain text, which was not as flexible.

Place Blocks: This module allows placing blocks from any page. Initially, it started its life as an experimental-level module in Drupal core version 8.2, and was later superseded by the Layout Builder module in Drupal 8.7. For GovCMS sites that need this functionality, the Place Blocks module has been added in version 9 of the distribution, as an alternative to the Layout Builder module provided by Drupal core.

Embed: A framework module to help smooth the developer experience of offering embeddable things using the rich text editor.

Entity Reference Hierarchy: This module extends the standard Entity Reference field to allow storing a nested-set representation of the hierarchy, which allows for efficient querying of the hierarchy. It also provides integration with Views.

CKEditor FakeObjects: This was added to the distribution as a helper module, to accommodate for the creation of plugins that allow page breaks and anchor links within content, which have been a popular request for some time. All that can now be implemented in a way that content editors can use via the convenience of the rich text editor (whereas before it could only be achieved by allowing and knowing how to write HTML code in the rich text editor).

Layout Builder Modal: This module lets you add and configure existing blocks in a modal in the Layout Builder UI.

Layout Builder Restrictions: The default Layout Builder interface that comes with Drupal core allows all blocks and layouts registered in the system to be used. This is both a usability problem (as the list of blocks quickly becomes very large), and an access problem (some sites may not want all blocks and layouts to be available in all cases). This module provides a configurable user interface for controlling/restricting which blocks and layouts can be used, depending on the specific needs of the site.

Media File Delete: This module allows content editors the option to delete the associated physical file (that is stored on disc) when deleting a media asset (the respective entry/reference in the database).

Media Vimeo Domain Privacy: This module provides support for adding Vimeo videos with a domain-level privacy setting as media assets, which would otherwise not be possible.

Migrate Files/Migrate Plus/Migrate Source CSV/Migrate Tools: A set of various developer-focused modules. These have been added to the distribution to help with the task of moving/migrating other sites to GovCMS.

Module Permissions: Without this module, site owners hosting their sites on the SaaS plan previously had no control over the module management page. That meant that they were required to raise a ticket with the GovCMS Service Desk to request enabling/disabling of modules and to also configure any relevant permissions. Now with the addition of this module, SaaS customers can enable/disable/configure a specific set of modules on their sites (the list of allowed modules and permissions is curated by the GovCMS security team). This allows customers to directly self-serve in most cases, while at the same time reduces the overhead for the GovCMS Service Desk.

REST Menu Items: This module provides a REST endpoint to retrieve menu items based on the menu name.

Role Delegation: This module allows site administrators to grant specific roles the authority to assign selected roles to users, without them needing the “administer permissions” permission (which is overly permissive, and a potential security risk). Previously, customers on the SaaS plan needed to raise a ticket with the GovCMS Service Desk to assign roles to user accounts they were creating on their sites. With this module, they can now self-serve.

Twig Tweak: A small, developer-focused module that provides a Twig extension with some useful functions and filters that can improve the development experience.