Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
1c54d3f
chore: update docker compose template to itk-version 3.2.4
turegjorup Nov 8, 2026
51c68bb
chore: require PHP 8.5 and apply Rector PHP 8.5 rules
turegjorup Nov 8, 2026
32e0138
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
f8062a9
chore: move API path rewrite to nginx server.d override
turegjorup Nov 8, 2026
fd777d7
chore: move PHP 8.5 requirement and Rector fixes to a separate PR
turegjorup Nov 8, 2026
447696f
chore: require PHP 8.5 and apply Rector PHP 8.5 rules
turegjorup Nov 8, 2026
4f624ef
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
6aa89cd
Merge pull request #70 from itk-dev/feature/docker-compose-template-u…
turegjorup Nov 8, 2026
be3455e
Merge pull request #71 from itk-dev/feature/rector-php85
turegjorup Nov 8, 2026
a9a18bc
chore: update Elasticsearch to 8.19.23 and remove unused RabbitMQ
turegjorup Nov 8, 2026
e96fef1
docs: add CHANGELOG entry for image updates
turegjorup Nov 8, 2026
9543626
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
891a7a7
chore: require all directly used packages
turegjorup Nov 8, 2026
9a35018
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
2cfec40
Merge pull request #72 from itk-dev/feature/docker-images-update
turegjorup Nov 8, 2026
7136c17
Merge branch 'develop' into feature/direct-dependencies
turegjorup Nov 8, 2026
7b81afa
Merge pull request #73 from itk-dev/feature/direct-dependencies
turegjorup Nov 8, 2026
08855e5
chore: update dependencies in-constraint
turegjorup Nov 8, 2026
fc7e3ee
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
e269fa3
Merge pull request #74 from itk-dev/feature/dependency-update
turegjorup Nov 8, 2026
4ebeb9a
chore: update Rector and PHPStan and apply new Rector rules
turegjorup Nov 8, 2026
9411d3d
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
1184242
Merge pull request #75 from itk-dev/feature/rector-phpstan-update
turegjorup Nov 8, 2026
67a34d8
chore: update API Platform to 4.4
turegjorup Nov 8, 2026
cf89cfa
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
0780aa3
fix: declare Vocabulary tags as list of strings
turegjorup Nov 8, 2026
f76bc4b
Merge pull request #76 from itk-dev/feature/api-platform-4.4
turegjorup Nov 8, 2026
94ba6a2
chore: update doctrine/deprecations recipe
turegjorup Nov 8, 2026
f6f42ab
chore: update friendsofphp/php-cs-fixer recipe
turegjorup Nov 8, 2026
6293e9c
chore: update phpunit/phpunit recipe
turegjorup Nov 8, 2026
1c67c4a
chore: update symfony/framework-bundle recipe
turegjorup Nov 8, 2026
895993c
chore: update symfony/routing recipe
turegjorup Nov 8, 2026
0b0cb76
chore: update symfony/security-bundle recipe
turegjorup Nov 8, 2026
028bab4
chore: update symfony/twig-bundle recipe
turegjorup Nov 8, 2026
1fe091b
chore: update vincentlanglet/twig-cs-fixer recipe
turegjorup Nov 8, 2026
a3fc854
fix: use long ternary in config/preload.php
turegjorup Nov 8, 2026
02f6d1a
docs: add CHANGELOG entry for recipe updates
turegjorup Nov 8, 2026
848251d
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
c55c96a
chore: use COMPOSE_DOMAIN for DEFAULT_URI
turegjorup Nov 8, 2026
a031277
Merge pull request #77 from itk-dev/feature/symfony-recipes
turegjorup Nov 8, 2026
61f44c5
chore: add PHPStan deprecation rules
turegjorup Nov 8, 2026
2dab97c
docs: add CHANGELOG entry for deprecation rules
turegjorup Nov 8, 2026
1e552ae
chore: ignore ApiFilter deprecations with a commented rule
turegjorup Nov 8, 2026
ac018d6
docs: set PR number in CHANGELOG entry
turegjorup Nov 8, 2026
eb1811e
Merge pull request #78 from itk-dev/feature/deprecation-rules
turegjorup Nov 8, 2026
fb350ca
docs: release 1.4.0
turegjorup Nov 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .docker/data/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Ignore everything in this directory
*
# Except this file
# Except
!.gitignore
!Readme.md
!README.md
4 changes: 1 addition & 3 deletions .docker/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@ http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

