Compare commits

...

18 Commits

Author SHA1 Message Date
d121f3343f Upgrade to chill-bundles/v3.0.0-RC6
All checks were successful
continuous-integration/drone/tag Build is passing
2024-07-23 17:22:20 +02:00
adba3b88ae Add WOPI_SERVER variable to .env file
A new environmental variable, WOPI_SERVER, has been added to the .env file. This addition is related to the configuration of the Collabora Online integration.
2024-07-18 23:14:03 +02:00
182f2fa111 release 2.0.0-RC2
All checks were successful
continuous-integration/drone/tag Build is passing
2024-07-18 16:12:54 +02:00
8a61ff2b7a Update workflow definition and configuration
The configuration for the workflow in the config/packages/workflow.yaml file has also been updated, notably by adding a marking store.
2024-07-18 16:11:04 +02:00
b6bc9e4a3a fix changelogs and description of changes 2024-07-18 13:00:40 +02:00
79e7a63941 release 2.0.0-RC1
All checks were successful
continuous-integration/drone/tag Build is passing
2024-07-18 10:41:18 +02:00
bdce8411b3 upgrade deps 2024-07-18 10:39:30 +02:00
40770834a3 switch to php8.3 and add amqp as pecl dependency 2024-07-18 10:38:44 +02:00
0cee0637c9 release 2.0.0-alpha4
All checks were successful
continuous-integration/drone/tag Build is passing
2024-07-03 14:21:18 +02:00
74ee56c960 add missing wopi configuration file 2024-07-03 14:19:55 +02:00
218b08a3c4 add graylog/gelf to image and release 2.0.0-alpha3
All checks were successful
continuous-integration/drone/tag Build is passing
2024-07-03 13:55:07 +02:00
80ae8c4302 release v2.0.0-alpha2
All checks were successful
continuous-integration/drone/tag Build is passing
2024-07-03 13:39:22 +02:00
4e1482f09a fix version
All checks were successful
continuous-integration/drone/tag Build is passing
2024-07-03 13:02:05 +02:00
96dd6e190a sign drone file 2024-07-03 13:00:34 +02:00
7e825bb46a release version 3.0.0-alpha1 2024-07-03 12:59:59 +02:00
ac051664af changie configuration 2024-07-03 12:50:40 +02:00
f2d81c46da fixes from default configuration 2024-07-03 12:45:10 +02:00
e27fcdfb71 add chill-deploy bundle + fixes 2024-07-03 12:44:55 +02:00
32 changed files with 1047 additions and 76 deletions

3
.changes/2.0.0-RC1.md Normal file
View File

@@ -0,0 +1,3 @@
## 2.0.0-RC1 - 2024-07-18
### Release
* upgrade to chill-bundles/3.0.0-RC5

3
.changes/2.0.0-RC2.md Normal file
View File

@@ -0,0 +1,3 @@
## 2.0.0-RC2 - 2024-07-18
### Fixed
* Fix definition of workflow

3
.changes/2.0.0-alpha1.md Normal file
View File

@@ -0,0 +1,3 @@
## 2.0.0-alpha1 - 2024-07-03
### Release
* Upgrade chill to v3.0.0-RC3

3
.changes/2.0.0-alpha2.md Normal file
View File

@@ -0,0 +1,3 @@
## 2.0.0-alpha2 - 2024-07-03
### Release
* upgrade chill-bundle to v3.0.0-RC4

3
.changes/2.0.0-alpha3.md Normal file
View File

@@ -0,0 +1,3 @@
## 2.0.0-alpha3 - 2024-07-03
### Release
* Add graylog to image

3
.changes/2.0.0-alpha4.md Normal file
View File

@@ -0,0 +1,3 @@
## 2.0.0-alpha4 - 2024-07-03
### Release
* fixes

9
.changes/2.1.0-RC3.md Normal file
View File

@@ -0,0 +1,9 @@
## 2.1.0 - 2024-07-23
### Release
* Upgrade chill to v3.0.0-RC3
* upgrade chill-bundle to v3.0.0-RC4
* Add graylog to image
* upgrade to chill-bundles/3.0.0-RC5
* Upgrade chill-bundles to v3.0.0-RC6
### Fixed
* Fix definition of workflow

6
.changes/header.tpl.md Normal file
View File

@@ -0,0 +1,6 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).

View File

35
.changie.yaml Normal file
View File

