Historique des versions¶
Note
Pour mettre à jour votre installation, la procédure standard peut s’appliquer. Si des étapes complémentaires doivent s’appliquer, celles-ci seront notées ci-dessous.
0.13.1 2019-05-15
- [Bug] #171: Les flux encours dont un des transfert est terminé sont affichés dans l’historique des flux.
- [Bug] #172: Un transfert réussi est automatiquement créé dans l’historique pour les transferts SFTP vers un serveur fait en tâche post-transfert (auparavent, le flux n’apparaissait jamais comme terminé et le succès devait se déduire du succés de l’avant dernier transfert)
- [Bug] #170: Le nom de modèles de flux importés pouvait être incorrect
- [Bug] #173: Ajout du paramètre de filewatcher manquant
limitParallel
- [Bug] #169: Sécurité : Correction d’une possibilité d’outrepasser l’authentification par injection d cookie
0.13.0 2019-04-11
- [Feature]: Une migration de base de données est nécessaire pour la mise à
jour vers la version 0.12.0. Le script SQL suivant doit être exécuté
dans la base de données de Waarp Manager (installés dans
ROOT/share/migration
par les archives et/usr/share/waarp-manager/migration
par les packages) :20181204_add_connection_direction_default_templates.sql
- [Feature] #159: Les transferts depuis un partenaire SFTP vers un partenaire SFTP sont maintenant possibles
- [Feature] #164: Autorise les définitions de flux depuix un client FTP
- [Bug] #151: Dans les historiques de flux et de transfert, on ne pouvait pas filtrer par nom de fichier si le nom de fichier saisi n’est composé que de nombre
- [Bug] #149: La durée des transferts pouvait être négative ou nulle (en cas d’erreur R66). Ceci est maintenant impossible
- [Bug] #155: Les modèles par défaut prennent en compte les sens de connexion
- [Bug] #163: La relance de transferts à destination de passerelles SFTP ne fonctionnait pas
0.12.2 2018-11-21
- [Bug]: Le rafraîchissement des historiques des transfert et des flux met maintenant à jour chaque transfert dans sa propre transaction
- [Bug]: Réactivation de la regénération des mots de passe des partenaires
- [Bug]: Le détail des lignes d’historique ne se referme pas
0.12.1 2018-07-06
- [Bug]: Fixes LDAP support
- [Bug]: Autorise l’administration à définir l’en-tête HTTP à utiliser pour communiquer au proxy l’hôte de destination de la requête
- [Bug]: Correction du bug qui empêchait les utilisateurs de changer leur mot de passe
0.12.0 2018-05-14
[Feature]: Une migration de base de données est nécessaire pour la mise à jour vers la version 0.12.0. Le script SQL suivant doit être exécuté dans la base de données de Waarp Manager (installés dans
ROOT/share/migration
par les archives et/usr/share/waarp-manager/migration
par les packages) :20180511_rest_http_proxy_support.sql
BEGIN; DO $$ BEGIN BEGIN ALTER TABLE sites ADD COLUMN "has_http_proxy" boolean DEFAULT false; EXCEPTION WHEN duplicate_column THEN --do nothing END; END; $$; DO $$ BEGIN BEGIN ALTER TABLE sites ADD COLUMN "http_proxy" varchar(255) NOT NULL DEFAULT ''; EXCEPTION WHEN duplicate_column THEN --do nothing END; END; $$; COMMIT;
[Feature]: Support de proxy HTTP pour les sites (requêtes REST)
[Feature]: Création d’un onglet de configutation des filewatchers dans le formulaire d’édition des flux
[Feature]: Évolution des filewatchers : TLS peut être activé pour le premier transfert
[Feature]: Évolution des filewatchers : le filewatcher peut également surveiller les sous-dossiers du docssier cible (mode récursif)
[Feature]: Évolution des filewatchers : la regex de filtrage peut être paramétrée
[Feature]: Évolution des filewatchers : Le filewatcher peut être paramétré pour lancer des transferts synchrones ou asynchrones
0.11.4 2018-03-26
[Bug]: Une migration de base de données est nécessaire pour la mise à jour vers la version 0.11.4. Les scripts SQL suivants doivent être exécutés dans la base de données de Waarp Manager (installés dans
ROOT/share/migration
par les archives et/usr/share/waarp-manager/migration
par les packages) :20180326_remove_flow_speed.sql
BEGIN; ALTER TABLE flow_log DROP COLUMN IF EXISTS speed; COMMIT;
20180323_fix_default_template.sql
BEGIN; delete from template_tasks where rule_id IN ( SELECT id from template_rules where tpl_id IN (1, 2) ); DELETE from template_rules where tpl_id IN (1, 2); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 0, 'auto', '{{flow_name}}', 'route_index == 1 and origin.Type == types.FTP and not origin.Type == types.SFTP and origin.IsClient and not origin.IsServer'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'FTPCOMMAND', 30000, 'R66PREPARETRANSFER -to {{next.destination.HostIdSsl}} -file #BASEPATH##FILE# -rule #ACCOUNT#_2', NULL); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 1, 'auto', '{{flow_name}}', 'route_index == 1'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'COPYRENAME', 0, '#OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type != types.FTP and next.destination.Type != types.SFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 1, 'TRANSFER', 0, '-file #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME# -to {{next.destination.HostIdSsl}} -rule {{next.name}} -copyinfo', 'next.destination.Type == types.R66 and next.destination.IsServer or next.destination.Type == types.GWFTP or next.destination.Type == types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 2, 'COPYRENAME', 0, '#INPATH#/#ORIGINALFILENAME#', 'destination.Type == types.R66 and destination_id in final_destinations'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'DELETE', 0, NULL, NULL); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 2, 'auto', '{{flow_name}}_2', 'origin.Type == types.GWFTP or origin.Type == types.GWSFTP and route_index == 2'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'COPYRENAME', 0, '#OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type != types.FTP or next.destination.Type != types.SFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 1, 'TRANSFER', 0, '-file #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME# -to {{next.destination.HostIdSsl}} -rule {{next.name}} -copyinfo', 'next.destination.Type == types.R66 and next.destination.IsServer or next.destination.Type == types.GWFTP or next.destination.Type == types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 2, 'COPYRENAME', 0, '#INPATH#/#ORIGINALFILENAME#', 'destination.Type == types.R66 and destination_id in final_destinations'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'DELETE', 0, NULL, NULL); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 3, 'auto', '{{flow_name}}_{{flow_index}}', 'route_index == last_index - 1'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'COPYRENAME', 0, '#OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type != types.FTP and next.destination.Type != types.SFTP or next.destination.IsServer'), (currval('template_rules_id_seq'), 'receiver', 'post', 1, 'COPYRENAME', 0, '#HOMEPATH#/ftp/{{next.destination.FtpClientUsername}}/{{flow_name}}/#ORIGINALFILENAME#', 'next.destination.Type == types.FTP or next.destination.Type == types.SFTP and next.destination.IsClient and not next.destination.IsServer'), (currval('template_rules_id_seq'), 'receiver', 'post', 2, 'TRANSFER', 0, '-file #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME# -to {{next.destination.HostIdSsl}} -rule {{next.name}} -copyinfo', 'next.destination.Type == types.R66 and next.destination.IsServer or next.destination.Type == types.GWFTP or next.destination.Type == types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'FTP', 30000, '-to {{next.destination.Ip}} -port {{next.destination.FtpServerPort}} -user {{next.destination.FtpServerUsername}} -pwd {{next.destination.FtpServerPassword}} -ssl {{next.destination.FtpServerSecure}} -file #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME# -cwd {{next.destination.FtpServerDirectory}} -command put', 'next.destination.Type == types.FTP and next.destination.IsServer'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'EXEC', 600000, './bin/sftpc.sh #HOSTID# --put --host {{next.destination.Ip}} --port {{next.destination.SftpServerPort}} --username {{next.destination.SftpUsername}} --password {{next.destination.SftpPassword}} #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type == types.SFTP and next.destination.IsServer and next.destination.SftpAuthent == 1'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'EXEC', 600000, './bin/sftpc.sh #HOSTID# --put --host {{next.destination.Ip}} --port {{next.destination.SftpServerPort}} --username {{next.destination.SftpUsername}} #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type == types.SFTP and next.destination.IsServer and next.destination.SftpAuthent == 2'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'EXEC', 600000, './bin/sftpc.sh #HOSTID# --put --host {{next.destination.Ip}} --port {{next.destination.SftpServerPort}} --username {{next.destination.SftpUsername}} --password {{next.destination.SftpPassword}} #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type == types.SFTP and next.destination.IsServer and next.destination.SftpAuthent == 3'), (currval('template_rules_id_seq'), 'receiver', 'post', 4, 'COPYRENAME', 0, '#INPATH#/#ORIGINALFILENAME#', 'destination.Type == types.R66 and destination_id in final_destinations'), (currval('template_rules_id_seq'), 'receiver', 'post', 5, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 6, 'EXECOUTPUT', 30000, 'rm #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type == types.FTP or next.destination.Type == types.SFTP and next.destination.IsServer'); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 4, 'auto', '{{flow_name}}_FINAL', 'route_index == last_index and destination.Type != types.FTP and destination.Type != types.SFTP and not destination.IsServer'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'MOVERENAME', 0, '#INPATH#/#ORIGINALFILENAME#', 'destination.Type == types.R66 and destination_id in final_destinations'); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 5, 'auto', '{{flow_name}}_FINAL', 'route_index == last_index and destination.Type != types.FTP and destination.Type != types.SFTP and destination.IsServer'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'MOVERENAME', 0, '#INPATH#/#ORIGINALFILENAME#', 'destination.Type == types.R66 and destination_id in final_destinations'); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 6, 'auto', '{{flow_name}}', 'destination.Type == types.FTP or destination.Type == types.SFTP and route_index == last_index and destination.IsClient and not destination.IsServer'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'FTPCOMMAND', 0, 'NONE', NULL); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (1, 7, 'auto', '{{flow_name}}_{{flow_index}}', 'default'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'COPYRENAME', 0, '#OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'next.destination.Type != types.FTP and next.destination.Type != types.SFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 1, 'TRANSFER', 0, '-file #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME# -to {{next.destination.HostIdSsl}} -rule {{next.name}} -copyinfo', 'next.destination.Type == types.R66 and next.destination.IsServer or next.destination.Type == types.GWFTP or next.destination.Type == types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 2, 'COPYRENAME', 0, '#INPATH#/#ORIGINALFILENAME#', 'destination.Type == types.R66 and destination_id in final_destinations'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'DELETE', 0, NULL, NULL); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (2, 0, 'auto', '{{flow_name}}', 'route_index == 1'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'COPYRENAME', 0, '#OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', 'route_index != last_index'), (currval('template_rules_id_seq'), 'receiver', 'post', 1, 'DELETE', 0, NULL, 'route_index != last_index'), (currval('template_rules_id_seq'), 'receiver', 'post', 2, 'TRANSFER', 0, '-file #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME# -to {{next.destination.HostIdSsl}} -rule {{next.name}} -copyinfo', 'route_index != last_index'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'EXECJAVA', 1, 'org.waarp.manager.tasks.UpdateConfExtended #HOSTID#', 'route_index == last_index and destination.Type != types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 3, 'EXECJAVA', 1, 'org.waarp.manager.tasks.UpdateConfExtendedSFTP #HOSTID#', 'route_index == last_index and destination.Type == types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 4, 'DELETE', 0, NULL, 'route_index == last_index'); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (2, 1, 'auto', '{{flow_name}}_{{flow_index}}', 'route_index == last_index'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'EXECJAVA', 1, 'org.waarp.manager.tasks.UpdateConfExtended #HOSTID#', 'destination.Type != types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'EXECJAVA', 1, 'org.waarp.manager.tasks.UpdateConfExtendedSFTP #HOSTID#', 'destination.Type == types.GWSFTP'), (currval('template_rules_id_seq'), 'receiver', 'post', 1, 'DELETE', 0, NULL, NULL); insert into template_rules (tpl_id, rule_order, rule_mode, name, rule_when) values (2, 2, 'auto', '{{flow_name}}_{{flow_index}}', 'default'); insert into template_tasks (rule_id, task_where, task_when, task_order, type, task_delay, task_path, task_condition) values (currval('template_rules_id_seq'), 'sender', 'post', 0, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 0, 'COPYRENAME', 0, '#OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME#', NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 1, 'DELETE', 0, NULL, NULL), (currval('template_rules_id_seq'), 'receiver', 'post', 2, 'TRANSFER', 0, '-file #OUTPATH#/{{next.destination.HostId}}/#ORIGINALFILENAME# -to {{next.destination.HostIdSsl}} -rule {{next.name}} -copyinfo', NULL); COMMIT;
[Bug]: Corrections du modèle de flux par défaut
[Bug]: Correction de traductions
[Bug]: Correction d’une erreur 404 causée par une erreur SQL
[Bug]: La reprise de transfert entre une gateway SFTP et un serveur R66 est maintenant possible
[Bug]: Correction de l’erreur de calcul de la signature des requêtes REST à destination ds serveurs Waarp r66
[Bug]: Correction de bug d’affichage suite à l’édition d’un objet
[Bug]: Affichage de la date de build réelle dans le « À propos »
[Bug]: Correction de l’affichage du formulaire d’ajout d’un modèle de flux
[Bug]: Correction de l’erreur causant une vitesse nulle pour les flux
[Bug]: Correction du modèle de flux par défaut
0.11.3 2017-10-05
- [Bug]: Correction de l’ordre d’envoi des packages de configuration
- [Bug]: Correction des modèles de flux pour le SFTP
- [Bug]: Correction de l’ajout de partenaires SFTP client
0.11.2 2017-10-03
- [Bug]: Rétablit le fonctionnement de l’éditeur de modèles et de l’ajout de partenaires SFTP pur IE 11
0.11.1 2017-10-03
- [Bug]: Les nouveaux serveurs R66 sont automatiquement intégrés au rafrachissement des historiques
0.11.0 2017-10-02
- [Feature]: Prise en charge de la configuration des filewatchers
- [Feature]: Prise en charge des sens de connexion entre les sites
0.10.1 2017-09-30
- [Bug]: Les packages de configuration des gateways SFTP n’étaient pas générés
0.10.0 2017-09-28
- [Feature]: Waarp Manager peut écouter en HTTPS
- [Feature]: Support des passerelles SFTP
0.9.3 2017-04-26
[Bug]: Une migration de base de données est nécessaire pour la mise à jour vers la version 0.9.3. Le script SQL suivant doit être exécuté dans la base de données de Waarp Manager :
BEGIN; DROP INDEX IF EXISTS transfer_log_find_existing; CREATE INDEX transfer_log_find_existing ON transfer_log( filename, origin_hostid, destination_hostid, rulename, origin_transfer_id, destination_transfer_id ); DROP INDEX IF EXISTS flow_log_find_existing; CREATE INDEX flow_log_find_existing ON flow_log ( flowname, filename ); COMMIT;
[Bug]: Affichage erroné du nombre de page dans les écrans d’historique
[Bug]: Ajout d’indexes sur les tables d’historique pour accélérer le rafraichissement
[Bug]: L’historique des transferts ne supporte pas les transferts à soi
[Bug]: Le script de lancement windows a des fins de ligne Linux
[Bug]: La conf du package windows a des fins de lignes Linux
[Bug]: La valeur par défaut de R66Cmd est erronée dans la conf du package Windows
[Bug]: La commande de lancement windows est mal formée
0.9.2 2017-03-07
- [Bug]: Le mot de passe du cient Waarp R66 utilisé par Waarp Manager était chiffré deux fois dans les fichiers authent.xml générés.
- [Bug]: Ajout de locale manquantes
0.9.1 2017-02-20
- [Bug]: Correction de coquilles dans l’interface web
- [Bug]: Les infobulles d’aide sont plus larges pour être plus lisibles
- [Bug]: Correction d’une erreur d’échappement des antislash en base de données
- [Bug]: Correction de l’acran des rapports qui n’était plus fonctionnel
- [Bug]: Le mot de passe du client Waarp R66 utilisé par Waarp Manager n’est plus forcé par Waarp Manager. celui défini dans le partenaire est utilisé
- [Bug]: Durant le déploiement de la configuration, l’envoi aux serveurs Waarp R66 s’arrête à la première erreur renontrée
- [Bug]: Les erreurs de déploiement de la configuration sont plus visibles
- [Bug]: Le déploiement de la configuration ne s’exécute plus si le script de lancement de Waarp R66 client n’est pas trouvé
- [Bug]: Le bouton pour démarrer le déploiement de la configuration est désactivé quand un déploiement est en cours
0.9.0 2016-12-08
- [Feature]: Les clefs d’activations ne tiennent plus compte des hostnames
- [Feature]: Le chargement de la configuration par les serveurs R66 ne passe plus par un script
- [Feature]: Appel direct à Waarp manager sans passer par un script (« install-conf.sh »)
- [Feature]: La table ref_instances est créée par défaut
- [Feature]: Authentification LDAP
- [Feature]: Compatibilité Windows
- [Feature]: Internationalisation de l’interface
- [Bug]: Correction d’un buffer overflow sur les délais des tâches