Skip to content
Snippets Groups Projects
MIGRATION.md 12.5 KiB
Newer Older
Cyril Vazquez's avatar
Cyril Vazquez committed
# Migration 2.8 vers 2.9.4

Dans la section [medona], modification de la directive `packageSchemas` afin d'utiliser l'espace de nom SEDA 2.1 au lieu de SEDA 1 : 

```
packageSchemas = "{
    'seda2' : {
        'label' : 'SEDA 2.1',
        'xmlNamespace' : 'fr:gouv:culture:archivesdefrance:seda:v2.1',
        'phpNamespace' : 'seda2',
        'presenter' : 'seda2/message'
    }
}"
```

# Migration 2.7 vers 2.8

## Vhost
Voir le fichier MIGRATION.md situé à la racine du socle applicatif.
### Changements globaux
Voir le fichier MIGRATION.md situé à la racine du socle applicatif.

### Changement AP

Dans la section [medona], ajout de tous les connecteurs disponibles pour l'application dans la directive `packageConnectors` qui est commentée.

Modification du presenter pour le schema Seda 2 dans la directive `descriptionSchemes` de la section [recordsManagement].

## Schéma SQL
Voir le fichier de migration de base de données socle dans le fichier MIGRATION.md situé à la racine du socle applicatif.

Voir le fichier spécifique

    laabs/src/ext/archivesPubliques/data/sql/pgsql/apV2.7_V2.8.sql
# Migration 2.6 vers 2.7

## Ajout dans la configuration

Dans la section [recordsManagement], ajout de la directive `archiveIdGenerator` qui permet de configurer la cotation automatique lors d'un versement dans l'application.

Dans la section [medona], ajout de la directive `packageConnectors` qui permet la configuration de connecteurs pour faciliter le versement de paquets externes au format incomplet.

Dans la section nouvellement créee [dependency.timestamp], la directive `pathToOpenSSL` a été ajoutée pour faciliter la prise en charge sur Windows :

```
pathToOpenSSL="C:\Program Files\OpenSSL-Win64\bin\openssl"
```

### Ajout du bundle Statistiques dans virtual host

Afin d'accéder aux fonctionnalités relatives aux statistiques, le bundle `Statistics` doit être ajoutée à l'instance dans le fichier vhost.conf :

```
SetEnv LAABS_BUNDLES audit;auth;batchProcessing;contact;digitalResource;lifeCycle;organization;recordsManagement;filePlan;medona;mades;digitalSafe;Statistics
```

Modifications liées à la configuration de la session :
```
SetEnv LAABS_SESSION_START Off
#SetEnv LAABS_SECURE_COOKIE On
```

## Modification de configuration

Dans la section [presentation.maarchRM], la directive `maxResults` livré par défaut est désormais à 500.

Dans la section [auth], modification de la configuration du CSRF :

```
csrfConfig = '{
    "cookieName" : "Csrf",
    "tokenLength" : 32
}'
​```
Dans la section [recordsManagement], modification de la configuration des schémas de description :

```
descriptionSchemes = "{
    'seda' : {
        'label' : 'SEDA 1.0',
        'type' : 'php',
        'search' : 'archivesPubliques/content',
        'uri' : 'archivesPubliques/content',
        'controller' : '',
        'presenter' : ''
    },
    'seda2' : {
        'label' : 'SEDA 2.1',
        'type' : 'php',
        'search' : '',
        'uri' : 'seda2/Content',
        'controller' : '',
        'presenter' : ''
    },
    'log' : {
        'label' : 'log',
        'type' : 'php',
        'uri' : 'recordsManagement/log',
        'search': 'recordsManagement/log'
    }
}"
​```

### Ajout d'un droit utilisateur

Le privilège se prénommant `Traiter les communications` a été ajoutée, ce privilège peut être attribué dans la catégorie de droits 'Communication'.

Un point de menu `Communications à finaliser` a été ajouté sur l'écran d'Echange pour effectuer le traitement manuel des communications:

## Schéma SQL

Voir le fichier spécifique

    laabs/src/ext/archivesPubliques/data/sql/pgsql/apV2.6_V2.7.sql

# Migration 2.4 vers 2.5

