Incorporate Feature-Aware Tagging or Versioning System for Apache Templates
As a cPanel administrator who requires the use of templates to customize my Apache configuration, I'd like cPanel to be aware of what my current templates can accommodate, especially when new features are released, and prevent the enabling of new features that could cause downtime for my customers.
EasyApache 4 and cPanel are, out of the box, auto-updating systems. Whenever cPanel releases new features, these are automatically applied to the system. In many cases, these new features do not function, even leading to serious problems when custom Apache templates are in use (/var/cpanel/templates/apache2/*.local).
For example, cPanel recently released a new feature which optimizes .htaccess parsing by skipping directories above the user's homedir. This feature, when enabled in the Feature Showcase after updating to 66 causes all .htaccess files in user accounts to be ignored, as the new AllowOverride directives were missing from a .local template.
Another example, one that users had no option to enable or disable, was when proxy subdomains were given SNI support and moved to per-user SSL vhosts.
As an administrator with customizations, it is our responsibility to ensure these customizations are maintained. However in this context, a change to how new features are incorporated could prevent critical issues after automated updates.
What I propose is a feature tagging system in Apache templates which indicate to cPanel if a particular feature is currently supported by *.local templates. A new feature, such as .htaccess optimizations, would check for a unique tag or identifier in the template, and either refuse to enable or throw an error indicating that the local template does not support the feature. Versioning could instead be used to indicate to cPanel whether the feature will be supported or not.