Commit c3be4396 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Merge branch 'starling' into kusanagi

parents 55b186f6 0f80da61
Loading
Loading
Loading
Loading
+10 −0
Changes for CHANGELOG.md: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,16 @@
## 2025

### Mai
 - [starling] Mise à jour de la librairie **unicaen/signature** (v 1.0.6) avec prise en charge de l'API TOKEN
 - [starling] Connecteur DB : Ajout d'une option `roles_correspondance` afin de configurer la correspondance entre les rôles du connecteur et ceux présents dans Oscar
 - [starling] Docker : Possibilité de personnaliser le script d'initialisation Postgresql (permet de faire des répliques)
 - [starling] Docker : Ajout des fichiers INI de php dans les volumes
 - [starling] FIX : durée des journées affichées en double
 - [starling] UP : Les *datepicker* dans les Jalons/Versements permettent maintenant la saisie manuelle
 - [starling] FIX : La note financière est de retour sous les versements
 - [starling] UP : Les numérotations personnalisées sont accessibles depuis le gabarit des feuilles de temps (voir le gabarit par défaut)
 - [starling] Docker : Les templates / logos ont été ajouté comme volume pour faciliter la personnalisation 
 - [starling] Fix : Le mail pour le validateur de l'étape 2 et 3 partent correctement  
 - [kusanagi] Ajout du module PCRU

### Avril

compose.yml

deleted100644 → 0
+0 −268
Changes for compose.yml: 0 added lines, 268 removed lines.
Original line number Diff line number Diff line
########################################################################
# OSCAR DOCKER (Prod)
########################################################################
networks:
  app-network:
    driver: bridge

volumes:
  elastic_data:
    driver: local

services:
  ######################################################################
  # POSTGRESQL
  app-postgres:
    container_name: app-postgres

    restart: always

    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U ${POSGRESQL_USER} -d ${POSGRESQL_BASE}" ]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s


    environment:
      # Accès BDD
      POSTGRES_USER: ${POSGRESQL_USER}
      POSTGRES_PASSWORD: ${POSGRESQL_PASS}
      POSTGRES_DB: ${POSGRESQL_BASE}
      http_proxy: ${HTTP_PROXY}
      no_proxy: ${NO_PROXY}

    networks:
      - app-network

    env_file:
      - .env

    volumes:
      - ${VOLUMES_POSTGRESQL_DATAS}:/var/lib/postgresql/data
      - ./docker/postgres_initdb.d/:/docker-entrypoint-initdb.d

    build:
      context: ./docker
      dockerfile: postgres_Dockerfile
      args:
        - HTTP_PROXY

    ports:
      - "6543:5432"

  ######################################################################
  ### APACHE
  app-apache:
    container_name: app-apache
    restart: unless-stopped
    volumes:
      - ./:/var/application

    depends_on:
      - app-php

    networks:
      - app-network

    environment:
      http_proxy: ${HTTP_PROXY}
      no_proxy: ${NO_PROXY}

    env_file:
      - .env
    build:
      context: ./docker/
      dockerfile: apache_Dockerfile
      args:
        - HTTP_PROXY
        - PHP_HOST

    extra_hosts:
      - host.docker.internal:host-gateway

    ports:
      - "8888:80"


  ######################################################################
  ### GEARMAN
  app-gearman:
    container_name: app-gearman
    image: artefactual/gearmand:1.1.21.2-alpine
    depends_on:
      - app-postgres
    environment:
      http_proxy: ${HTTP_PROXY}
      no_proxy: ${NO_PROXY}
    networks:
      - app-network
    env_file:
      - .env
    tty: true
    restart: "unless-stopped"


  ######################################################################
  ### ELASTICSEARCH
  app-elasticsearch:
    container_name: app-elasticsearch
    image: elasticsearch:7.17.28
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms${ELASTICSEARCH_MEMORY} -Xmx${ELASTICSEARCH_MEMORY}"
    depends_on:
      app-postgres:
        condition: service_healthy
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ./docker/es_elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./docker/es_log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties
      - elastic_data:/usr/share/elasticsearch/data
    user: "1000:1000"
    networks:
      - app-network
    env_file:
      - .env
    tty: true
    restart: "always"


  ######################################################################
  ### APPLICATION (Utilisée par Apache)
  app-php:
    container_name: app-php
    restart: unless-stopped
    depends_on:
      - app-worker
    volumes:
      - ./:/var/application
      # Dossiers
      - ${VOLUMES_DOCUMENTS_ACTIVITY}:/var/documents/activity
      - ${VOLUMES_DOCUMENTS_PUBLIC}:/var/documents/public
      - ${VOLUMES_DOCUMENTS_REQUEST}:/var/documents/request
      - ${VOLUMES_DOCUMENTS_PCRU}:/var/documents/pcru
      - ${VOLUMES_CACHE_DOCTRINE}:/var/application/data/DoctrineORMModule/Proxy
      - ${VOLUMES_LOG}:/var/application/logs
      # Fichiers de configuration
      - ${VOLUMES_CONFIG}/oscar-editable.yml:/var/application/config/autoload/oscar-editable.yml
      - ${VOLUMES_CONFIG}/local.php:/var/application/config/autoload/local.php
      - ${VOLUMES_CONFIG}/oscar.yml:/var/application/config/autoload/oscar.yml
      - ${VOLUMES_CONFIG}/unicaen-app.local.php:/var/application/config/autoload/unicaen-app.local.php
      - ${VOLUMES_CONFIG}/unicaen-auth.local.php:/var/application/config/autoload/unicaen-auth.local.php
      - ${VOLUMES_CONFIG}/unicaen-signature.local.php:/var/application/config/autoload/unicaen-signature.local.php
      # Templates
      - ${VOLUMES_TEMPLATES}/mail.phtml:/var/application/data/templates/mail.phtml
      - ${VOLUMES_TEMPLATES}/logo.png:/var/application/data/templates/logo.png
      - ${VOLUMES_TEMPLATES}/timesheet_period.default.html.php:/var/application/data/templates/timesheet_period.default.html.php
      - ${VOLUMES_TEMPLATES}/timesheet_person_month.default.html.php:/var/application/data/templates/timesheet_person_month.default.html.php
      # Fichiers (DEVELOPPEMENT UNIQUEMENT)
      #- ./docker/app_99-debug.ini:/usr/local/etc/php/conf.d/99-app-debug.ini