set_real_ip_from 172.16.0.0/16;
real_ip_recursive on;
real_ip_header X-Forwarded-For;
# Note: set_real_ip_from is set in the server block

log_format main '$http_x_real_ip - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
Expand Down
19 changes: 13 additions & 6 deletions .docker/templates/default.conf.template
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,24 @@ server {

client_max_body_size ${NGINX_MAX_BODY_SIZE};

# This also needs to be set in the single server tag and not only in http.
set_real_ip_from 172.16.0.0/16;
set_real_ip_from 192.168.39.0/24;
real_ip_recursive on;
real_ip_header X-Forwarded-For;

location / {
# We are co-hosting with the legacy EventDB, so this app is hosted under '/api/v2/' (.env::APP_PATH_PREFIX)
# This is configured for Symfony in both 'api_platform.prefix' and 'framework.assets.base_path'. However
# Symfony still installs assets in the root path so we need to rewrite the uri to remove '/api/v2/'.
rewrite ^${APP_PATH_PREFIX}/(.*) /$1 break;
location = /cron-metrics {
# Proxy to supercronic metrics
proxy_pass http://${NGINX_CRON_METRICS}/metrics;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

# Project-specific server config (.docker/templates/server.d/*.conf.template).
include /etc/nginx/conf.d/server.d/*.conf;

location / {
# try to serve file directly, fallback to index.php
try_files $uri /index.php$is_args$args;
}
Expand Down
4 changes: 4 additions & 0 deletions .docker/templates/server.d/app-path-prefix.conf.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# This app shares the domain with event-database-imports, so this app is served under '/api/v2/' (.env::APP_PATH_PREFIX).
# This is configured for Symfony in both 'api_platform.prefix' and 'framework.assets.base_path'. However
# Symfony still installs assets in the root path so we need to rewrite the uri to remove '/api/v2/'.
rewrite ^${APP_PATH_PREFIX}/(.*) /$1 break;
7 changes: 7 additions & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ ITKDEV_TEMPLATE=symfony-6
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=
APP_SHARE_DIR=var/share
###< symfony/framework-bundle ###

###> app ###
Expand Down Expand Up @@ -53,3 +54,9 @@ INDEX_ORGANIZATION_ALIAS=organization
###> nelmio/cors-bundle ###
CORS_ALLOW_ORIGIN='*'
###< nelmio/cors-bundle ###

###> symfony/routing ###
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
DEFAULT_URI=https://${COMPOSE_DOMAIN}
###< symfony/routing ###
6 changes: 3 additions & 3 deletions .github/workflows/api-spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ jobs:
uses: actions/cache@v5
with:
path: vendor
key: vendor-php8.4-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.4-
key: vendor-php8.5-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.5-

- name: Install dependencies
run: |
docker network create frontend
# The spec export only needs PHP — pull phpfpm alone and run it as a
# one-off (--no-deps skips mariadb/rabbit), not the whole stack.
# one-off (--no-deps skips mariadb), not the whole stack.
docker compose pull --quiet phpfpm
docker compose run --rm --no-deps phpfpm composer install --no-interaction

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/changelog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ on:
jobs:
changelog:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v7
Expand All @@ -26,4 +24,6 @@ jobs:
run: git fetch

- name: Check that changelog has been updated.
run: git diff --exit-code origin/${{ github.base_ref }} -- CHANGELOG.md && exit 1 || exit 0
env:
BASE_REF: ${{ github.base_ref }}
run: git diff --exit-code "origin/$BASE_REF" -- CHANGELOG.md && exit 1 || exit 0
13 changes: 6 additions & 7 deletions .github/workflows/composer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,23 @@
name: Composer

env:
COMPOSE_USER: root
COMPOSE_USER: runner

on:
pull_request:
paths: &paths
- "composer.json"
- "composer.lock"
- "docker-compose.yml"
push:
branches:
- main
- develop
paths: *paths

jobs:
composer-validate:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v7

Expand All @@ -52,8 +55,6 @@ jobs:

composer-normalized:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v7

Expand All @@ -67,8 +68,6 @@ jobs:

composer-audit:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v7

Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/markdown.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,17 @@ name: Markdown

on:
pull_request:
paths: &paths
- "**/*.md"
push:
branches:
- main
- develop
paths: *paths

jobs:
markdown-lint:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v7
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/php.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,20 @@
name: Symfony PHP

env:
COMPOSE_USER: root
COMPOSE_USER: runner

on:
pull_request:
paths: &paths
- "**/*.php"
- "composer.json"
- "composer.lock"
- "docker-compose.yml"
push:
branches:
- main
- develop
paths: *paths

jobs:
coding-standards:
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ jobs:
uses: actions/cache@v5
with:
path: vendor
key: vendor-php8.4-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.4-
key: vendor-php8.5-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.5-

- name: Start docker compose setup and install site
run: |
docker network create frontend
# API tests need PHP + Elasticsearch only (not mariadb/rabbit/nginx/mail);
# --no-deps keeps phpfpm's mariadb/rabbit dependencies from starting.
# API tests need PHP + Elasticsearch only (not mariadb/nginx/mail);
# --no-deps keeps phpfpm's mariadb dependency from starting.
docker compose pull --quiet phpfpm elasticsearch
docker compose up --detach --wait --no-deps phpfpm elasticsearch
docker compose exec -T phpfpm composer install --no-interaction
Expand Down Expand Up @@ -57,8 +57,8 @@ jobs:
uses: actions/cache@v5
with:
path: vendor
key: vendor-php8.4-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.4-
key: vendor-php8.5-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.5-

- name: Install dependencies
run: |
Expand All @@ -81,8 +81,8 @@ jobs:
uses: actions/cache@v5
with:
path: vendor
key: vendor-php8.4-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.4-
key: vendor-php8.5-${{ hashFiles('composer.lock') }}
restore-keys: vendor-php8.5-

- name: Install dependencies
run: |
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/twig.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,24 @@
name: Twig

env:
COMPOSE_USER: root
COMPOSE_USER: runner

on:
pull_request:
paths: &paths
- "**/*.twig"
- "composer.json"
- "composer.lock"
- "docker-compose.yml"
push:
branches:
- main
- develop
paths: *paths

jobs:
twig-lint:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v7
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/yaml.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,14 @@ name: YAML

on:
pull_request:
paths: &paths
- "**/*.yml"
- "**/*.yaml"
push:
branches:
- main
- develop
paths: *paths

jobs:
yaml-lint:
Expand All @@ -38,4 +42,4 @@ jobs:
docker network create frontend

- run: |
docker compose run --rm prettier '**/*.{yml,yaml}' --check
docker compose run --rm prettier --no-editorconfig '**/*.{yml,yaml}' --check
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
###< symfony/phpunit-bridge ###

###> vincentlanglet/twig-cs-fixer ###
/.twig-cs-fixer.php
/.twig-cs-fixer.cache
###< vincentlanglet/twig-cs-fixer ###

Expand Down
2 changes: 2 additions & 0 deletions .markdownlintignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
vendor/
node_modules/
LICENSE.md
# Python
.venv/
# Drupal
web/*.md
web/core/
Expand Down
5 changes: 3 additions & 2 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<?php

// This file is copied from config/symfony/php/.php-cs-fixer.dist.php in https://github.com/itk-dev/devops_itkdev-docker.
// Feel free to edit the file, but consider making a pull request if you find a general issue with the file.

Expand All @@ -16,8 +17,8 @@
$config->setFinder($finder);

$config->setRules([
'@Symfony' => true,
'phpdoc_align' => false,
'@Symfony' => true,
'phpdoc_align' => false,
]);

return $config;
7 changes: 7 additions & 0 deletions .prettierrc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@

# https://prettier.io/docs/configuration
overrides:
# https://taskfile.dev/docs/styleguide
- files:
- "Taskfile.{yml,yaml}"
options:
tabWidth: 2
singleQuote: true

# Symfony config
- files:
- "config/**/*.{yml,yaml}"
Expand Down
24 changes: 23 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,27 @@ See [keep a changelog] for information about writing changes to this log.

## [Unreleased]

## [1.4.0] - 2026-11-08

- [PR-78](https://github.com/itk-dev/event-database-api/pull/78)
Add PHPStan deprecation rules (ignore the API Platform 4.4 `#[ApiFilter]` deprecations)
- [PR-77](https://github.com/itk-dev/event-database-api/pull/77)
Update Symfony Flex recipes
- [PR-76](https://github.com/itk-dev/event-database-api/pull/76)
Update API Platform to 4.4 (OpenAPI 3.2.0, no `charset` in the `application/ld+json` content type)
- [PR-75](https://github.com/itk-dev/event-database-api/pull/75)
Update Rector (2.8) and PHPStan (2.3) and apply the new Rector rules
- [PR-74](https://github.com/itk-dev/event-database-api/pull/74)
Update dependencies in-constraint (Symfony 7.4.23 security release, API Platform 4.3.21, PHPUnit 13.4)
- [PR-73](https://github.com/itk-dev/event-database-api/pull/73)
Require all directly used packages in `composer.json`, checked by PHPStan (`pb30/phpstan-composer-analysis`)
- [PR-72](https://github.com/itk-dev/event-database-api/pull/72)
Update Elasticsearch to 8.19.23 and remove the unused RabbitMQ service
- [PR-71](https://github.com/itk-dev/event-database-api/pull/71)
Require PHP 8.5 and apply the Rector PHP 8.5 rules
- [PR-70](https://github.com/itk-dev/event-database-api/pull/70)
Update the docker compose template (itk-version 3.2.4) and the PHP 8.5 image

## [1.3.0] - 2026-11-04

- [PR-62](https://github.com/itk-dev/event-database-api/pull/62)
Expand Down Expand Up @@ -179,7 +200,8 @@ See [keep a changelog] for information about writing changes to this log.
- Added multi-value filtering for Lactions and Organizations

[keep a changelog]: https://keepachangelog.com/en/1.1.0/
[Unreleased]: https://github.com/itk-dev/event-database-api/compare/1.3.0...HEAD
[Unreleased]: https://github.com/itk-dev/event-database-api/compare/1.4.0...HEAD
[1.4.0]: https://github.com/itk-dev/event-database-api/compare/1.3.0...1.4.0
[1.3.0]: https://github.com/itk-dev/event-database-api/compare/1.2.6...1.3.0
[1.2.6]: https://github.com/itk-dev/event-database-api/compare/1.2.5...1.2.6
[1.2.5]: https://github.com/itk-dev/event-database-api/compare/1.2.4...1.2.5
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ API platform front-end for the Danish event database used by the municipality of
`docker-compose.yml` is part of the standard ITK Dev Symfony image but is **not used for domain data** (the
`migrations/` and `src/Entity/` directories are empty).

Stack: PHP 8.3+, Symfony 7.4, API Platform 4.3, Elasticsearch 8.x. Runs entirely in Docker via
`itkdev/php8.4-fpm` + nginx.
Stack: PHP 8.5+, Symfony 7.4, API Platform 4.3, Elasticsearch 8.x. Runs entirely in Docker via
`itkdev/php8.5-fpm` + nginx.

## Common commands

Expand Down
Loading
Loading