Fichier d’import/export¶
Lors de l’import/export de la base de données de Transfer, les données sont stockées dans un fichier en format JSON. Ce JSON a la forme suivante :
local
(array) - La liste des serveurs locaux de Transfer.name
(string) - Le nom du serveur.protocol
(string) - Le protocole du serveur.root
(string) - Le dossier racine du serveur.workDir
(string) - Le dossier temporaire du serveur.configuration
(object) - La configuration protocolaire du serveur.certificates
(array) - La liste des certificats du serveur.name
(string) - Le nom du certificat.privateKey
(string) - La clé privée du serveur en format PEM.certificat
(string) - La chaîne de certification du serveur en format PEM.
accounts
(array) - La liste des comptes rattaché au serveur.login
(string) - Le login du compte.password
(string) - Le mot de passe du compte. Si le compte a été exporté depuis un transfert existante,passwordHash
sera utilisé à la place.passwordHash
(string) - Un hash bcrypt du mot de passe du compte. utilisé uniquement lors de l’export depuis un transfer existante.certificates
(array) - La liste des certificats du compte.name
(string) - Le nom du certificat.Certificat
(string) - La chaîne de certification du compte en format PEM (mutuellement exclusif avecpublic_key
).publicKey
(string) - La clé publique SSH du compte (hostkey) en format authorized_key (mutuellement exclusif aveccertificate
)
remotes
(array) - La liste des partenaires de transfert de transfer.name
(string) - Le nom du partenaire.protocol
(string) - Le protocole du partenaire.configuration
(object) - La configuration protocolaire du serveur.certificates
(array) - La liste des certificats du partenaire.name
(string) - Le nom du certificat.Certificat
(string) - La chaîne de certification du partenaire en format PEM (mutuellement exclusif avecpublic_key
).publicKey
(string) - La clé publique SSH du partenaire (hostkey) en format authorized_key (mutuellement exclusif aveccertificate
)
accounts
(array) - La liste des comptes rattaché au partenaire.login
(string) - Le login du compte.password
(string) - Le mot de passe du compte.certificates
(array) - La liste des certificats du compte.name
(string) - Le nom du certificat.privateKey
(string) - La clé privée du compte en format PEM.certificat
(string) - La chaîne de certification du compte en format PEM.
rules
(array) - La liste des règles de transfert de transfer.name
(string) - Le nom de la règle de transfert.isSend
(bool) - Le sens de la règle.true
pour l’envoi,false
pour la réception.path
(string) - Le chemin de la règle. Permet d’identifier la règle lorsque le protocole seul ne le permet pas.inPath
(string) - Le dossier de réception de la règle.outPath
(string) - Le dossier d’envoi de la règle.workPath
(string) - Le dossier de réception temporaire de la règle.auth
(array) - La liste des agents autorisés à utiliser la règles. Chaque élément de la liste doit être précédé de sa nature (remote
oulocal
) suivi du nom de l’agent, le tout séparé par::
(ex:local::r66
). Si l’agent est un compte, alors le nom de compte doit être précédé du nom du serveur/partenaire auquel le compte est rattaché (ex:local::r66::toto
).pre
(array) - La liste des pré-traitements de la règle. Voir la documentation des traitements pour la liste des traitements disponibles ainsi que les arguments nécessaires à chacun d’entre eux.type
(string) - Le type de traitement.args
(object) - Les arguments du traitement. Variable suivant le type de traitement (cf. traitements).
post
(array) - La liste des post-traitements de la règle. Voir la documentation des traitements pour la liste des traitements disponibles ainsi que les arguments nécessaires à chacun d’entre eux.type
(string) - Le type de traitement.args
(object) - Les arguments du traitement. Variable suivant le type de traitement (cf. traitements).
error
(array) - La liste des traitements d’erreur de la règle. Voir la documentation des traitements pour la liste des traitements disponibles ainsi que les arguments nécessaires à chacun d’entre eux.type
(string) - Le type de traitement.args
(object) - Les arguments du traitement. Variable suivant le type de traitement (cf. traitements).
Exemple
{
"locals": [{
"name": "r66-tls",
"protocol": "r66",
"root": "/r66",
"workDir": "/r66/tmp",
"configuration": {
"address": "localhost",
"port": 8022
},
"accounts": [{
"login": "toto",
"password": "sésame",
"certs": [{
"name": "cert_toto",
"publicKey": "<clé publique>",
"privateKey": "<clé privée>",
"certificate": "<certificat>"
}]
}],
"certs": [{
"name": "cert_serveur_r66-tls",
"publicKey": "<clé publique>",
"privateKey": "<clé privée>",
"certificate": "<certificat>"
}]
}],
"remotes": [{
"name": "other",
"protocol": "r66",
"configuration": {
"address": "localhost",
"port": 22
},
"accounts": [{
"login": "titi",
"password": "sésame",
"certs": [{
"name": "cert_titi",
"publicKey": "<clé publique>",
"privateKey": "<clé privée>",
"certificate": "<certificat>"
}]
}],
"certs": [{
"name": "cert_openssh",
"publicKey": "<clé publique>",
"privateKey": "<clé privée>",
"certificate": "<certificat>"
}]
}],
"rules": [{
"name": "send",
"isSend": true,
"path": "send",
"inPath": "send/in",
"outPath": "send/out",
"workPath": "send/tmp",
"access": [
"local::r66-tls",
"remote::openssh"
],
"pre": [],
"post": [],
"error": []
}, {
"name": "receive",
"isSend": false,
"path": "receive",
"access": [
"local::openssh",
"local::r66-tls::toto",
],
"pre": [],
"post": [],
"error": []
}]
}