Composer issueshttps://gitlab.lakedrops.com/groups/composer/-/issues2024-03-28T14:13:06Zhttps://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/73Mailpit always available and remove Mailhog2024-03-28T14:13:06ZJürgen Haasjuergen.haas@lakedrops.comMailpit always available and remove Mailhog- [x] Remove Mailhog
- [x] Disable Mailpit by default
- [x] Always include Mailpit in docker-compose.yml
- [x] The Mailpit enable flag only controls the smtp config in settings.docker.php- [x] Remove Mailhog
- [x] Disable Mailpit by default
- [x] Always include Mailpit in docker-compose.yml
- [x] The Mailpit enable flag only controls the smtp config in settings.docker.phpJürgen Haasjuergen.haas@lakedrops.comJürgen Haasjuergen.haas@lakedrops.comhttps://gitlab.lakedrops.com/composer/plugin/drupal-10-scaffold/-/issues/1Add oomphinc/composer-installers-extender2024-03-19T08:02:56ZJürgen Haasjuergen.haas@lakedrops.comAdd oomphinc/composer-installers-extenderIn order to be able to add special packages in specific directories, e.g. Cypress tests, we need this package by default.
This also requires this package to be allowed as a plugin, which should be done in the pipeline.In order to be able to add special packages in specific directories, e.g. Cypress tests, we need this package by default.
This also requires this package to be allowed as a plugin, which should be done in the pipeline.https://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/71Turn off basic auth for local2024-03-10T10:00:05ZJürgen Haasjuergen.haas@lakedrops.comTurn off basic auth for localEven if basic auth is enabled in `.lakedrops.yml`, it should be disabled for local development environment.
There has also been the thought to disable it in pipelines, but that's not a great idea, because it is difficult to differentiat...Even if basic auth is enabled in `.lakedrops.yml`, it should be disabled for local development environment.
There has also been the thought to disable it in pipelines, but that's not a great idea, because it is difficult to differentiate between pipeline and deployed version.https://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/70SWARM: Untangle Filesystem Dependencies2024-02-23T16:36:34ZDavidSWARM: Untangle Filesystem Dependencies**Current Status**
At the moment, Lakedrops depends on a strict filesystem structure to function or carry out CI tasks like database backups. In addition, environments have to be on the same node. This poses a problem in a cluster envir...**Current Status**
At the moment, Lakedrops depends on a strict filesystem structure to function or carry out CI tasks like database backups. In addition, environments have to be on the same node. This poses a problem in a cluster environment for several reasons:
- Endpoints of the filesystem, with a dedicated purpose, require special conditions. For example, assets need to be distributed across all cluster zones, but database dumps require a lot of space and have specific backup requirements.
- It is not possible to differentiate between project environments. For instance, a staging environment does not have to be distributed but might rely on sanitized database dumps that will be imported into the feature branch environments every night.
- Having all environments on the same node can lead to resource contention and potential performance degradation.
- It is essential to manage resources efficiently and ensure proper allocation for each environment to maintain optimal performance levels.
**Motivation**
File endpoints, which will be mounted into a container for any reason, need to be configurable upon startup and must be independent of each other.
**Suggestion**
Rewrite CI pipelines and introduce different types of file endpoints to address various use cases:
- Volumes synced in all zones (glusterfs) -> production env
- Volumes synced in the same zone (nfs) -> feature env
- Volumes on the same node (local filesystem) -> temp data
- Volumes for backups (local filesystem) -> backup data
- Maria DB Cluster synced in all zones -> db
- Minio Cluster synced in all zones -> assets via s3
- Elastic/Solr Search Cluster synced in all zones -> searchhttps://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/69SWARM: Deploy Docker Ready Images2024-02-23T16:40:50ZDavidSWARM: Deploy Docker Ready Images**Current Status:**
At the moment, Lakedrops is using stateless containers. This essentially means that the project-specific source code is mounted into the container upon startup instead of providing it with a stateful container.
**Mo...**Current Status:**
At the moment, Lakedrops is using stateless containers. This essentially means that the project-specific source code is mounted into the container upon startup instead of providing it with a stateful container.
**Motivation**
Stateful containers have several key advantages over stateless containers:
- They are not tied to a server in order to start the project.
- There is no need for special source code handling in cluster environments.
- Related CI pipeline tasks do not require an ssh connection since the pipeline pushes the deployment-ready image into a container registry. The cluster monitors the registry and takes care of the deployment.
**Requirements**
- The image should function without source code volume mounts upon startup.
- Parameters and configurations needed, that are not already in the image, must be provided via environment variables upon startup.
- All related services, such as redis, mariadb, minio, need to be configurable via environment variables upon startup.
- The images require a unique docker tag for identification. Ideally, this should incorporate some semantic versioning concept.
- Build and push the image to the gitlab container registry.
**Suggestion**
Create an additional CI task that utilizes the build artifact of the project to generate a stateful container. This can be achieved by adding a new step in your CI pipeline configuration file with the necessary commands to build and push the image.
```
create_stateful_image:
stage: deploy
image: docker:latest
services:
- docker:dind
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker build --rm -f Dockerfile.stateful -t $CI_REGISTRY_IMAGE:latest .
- docker push $CI_REGISTRY_IMAGE:latest
```https://gitlab.lakedrops.com/composer/library/composer-json-utils/-/issues/7Enable tests for all composer projects2024-03-02T14:15:55ZJürgen Haasjuergen.haas@lakedrops.comEnable tests for all composer projectshttps://gitlab.lakedrops.com/composer/plugin/behat4drupal/-/issues/2Replace behat/mink-goutte-driver with behat/mink-browserkit-driver2024-02-20T08:18:36ZJürgen Haasjuergen.haas@lakedrops.comReplace behat/mink-goutte-driver with behat/mink-browserkit-driverhttps://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/-/issues/17Wait for update on dpi/dogit2024-02-17T11:33:30ZJürgen Haasjuergen.haas@lakedrops.comWait for update on dpi/dogit```
php-http/message-factory 1.1.0 1.1.0 Factory interfaces for PSR-7 HTTP Message
Package php-http/message-factory is abandoned, you should avoid using it. Use psr/http-factory instead.
```
The package `php-http/message-factory` is r...```
php-http/message-factory 1.1.0 1.1.0 Factory interfaces for PSR-7 HTTP Message
Package php-http/message-factory is abandoned, you should avoid using it. Use psr/http-factory instead.
```
The package `php-http/message-factory` is required by [php-http/cache-plugin](https://github.com/php-http/cache-plugin) and [php-http/httplug-bundle](https://github.com/php-http/HttplugBundle) and they both will remove that dependency only in their 2.0 release.
Until then, we remove `dpi/dogit` and only bring it back, when the new versions are available.https://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/68Add support for invoice ninja2024-02-20T08:18:57ZJürgen Haasjuergen.haas@lakedrops.comAdd support for invoice ninjahttps://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/issues/16Turn on/off render cache debugging2024-02-20T08:18:30ZJürgen Haasjuergen.haas@lakedrops.comTurn on/off render cache debugginghttps://www.drupal.org/node/3162480https://www.drupal.org/node/3162480https://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/65Add support for Drupal core's symfony_mailer2024-02-20T08:19:03ZJürgen Haasjuergen.haas@lakedrops.comAdd support for Drupal core's symfony_mailerSee https://www.drupal.org/node/3369935
Add the correct configuration to the settings files automatically and then remove the SMTP Drupal module in all projects.See https://www.drupal.org/node/3369935
Add the correct configuration to the settings files automatically and then remove the SMTP Drupal module in all projects.https://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/64Add support for MailPit2024-03-06T09:06:01ZJürgen Haasjuergen.haas@lakedrops.comAdd support for MailPitMailpit is a well maintained alternative to Mailhog, see https://mailpit.axllent.org
An official docker image is available from https://hub.docker.com/r/axllent/mailpitMailpit is a well maintained alternative to Mailhog, see https://mailpit.axllent.org
An official docker image is available from https://hub.docker.com/r/axllent/mailpithttps://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/-/issues/16Add schema diff module2024-02-20T08:18:40ZJürgen Haasjuergen.haas@lakedrops.comAdd schema diff modulehttps://www.drupal.org/project/schema_diffhttps://www.drupal.org/project/schema_diffhttps://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/61Add support for assets wrapper in D10.12024-02-20T08:18:23ZJürgen Haasjuergen.haas@lakedrops.comAdd support for assets wrapper in D10.1See change record: https://www.drupal.org/node/3328126See change record: https://www.drupal.org/node/3328126https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/-/issues/14Add PhpDocumentor 32024-02-14T10:23:34ZJürgen Haasjuergen.haas@lakedrops.comAdd PhpDocumentor 3Following [this blog post](https://kevinquillen.com/setting-phpdocumentor-3-drupal-9-10) the PHPDocumentor generates static html documentation about PHP applications and/or packages.
The [documentation](https://docs.phpdoc.org/3.0/) is ...Following [this blog post](https://kevinquillen.com/setting-phpdocumentor-3-drupal-9-10) the PHPDocumentor generates static html documentation about PHP applications and/or packages.
The [documentation](https://docs.phpdoc.org/3.0/) is a great example of how the result looks like.
Let's add that to our Drupal Dev Environment.https://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/60solr service - add the possibility to have solr core automatically created + ...2024-03-02T12:34:47ZDejansolr service - add the possibility to have solr core automatically created + configSet appliedit would be nice if we can create a default core automatically, so we don't have to run
```
docker exec -it container_name make create core=default -f /usr/local/bin/actions.mk
```
each time we set up the environment.
But this one mig...it would be nice if we can create a default core automatically, so we don't have to run
```
docker exec -it container_name make create core=default -f /usr/local/bin/actions.mk
```
each time we set up the environment.
But this one might be tricky, as we can create a core once the solr server is up inside a container.
related:
https://github.com/wodby/solr/issues/16
https://wodby.com/docs/1.0/stacks/solr/#local-environmentDejanDejanhttps://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/issues/14Add CSP headers to all sites2024-03-04T10:01:34ZJürgen Haasjuergen.haas@lakedrops.comAdd CSP headers to all sitesThe [CSP module](https://www.drupal.org/project/csp) should be added by default.
More related links:
- [Video about CSP](https://www.youtube.com/watch?v=txHc4zk6w3s)
- [TalkingDrupal about CSP](https://www.talkingdrupal.com/401)
At th...The [CSP module](https://www.drupal.org/project/csp) should be added by default.
More related links:
- [Video about CSP](https://www.youtube.com/watch?v=txHc4zk6w3s)
- [TalkingDrupal about CSP](https://www.talkingdrupal.com/401)
At the same time, let's improve http headers in general. Sites should be tested with [Dries' tool](https://dri.es/headers) and all headers are explained [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
- Remove `server`
- Add `strict-transport-security: max-age=31536000; includeSubDomains`
- Add `content-security-policy` - will be done by the CSP module
- Add `referrer-policy: same-origin`
- Add `permissions-policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), microphone=(), payment=(), usb=()`
- Add `cross-origin-embedder-policy: unsafe-none`
- Add `cross-origin-opener-policy: same-origin`
- Add `cross-origin-resource-policy: cross-origin`
- Add `x-permitted-cross-domain-policies: none`https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/-/issues/13Extend composer audit2024-03-18T15:33:14ZJürgen Haasjuergen.haas@lakedrops.comExtend composer auditSome projects do not always use the latest version of each package, especially from the lakedrops namespace. This is due to dependency issues, but this often remains unnoticed. We should create reports on such scenarios so that we can do...Some projects do not always use the latest version of each package, especially from the lakedrops namespace. This is due to dependency issues, but this often remains unnoticed. We should create reports on such scenarios so that we can do something about it.
In that context, let's review mxr576/ddqg-composer-audit for audits. This extends `composer audit` such that it also reports about Drupal specific CVEs. We could add this to our pipelines to get more insight.https://gitlab.lakedrops.com/composer/plugin/drupal-environment/-/issues/13Optimize htaccess2024-02-14T10:34:04ZJürgen Haasjuergen.haas@lakedrops.comOptimize htaccesshttps://www.mandclu.com/blog/patching-htaccess-seohttps://www.mandclu.com/blog/patching-htaccess-seohttps://gitlab.lakedrops.com/composer/plugin/docker4drupal/-/issues/58Optimize Caching2024-02-14T10:34:40ZJürgen Haasjuergen.haas@lakedrops.comOptimize CachingAdding certain caches into APCu, as it may be faster than Redis and contains the basic building blocks for the code:
```
$settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['discovery'] = 'c...Adding certain caches into APCu, as it may be faster than Redis and contains the basic building blocks for the code:
```
$settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['discovery'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['config'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['container'] = 'cache.backend.chainedfast';
```
Change Record: [New cache backend configuration order, per-bin default before default configuration](https://www.drupal.org/node/2754947)
Is there a way in settings.php to know if the site is installed, i.e. if Redis is available, or not.