@@ -0,0 +1,35 @@
changesDir: .changes
unreleasedDir: unreleased
headerPath: header.tpl.md
changelogPath: CHANGELOG.md
versionExt: md
versionFormat: '## {{.Version}} - {{.Time.Format "2006-01-02"}}'
kindFormat: '### {{.Kind}}'
# Note: it is possible to add a `.custom.Long` text manually into the yaml file produced by `changie new`. This will add a long description.
changeFormat: >-
* {{ if and (ne .Custom.Issue "") (ne .Custom.Issue "0") }}([#{{ .Custom.Issue }}](https://gitea.champs-libres.be/Chill-project/chill-base-app-v3/issues/{{ .Custom.Issue }})) {{ end }}{{.Body}}
custom:
- key: Issue
label: Issue number (on chill-bundles repository) (optional)
optional: true
type: int
kinds:
- label: Release
auto: minor
- label: Feature
auto: minor
- label: Deprecated
auto: minor
- label: Fixed
auto: patch
- label: Security
auto: patch
- label: DX
auto: patch
- label: UX
auto: patch
newlines:
afterChangelogHeader: 1
beforeChangelogVersion: 1
endOfVersion: 1
envPrefix: CHANGIE_

13
.dockerignore Normal file
View File

@@ -0,0 +1,13 @@
vendor/*/*/vendor/*
vendor/*/*/tests/*
vendor/bin/.php*
.pgadmin4*
app/config/parameters.yml
.composer*
.git*
.yarncache/*
.node_modules/*
build/*
var/*
vendor/chill-project/chill-bundles/.psalm/*

86
.drone.yml Normal file
View File

@@ -0,0 +1,86 @@
---
kind: pipeline
type: docker
name: build-images
image_pull_secrets:
- dockerconfig
trigger:
event:
- tag
steps:
- name: build-base-image
image: plugins/docker
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
registry: h3m6q87t.gra7.container-registry.ovh.net
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base
tag: latest
target: chill_base_php82
pull_image: true
cache_from:
- h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
- chill/base-image:latest
- name: composer-install
image: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
pull: always
commands:
- composer install --no-scripts --no-interaction
depends_on:
- build-base-image
- name: build-assets
image: node:20
pull: always
commands:
- yarn install
- yarn list
- yarn run encore production
depends_on:
- composer-install
- name: build-image-php
image: plugins/docker
settings:
pull_image: true
username:
from_secret: docker_username
password:
from_secret: docker_password
registry: h3m6q87t.gra7.container-registry.ovh.net
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php
tag:
- ${DRONE_TAG}
cache_from:
- h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
- chill/base-image:latest
depends_on:
- build-assets
- composer-install
- name: build-image-nginx
image: plugins/docker
settings:
pull_image: true
username:
from_secret: docker_username
password:
from_secret: docker_password
registry: h3m6q87t.gra7.container-registry.ovh.net
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/nginx
tag:
- ${DRONE_TAG}
Dockerfile: docker/nginx/Dockerfile
depends_on:
- build-assets
---
kind: signature
hmac: 510f151634e776218c6135bb830480fe0c265eb1dd96c16ef640001a23f351ae
...

1
.env
View File

@@ -76,4 +76,5 @@ ADD_ADDRESS_MAP_CENTER_Z=14
# Variables for relatorio host, which generates documents
RELATORIO_HOST=
RELATORIO_PORT=
WOPI_SERVER=http://${COLLABORA_HOST}:${COLLABORA_PORT}
###< chill-project/chill-bundles ###

View File

@@ -0,0 +1,59 @@
name: Prepare release for chill app
run-name: Update composer.lock and dependencies for preparing a release
on:
push:
branches:
- 'release/**'
jobs:
update-deps:
runs-on: ubuntu-latest
steps:
- name: check out repository
uses: https://github.com/actions/checkout@v4
- name: get the previous chill version
# parse the composer.lock file using jq to get the chill version before the upgrade
id: chill-before
uses: https://github.com/sergeysova/jq-action@v2
with:
cmd: 'cat composer.lock | jq --raw-output ''.packages[] | select ( .name | contains ("chill-project/chill-bundles")) | .version'''
- name: run composer update to update composer.lock
uses: docker://gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:latest
with:
# this is where we set the command to execute
args: composer update --no-install
- name: is composer.lock changed ?
id: composer-lock-changed
run: 'echo is_composer_lock_changed=$(git diff --name-only | grep "composer\.lock" | wc -l) >> $GITHUB_OUTPUT'
- name: get the new chill version
# parse the composer.lock file using jq to get the chill version after the upgrade
id: chill-after
uses: https://github.com/sergeysova/jq-action@v2
with:
cmd: 'cat composer.lock | jq --raw-output ''.packages[] | select ( .name | contains ("chill-project/chill-bundles")) | .version'''
- name: add a changie file for the upgrade
uses: https://github.com/miniscruff/changie-action@v2
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
with:
version: latest
args: 'new --body "Update dependencies. Chill-bundles upgraded from ${{ steps.chill-before.outputs.value }} to ${{ steps.chill-after.outputs.value }}" --kind Release --custom "Issue=0"'
- name: changie batch
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
uses: https://github.com/miniscruff/changie-action@v2
with:
version: latest
args: 'batch auto'
- name: changie merge
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
uses: https://github.com/miniscruff/changie-action@v2
with:
version: latest
args: 'merge'
- name: commit changed files
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
uses: https://github.com/stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "update composer.lock and file (automatic update)"
commit_user_name: Action Bot
commit_user_email: bot@chill.social

41
CHANGELOG.md Normal file
View File

@@ -0,0 +1,41 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).
## 2.1.0 - 2024-07-23
### Release
* Upgrade chill to v3.0.0-RC3
* upgrade chill-bundle to v3.0.0-RC4
* Add graylog to image
* upgrade to chill-bundles/3.0.0-RC5
* Upgrade chill-bundles to v3.0.0-RC6
### Fixed
* Fix definition of workflow
## 2.0.0-alpha4 - 2024-07-03
### Release
* fixes
## 2.0.0-alpha3 - 2024-07-03
### Release
* Add graylog to image
## 2.0.0-alpha2 - 2024-07-03
### Release
* upgrade chill-bundle to v3.0.0-RC4
## 2.0.0-alpha1 - 2024-07-03
### Release
* Upgrade chill to v3.0.0-RC3
## 2.0.0-RC2 - 2024-07-18
### Fixed
* Fix definition of workflow
## 2.0.0-RC1 - 2024-07-18
### Release
* upgrade to chill-bundles/3.0.0-RC5

106
Dockerfile Normal file
View File

@@ -0,0 +1,106 @@
FROM php:8.3-fpm-alpine AS chill_base_php82
ENV POSTGRES_VERSION=14
# default UID for the PHP user
ARG UID=1000
ARG GID=1000
# install php extensions and deps
# apk add --no-cache --update --virtual rabbitmq-c-dev rabbitmq-c-utils gcc g++ make autoconf && pecl install amqp
RUN apk update && apk add --no-cache \
wget gnupg \
libpq-dev \
icu-dev icu-libs icu-data-full \
oniguruma-dev \
libzip libzip-dev \
linux-headers \
gcc g++ make autoconf \
bash git \
rabbitmq-c rabbitmq-c-dev \
&& docker-php-ext-install pdo_pgsql intl mbstring zip bcmath exif sockets \
&& git clone https://github.com/nikic/php-ast.git \
&& cd php-ast \
&& phpize \
&& ./configure \
&& make install \
&& echo 'extension=ast.so' > /usr/local/etc/php/php.ini \
&& cd .. && rm -rf php-ast \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& pecl install amqp \
&& docker-php-ext-enable amqp \
&& apk add libpng-dev libjpeg-turbo-dev freetype-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd \
&& apk add postgresql${POSTGRES_VERSION}-client \
&& apk del --purge wget gnupg libpq-dev icu-dev oniguruma-dev libzip-dev linux-headers gcc g++ make autoconf
RUN { \
echo ""; \
echo "memory_limit = 512M"; \
echo ""; \
} >> /usr/local/etc/php/conf.d/memory_limit.ini
RUN { \
echo ""; \
echo "[Date]"; \
echo "date.timezone = Europe/Brussels"; \
echo ""; \
} >> /usr/local/etc/php/conf.d/date.ini
# temporary fix, while php-cs-fixer has conflict dependencies
# with chill
RUN curl -o /usr/local/bin/php-cs-fixer https://cs.symfony.com/download/php-cs-fixer-v3.phar \
&& chmod +x /usr/local/bin/php-cs-fixer
# to make php-cs-fixer works with php 8.2
ENV PHP_CS_FIXER_IGNORE_ENV=1
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER=1
ENV COMPOSER_MEMORY_LIMIT=-1
# shell bash preference
RUN sed -i " \
s|root:x:0:0:root:/root:/bin/ash|root:x:0:0:root:/root:/bin/bash|g; \
s|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/sh|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/bash|g" \
/etc/passwd
# chmod on redis.so
RUN chmod 755 -R /usr/local/lib/php/extensions/
WORKDIR /var/www/app
CMD ["php-fpm"]
FROM chill_base_php82 AS chill_php82
# copy directories
COPY ./bin /var/www/app/bin/.
COPY ./composer.* /var/www/app/
COPY ./config /var/www/app/config/.
COPY ./migrations /var/www/app/migrations/.
COPY ./public /var/www/app/public/.
COPY ./src /var/www/app/src/.
COPY ./templates /var/www/app/templates/.
COPY ./translations /var/www/app/translations/.
COPY ./vendor /var/www/app/vendor/.
COPY ./.env /var/www/app/.env
# import the manifest.json file
COPY ./public/build/manifest.json /var/www/app/public/build/manifest.json
ADD ./entrypoint.sh /.
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
ENV PHP_FPM_USER=www-data \
PHP_FPM_GROUP=www-data \
COMPOSER_HOME=/var/www/app/.composer \
SESSION_LIFETIME=10800
CMD [ "php-fpm" ]

View File

@@ -4,12 +4,14 @@
"minimum-stability": "stable",
"prefer-stable": true,
"require": {
"php": ">=7.2.5",
"php": ">=8.2.0",
"ext-ctype": "*",
"ext-iconv": "*",
"champs-libres/wopi-bundle": "dev-master@dev",
"champs-libres/wopi-lib": "dev-master@dev",
"chill-project/chill-bundles": "v3.0.0-RC3",
"chill-project/chill-bundles": "v3.0.0-RC6",
"chill-project/chill-deploy": "^1.0",
"graylog2/gelf-php": "^2.0",
"symfony/console": "5.4.*",
"symfony/dotenv": "5.4.*",
"symfony/flex": "^1.17|^2",

150
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "ff6df1a73b9d5656e2e4a9c02d2bcdcf",
"content-hash": "b54c5d8f9a6fd245404d207b908f9c0d",
"packages": [
{
"name": "brick/math",
@@ -185,16 +185,16 @@
},
{
"name": "chill-project/chill-bundles",
"version": "v3.0.0-RC3",
"version": "v3.0.0-RC6",
"source": {
"type": "git",
"url": "https://gitlab.com/Chill-Projet/chill-bundles.git",
"reference": "f8fa96d8367d954ade4aebe31c2177ca9499a4fa"
"reference": "b42473b01deda59836f1d4c2d96a6eefd59f5414"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/Chill-Projet%2Fchill-bundles/repository/archive.zip?sha=f8fa96d8367d954ade4aebe31c2177ca9499a4fa",
"reference": "f8fa96d8367d954ade4aebe31c2177ca9499a4fa",
"url": "https://gitlab.com/api/v4/projects/Chill-Projet%2Fchill-bundles/repository/archive.zip?sha=b42473b01deda59836f1d4c2d96a6eefd59f5414",
"reference": "b42473b01deda59836f1d4c2d96a6eefd59f5414",
"shasum": ""
},
"require": {
@@ -208,7 +208,6 @@
"ext-json": "*",
"ext-openssl": "*",
"ext-redis": "*",
"graylog2/gelf-php": "^1.5",
"knplabs/knp-menu-bundle": "^3.0",
"knplabs/knp-time-bundle": "^1.12",
"knpuniversity/oauth2-client-bundle": "^2.10",
@@ -298,6 +297,7 @@
"type": "library",
"autoload": {
"psr-4": {
"Chill\\JobBundle\\": "src/Bundle/ChillJobBundle/src",
"Chill\\MainBundle\\": "src/Bundle/ChillMainBundle",
"Chill\\TaskBundle\\": "src/Bundle/ChillTaskBundle",
"Chill\\WopiBundle\\": "src/Bundle/ChillWopiBundle/src",
@@ -312,7 +312,8 @@
"Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle",
"Chill\\CustomFieldsBundle\\": "src/Bundle/ChillCustomFieldsBundle",
"Chill\\DocGeneratorBundle\\": "src/Bundle/ChillDocGeneratorBundle",
"Chill\\AsideActivityBundle\\": "src/Bundle/ChillAsideActivityBundle/src"
"Chill\\AsideActivityBundle\\": "src/Bundle/ChillAsideActivityBundle/src",
"Chill\\FranceTravailApiBundle\\": "src/Bundle/ChillFranceTravailApiBundle/src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -326,9 +327,41 @@
],
"support": {
"issues": "https://gitlab.com/Chill-Projet/chill-bundles/-/issues",
"source": "https://gitlab.com/Chill-Projet/chill-bundles/-/tree/v3.0.0-RC3"
"source": "https://gitlab.com/Chill-Projet/chill-bundles/-/tree/v3.0.0-RC6"
},
"time": "2024-06-24T14:23:47+00:00"
"time": "2024-07-23T16:54:08+00:00"
},
{
"name": "chill-project/chill-deploy",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://gitlab.com/Chill-Projet/chill-deploy.git",
"reference": "761bbdc59190b076b1b16d699c27be57d6b47d8a"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/Chill-Projet%2Fchill-deploy/repository/archive.zip?sha=761bbdc59190b076b1b16d699c27be57d6b47d8a",
"reference": "761bbdc59190b076b1b16d699c27be57d6b47d8a",
"shasum": ""
},
"type": "metapackage",
"notification-url": "https://packagist.org/downloads/",
"license": [
"AGPL-3.0-only"
],
"authors": [
{
"name": "Julien Fastré",
"email": "julien.fastre@champs-libres.coop"
}
],
"description": "A meta-package which will trigger installation of opiniated files to deploy chill using docker, and running ci",
"support": {
"issues": "https://gitlab.com/Chill-Projet/chill-deploy/-/issues",
"source": "https://gitlab.com/Chill-Projet/chill-deploy/-/tree/1.0.0"
},
"time": "2024-05-02T16:15:41+00:00"
},
{
"name": "composer/package-versions-deprecated",
@@ -2179,36 +2212,31 @@
},
{
"name": "graylog2/gelf-php",
"version": "1.7.1",
"version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/bzikarsky/gelf-php.git",
"reference": "8dceab86227c184725479cc36ab5cae4da940f6e"
"reference": "29ef48fa6eac6c8787b588949483f1739c57ad4f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/bzikarsky/gelf-php/zipball/8dceab86227c184725479cc36ab5cae4da940f6e",
"reference": "8dceab86227c184725479cc36ab5cae4da940f6e",
"url": "https://api.github.com/repos/bzikarsky/gelf-php/zipball/29ef48fa6eac6c8787b588949483f1739c57ad4f",
"reference": "29ef48fa6eac6c8787b588949483f1739c57ad4f",
"shasum": ""
},
"require": {
"paragonie/constant_time_encoding": "^1|^2",
"php": ">=5.6",
"psr/log": "^1.0|^2.0"
"php": ">=8.0",
"psr/log": "^1|^2|^3"
},
"provide": {
"psr/log-implementation": "~1.0"
"psr/log-implementation": "3.0.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7|^6.5|^7.5",
"squizlabs/php_codesniffer": "^3.3"
"phpunit/phpunit": "^9.6|^10.1",
"squizlabs/php_codesniffer": "^3.6",
"vimeo/psalm": "^5.11"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
},
"autoload": {
"psr-4": {
"Gelf\\": "src/Gelf"
@@ -2221,7 +2249,7 @@
"authors": [
{
"name": "Benjamin Zikarsky",
"email": "benjamin@zikarsky.de"
"email": "benjamin@familie-zikarsky.de"
},
{
"name": "gelf-php contributors",
@@ -2231,28 +2259,28 @@
"description": "A php implementation to send log-messages to a GELF compatible backend like Graylog2.",
"support": {
"issues": "https://github.com/bzikarsky/gelf-php/issues",
"source": "https://github.com/bzikarsky/gelf-php/tree/1.7.1"
"source": "https://github.com/bzikarsky/gelf-php/tree/2.0.1"
},
"time": "2021-08-20T09:39:08+00:00"
"time": "2023-05-23T14:45:24+00:00"
},
{
"name": "guzzlehttp/guzzle",
"version": "7.8.1",
"version": "7.9.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
"reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
"reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/a629e5b69db96eb4939c1b34114130077dd4c6fc",
"reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^1.5.3 || ^2.0.1",
"guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
"guzzlehttp/promises": "^1.5.3 || ^2.0.3",
"guzzlehttp/psr7": "^2.7.0",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
@@ -2263,9 +2291,9 @@
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
"php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
"guzzle/client-integration-tests": "3.0.2",
"php-http/message-factory": "^1.1",
"phpunit/phpunit": "^8.5.36 || ^9.6.15",
"phpunit/phpunit": "^8.5.39 || ^9.6.20",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -2343,7 +2371,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.8.1"
"source": "https://github.com/guzzle/guzzle/tree/7.9.1"
},
"funding": [
{
@@ -2359,20 +2387,20 @@
"type": "tidelift"
}
],
"time": "2023-12-03T20:35:24+00:00"
"time": "2024-07-19T16:19:57+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "2.0.2",
"version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
"reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
"reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
"url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
"reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
"shasum": ""
},
"require": {
@@ -2380,7 +2408,7 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.36 || ^9.6.15"
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"type": "library",
"extra": {
@@ -2426,7 +2454,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.0.2"
"source": "https://github.com/guzzle/promises/tree/2.0.3"
},
"funding": [
{
@@ -2442,20 +2470,20 @@
"type": "tidelift"
}
],
"time": "2023-12-03T20:19:20+00:00"
"time": "2024-07-18T10:29:17+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "2.6.2",
"version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
"reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
"reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
"reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
"shasum": ""
},
"require": {
@@ -2470,8 +2498,8 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "^0.9",
"phpunit/phpunit": "^8.5.36 || ^9.6.15"
"http-interop/http-factory-tests": "0.9.0",
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -2542,7 +2570,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.6.2"
"source": "https://github.com/guzzle/psr7/tree/2.7.0"
},
"funding": [
{
@@ -2558,7 +2586,7 @@
"type": "tidelift"
}
],
"time": "2023-12-03T20:05:35+00:00"
"time": "2024-07-18T11:15:46+00:00"
},
{
"name": "knplabs/knp-menu",
@@ -3941,24 +3969,24 @@
},
{
"name": "paragonie/constant_time_encoding",
"version": "v2.7.0",
"version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/paragonie/constant_time_encoding.git",
"reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105"
"reference": "df1e7fde177501eee2037dd159cf04f5f301a512"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105",
"reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105",
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512",
"reference": "df1e7fde177501eee2037dd159cf04f5f301a512",
"shasum": ""
},
"require": {
"php": "^7|^8"
"php": "^8"
},
"require-dev": {
"phpunit/phpunit": "^6|^7|^8|^9",
"vimeo/psalm": "^1|^2|^3|^4"
"phpunit/phpunit": "^9",
"vimeo/psalm": "^4|^5"
},
"type": "library",
"autoload": {
@@ -4004,7 +4032,7 @@
"issues": "https://github.com/paragonie/constant_time_encoding/issues",
"source": "https://github.com/paragonie/constant_time_encoding"
},
"time": "2024-05-08T12:18:48+00:00"
"time": "2024-05-08T12:36:18+00:00"
},
{
"name": "paragonie/random_compat",
@@ -12440,7 +12468,7 @@
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": ">=7.2.5",
"php": ">=8.2.0",
"ext-ctype": "*",
"ext-iconv": "*"
},

View File

@@ -1,4 +1,4 @@
lexik_jwt_authentication:
secret_key: '%env(resolve:JWT_SECRET_KEY)%'
public_key: '%env(resolve:JWT_PUBLIC_KEY)%'
pass_phrase: '%env(JWT_PASSPHRASE)%'
pass_phrase: '%env(JWT_PASSPHRASE)%'

View File

@@ -0,0 +1,8 @@
lexik_jwt_authentication:
# required for wopi - recommended duration
token_ttl: 36000
token_extractors:
query_parameter:
enabled: true
name: access_token

View File

@@ -1,7 +1,4 @@
framework:
default_locale: en
translator:
default_path: '%kernel.project_dir%/translations'
fallbacks:
- en
providers:

View File

@@ -0,0 +1,3 @@
wopi:
server: "%env(resolve:WOPI_SERVER)%"
enable_lock: false

View File

@@ -1,2 +1,294 @@
framework:
workflows: null
workflows:
vendee_internal:
type: state_machine
metadata:
related_entity:
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluationDocument
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork
- Chill\DocStoreBundle\Entity\AccompanyingCourseDocument
label:
fr: 'Suivi'
support_strategy: Chill\MainBundle\Workflow\RelatedEntityWorkflowSupportsStrategy
initial_marking: 'initial'
marking_store:
type: method
property: step
places:
initial:
metadata:
label:
fr: Étape initiale
attenteModification:
metadata:
label:
fr: En attente de modification du document
validationFilterInputLabels:
forward: {fr: Modification effectuée}
backward: {fr: Pas de modification effectuée}
neutral: {fr: Autre}
attenteMiseEnForme:
metadata:
label:
fr: En attente de mise en forme
validationFilterInputLabels:
forward: {fr: Mise en forme terminée}
backward: {fr: Pas de mise en forme effectuée}
neutral: {fr: Autre}
attenteVisa:
metadata:
label:
fr: En attente de visa
validationFilterInputLabels:
forward: {fr: Visa accordé}
backward: {fr: Visa refusé}
neutral: {fr: Autre}
attenteSignature:
metadata:
label:
fr: En attente de signature
validationFilterInputLabels:
forward: {fr: Signature accordée}
backward: {fr: Signature refusée}
neutral: {fr: Autre}
attenteTraitement:
metadata:
label:
fr: En attente de traitement
validationFilterInputLabels:
forward: {fr: Traitement terminé favorablement}
backward: {fr: Traitement terminé défavorablement}
neutral: {fr: Autre}
attenteEnvoi:
metadata:
label:
fr: En attente d'envoi
validationFilterInputLabels:
forward: {fr: Document envoyé}
backward: {fr: Document non envoyé}
neutral: {fr: Autre}
attenteValidationMiseEnForme:
metadata:
label:
fr: En attente de validation de la mise en forme
validationFilterInputLabels:
forward: {fr: Validation de la mise en forme}
backward: {fr: Refus de validation de la mise en forme}
neutral: {fr: Autre}
annule:
metadata:
isFinal: true
isFinalPositive: false
label:
fr: Annulé
final:
metadata:
isFinal: true
isFinalPositive: true
label:
fr: Finalisé
transitions:
# transition qui avancent
demandeModificationDocument:
from:
- initial
to: attenteModification
metadata:
label:
fr: Demande de modification du document
isForward: true
demandeMiseEnForme:
from:
- initial
- attenteModification
to: attenteMiseEnForme
metadata:
label:
fr: Demande de mise en forme
isForward: true
demandeValidationMiseEnForme:
from:
- attenteMiseEnForme
to: attenteValidationMiseEnForme
metadata:
label:
fr: Demande de validation de la mise en forme
isForward: true
demandeVisa:
from:
- initial
- attenteModification
- attenteMiseEnForme
- attenteValidationMiseEnForme
to: attenteVisa
metadata:
label:
fr: Demande de visa
isForward: true
demandeSignature:
from:
- initial
- attenteModification
- attenteMiseEnForme
- attenteValidationMiseEnForme
- attenteVisa
to: attenteSignature
metadata:
label: {fr: Demande de signature}
isForward: true
demandeTraitement:
from:
- initial
- attenteModification
- attenteMiseEnForme
- attenteValidationMiseEnForme
- attenteVisa
- attenteSignature
to: attenteTraitement
metadata:
label: {fr: Demande de traitement}
isForward: true
demandeEnvoi:
from:
- initial
- attenteModification
- attenteMiseEnForme
- attenteValidationMiseEnForme
- attenteVisa
- attenteSignature
- attenteTraitement
to: attenteEnvoi
metadata:
label: {fr: Demande d'envoi}
isForward: true
annulation:
from:
- initial
- attenteModification
- attenteMiseEnForme
- attenteValidationMiseEnForme
- attenteVisa
- attenteSignature
- attenteTraitement
- attenteEnvoi
to: annule
metadata:
label: {fr: Annulation}
isForward: false
# transitions qui répètent l'étape
demandeMiseEnFormeSupplementaire:
from:
- attenteMiseEnForme
- attenteValidationMiseEnForme
to: attenteMiseEnForme
metadata:
label: {fr: Demande de mise en forme supplémentaire}
demandeVisaSupplementaire:
from:
- attenteVisa
to: attenteVisa
metadata:
label: {fr: Demande de visa supplémentaire}
isForward: true
demandeSignatureSupplementaire:
from:
- attenteSignature
to: attenteSignature
metadata:
label: {fr: Demande de signature supplémentaire}
demandeTraitementSupplementaire:
from:
- attenteTraitement
to: attenteTraitement
metadata:
label: {fr: Demande de traitement supplémentaire}
# transitions qui renvoient vers une étape précédente
refusEtModificationDocument:
from:
- attenteVisa
- attenteSignature
- attenteTraitement
- attenteEnvoi
to: attenteModification
metadata:
label:
fr: Refus et demande de modification du document
isForward: false
refusEtDemandeMiseEnForme:
from:
- attenteVisa
- attenteSignature
- attenteTraitement
- attenteEnvoi
to: attenteMiseEnForme
metadata:
label: {fr: Refus et demande de mise en forme}
isForward: false
refusEtDemandeVisa:
from:
- attenteSignature
- attenteTraitement
- attenteEnvoi
to: attenteVisa
metadata:
label: {fr: Refus et demande de visa}
isForward: false
refusEtDemandeSignature:
from:
- attenteTraitement
- attenteEnvoi
to: attenteSignature
metadata:
label: {fr: Refus et demande de signature}
isForward: false
refusEtDemandeTraitement:
from:
- attenteEnvoi
to: attenteTraitement
metadata:
label: {fr: Refus et demande de traitement}
isForward: false
# transition vers final
initialToFinal:
from:
- initial
to: final
metadata:
label: {fr: Clotûre immédiate et cloture positive}
isForward: true
attenteMiseEnFormeToFinal:
from:
- attenteMiseEnForme
- attenteValidationMiseEnForme
to: final
metadata:
label: {fr: Mise en forme terminée et cloture positive}
isForward: true
attenteVisaToFinal:
from:
- attenteVisa
to: final
metadata:
label: {fr: Accorde le visa et cloture positive}
isForward: true
attenteSignatureToFinal:
from:
- attenteSignature
to: final
metadata:
label: {fr: Accorde la signature et cloture positive}
isForward: true
attenteTraitementToFinal:
from:
- attenteTraitement
to: final
metadata:
label: {fr: Traitement terminé et cloture postive}
isForward: true
attenteEnvoiToFinal:
from:
- attenteEnvoi
to: final
metadata:
label: {fr: Envoyé et cloture postive}
isForward: true

View File

@@ -0,0 +1,2 @@
CREATE EXTENSION UNACCENT;

View File

@@ -0,0 +1,8 @@
FROM docker.elastic.co/logstash/logstash-oss:8.1.0-amd64
RUN \
bin/logstash-plugin install logstash-output-gelf \
&& bin/logstash-plugin install logstash-input-gelf
COPY ./pipeline /usr/share/logstash/pipeline/

View File

@@ -0,0 +1,16 @@
input {
gelf {
# input for php logs
port => 12201
add_field => [ 'source', "php" ]
}
}
filter {
}
output {
stdout { }
}

10
docker/nginx/Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM nginx
COPY ./public /var/www/app/public
# gz encode builded files
RUN gzip -9 -k -f -r /var/www/app/public/build/*
COPY ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf

71
docker/nginx/default.conf Normal file
View File

@@ -0,0 +1,71 @@
upstream phpfcgi {
server php:9000;
# server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket
}
server {
listen 80;
# only for getting traffic from collabora, when opening nginx:8001
listen 8001;
#server_name symfony4;
root /var/www/app/public;
error_log /dev/stderr;
access_log /dev/stdout main;
location / {
index index.php;
try_files $uri /index.php$is_args$args;
}
location /build/ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
gzip_static on;
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/svg+xml
text/css
text/javascript
text/plain
text/xml;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass phpfcgi;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param HTTPS off;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
proxy_buffer_size 16k;
proxy_busy_buffers_size 16k;
http2_push_preload on;
}
location ~ \.php$ {
return 404;
}
}

View File

@@ -0,0 +1,82 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/stdout main;
error_log /dev/stderr;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip off;
#include /etc/nginx/conf.d/*.conf;
# permet l'upload de fichiers
client_max_body_size 3M;
upstream phpfcgi {
server php:9000;
# server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket
}
server {
listen 80;
listen 8001;
#server_name symfony4;
root /var/www/app/public;
error_log /dev/stderr;
access_log /dev/stdout main;
location / {
index index.php;
try_files $uri /index.php$is_args$args;
}
location /build/ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~ ^/index\.php(/|$) {
fastcgi_pass phpfcgi;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param HTTPS off;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
proxy_buffer_size 16k;
proxy_busy_buffers_size 16k;
}
location ~ \.php$ {
return 404;
}
}
}

56
entrypoint.sh Executable file
View File

@@ -0,0 +1,56 @@
#!/bin/bash
#immediatly exit if a command fails:
set -e
# waiting for the database to be ready
if [ -z "${DATABASE_HOST}" ]; then
while ! timeout 1 bash -c "cat < /dev/null > /dev/tcp/${DATABASE_HOST}/${DATABASE_PORT}"
do
echo "$(date) : waiting one second for database";
sleep 1;
done
echo "$(date) : the database is ready";
else
echo "we assume the database is ready";
fi
if [ $(id -u) = "0" ]; then
{ \
echo "[www]"; \
echo ""; \
echo "user=${PHP_FPM_USER}"; \
echo "group=${PHP_FPM_GROUP}"; \
} > /usr/local/etc/php-fpm.d/zz-user.conf
fi
{ \
echo ""; \
echo "session.save_handler = redis" ; \
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_PORT}?db=10\"" ; \
echo "session.gc_maxlifetime = ${SESSION_LIFETIME}" ; \
} >> /usr/local/etc/php/conf.d/custom.ini
if [ "${APP_ENV}" = "prod" ]; then
composer dump-env "${APP_ENV}"
chmod +r /var/www/app/.env.local.php
if [ "${PREVENT_MIGRATIONS}" != "true" ]; then
php /var/www/app/bin/console doctrine:migrations:status
php /var/www/app/bin/console doctrine:migrations:migrate -n
php /var/www/app/bin/console messenger:setup-transports
php /var/www/app/bin/console chill:db:sync-views
fi
fi
if [ "${CLEAR_CACHE}" != "false" ]; then
#prepare cache
php /var/www/app/bin/console cache:clear --no-warmup
chgrp ${PHP_FPM_GROUP} /var/www/app/var/cache -R && chmod g+rw /var/www/app/var/cache -R
chgrp ${PHP_FPM_GROUP} /var/www/app/var/log -R && chmod g+rw /var/www/app/var/log -R
fi
exec "${@}"

View File

@@ -35,6 +35,28 @@
"post-install-chill.sh"
]
},
"chill-project/chill-deploy": {
"version": "1.0",
"recipe": {
"repo": "gitlab.com/Chill-Projet/chill-recipes",
"branch": "main",
"version": "1.0",
"ref": "2d916e260041fca4852a8887ff113667c6297046"
},
"files": [
".gitea/workflows/release/update-composer-lock.yaml",
"docker/db/docker-entrypoint-initdb.d/0000-add-extensions.sql",
"docker/logstash/Dockerfile",
"docker/logstash/pipeline/logstash.conf",
"docker/nginx/Dockerfile",
"docker/nginx/default.conf",
"docker/nginx/nginx.with-collabora.conf",
"Dockerfile",
".dockerignore",
"entrypoint.sh",
".drone.yml"
]
},
"doctrine/annotations": {
"version": "1.14",
"recipe": {

View File

@@ -7976,10 +7976,10 @@ sass-graph@^4.0.1:
scss-tokenizer "^0.4.3"
yargs "^17.2.1"
sass-loader@^13.0.0:
version "13.3.3"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.3.tgz#60df5e858788cffb1a3215e5b92e9cba61e7e133"
integrity sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==
sass-loader@^14.0.0:
version "14.2.1"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.2.1.tgz#db9ad96b56dc1c1ea546101e76375d5b008fec70"
integrity sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==
dependencies:
neo-async "^2.6.2"
@@ -9075,10 +9075,10 @@ vue-multiselect@3.0.0-alpha.2:
resolved "https://registry.yarnpkg.com/vue-multiselect/-/vue-multiselect-3.0.0-alpha.2.tgz#58186f781136e71f1272b98690b569a0c00ed161"
integrity sha512-Xp9fGJECns45v+v8jXbCIsAkCybYkEg0lNwr7Z6HDUSMyx2TEIK2giipPE+qXiShEc1Ipn+ZtttH2iq9hwXP4Q==
vue-toast-notification@^2.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/vue-toast-notification/-/vue-toast-notification-2.0.1.tgz#5fe607c493b5dc9b238bf49bc3bcf80366edd4e4"
integrity sha512-8GPJq1J6lsTPTCxSgPhnM8d0v+ivwT+u4R/xmtaDXeYNRkaRxqFOn3ewaVqmm+aCT8Y3/PQQS8dFqkMV7JOf/A==
vue-toast-notification@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/vue-toast-notification/-/vue-toast-notification-3.1.2.tgz#55106acc4f2c17ecf84468ee9435b97fc7106748"
integrity sha512-oNRL/W9aaHoeScp+iTIW7k09vM16/+8aptp2maa+7qTB43JuxmAgKdXKFYtf+uvSNOYYq2BIWgLCeJ61pwom/A==
vue@^3.2.37:
version "3.4.31"