#    command:
#      - chmod -R 777 /var/application/data
    networks:
      - app-network
    env_file:
      - .env
    environment:
      http_proxy: ${HTTP_PROXY}
      no_proxy: ${NO_PROXY}
    build:
      context: ./docker/
      dockerfile: app_Dockerfile
      args:
        - HTTP_PROXY
        - ENV_MODE


    ######################################################################
  ### APPLICATION (Utilisée en mode CLI)
  app-worker:
    container_name: app-worker
    restart: unless-stopped
    depends_on:
      - app-elasticsearch
    volumes:
      - ./:/var/application
      # Dossiers
      - ${VOLUMES_DOCUMENTS_ACTIVITY}:/var/documents/activity
      - ${VOLUMES_DOCUMENTS_PUBLIC}:/var/documents/public
      - ${VOLUMES_DOCUMENTS_REQUEST}:/var/documents/request
      - ${VOLUMES_DOCUMENTS_PCRU}:/var/documents/pcru
      - ${VOLUMES_CACHE_DOCTRINE}:/var/application/data/DoctrineORMModule/Proxy
      - ${VOLUMES_LOG}:/var/application/logs
      # Fichiers de configuration
      - ${VOLUMES_CONFIG}/oscar-editable.yml:/var/application/config/autoload/oscar-editable.yml
      - ${VOLUMES_CONFIG}/local.php:/var/application/config/autoload/local.php
      - ${VOLUMES_CONFIG}/oscar.yml:/var/application/config/autoload/oscar.yml
      - ${VOLUMES_CONFIG}/unicaen-app.local.php:/var/application/config/autoload/unicaen-app.local.php
      - ${VOLUMES_CONFIG}/unicaen-auth.local.php:/var/application/config/autoload/unicaen-auth.local.php
      - ${VOLUMES_CONFIG}/unicaen-signature.local.php:/var/application/config/autoload/unicaen-signature.local.php
    networks:
      - app-network
    env_file:
      - .env
    environment:
      http_proxy: ${HTTP_PROXY}
      no_proxy: ${NO_PROXY}
    build:
      context: ./docker/
      dockerfile: app_Dockerfile
      args:
        - HTTP_PROXY
        - ENV_MODE
    command: ["/bin/bash", "/entrypoint.sh"]

  ######################################################################
  ### VITE
  app-vite:
    container_name: app-vite
    volumes:
      - ./:/var/application
    networks:
      - app-network
    build:
      context: ./docker/dev/vite
      dockerfile: Dockerfile
