Compare commits

...

94 Commits

Author SHA1 Message Date
e701b75f1e upgrade to node 20
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-09 00:00:13 +01:00
6c0caef3d5 release 1.4.4
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 22:58:06 +01:00
103282e44b restore previous version of yarn.lock 2024-02-08 22:57:12 +01:00
dd591628a8 better restriction for bootstrap version and release 1.4.3
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 22:38:38 +01:00
656d27080b release 1.4.2
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 22:13:30 +01:00
8d1693285d fix version of bootstrap to 5.2.3 2024-02-08 22:10:52 +01:00
818b4c36a3 upgrade node version and update 1.4.1
Some checks failed
continuous-integration/drone/tag Build is failing
2024-02-08 21:53:25 +01:00
0fb57fcdd8 Merge pull request 'upgrade chill to version 2.16.0' (#12) from release/chill-2.16.0 into main
Some checks failed
continuous-integration/drone/tag Build is failing
Reviewed-on: #12
2024-02-08 20:31:04 +00:00
julienfastre
c8d89e2a1d update composer.lock and file (automatic update) 2024-02-08 20:26:12 +00:00
d142fbe471 upgrade chill to version 2.16.0
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 1m13s
2024-02-08 20:24:58 +00:00
deadabefa1 Merge pull request 'activate bundle event in app' (#7) from 6-activate-event-bundle into main
Reviewed-on: #7
2024-02-08 20:23:54 +00:00
2c9ec9db55 Revert "Add configuration for chill-doc-store into skeleton"
This reverts commit 4aea2fe135.
2023-12-12 15:57:56 +01:00
4aea2fe135 Add configuration for chill-doc-store into skeleton 2023-12-12 15:17:18 +01:00
6fe97f3659 Merge pull request 'update chill to release 2.14.1' (#8) from release/chill-2.14.1 into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #8
2023-11-30 08:27:55 +00:00
julienfastre
d9980a7e18 update composer.lock and file (automatic update) 2023-11-30 08:27:10 +00:00
59852c709d update chill to release 2.14.1
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 1m10s
2023-11-30 08:25:54 +00:00
f7dc506506 upgrade node dependencies 2023-11-29 13:21:26 +01:00
8ef752fdd0 activate bundle event in app 2023-11-27 13:24:34 +01:00
1c544d392a Merge pull request 'Prepare for release - chill 2.14.0' (#5) from release/chill-2.14.0 into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #5
2023-11-24 11:41:27 +00:00
julienfastre
dcfd7e4924 update composer.lock and file (automatic update) 2023-11-24 11:40:51 +00:00
deb47dd3aa Prepare for release - chill 2.14.0
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 31s
2023-11-24 11:40:19 +00:00
ac909e8107 Merge pull request 'update to chill-bundles 2.13.0 - prepare for release' (#4) from release/chill-2.13.0 into main
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #4
2023-11-22 15:35:12 +00:00
julienfastre
414b4e11ca update composer.lock and file (automatic update) 2023-11-22 15:34:21 +00:00
86e27595f5 restore release workflow
All checks were successful
Prepare release for chill app / update-deps (push) Successful in 48s
2023-11-22 15:33:33 +00:00
cb3ac56084 delete create-release-on-tag 2023-11-22 15:32:28 +00:00
4ef93ef722 update to chill-bundles 2.13.0 - prepare for release 2023-11-22 15:31:11 +00:00
7e3d741ea0 Merge pull request 'Integrate changie and create a workflow for publishing app' (#3) from julienfastre/chill-skeleton-basic:release/test2 into main
Reviewed-on: #3
2023-11-19 20:55:48 +00:00
bd011775a6 Integrate changie and create a workflow for publishing app
update composer.lock and file (automatic update)

prepare for realease

Signed-off-by: Julien Fastré <julienfastre@noreply.localhost>

update composer.lock and file (automatic update)

Workflow: tag and create release

Fix expressions

checkout before

remove permissions

finalize
2023-11-19 21:55:02 +01:00
f06b8dcd1e upgrade to chill 2.9.2
Some checks reported errors
continuous-integration/drone/tag Build was killed
2023-10-17 23:39:58 +02:00
7f85d66337 upgrade chill to 2.9.1
Some checks reported errors
continuous-integration/drone/tag Build was killed
2023-10-17 22:14:11 +02:00
cc716beaec upgrade to chill version 2.9.0
Some checks reported errors
continuous-integration/drone/tag Build was killed
2023-10-17 16:22:42 +02:00
ac61038625 update to last chill dep version 2023-10-05 07:56:04 +00:00
9827832753 Add symfony flex and symfony runtime to composer.json 2023-09-26 16:26:22 +02:00
0706901415 update composer.json to chill-bundles version 2.6.3 2023-09-26 12:41:43 +02:00
c4d3c784d3 fix mismatches of variables in Makefile 2023-09-22 17:47:13 +02:00
ce136ba0f3 revert 05d4a10a5b
revert Dav: configuration of security for allowing dav endpoints
2023-09-22 09:16:51 +00:00
05d4a10a5b Dav: configuration of security for allowing dav endpoints 2023-09-17 15:47:05 +02:00
Lucas Silva
c06166fdc2 update composer 2023-04-26 13:43:36 +02:00
fb1219163e DX: sign drone file 2023-04-25 15:09:50 +02:00
52c40e5f52 update node deps
All checks were successful
continuous-integration/drone/tag Build is passing
2023-04-25 15:03:11 +02:00
a144b0e4be Deploy: update chill-bundles 2023-04-25 15:02:54 +02:00
8d310ef7c8 remove overwrote translation on activity roles (see admin-permissiongroup-templates branch, chill-bundles MR !504) 2023-04-14 15:30:54 +02:00
eff7e9470d update yarn 2023-04-14 14:42:52 +02:00
cad7c0c53d Feature: [messenger] Update config for messenger to handle document generation 2023-03-30 18:20:54 +02:00
c29f6cdf96 adapt drone config 2023-03-30 18:14:30 +02:00
430915f831 Merge branch 'php82' 2023-03-30 18:11:43 +02:00
29253b4f01 update deps 2023-03-30 18:08:02 +02:00
93972a0135 remove budget element in config 2023-03-30 18:00:51 +02:00
63c7130be3 update yarn deps 2023-03-30 18:00:13 +02:00
63489e7055 yarn upgrade 2023-03-30 16:27:37 +02:00
6d8b858cc8 Merge branch 'php82' into main 2023-03-30 15:56:17 +02:00
28444d5bbf DX: upgrade packages to next minor versions 2023-03-21 11:06:28 +01:00
fb25e8b346 Merge remote-tracking branch 'origin/main' into php82 2023-03-21 10:35:07 +01:00
efed281312 Merge pull request 'Allow devs to directly open profiler links in php storm IDE' (#2) from skeleton/phpstorm-dev-integration into main
Reviewed-on: #2
2023-03-08 15:46:30 +00:00
a6a988a33a Merge remote-tracking branch 'origin/config-chill-budget' into main 2023-03-08 16:42:56 +01:00
859eb37526 Merge remote-tracking branch 'origin/main' into main 2023-03-08 16:07:55 +01:00
b55914e40f add a generic .ignore directory 2023-03-08 10:45:52 +01:00
7f1085d2c2 DX: add dev config for profiler <-> phpstorm links integration 2023-03-08 10:29:07 +01:00
Lucas Silva
b81638eda9 Fix error credit 2023-03-07 15:06:15 +01:00
571d662737 Merge pull request 'Feature: build a php base image usable for CI' (#1) from php82_ci into php82
Reviewed-on: #1
2023-02-17 15:41:16 +00:00
78a98bff40 Feature: publish base image 2023-02-17 16:39:53 +01:00
2f18130e72 Revert "remove gd deps"
This reverts commit eb059453282539b899b3dbdce72cb970d5c28bff.
2023-02-08 09:36:41 +01:00
2af27e8b42 Feature: add php-cs-fixer to the base image
Php-cs-fixer have conflicts with the symfony and doctrine version in use for us.

I propose to add it to the image until php-cs-fixer becomes compatible again with our dependencies.

This commit also add the environment variable PHP_CS_FIXER_IGNORE_ENV to make it works with php 8.2 (currently, it does not work with php > 8.1)
2023-02-08 09:36:41 +01:00
fcd00855f9 improve DockerFile deps to avoid errors with chill 2023-02-08 09:36:41 +01:00
e9c478c062 adapt Makefile and rename chill_php occurences by chill_php82 2023-02-08 09:36:41 +01:00
d38e9a5c0a add shell preference 2023-02-08 09:36:41 +01:00
b63a4f2a5f finish image 2023-02-08 09:36:41 +01:00
1a1188c612 merge deps RUN blocks to optimize 2023-02-08 09:36:41 +01:00
39b9e839c2 remove gd deps 2023-02-08 09:36:41 +01:00
23c438f0d7 add postgresql-client 2023-02-08 09:36:41 +01:00
a4fd3dbeb6 Upgrade chill_base_php image to PHP8: install deps and php extension 2023-02-08 09:36:41 +01:00
1ef5ef50a3 update composer files
All checks were successful
continuous-integration/drone/tag Build is passing
2023-02-03 09:56:15 +01:00
da2149cb60 Deploy: update dependencies
All checks were successful
continuous-integration/drone/tag Build is passing
2023-02-01 12:46:15 +01:00
491c5f3b49 deploy: update version of chill-bundles
All checks were successful
continuous-integration/drone/tag Build is passing
2023-01-13 21:09:41 +01:00
8d3b56c6fe DX: avoid duplicate config 2023-01-13 18:21:02 +01:00
4157b4bb21 Feature: adapt skeleton for wopi / jwt and secret/public keys in base64 format in production
All checks were successful
continuous-integration/drone/tag Build is passing
2023-01-13 13:31:11 +01:00
99ec0b765f Feature: trigger migration automatically only in prod mode 2023-01-13 13:26:10 +01:00
dc19006738 Feature: configure root app for usage of JWT access token for wopi 2023-01-09 20:50:11 +01:00
e55562c4cd Feature: install lexik jwt and configuration 2023-01-07 21:11:01 +01:00
82c8140e4b Feature: force to validate proof on wopi editor 2023-01-07 21:09:00 +01:00
e55745b48b DX: remove default doctrine query cache pool 2023-01-07 21:08:07 +01:00
f80d2c47ce Deps: upgrade recipes for symfony/framework-bundle 2022-12-29 23:07:06 +01:00
da2f5f37c0 deps: upgrade doctrine recipe 2022-12-29 22:55:13 +01:00
beab370cd6 deploy: use wopi as source 2022-12-29 22:33:19 +01:00
b10074e440 Feature: add parallelism in drone image compilation pipeline 2022-12-27 00:26:43 +01:00
d8792adc5f Deploy: last deploy for chill bundles
All checks were successful
continuous-integration/drone/tag Build is passing
2022-12-27 00:11:54 +01:00
0ba659e17f Fixed: fixed env variable processor (typo)
All checks were successful
continuous-integration/drone/tag Build is passing
2022-12-26 22:27:26 +01:00
645113c13a Fixed: fixed env variable processor
Some checks reported errors
continuous-integration/drone/tag Build was killed
2022-12-26 22:24:23 +01:00
412cc332bb Deploy: upgrade chill bundles and adapt skeleton
All checks were successful
continuous-integration/drone/tag Build is passing
2022-12-24 15:40:18 +01:00
ba33c507e6 update deps for deploy
All checks were successful
continuous-integration/drone/tag Build is passing
2022-10-10 14:29:08 +02:00
a54f1d1a06 Allow to show scopes when needed, by default 2022-10-10 14:28:34 +02:00
631bcff2d4 deploy new version
All checks were successful
continuous-integration/drone/tag Build is passing
2022-10-10 14:09:15 +02:00
c1f3a3540f Fixed: the logout path was not relevant for default security bundle 2022-10-10 14:08:43 +02:00
1307ae914d Migrate postgresql and improve skeleton 2022-10-10 12:42:22 +02:00
57 changed files with 8550 additions and 9078 deletions

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

3
.changes/v1.0.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.0.0 - 2023-11-19
### Feature
* Integrate changie and automate release management

3
.changes/v1.1.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.1.0 - 2023-11-22
### Release
* Update dependencies. Chill-bundles upgraded from 2.12.1 to 2.13.0

3
.changes/v1.2.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.2.0 - 2023-11-24
### Release
* Update dependencies. Chill-bundles upgraded from 2.13.0 to 2.14.0

3
.changes/v1.3.0.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.3.0 - 2023-11-30
### Release
* Update dependencies. Chill-bundles upgraded from 2.14.0 to 2.14.1

4
.changes/v1.4.0.md Normal file
View File

@@ -0,0 +1,4 @@
## v1.4.0 - 2024-02-08
### Release
* Upgrade nodes dependencies
* Update dependencies. Chill-bundles upgraded from 2.14.1 to 2.16.0

3
.changes/v1.4.1.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.1 - 2024-02-08
### Fixed
* upgrade node version while compiling

3
.changes/v1.4.2.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.2 - 2024-02-08
### Fixed
* Fix version of bootstrap temporarily

3
.changes/v1.4.3.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.3 - 2024-02-08
### Fixed
* better restriction for bootstrap version

3
.changes/v1.4.4.md Normal file
View File

@@ -0,0 +1,3 @@
## v1.4.4 - 2024-02-08
### Fixed
* fix incorrect upgrade

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://gitlab.com/Chill-Projet/chill-bundles/-/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_

View File

@@ -21,7 +21,7 @@ steps:
registry: h3m6q87t.gra7.container-registry.ovh.net registry: h3m6q87t.gra7.container-registry.ovh.net
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base
tag: latest tag: latest
target: chill_base_php target: chill_base_php82
pull_image: true pull_image: true
cache_from: cache_from:
- h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest - h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
@@ -33,13 +33,18 @@ steps:
commands: commands:
- composer install --no-scripts --no-interaction - composer install --no-scripts --no-interaction
- composer update --with-all-dependencies --no-interaction chill-project/chill-bundles - composer update --with-all-dependencies --no-interaction chill-project/chill-bundles
depends_on:
- build-base-image
- name: build-assets - name: build-assets
image: node:14 image: node:20
pull: always pull: always
commands: commands:
- yarn install - yarn install
- yarn list
- yarn run encore production - yarn run encore production
depends_on:
- composer-install
- name: build-image-php - name: build-image-php
image: plugins/docker image: plugins/docker
@@ -56,6 +61,9 @@ steps:
cache_from: cache_from:
- h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest - h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
- chill/base-image:latest - chill/base-image:latest
depends_on:
- build-assets
- composer-install
- name: build-image-nginx - name: build-image-nginx
image: plugins/docker image: plugins/docker
@@ -70,3 +78,40 @@ steps:
tag: tag:
- ${DRONE_TAG} - ${DRONE_TAG}
Dockerfile: docker/nginx/Dockerfile Dockerfile: docker/nginx/Dockerfile
depends_on:
- build-assets
---
kind: pipeline
type: docker
name: build-base-image-php82
trigger:
event:
- cron
- push
cron:
- base-image-php82
steps:
- name: build-base-image
image: plugins/docker
settings:
username:
from_secret: docker_username_gitea
password:
from_secret: docker_password_gitea
registry: gitea.champs-libres.be/chill-project/chill-skeleton-basic
repo: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image
tag:
- php82
- latest
target: chill_base_php82
pull_image: true
---
kind: signature
hmac: 0bca4dec9822a08338f6f3b88badf771558aee19b41967837aa64853a1573cad
...

51
.env
View File

@@ -3,18 +3,16 @@
## `$ composer symfony:dump-env prod` ## `$ composer symfony:dump-env prod`
## ##
## Project environment
# this should be set in docker-compose.yml file
# APP_ENV=prod
## Enable debug
APP_DEBUG=false
## Locale ## Locale
LOCALE=fr LOCALE=fr
## Framework secret ###> symfony/framework-bundle ###
APP_SECRET=ThisTokenIsNotSoSecretChangeIt # this should be set in docker-compose.yml file
APP_ENV=prod
APP_SECRET=ChangeItf2b58287ef7f9976409d3f6c72529e99ChangeIt
TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
TRUSTED_HOSTS='^(localhost|example\.com|nginx)$'
###< symfony/framework-bundle ###
## Wopi server for editing documents online ## Wopi server for editing documents online
WOPI_SERVER=http://collabora:9980 WOPI_SERVER=http://collabora:9980
@@ -22,13 +20,6 @@ WOPI_SERVER=http://collabora:9980
# must be manually set in .env.local # must be manually set in .env.local
# ADMIN_PASSWORD= # ADMIN_PASSWORD=
## Symfony/framework-bundle
TRUSTED_HOSTS='^(localhost|127.0.0.1|test.localde)$',${TRUSTED_HOST_2},${TRUSTED_HOST_3}
TRUSTED_PROXIES=~
## Doctrine/doctrine-bundle
DATABASE_URL=
## Symfony/swiftmailer ## Symfony/swiftmailer
## Mailer ## Mailer
###> symfony/mailer ### ###> symfony/mailer ###
@@ -60,6 +51,14 @@ TWILIO_SID=~
TWILIO_SECRET=~ TWILIO_SECRET=~
DEFAULT_CARRIER_CODE=BE DEFAULT_CARRIER_CODE=BE
ADD_ADDRESS_DEFAULT_COUNTRY=BE
ADD_ADDRESS_MAP_CENTER_X=50.8443
ADD_ADDRESS_MAP_CENTER_Y=4.3523
ADD_ADDRESS_MAP_CENTER_Z=15
SHORT_MESSAGE_DSN=null://null
## DOCKER IMAGES REGISTRY ## DOCKER IMAGES REGISTRY
#IMAGE_PHP= #IMAGE_PHP=
#IMAGE_NGINX= #IMAGE_NGINX=
@@ -68,3 +67,23 @@ DEFAULT_CARRIER_CODE=BE
#VERSION=test #VERSION=test
#VERSION=prod #VERSION=prod
###> symfony/messenger ###
# Choose one of the transports below
# MESSENGER_TRANSPORT_DSN=doctrine://default
# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
MESSENGER_TRANSPORT_DSN=sync://
###< symfony/messenger ###
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
DATABASE_URL="postgresql://postgres:postgres@db:5432/postgres?serverVersion=14&charset=utf8"
###< doctrine/doctrine-bundle ###
###> lexik/jwt-authentication-bundle ###
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=2a30f6ba26521a2613821da35f28386e
###< lexik/jwt-authentication-bundle ###

View File

@@ -11,3 +11,5 @@ MAILER_URL=smtp://smtp:1025
PGADMIN_DEFAULT_EMAIL=admin@chill.social PGADMIN_DEFAULT_EMAIL=admin@chill.social
PGADMIN_DEFAULT_PASSWORD=password PGADMIN_DEFAULT_PASSWORD=password
## Phpstorm IDE project path
PROJECT_DIR=

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

8
.gitignore vendored
View File

@@ -9,6 +9,7 @@ config/secrets/
## env files ## env files
.env.local .env.local
.env.dev.local
.composer/* .composer/*
composer.phar composer.phar
@@ -49,17 +50,18 @@ phpunit.xml
nbproject/* nbproject/*
.idea .idea
.ignore
### template/api/specs.yaml should be compiled ### template/api/specs.yaml should be compiled
templates/api/specs.yaml templates/api/specs.yaml
###> symfony/webpack-encore-bundle ### ###> symfony/webpack-encore-bundle ###
/node_modules/ /node_modules/
/public/build/ /public/build/
npm-debug.log npm-debug.log
yarn-error.log yarn-error.log
###< symfony/webpack-encore-bundle ### ###< symfony/webpack-encore-bundle ###
###> symfony/phpunit-bridge ### ###> symfony/phpunit-bridge ###
.phpunit .phpunit
.phpunit.result.cache .phpunit.result.cache
@@ -75,3 +77,7 @@ yarn-error.log
docker-compose.override.yml docker-compose.override.yml
docker-compose.override.yaml docker-compose.override.yaml
###> lexik/jwt-authentication-bundle ###
/config/jwt/*.pem
###< lexik/jwt-authentication-bundle ###

View File

@@ -1,12 +1,44 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. 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/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).
* [Semantic Versioning](https://semver.org/spec/v2.0.0.html) for stable releases;
* date versioning for test releases
## Unreleased ## v1.4.4 - 2024-02-08
### Fixed
* fix incorrect upgrade
## v1.4.3 - 2024-02-08
### Fixed
* better restriction for bootstrap version
## v1.4.2 - 2024-02-08
### Fixed
* Fix version of bootstrap temporarily
## v1.4.1 - 2024-02-08
### Fixed
* upgrade node version while compiling
## v1.4.0 - 2024-02-08
### Release
* Upgrade nodes dependencies
* Update dependencies. Chill-bundles upgraded from 2.14.1 to 2.16.0
## v1.3.0 - 2023-11-30
### Release
* Update dependencies. Chill-bundles upgraded from 2.14.0 to 2.14.1
## v1.2.0 - 2023-11-24
### Release
* Update dependencies. Chill-bundles upgraded from 2.13.0 to 2.14.0
## v1.1.0 - 2023-11-22
### Release
* Update dependencies. Chill-bundles upgraded from 2.12.1 to 2.13.0
## v1.0.0 - 2023-11-19
### Feature
* Integrate changie and automate release management

View File

@@ -1,4 +1,4 @@
FROM php:7.4-fpm-buster AS chill_base_php FROM php:8.2-fpm-alpine AS chill_base_php82
ENV POSTGRES_VERSION 14 ENV POSTGRES_VERSION 14
@@ -6,27 +6,31 @@ ENV POSTGRES_VERSION 14
ARG UID=1000 ARG UID=1000
ARG GID=1000 ARG GID=1000
RUN apt update && apt -y --no-install-recommends install wget gnupg \ # install php extensions and deps
&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ RUN apk update && apk add --no-cache \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ wget gnupg \
&& apt update && apt -y --no-install-recommends install \ libpq-dev \
libicu-dev \ icu-dev icu-libs icu-data-full \
g++ \ oniguruma-dev \
postgresql-server-dev-$POSTGRES_VERSION \ libzip libzip-dev \
libzip-dev libzip4 unzip \ linux-headers \
libfreetype6-dev \ gcc g++ make autoconf \
libonig-dev `# install oniguruma, required for mbstring` \ bash git \
libpng-dev \ && docker-php-ext-install pdo_pgsql intl mbstring zip bcmath exif sockets \
libjpeg62-turbo-dev \ && git clone https://github.com/nikic/php-ast.git \
git \ && cd php-ast \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \ && phpize \
&& docker-php-ext-install -j$(nproc) gd \ && ./configure \
&& docker-php-ext-install intl pdo_pgsql mbstring zip bcmath sockets exif \ && make install \
&& pecl install redis \ && echo 'extension=ast.so' > /usr/local/etc/php/php.ini \
&& docker-php-ext-enable redis \ && cd .. && rm -rf php-ast \
&& apt remove -y wget libicu-dev g++ gnupg libzip-dev \ && pecl install redis \
&& apt autoremove -y \ && docker-php-ext-enable redis \
&& apt purge -y && 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 { \ RUN { \
echo ""; \ echo ""; \
@@ -41,15 +45,31 @@ RUN { \
echo ""; \ echo ""; \
} >> /usr/local/etc/php/conf.d/date.ini } >> /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 COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER=1 ENV COMPOSER_ALLOW_SUPERUSER=1
ENV COMPOSER_MEMORY_LIMIT=-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 WORKDIR /var/www/app
CMD ["php-fpm"] CMD ["php-fpm"]
FROM chill_base_php AS chill_php FROM chill_base_php82 AS chill_php82
# copy directories # copy directories

View File

@@ -2,12 +2,12 @@ THIS_FILE := $(lastword $(MAKEFILE_LIST))
PWD:=$(shell echo ${PWD}) PWD:=$(shell echo ${PWD})
UID:=$(shell id -u) UID:=$(shell id -u)
GID:=$(shell id -g) GID:=$(shell id -g)
BASE_TAG=chill_base_php DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:16
DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:14
DOCKER_COMPOSE_PHP_EXEC_CMD=docker-compose run --rm --user $(UID):$(GID) -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env php DOCKER_COMPOSE_PHP_EXEC_CMD=docker-compose run --rm --user $(UID):$(GID) -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env php
DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env --net=host $(BASE_TAG) DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env $(PHP_BASE_IMAGE_TAG)
PHP_BASE_IMAGE=php:7.4-fpm-buster PHP_BASE_IMAGE=php:8.2-fpm-alpine
PHP_BASE_IMAGE_CHILL=chill_base_php PHP_BASE_IMAGE_TARGET=chill_base_php82
PHP_BASE_IMAGE_TAG=chill_php82
NGINX_BASE_IMAGE=nginx NGINX_BASE_IMAGE=nginx
CALVER=$(shell date "+v%Y%m%d%H%M")-${CALVERSION} CALVER=$(shell date "+v%Y%m%d%H%M")-${CALVERSION}
ifneq (,$(wildcard ./.env)) ifneq (,$(wildcard ./.env))
@@ -39,7 +39,7 @@ build-assets:
$(DOCKERNODE_CMD) yarn run encore production $(DOCKERNODE_CMD) yarn run encore production
init: init:
docker build --target chill_base_php -t $(BASE_TAG) . docker build --pull --target $(PHP_BASE_IMAGE_TARGET) --tag $(PHP_BASE_IMAGE_TAG) .
$(DOCKER_PHP_EXEC_CMD_BASE) composer update --no-scripts --no-interaction $(DOCKER_PHP_EXEC_CMD_BASE) composer update --no-scripts --no-interaction
@$(MAKE) -f $(THIS_FILE) build-assets @$(MAKE) -f $(THIS_FILE) build-assets
@$(MAKE) -f $(THIS_FILE) post-install @$(MAKE) -f $(THIS_FILE) post-install

View File

@@ -15,7 +15,7 @@
}, },
"require": { "require": {
"ext-redis": "*", "ext-redis": "*",
"chill-project/chill-bundles": "dev-master#5f6c11bde9ac1006c5b187c29f4c33ce0a44021b", "chill-project/chill-bundles": "2.16.0",
"symfony/flex": "^1.9", "symfony/flex": "^1.9",
"symfony/http-client": "^4.4 || ^5", "symfony/http-client": "^4.4 || ^5",
"nelmio/alice": "^3.8", "nelmio/alice": "^3.8",
@@ -36,8 +36,7 @@
"symfony/web-profiler-bundle": "^5.0", "symfony/web-profiler-bundle": "^5.0",
"symfony/var-dumper": "4.*", "symfony/var-dumper": "4.*",
"symfony/phpunit-bridge": "^5.2", "symfony/phpunit-bridge": "^5.2",
"symfony/debug-bundle": "^5.1", "symfony/debug-bundle": "^5.1"
"box/spout": "^3.3"
}, },
"minimum-stability": "dev", "minimum-stability": "dev",
"prefer-stable": true, "prefer-stable": true,
@@ -54,11 +53,14 @@
"bin-dir": "bin", "bin-dir": "bin",
"allow-plugins": { "allow-plugins": {
"ocramius/package-versions": true, "ocramius/package-versions": true,
"symfony/flex": true "symfony/flex": true,
"symfony/runtime": true
}, },
"preferred-install": { "preferred-install": {
"chill-project/chill-bundles": "source", "chill-project/chill-bundles": "source",
"champs-libres/async-uploader-bundle": "source" "champs-libres/async-uploader-bundle": "source",
"champs-libres/wopi-bundle": "source",
"champs-libres/wopi-lib": "source"
} }
} }
} }

4647
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,6 @@ return [
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true], Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true],
Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true], Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true],
Knp\Bundle\TimeBundle\KnpTimeBundle::class => ['all' => true], Knp\Bundle\TimeBundle\KnpTimeBundle::class => ['all' => true],
ChampsLibres\AsyncUploaderBundle\ChampsLibresAsyncUploaderBundle::class => ['all' => true], ChampsLibres\AsyncUploaderBundle\ChampsLibresAsyncUploaderBundle::class => ['all' => true],
@@ -33,6 +32,9 @@ return [
Chill\WopiBundle\ChillWopiBundle::class => ['all' => true], Chill\WopiBundle\ChillWopiBundle::class => ['all' => true],
loophp\PsrHttpMessageBridgeBundle\PsrHttpMessageBridgeBundle::class => ['all' => true], loophp\PsrHttpMessageBridgeBundle\PsrHttpMessageBridgeBundle::class => ['all' => true],
ChampsLibres\WopiBundle\WopiBundle::class => ['all' => true], ChampsLibres\WopiBundle\WopiBundle::class => ['all' => true],
\Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true], Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true],
App\App::class => [ 'all' => true ], App\App::class => ['all' => true],
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true],
Chill\EventBundle\ChillEventBundle::class => ['all' => true],
]; ];

View File

@@ -12,12 +12,20 @@ chill_main:
twilio_sid: '%env(resolve:TWILIO_SID)%' twilio_sid: '%env(resolve:TWILIO_SID)%'
twilio_secret: '%env(resolve:TWILIO_SECRET)%' twilio_secret: '%env(resolve:TWILIO_SECRET)%'
default_carrier_code: '%env(resolve:DEFAULT_CARRIER_CODE)%' default_carrier_code: '%env(resolve:DEFAULT_CARRIER_CODE)%'
short_messages:
dsn: '%env(string:SHORT_MESSAGE_DSN)%'
acl: acl:
form_show_scopes: false form_show_scopes: true
form_show_centers: false form_show_centers: true
access_global_history: false access_global_history: false
access_user_change_password: true access_user_change_password: true
access_permissions_group_list: true access_permissions_group_list: true
add_address:
default_country: '%env(string:ADD_ADDRESS_DEFAULT_COUNTRY)%'
map_center:
x: '%env(float:ADD_ADDRESS_MAP_CENTER_X)%'
y: '%env(float:ADD_ADDRESS_MAP_CENTER_Y)%'
z: '%env(float:ADD_ADDRESS_MAP_CENTER_Z)%'
chill_custom_fields: chill_custom_fields:
show_empty_values_in_views: false show_empty_values_in_views: false
@@ -40,7 +48,7 @@ chill_person:
civility: visible civility: visible
deathdate: visible deathdate: visible
validation: validation:
center_required: false center_required: true
chill_activity: chill_activity:
form: form:

View File

@@ -56,7 +56,6 @@ chill_budget:
- { key: mutuelle, labels: [{lang: fr, label: "Mutuelle"}]} - { key: mutuelle, labels: [{lang: fr, label: "Mutuelle"}]}
- { key: transport, labels: [{lang: fr, label: "Frais de transport"}]} - { key: transport, labels: [{lang: fr, label: "Frais de transport"}]}
- { key: decouvbank, labels: [{lang: fr, label: "Découvert bancaire utilisé"}]} - { key: decouvbank, labels: [{lang: fr, label: "Découvert bancaire utilisé"}]}
- { key: credit, labels: [{lang: fr, label: "Procédure de saisie"}]}
- { key: procsaisie, labels: [{lang: fr, label: "Procédure de saisie"}]} - { key: procsaisie, labels: [{lang: fr, label: "Procédure de saisie"}]}
- { key: indus, labels: [{lang: fr, label: "Indus"}]} - { key: indus, labels: [{lang: fr, label: "Indus"}]}
- { key: apurement, labels: [{lang: fr, label: "Plan d'apurement"}]} - { key: apurement, labels: [{lang: fr, label: "Plan d'apurement"}]}
@@ -82,6 +81,5 @@ chill_budget:
- { key: debt_bank, labels: [{lang: fr, label: "Dette de découvert bancaire utilisé"}]} - { key: debt_bank, labels: [{lang: fr, label: "Dette de découvert bancaire utilisé"}]}
- { key: debt_garbage, labels: [{lang: fr, label: "Dette de taxe dordures ménagère"}]} - { key: debt_garbage, labels: [{lang: fr, label: "Dette de taxe dordures ménagère"}]}
- { key: debt_other, labels: [{lang: fr, label: "Dette autre"}]} - { key: debt_other, labels: [{lang: fr, label: "Dette autre"}]}
- { key: credit, labels: [{lang: fr, label: "Crédit"}]}
- { key: autre, labels: [{lang: fr, label: "Autre"}]} - { key: autre, labels: [{lang: fr, label: "Autre"}]}

View File

@@ -0,0 +1,3 @@
chill_calendar:
remote_calendars_sync:
enabled: false

View File

@@ -3,3 +3,10 @@ framework:
# allow to debug from ngrok, useful for webhooks coming from outside: # allow to debug from ngrok, useful for webhooks coming from outside:
- '^(.+\.)?ngrok\.io$' - '^(.+\.)?ngrok\.io$'
- 'nginx' - 'nginx'
## Open files in phpstorm IDE from profiler links
# ref: https://symfony.com/doc/current/reference/configuration/framework.html#ide
# need: https://github.com/sanduhrs/phpstorm-url-handler/blob/master/phpstorm-url-handler
# set var in file .env.dev.local (PROJECT_DIR=<relative path from home folder>)
ide: 'phpstorm://open?file=%%f&line=%%l&/var/www/app/>%env(resolve:PROJECT_DIR)%'

View File

@@ -1,4 +0,0 @@
# See https://symfony.com/doc/current/email/dev_environment.html
swiftmailer:
# send all emails to a specific address
#delivery_addresses: ['me@example.com']

View File

@@ -1,3 +1,10 @@
framework:
cache:
pools:
doctrine.system_cache_pool:
adapter: cache.adapter.redis
doctrine: doctrine:
dbal: dbal:
url: '%env(resolve:DATABASE_URL)%' url: '%env(resolve:DATABASE_URL)%'
@@ -5,7 +12,7 @@ doctrine:
geometry: string geometry: string
# IMPORTANT: You MUST configure your server version, # IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file) # either here or in the DATABASE_URL env var (see .env file)
#server_version: '5.7' #server_version: '14'
orm: orm:
auto_generate_proxy_classes: true auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.default naming_strategy: doctrine.orm.naming_strategy.default

View File

@@ -7,7 +7,7 @@ doctrine_migrations:
'Chill\Migrations\Activity': '@ChillActivityBundle/migrations' 'Chill\Migrations\Activity': '@ChillActivityBundle/migrations'
'Chill\Migrations\DocStore': '@ChillDocStoreBundle/migrations' 'Chill\Migrations\DocStore': '@ChillDocStoreBundle/migrations'
'Chill\Migrations\CustomFields': '@ChillCustomFieldsBundle/migrations' 'Chill\Migrations\CustomFields': '@ChillCustomFieldsBundle/migrations'
# 'Chill\Migrations\Event': '@ChillEventBundle/migrations' 'Chill\Migrations\Event': '@ChillEventBundle/migrations'
'Chill\Migrations\Person': '@ChillPersonBundle/migrations' 'Chill\Migrations\Person': '@ChillPersonBundle/migrations'
'Chill\Migrations\Task': '@ChillTaskBundle/migrations' 'Chill\Migrations\Task': '@ChillTaskBundle/migrations'
'Chill\Migrations\ThirdParty': '@ChillThirdPartyBundle/migrations' 'Chill\Migrations\ThirdParty': '@ChillThirdPartyBundle/migrations'

View File

@@ -33,6 +33,3 @@ framework:
## sf4 check: ou à déplacer dans un chill.yaml ## sf4 check: ou à déplacer dans un chill.yaml
assets: assets:
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json' json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
templating:
engines: ['twig']

View File

@@ -0,0 +1,3 @@
knpu_oauth2_client:
clients:
# configure your clients as described here: https://github.com/knpuniversity/oauth2-client-bundle#configuration

View File

@@ -0,0 +1,12 @@
lexik_jwt_authentication:
secret_key: '%env(resolve:JWT_SECRET_KEY)%'
public_key: '%env(resolve:JWT_PUBLIC_KEY)%'
pass_phrase: '%env(JWT_PASSPHRASE)%'
# required for wopi - recommended duration
token_ttl: 36000
token_extractors:
query_parameter:
enabled: true
name: access_token

View File

@@ -0,0 +1,27 @@
framework:
messenger:
# reset services after consuming messages
# reset_on_message: true
# Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
failure_transport: failed
transports:
# https://symfony.com/doc/current/messenger.html#transport-configuration
async: '%env(MESSENGER_TRANSPORT_DSN)%'
priority:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
failed: 'doctrine://default?queue_name=failed'
# sync: 'sync://'
routing:
# Route your messages to the transports
# 'App\Message\YourMessage': async
'Chill\CalendarBundle\Messenger\Message\CalendarRangeMessage': async
'Chill\CalendarBundle\Messenger\Message\CalendarRangeRemovedMessage': async
'Chill\CalendarBundle\Messenger\Message\CalendarRemovedMessage': async
'Chill\CalendarBundle\Messenger\Message\CalendarMessage': async
'Chill\CalendarBundle\Messenger\Message\InviteUpdateMessage': async
'Chill\CalendarBundle\Messenger\Message\MSGraphChangeNotificationMessage': async
'Chill\MainBundle\Service\ShortMessage\ShortMessage': async
'Chill\DocGeneratorBundle\Service\Messenger\RequestGenerationMessage': priority

View File

@@ -1,9 +1,6 @@
doctrine: doctrine:
orm: orm:
auto_generate_proxy_classes: false auto_generate_proxy_classes: false
metadata_cache_driver:
type: pool
pool: doctrine.system_cache_pool
query_cache_driver: query_cache_driver:
type: pool type: pool
pool: doctrine.system_cache_pool pool: doctrine.system_cache_pool

View File

@@ -0,0 +1,9 @@
lexik_jwt_authentication:
# in production, the secret must be located in an environment variable
# for converting the file to a raw variable, use this command:
#
# cat path/to/private_or_public.pem | base64 -w0
#
# then copy past the printed string into the dedicated environment variable
secret_key: '%env(base64:resolve:JWT_SECRET_KEY)%'
public_key: '%env(base64:resolve:JWT_PUBLIC_KEY)%'

View File

@@ -29,6 +29,14 @@ security:
pattern: ^/(_(profiler|wdt)|css|images|js)/ pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false security: false
wopi:
pattern: ^/wopi
provider: chain_provider
stateless: true
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
default: default:
anonymous: ~ anonymous: ~
provider: chain_provider provider: chain_provider
@@ -38,7 +46,7 @@ security:
#csrf_provider: security.csrf.token_manager #csrf_provider: security.csrf.token_manager
logout_on_user_change: true logout_on_user_change: true
logout: logout:
path: /saml/logout path: /logout
# uncomment to enable impersonate mode in Chill # uncomment to enable impersonate mode in Chill
# https://symfony.com/doc/current/security/impersonating_user.html # https://symfony.com/doc/current/security/impersonating_user.html
@@ -54,7 +62,7 @@ security:
- { path: ^/saml/metadata, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/saml/metadata, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/(login|logout), roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/(login|logout), roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/wopi, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/wopi, roles: IS_AUTHENTICATED_FULLY }
# access for homepage, the homepage redirect admin to admin section # access for homepage, the homepage redirect admin to admin section
- { path: ^/$, roles: [ IS_AUTHENTICATED_REMEMBERED ] } - { path: ^/$, roles: [ IS_AUTHENTICATED_REMEMBERED ] }
- { path: ^/homepage$, roles: [ IS_AUTHENTICATED_REMEMBERED ] } - { path: ^/homepage$, roles: [ IS_AUTHENTICATED_REMEMBERED ] }

View File

@@ -1,3 +0,0 @@
swiftmailer:
url: '%env(MAILER_URL)%'
spool: { type: 'memory' }

View File

@@ -0,0 +1,4 @@
doctrine:
dbal:
# "TEST_TOKEN" is typically set by ParaTest
dbname: 'main_test%env(default::TEST_TOKEN)%'

View File

@@ -1,2 +0,0 @@
swiftmailer:
disable_delivery: true

View File

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

9
config/preload.php Normal file
View File

@@ -0,0 +1,9 @@
<?php
if (file_exists(dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php';
}
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
}

View File

@@ -1,3 +1,3 @@
chill_wopi_bundle: chill_wopi_bundle:
resource: '@ChillWopiBundle/Resources/config/routes/routes.php' resource: '@ChillWopiBundle/Resources/config/routes/routes.php'
prefix: /wopi prefix: /chill/wopi

View File

@@ -19,7 +19,6 @@ services:
- '../src/DependencyInjection/' - '../src/DependencyInjection/'
- '../src/Entity/' - '../src/Entity/'
- '../src/Kernel.php' - '../src/Kernel.php'
- '../src/Tests/'
# controllers are imported separately to make sure services can be injected # controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class # as action arguments even if you don't extend any base controller class
@@ -36,15 +35,7 @@ services:
resource: '../src/Service/' resource: '../src/Service/'
Chill\WopiBundle\Service\Wopi\ChillWopi:
decorates: ChampsLibres\WopiLib\Contract\Service\WopiInterface
arguments:
$cache: '@cache.user_data'
ChampsLibres\WopiLib\Service\DocumentLockManager: ChampsLibres\WopiLib\Service\DocumentLockManager:
arguments: arguments:
$cache: '@cache.user_data' $cache: '@cache.user_data'
App\Service\Wopi\NullProofValidator:
decorates: ChampsLibres\WopiLib\Contract\Service\ProofValidatorInterface

View File

@@ -8,7 +8,7 @@ services:
args: args:
UID: ${PHP_FPM_USER:-1000} UID: ${PHP_FPM_USER:-1000}
# uncomment and set your own image if needed # uncomment and set your own image if needed
image: ${IMAGE_PHP-chill_php}:${VERSION:-latest} image: ${IMAGE_PHP-chill_php82}:${VERSION:-latest}
volumes: volumes:
- .:/var/www/app - .:/var/www/app
environment: environment:

View File

@@ -18,6 +18,8 @@ services:
- PHP_FPM_USER=1000 - PHP_FPM_USER=1000
- PHP_FPM_GROUP=100 - PHP_FPM_GROUP=100
- COMPOSER_HOME=/var/www/app/.composer - COMPOSER_HOME=/var/www/app/.composer
# this is required to run tests with database from vendor/chill-project/chill-bundles directory
- DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres?serverVersion=14&charset=utf8
links: links:
- smtp - smtp
@@ -26,9 +28,11 @@ services:
- .:/var/www/app - .:/var/www/app
db: db:
image: postgis/postgis:12-3.1-alpine
volumes: volumes:
- ./docker/db/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./docker/db/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
# if you prefer to store the data somewhere into your user path, instead of the docker's path
# this is useful not to loose data when you run `docker container prune` or `docker volume prune`
- /path/to/your/db/data:/var/lib/postgresql
ports: ports:
- "127.0.0.1:5432:5432" - "127.0.0.1:5432:5432"
environment: environment:

View File

@@ -10,7 +10,7 @@ services:
args: args:
UID: ${PHP_FPM_USER:-1000} UID: ${PHP_FPM_USER:-1000}
# uncomment and set your own image if needed # uncomment and set your own image if needed
image: ${IMAGE_PHP-chill_php}:${VERSION:-latest} image: ${IMAGE_PHP-chill_php82}:${VERSION:-latest}
# #
# normally, you should not mount any volume and use your own image # normally, you should not mount any volume and use your own image
# #

View File

@@ -8,7 +8,7 @@ services:
args: args:
UID: ${PHP_FPM_USER:-1000} UID: ${PHP_FPM_USER:-1000}
# uncomment and set your own image if needed # uncomment and set your own image if needed
image: ${IMAGE_PHP:-chill_php}:${VERSION:-latest} image: ${IMAGE_PHP:-chill_php82}:${VERSION:-latest}
volumes: volumes:
- .:/var/www/app - .:/var/www/app
environment: environment:
@@ -34,7 +34,7 @@ services:
ports: ports:
- "8001:80" - "8001:80"
db: db:
image: postgis/postgis:12-3.1-alpine image: postgis/postgis:14-3.3-alpine
volumes: volumes:
- ./docker/db/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./docker/db/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
ports: ports:

View File

@@ -18,4 +18,4 @@ docker run \
--volume ${PWD}:/app \ --volume ${PWD}:/app \
--workdir /app \ --workdir /app \
--env YARN_CACHE_FOLDER=/app/.yarncache \ --env YARN_CACHE_FOLDER=/app/.yarncache \
node:14 ${cmd} node:20 ${cmd}

View File

@@ -36,8 +36,13 @@ fi
if [ "${APP_ENV}" = "prod" ]; then if [ "${APP_ENV}" = "prod" ]; then
composer dump-env "${APP_ENV}" composer dump-env "${APP_ENV}"
chmod +r /var/www/app/.env.local.php chmod +r /var/www/app/.env.local.php
fi
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
fi
fi
if [ "${CLEAR_CACHE}" != "false" ]; then if [ "${CLEAR_CACHE}" != "false" ]; then
#prepare cache #prepare cache

View File

@@ -1,63 +1,14 @@
{ {
"devDependencies": { "workspaces": [
"@alexlafroscia/yaml-merge": "^4.0.0", "vendor/chill-project/chill-bundles"
"@apidevtools/swagger-cli": "^4.0.4",
"@ckeditor/ckeditor5-build-classic": "^25.0.0",
"@ckeditor/ckeditor5-dev-utils": "^24.3.0",
"@ckeditor/ckeditor5-dev-webpack-plugin": "^24.3.0",
"@ckeditor/ckeditor5-markdown-gfm": "^25.0.0",
"@ckeditor/ckeditor5-theme-lark": "^25.0.0",
"@ckeditor/ckeditor5-vue": "^2.0.1",
"@symfony/webpack-encore": "^0.33.0",
"@vue/compiler-sfc": "^3.0.11",
"bindings": "^1.5.0",
"bootstrap": "^5.0.1",
"chokidar": "^3.5.1",
"fork-awesome": "^1.1.7",
"jquery": "^3.6.0",
"node-sass": "^4.14.1",
"popper.js": "^1.16.1",
"postcss-loader": "^3.0.0",
"raw-loader": "^3.1.0",
"sass-loader": "^9.0.1",
"select2": "^4.0.13",
"select2-bootstrap-theme": "0.1.0-beta.10",
"style-loader": "^1.3.0",
"vue-loader": "^16.0.0",
"webpack-cli": "^3.3.12"
},
"dependencies": {
"@fullcalendar/core": "^5.8.0",
"@fullcalendar/daygrid": "^5.8.0",
"@fullcalendar/interaction": "^5.8.0",
"@fullcalendar/list": "^5.8.0",
"@fullcalendar/timegrid": "^5.8.0",
"@fullcalendar/vue3": "^5.8.0",
"@popperjs/core": "^2.9.2",
"dropzone": "^5.7.6",
"es6-promise": "^4.2.8",
"leaflet": "^1.7.1",
"masonry-layout": "^4.2.2",
"mime-types": "^2.1.29",
"swagger-ui": "^3.48.0",
"vis-network": "^9.1.0",
"vue": "^3.0.11",
"vue-i18n": "^9.1.6",
"vue-multiselect": "3.0.0-alpha.2",
"vue-toast-notification": "^2.0",
"vuex": "^4.0.0"
},
"browserslist": [
"Firefox ESR"
], ],
"private": true,
"devDependencies": {
"bootstrap": "5.2.3"
},
"scripts": { "scripts": {
"dev-server": "encore dev-server",
"dev": "encore dev",
"watch": "encore dev --watch",
"build": "encore production --progress",
"specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml", "specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml",
"specs-validate": "swagger-cli validate templates/api/specs.yaml", "specs-validate": "swagger-cli validate templates/api/specs.yaml",
"specs": "yarn run specs-build && yarn run specs-validate" "specs": "yarn run specs-build && yarn run specs-validate"
}, }
"private": true
} }

View File

@@ -13,7 +13,7 @@ if ($_SERVER['APP_DEBUG']) {
} }
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) { if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO);
} }
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) { if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {

View File

@@ -1,7 +1,4 @@
{ {
"box/spout": {
"version": "v3.3.0"
},
"brick/math": { "brick/math": {
"version": "0.9.3" "version": "0.9.3"
}, },
@@ -51,16 +48,17 @@
"version": "v0.5.3" "version": "v0.5.3"
}, },
"doctrine/doctrine-bundle": { "doctrine/doctrine-bundle": {
"version": "2.0", "version": "2.7",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "2.0", "version": "2.3",
"ref": "a9f2463b9f73efe74482f831f03a204a41328555" "ref": "b8ddff356705ad8e704ea75b6872ce89a15d614d"
}, },
"files": [ "files": [
"config/packages/doctrine.yaml", "config/packages/doctrine.yaml",
"config/packages/prod/doctrine.yaml", "config/packages/prod/doctrine.yaml",
"config/packages/test/doctrine.yaml",
"src/Entity/.gitignore", "src/Entity/.gitignore",
"src/Repository/.gitignore" "src/Repository/.gitignore"
] ]
@@ -165,6 +163,18 @@
"knplabs/knp-time-bundle": { "knplabs/knp-time-bundle": {
"version": "v1.12.0" "version": "v1.12.0"
}, },
"knpuniversity/oauth2-client-bundle": {
"version": "2.11",
"recipe": {
"repo": "github.com/symfony/recipes-contrib",
"branch": "main",
"version": "1.20",
"ref": "1ff300d8c030f55c99219cc55050b97a695af3f6"
},
"files": [
"config/packages/knpu_oauth2_client.yaml"
]
},
"laminas/laminas-code": { "laminas/laminas-code": {
"version": "3.4.1" "version": "3.4.1"
}, },
@@ -174,6 +184,18 @@
"league/csv": { "league/csv": {
"version": "9.6.2" "version": "9.6.2"
}, },
"lexik/jwt-authentication-bundle": {
"version": "2.16",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "2.5",
"ref": "5b2157bcd5778166a5696e42f552ad36529a07a6"
},
"files": [
"config/packages/lexik_jwt_authentication.yaml"
]
},
"loophp/psr-http-message-bridge-bundle": { "loophp/psr-http-message-bridge-bundle": {
"version": "1.0.0" "version": "1.0.0"
}, },
@@ -333,9 +355,6 @@
"psr/http-message": { "psr/http-message": {
"version": "1.0.1" "version": "1.0.1"
}, },
"psr/link": {
"version": "1.0.0"
},
"psr/log": { "psr/log": {
"version": "1.1.3" "version": "1.1.3"
}, },
@@ -429,9 +448,6 @@
"spomky-labs/base64url": { "spomky-labs/base64url": {
"version": "v2.0.4" "version": "v2.0.4"
}, },
"swiftmailer/swiftmailer": {
"version": "v6.2.5"
},
"symfony/asset": { "symfony/asset": {
"version": "v4.4.11" "version": "v4.4.11"
}, },
@@ -530,15 +546,16 @@
"version": "4.4", "version": "4.4",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "4.4", "version": "4.4",
"ref": "af2e2efad553bc959a0c61d9185e33ca9eec5c99" "ref": "24eb45d1355810154890460e6a05c0ca27318fe7"
}, },
"files": [ "files": [
"config/bootstrap.php", "config/bootstrap.php",
"config/packages/cache.yaml", "config/packages/cache.yaml",
"config/packages/framework.yaml", "config/packages/framework.yaml",
"config/packages/test/framework.yaml", "config/packages/test/framework.yaml",
"config/preload.php",
"config/routes/dev/framework.yaml", "config/routes/dev/framework.yaml",
"config/services.yaml", "config/services.yaml",
"public/index.php", "public/index.php",
@@ -582,6 +599,18 @@
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
} }
}, },
"symfony/messenger": {
"version": "5.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.4",
"ref": "dfe610928a5c61619bdfc830cd7fa7f091368023"
},
"files": [
"config/packages/messenger.yaml"
]
},
"symfony/mime": { "symfony/mime": {
"version": "v5.3.8" "version": "v5.3.8"
}, },
@@ -624,9 +653,6 @@
"symfony/polyfill-ctype": { "symfony/polyfill-ctype": {
"version": "v1.18.0" "version": "v1.18.0"
}, },
"symfony/polyfill-iconv": {
"version": "v1.22.0"
},
"symfony/polyfill-intl-grapheme": { "symfony/polyfill-intl-grapheme": {
"version": "v1.18.0" "version": "v1.18.0"
}, },
@@ -713,23 +739,6 @@
"symfony/string": { "symfony/string": {
"version": "v5.1.3" "version": "v5.1.3"
}, },
"symfony/swiftmailer-bundle": {
"version": "2.5",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "2.5",
"ref": "ae4d22af30bbd484506bc1817c5a3ef72c855b93"
},
"files": [
"config/packages/dev/swiftmailer.yaml",
"config/packages/swiftmailer.yaml",
"config/packages/test/swiftmailer.yaml"
]
},
"symfony/templating": {
"version": "v4.4.11"
},
"symfony/translation": { "symfony/translation": {
"version": "3.3", "version": "3.3",
"recipe": { "recipe": {
@@ -782,9 +791,6 @@
"symfony/var-exporter": { "symfony/var-exporter": {
"version": "v5.1.3" "version": "v5.1.3"
}, },
"symfony/web-link": {
"version": "v5.2.12"
},
"symfony/web-profiler-bundle": { "symfony/web-profiler-bundle": {
"version": "3.3", "version": "3.3",
"recipe": { "recipe": {

View File

@@ -14,13 +14,6 @@ Save activity: Sauver l'échange
'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé. 'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé.
'Success : activity updated!': L'échange a été mis à jour. 'Success : activity updated!': L'échange a été mis à jour.
'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mis à jour. 'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mis à jour.
CHILL_ACTIVITY_CREATE: Créer un échange
CHILL_ACTIVITY_UPDATE: Modifier un échange
CHILL_ACTIVITY_SEE: Voir un échange
CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des échanges
CHILL_ACTIVITY_DELETE: Supprimer un échange
CHILL_ACTIVITY_STATS: Statistique des échanges
CHILL_ACTIVITY_LIST: Liste des échanges
Activity configuration: Configuration des échanges Activity configuration: Configuration des échanges
Activity configuration menu: Configuration des échanges Activity configuration menu: Configuration des échanges
Activity Types: Types d'échange Activity Types: Types d'échange

30
tsconfig.json Normal file
View File

@@ -0,0 +1,30 @@
{
"extends": "@tsconfig/node14/tsconfig.json",
"compilerOptions": {
"lib": [
"es2020",
"dom"
],
"module": "es6",
"moduleResolution": "node",
"isolatedModules": true,
"allowJs": false,
"checkJs": false,
"importHelpers": true,
"allowSyntheticDefaultImports": true,
"types": [
"node"
],
"sourceMap": true
},
"includes": [
"./vendor/chill-project/chill-bundles/src/Bundle/**/*.ts",
"./vendor/chill-project/chill-bundles/src/Bundle/**/*.vue",
"./src/**/*.ts",
"./src/**/*.vue"
],
"exclude": [
"./vendor/chill-project/chill-bundles/tests/*",
"./vendor/chill-project/chill-bundles/docs/*"
]
}

View File

@@ -84,6 +84,12 @@ async function populateConfig(Encore, chillEntries) {
// export the final configuration // export the final configuration
module.exports = (async () => { module.exports = (async () => {
// Manually configure the runtime environment if not already configured yet by the "encore" command.
// It's useful when you use tools that rely on webpack.config.js file.
if (!Encore.isRuntimeEnvironmentConfigured()) {
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
}
// basic encore configuration // basic encore configuration
Encore Encore
.setOutputPath('public/build/') .setOutputPath('public/build/')
@@ -92,13 +98,21 @@ module.exports = (async () => {
.enableVueLoader(() => {}, { .enableVueLoader(() => {}, {
version: 3 version: 3
}) })
.enableTypeScriptLoader(function (tsConfig){
tsConfig.appendTsSuffixTo = [/\.vue$/];
tsConfig.appendTsxSuffixTo = [/\.vue$/];
// temporary fix for https://github.com/vuejs/vue-loader/issues/1915 and https://github.com/vuejs/core/issues/2855
tsConfig.compilerOptions = {strict: !Encore.isProduction()};
tsConfig.silent = false;
})
//.enableForkedTypeScriptTypesChecking()
.autoProvidejQuery() .autoProvidejQuery()
.enableSourceMaps(!Encore.isProduction()) .enableSourceMaps(!Encore.isProduction())
.cleanupOutputBeforeBuild() .cleanupOutputBeforeBuild()
.enableVersioning() .enableVersioning()
.enableSingleRuntimeChunk() .enableSingleRuntimeChunk()
.splitEntryChunks() .splitEntryChunks()
.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } }) //.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } })
; ;
// populate config with chill entries // populate config with chill entries

12203
yarn.lock

File diff suppressed because it is too large Load Diff