Ajout des 2 dépendences PDF et CSRF dans le fichier vhost par défaut.
La dépendance PDF permet de mieux gérer la prévisualisation des ressources dans le navigateur.
Modification du fichier vhost par défaut (suppression de l'extension thirdPartyArchiving).

# Migration 2.3 vers 2.4

### Événement

Ajout de l'évènement recordsManagement/resourceDestruction dans la table "lifeCycle.eventFormat" qui permet la suppression d'une ressource détenue dans une archive.


# Migration 2.2 vers 2.3

## Configuration

**Toutes les modifications qui vont suivre seront à effectuer dans le fichier `configuration.ini`.
Afin de vous aider dans votre migration, le fichier `configuration.ini.default` peut vous servir de modèle.**

### Menu
Le menu général a été modifié.

#### Accès à l'accueil
Un nouveau point de menu permet de revenir à la page d'accueil, 
alors qu'auparavant il fallait cliquer sur le logo dans la barre de navigation.

#### Accès aux échanges de données d'archive
Les points de menu correspondant aux 6 transactions d'échange de données d'archives 
doivent être remplacés par un seul élément de menu qui amène à un nouvel écran de 
suivi des transactions :
  * Transferts entrants,
  * Communication,
  * Restitution,
  * Elimination,
  * Notifications, 
  * Transferts sortants

Ces 6 éléments de menu pour accéder aux transactions sont déplacés vers 
la directive `menu` ajoutée à la section `[medona]`.

Le menu général avant : 
```
menu = "[
    {
        'label' : 'Registre',
        'href'  : '/archivesPubliques/contentDescription',
        'class' : 'fa fa-search fa-fw'
    },
    {
        'label' : 'Transferts entrants',
        'href'  : '#',
        'class' : 'fa fa-sign-in fa-fw',
        'submenu' : [
            {
                'label' : 'Importer un bordereau',
                'href'  : '/transfer'
            },
   ...
```

Le menu après, où tous les menus d'échange ont été "déplacés" vers la section "medona" 
et l'accueil est accessible :
```
menu = "[
    {
        'label' : '',
        'title' : 'Accueil',
        'href'  : '/',
        'class' : 'fa fa-home fa-fw'
    },
    {
        'label' : '',
        'title' : 'Registre',
        'href'  : '/archivesPubliques/contentDescription',
        'class' : 'fa fa-search fa-fw'
    },
    {
        'label' : '',
        'title' : 'Echanges',
        'href'  : '/medona/list',
        'class' : 'fa fa-exchange fa-fw'
    },

```

La configuration du menu dans la section "medona" :
```
[medona]
menu = "[
    {
        'label' : 'Transferts entrants',
        'href'  : '#',
        'class' : 'fa fa-sign-in fa-fw',
        'submenu' : [
            {
                'label' : 'Importer un bordereau',
                'href'  : '/transfer'
            },
    ...
```

Alexandre Morin's avatar
Alexandre Morin committed
# Migration 2.0 vers 2.1
Alexandre Morin's avatar
Alexandre Morin committed

## Configuration

Cyril Vazquez's avatar
Cyril Vazquez committed
**Toutes les modifications qui vont suivre seront à effectuer dans le fichier `configuration.ini`.
Afin de vous aider dans votre migration, le fichier `configuration.ini.default` peut vous servir de modèle.**
Cyril Vazquez's avatar
Cyril Vazquez committed
Dans le but de regrouper la configuration dans un même fichier, nous avons copié le contenu des fichiers suivants dans le fichier principal `configuration.ini` :
Alexandre Morin's avatar
Alexandre Morin committed
- dependency#datasource.ini
- dependency#filesystem.ini
- dependency#html.ini
- dependency#json.ini
- dependency#localisation.ini
- dependency#logger.ini
- dependency#notification.ini
- dependency#repository.ini
- dependency#sdo.ini

Cyril Vazquez's avatar
Cyril Vazquez committed
Tous ces fichiers sont présents dans le dossier `conf.d`.
Alexandre Morin's avatar
Alexandre Morin committed

### Black list
Cyril Vazquez's avatar
Cyril Vazquez committed
 L'option `blackList` a été ajoutée dans la configuration. Cette option permet de désactiver une ou plusieurs route(s) de service.
Cyril Vazquez's avatar
Cyril Vazquez committed
Voici le paramétrage par défaut. Ce paramétrage désactive les routes inutiles pour l'archivage sphère publique. 
Alexandre Morin's avatar
Alexandre Morin committed
```bash
Alexandre Morin's avatar
Alexandre Morin committed
; Blacklist of user stories
blacklistUserStories = "[
   'archiveDeposit/deposit',
   'adminArchive/descriptionField',
   'archiveManagement/modifyDescription'
]"
```

Cyril Vazquez's avatar
Cyril Vazquez committed
### CSRF (facultatif)
Afin de nous protéger des attaques de "Cross-Site Request Forgery", nous avons ajouté une dépendance.
Cyril Vazquez's avatar
Cyril Vazquez committed
La dépendance "csrf" doit être ajoutée dans vos deux vhost (présentation et service) comme ci-dessous.

```bash
SetEnv LAABS_DEPENDENCIES repository;xml;html;localisation;datasource;sdo;json;fileSystem;notification;csrf
```

La dépendance amène une configuration associée.
Si cette configuration n'est pas ajoutée cela n'empêche en rien le bon fonctionnement de l'application.
Cyril Vazquez's avatar
Cyril Vazquez committed
```ini
Alexandre Morin's avatar
Alexandre Morin committed
[dependency.csrf]
whiteList = "['user/login']"
Cyril Vazquez's avatar
Cyril Vazquez committed
config = "{
              'CSRFP_TOKEN' : '',
              'logDirectory' : '/tmp',
              'failedAuthAction' : {
                  'GET' : 0,
                  'POST' : 0
Alexandre Morin's avatar
Alexandre Morin committed
              },
Cyril Vazquez's avatar
Cyril Vazquez committed
              'errorRedirectionPage' : '',
              'customErrorMessage' : '',
              'jsUrl' : '/public/js/csrf/csrfprotector.js',
              'tokenLength' : 10,
              'cookieConfig' : {
                  'path' : '',
                  'domain' : '',
                  'secure' : false
Alexandre Morin's avatar
Alexandre Morin committed
              },
Cyril Vazquez's avatar
Cyril Vazquez committed
              'disabledJavascriptMessage' : 'This site attempts to protect users against <a href='https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29'> Cross-Site Request Forgeries </a> attacks. In order to do so, you must have JavaScript enabled in your web browser otherwise this site will fail to work correctly for you. See details of your web browser for how to enable JavaScript.',
              'verifyGetFor': {}
          }"
Alexandre Morin's avatar
Alexandre Morin committed
```

### Public user story
Cyril Vazquez's avatar
Cyril Vazquez committed
Nous avons déplacé des informations techniques de la BDD vers le fichier de configuration. 
Ces informations ne sont plus censées être modifiées après l'installation.
Cyril Vazquez's avatar
Cyril Vazquez committed
Le contenu doit être identique à la table `"auth"."publicUserStory"`.
Alexandre Morin's avatar
Alexandre Morin committed

Voici un exemple de contenu: 
```bash
publicUserStory = "['app/*']"
```

Alexandre Morin's avatar
Alexandre Morin committed
*Voir sous-menu "Base de données" pour la suppression de la table "auth"."publicUserStory".*
Cyril Vazquez's avatar
Cyril Vazquez committed
### Task
Nous avons déplacé des informations techniques de la BDD vers le fichier de configuration. 
Cyril Vazquez's avatar
Cyril Vazquez committed
Le contenu doit être identique à la table `"batchProcessing"."task"`.
Alexandre Morin's avatar
Alexandre Morin committed

Voici un exemple de contenu: 
```bash
[batchProcessing]
tasks = "[
            {
                'taskId': '01',
                'route' : 'audit/event/createChainjournal',
                'description' : 'Chainer le journal de l\'application'
            },
            {
                'taskId': '02',
                'route' : 'lifeCycle/journal/createChainjournal',
                'description' : 'Chainer le journal du cycle de vie'
            },
            {
                'taskId': '03',
                'route' : 'recordsManagement/archiveCompliance/readPeriodic',
                'description' : 'Intégrité périodique'
            },
            {
                'taskId': '04',
                'route' : 'medona/ArchiveDelivery/updateProcessBatch',
                'description' : 'Traiter les communications'
            },
            {
                'taskId': '05',
                'route' : 'medona/ArchiveDestruction/updateProcessAll',
                'description' : 'Traiter les destructions'
            },
            {
                'taskId': '06',
                'route' : 'medona/ArchiveRestitution/updateProcessBatch',
                'description' : 'Traiter les restitutions'
            },
            {
                'taskId': '07',
                'route' : 'medona/ArchiveTransfer/updateProcessBatch',
                'description' : 'Traiter les transferts'
            },
            {
                'taskId': '08',
                'route' : 'medona/ArchiveTransfer/updateValidateBatch',
                'description' : 'Valider les transferts'
            },
            {
                'taskId': '09',
                'route' : 'medona/message/deleteMessageDirectoryPurge',
                'description' : 'Purge des bordereaux'
            }
        ]"
```

Alexandre Morin's avatar
Alexandre Morin committed
*Voir sous-menu "Base de données" pour la suppression de la table "batchProcessing"."task".*
Cyril Vazquez's avatar
Cyril Vazquez committed
### Menu

Le menu a été restructuré. 
Il vous suffit de remplacer le fichier "menu.ini" utilisé par votre application par celui livré par défaut dans le répertoire `data`.
Alexandre Morin's avatar
Alexandre Morin committed


## Base de données

Cyril Vazquez's avatar
Cyril Vazquez committed
Un fichier de migration a été mis en place pour faciliter la migration de données. 
Ce fichier se nomme `apv2_v2.1.sql` et se situe dans le dossier `src/ext/archivesPubliques/data/sql/pgsql`.
Voici le detail des opérations réalisées dans ce script :
  * Ajout d'une relation d'association entre le profil et le niveau de service. La fonctionnalité n'est pas disponible pour l'archivage public.
  * Modification du type de la colonne "size" pour accepter les fichiers volumineux
  * Ajout du processus de transfert sortant et distinction entre les transferts entrants et sortants 
  * Suppression des tables correspondants à la liste des tâches et des routes publiques.
  * Ajout de la description d'événement pour la fonctionnalité "Reprise sur bordereaux" sur les transferts entrants.
  * Modification des vues pour l'archivage public.