# Synchronisation du référentiel

Waarp Manager offre la possibilité d’être synchronisé avec un référentiel externe. La synchronisation permet de créer et de mettre à jour les partenaires et les sites définis.

Note

Seuls les partenaires de type Waarp R66 (client et serveurs) et Waarp Gateway FTP sont gérés.

Le référentiel en base de donnée doit être mis à jour par vos propres moyens. Après chaque modification du référentiel, un script doit être exécuté pour synchroniser la base de données interne avec le référentiel :

    ./waarp-manager db sync -c waarp-manager.ini

## Opérations effectuées

Le référentiel doit être injecté dans la table `ref_instances` de la base de données utilisée par Waarp Manager.

Lors de l’exécution de la commande `./waarp-manager db sync`, pour chaque ligne créée dans la table `ref_instances`, les opérations suivantes sont effectuées :

- Si le site indiqué n’existe pas, celui-ci est créé.

- Si le partenaire n’existe pas, celui-ci est créé. Sinon, il est mis à jour.

## Structure de la table

La table `ref_instances` a la structure suivante :

Colonne | Type | Description
--- | --- | ---
app_name | text | Le nom de l’application correspondant au partenaire
id_app | text | Identifiant de l’application
env | text | Environnement de l’application
tiers_id | text unique | Identifiant du partenaire pour les transferts en clair
tiers_id_ssl | text unique | Identifiant du partenaire pour les transferts SSL
host_name | text | Identifiant du serveur sur lequel le partenaire est installé
ip_address | text | Adresse IP du serveur sur lequel le partenaire est installé
site_name | text | Nom du site auquel le partenaire appartient
type | text | Type du partenaire (valeurs possibles: `transfer`, `gw`, `r66` ou `gwftp`)
is_server | bool | `true` si le partenaire est un serveur
port_rest | int64 | Port utilisé par l’interface REST du moniteur R66
port_r66 | int64 | Port utilisé par le moniteur R66
port_r66_ssl | int64 | Port utilisé par le moniteur R66 via SSL
port_ftp | int64 | Port utilisé par la passerelle FTP
port_ftp_passive_min | int64 | Port minimal utilisé par la passerelle FTP pour les flux de données passif
port_ftp_passive_max | int64 | Port maximal utilisé par la passerelle FTP pour les flux de données passif
ftp_username | text | Nom d’utilisateur utilisé par la passerelle FTP
aes_key | text | Clé AES utilisée par les partenaires Gateway et Transfer
r66_tls_server_key | text | Clé TLS du serveur utilisée pour le protocole R66-TLS
r66_tls_server_cert | text | Certificat TLS du serveur utilisée pour le protocole R66-TLS

Elle peut être créée avec le code SQL suivant :

    CREATE TABLE IF NOT EXISTS ref_instances (
        app_name text not null default '',
        id_app text not null default '',
        env text not null default '',
        tiers_id text unique not null default '',
        tiers_id_ssl text unique not null default '',
        host_name text not null default '',
        ip_address text not null default '',
        site_name text not null default '',
        type text not null default '',
        is_server boolean,
        port_rest integer not null default 8088,
        port_r66 integer not null default 6666,
        port_r66_ssl integer not null default 667,
        port_ftp integer not null default 6621,
        port_ftp_passive_min integer not null default 30000,
        port_ftp_passive_max integer not null default 40000
        ftp_username character varying(255) DEFAULT ''::character varying,
        aes_key bytea DEFAULT '\x'::bytea,
        r66_tls_server_key text DEFAULT ''::text,
        r66_tls_server_cert text DEFAULT ''::text
     );