#    deploy:
#      replicas: ${DEVELOPPEMENT:-0}
    ports:
      - "5173:5173"


  ######################################################################
  # KIBANA
  kibana:
    image: docker.elastic.co/kibana/kibana:7.16.1
    container_name: app-kibana
    depends_on:
      - app-elasticsearch
    networks:
      - app-network
#    deploy:
#      replicas: ${DEVELOPPEMENT:-0}
    environment:
      - ELASTICSEARCH_HOSTS=http://app-elasticsearch:9200  # Connexion à Elasticsearch
      - LOGGING_ROOT_LEVEL=error
    ports:
      - "5601:5601"


  ######################################################################
  # MAILHOG (capture les mails envoyés depuis Oscar)
  mailhog:
    image: mailhog/mailhog
    container_name: app-mailhog
    networks:
      - app-network
#    deploy:
#      replicas: ${DEVELOPPEMENT:-0}
    entrypoint: ["/bin/sh", "-c", "MailHog"]
    ports:
      - "8025:8025" # Interface web MailHog
      - "1025:1025" # Port SMTP pour envoyer les mails
 No newline at end of file
+1 −1
Changes for composer.json: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@
    "guzzlehttp/guzzle": "^7.0",
    "phpoffice/phpspreadsheet": "^1.29",
    "phpoffice/phpword": "^1.1",
    "unicaen/signature": "1.0.1",
    "unicaen/signature": "1.0.6",
    "ext-gettext": "*",
    "ext-fileinfo": "*",
    "symfony/filesystem": "^7.1",
+6 −5
Changes for composer.lock: 6 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -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": "46bac0defb809b8d4f3d1a210a99f498",
    "content-hash": "fa0ed2f1e2f1580b688987cf47bef05f",
    "packages": [
        {
            "name": "apereo/phpcas",
@@ -9171,11 +9171,11 @@
        },
        {
            "name": "unicaen/signature",
            "version": "1.0.1",
            "version": "1.0.6",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/signature.git",
                "reference": "73b45fd3eddd973ca29d03d7a979ca22e3eb7034"
                "reference": "9392d8147657e1019c7f1bbc5fa791f19d6397da"
            },
            "require": {
                "ext-fileinfo": "*",
@@ -9205,7 +9205,7 @@
                }
            },
            "description": "Module de signature électronique",
            "time": "2025-01-07T14:37:22+00:00"
            "time": "2025-05-19T09:12:26+00:00"
        },
        {
            "name": "unicaen/utilisateur",
@@ -11264,7 +11264,8 @@
    "platform": {
        "php": ">=8.2",
        "ext-gettext": "*",
        "ext-fileinfo": "*"
        "ext-fileinfo": "*",
        "ext-calendar": "*"
    },
    "platform-dev": [],
    "plugin-api-version": "2.2.0"
+2 −2
Changes for config/autoload/global.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ return array(
//                'process' => 'todo'
//            ]
        ],

        /****
        // Durée par défaut des journées
        'declarationsDurations' => [
            'dayLength' => [
@@ -98,7 +98,7 @@ return array(
                '3' => 3.0,
            ],
        ],

        /****/
        'pcru' => [
            // Référenciel PCRU (Fichiers contenant les données officielles)
            'polecompetitivite' => __DIR__ .'/../../install/pcru-pole-competitivite.json',
Loading