NumaHOP Configuration.
La configuration de NumaHOP se fait dans des fichiers yaml nomes application.ymlou application-<profile>.yml.
Quand NumaHOP demare il cherce and charge les fichiers de configuration dans cet ordre:
- Dans les ressources a l’interieur du packet jar.
- Dans le dossier
./config(relatif a son repertoir d’execution).
Profiles
NumaHOP peut charger plusieurs fichier de configuration a l’aide d’un system de profile.En premier il charge le fichier application.yml et ensuite les fichiers des profils actifs.Chaque chargement écrase les clès de configuration déjà définies.
To activate a profile the flag --spring.profiles.active can be passed to the war:
./numahop.jar --spring.profile.active=dev,prod
The resulting files will be sourced in this order:
- À l’interieur du jar:
application.ymlapplication-dev.ymlapplication-prod.yml
- À l’interieur du répertoir de travail:
./config/application.yml./config/application-dev.yml./config/application-prod.yml
application.yml
La plupart des propriétées disponible dans les fichier de configuration sontdéfinies par SpringBoot certaines le sont par NumaHOP. Toute les utilisation despropriétées de NumaHOP peuvent être trouvées en utilisant la commande: grep -e "@Value\(\$\{.*\}\)"
Propriétées importantes et utiles
Instances (Doit être définie)
Chaque etablissements dans numahop doit etre declare ici. L’id doit correspondreavec l’id de l’etablissement dans la table library en base de donnees.
instance:
libraries: lib1, lib2, lib3
Utilisations
- src/main/java/fr/progilone/pgcn/config/BinaryStorageConfiguration.java
- src/main/java/fr/progilone/pgcn/service/delivery/DeliveryReportingService.java
- src/main/java/fr/progilone/pgcn/service/check/MetaDatasCheckService.java
- src/main/java/fr/progilone/pgcn/service/document/ui/UIDocUnitService.java
- src/main/java/fr/progilone/pgcn/service/exchange/cines/CinesRequestHandlerService.java
- src/main/java/fr/progilone/pgcn/service/exchange/cines/ExportCinesService.java
- src/main/java/fr/progilone/pgcn/service/exchange/cines/ExportSipService.java
- src/main/java/fr/progilone/pgcn/service/exchange/omeka/OmekaService.java
- src/main/java/fr/progilone/pgcn/service/exchange/digitallibrary/DigitalLibraryDiffusionRequestHandlerService.java
- src/main/java/fr/progilone/pgcn/service/storage/FileCleaningManager.java
- src/main/java/fr/progilone/pgcn/service/storage/AltoService.java
- src/main/java/fr/progilone/pgcn/service/storage/FileStorageManager.java
Admin (Doit être définie)
Le compte admin est le seul compte present apres installation.
admin:
login: # default: admin
password: # Important to override. default: hash of "password"
Le mot de pass est encrypte en utilisant bcrypt. Vous pouvez obtenir un bonmot de passe avec cette commande:
head /dev/urandom | tr -dc "a-zA-Z0-9"| fold -w 20 | head -n 1
Ensuit encrypez le avec une implementation de bcrypt. Point d’attention toutes lesimplémentations de bcrypt ne sont pas sécurisées. Une option est d’encrypter le mot depasse en utilisant python3 avec le packet python3-bcrypt:
echo "$pwd" | python3 -c <<PYTHON
import bcrypt, getpass;
print(bcrypt.hashpw(input().encode(), bcrypt.gensalt()).decode())'
PYTHON
Ou pwd est votre mot de passe.
Uses:
- src/main/java/fr/progilone/pgcn/service/user/ui/UIUserService.java
- src/main/java/fr/progilone/pgcn/web/rest_int/InternalAccountResource.java
- src/main/java/fr/progilone/pgcn/security/UserDetailsService.java
Jhipster Remember Me key (Doit être définie)
C’est la cle qui permet au service rememberme de fonctionner. Elle doit être uniquepour votre installation.
jhipster.security.rememberme.key: # No defaults must be defined.
De la meme maniere que pour le mot de passe vous pouvez obtenirune bonne clé comme ceci:
head /dev/urandom | tr -dc "a-zA-Z0-9"| fold -w 20 | head -n 1
Uses:
- TODO
Base de données et elasticsearch (Doit être définie)
Les informations dont NumaHOP a besoin pour se connecter à la base de données et elasticsearch.
spring:
datasource:
url: # The url to access the mariadb data base often: jdbc:mariadb://localhost:3306/<db-name>
username: # The database user
password: # The database password
elasticsearch:
uris:
- <uri> # default: http://localhost:9200
# ...
Sytème de fichier
Ces options de configuration définissent où NumaHOP peut trouver les executables dont il a besoin, ainsi que l’endroit où il doit placer les différent fichiers qu’il génère.
base-path: #default /opt/pgcn
imageMagick:
convert: # default : /usr/bin/convert
identify: # default : /usr/bin/identify
exifTool:
process: # default : /usr/bin/exiftool
tesseract:
process: # default : /usr/bin/tesseract
storage:
binaries: # default : ${base-path}/DAM/DAM_Repository
nativeLibraries:
path: # default : /opt/svcmgmt/lib
messaging:
template:
path: # default : ${base-path}/Messaging/MessagingTemplate
uploadPath:
condition_report: # default : ${base-path}/upload/condition_report
ead: # default : ${base-path}/upload/ead
import: # default : ${base-path}/upload/import
library: # default : ${base-path}/upload/library
user: # default : ${base-path}/upload/user
template: # default : ${base-path}/upload/templates
export:
ssh:
knownHosts: # default : ${base-path}/config/known_hosts
services:
cines:
aip: # default : ${base-path}/cines/aip
cache: # default : ${base-path}/cines/cache
xsd:
sip: # default : ${base-path}/xsd/sip.xsd
archive:
alto: # default : ${base-path}/archive/alto
text: # default : ${base-path}/archive/text
metaDatas:
path: # default : ${base-path}/metadatas
deliveryreporting:
path: # default : ${base-path}/deliveryReporting
omeka:
cache: # default : ${base-path}/omeka/cache
ftpexport:
cache: # default : ${base-path}/ftpexport/cache
digitalLibraryDiffusion:
cache: # default : ${base-path}/digitalLibraryDiffusion/cache
Exiftool Uses:
- src/main/java/fr/progilone/pgcn/service/storage/ExifToolService.java
- src/main/java/fr/progilone/pgcn/service/storage/ImageMagickService.java
Upload Path Uses:
- src/main/java/fr/progilone/pgcn/service/JasperReportsService.java
- src/main/java/fr/progilone/pgcn/service/user/UserService.java
- src/main/java/fr/progilone/pgcn/service/library/LibraryService.java
- src/main/java/fr/progilone/pgcn/service/document/conditionreport/ConditionReportAttachmentService.java
- src/main/java/fr/progilone/pgcn/service/exchange/ead/ExportEadService.java
- src/main/java/fr/progilone/pgcn/service/exchange/ImportReportService.java
- src/main/java/fr/progilone/pgcn/service/exchange/template/TemplateService.java
Services Uses:
- src/main/java/fr/progilone/pgcn/service/delivery/DeliveryReportingService.java
- src/main/java/fr/progilone/pgcn/service/check/MetaDatasCheckService.java
- src/main/java/fr/progilone/pgcn/service/check/FacileCinesService.java
- src/main/java/fr/progilone/pgcn/service/document/ui/UIDocUnitService.java
- src/main/java/fr/progilone/pgcn/service/exchange/internetarchive/InternetArchiveService.java
- src/main/java/fr/progilone/pgcn/service/exchange/cines/CinesRequestHandlerService.java
- src/main/java/fr/progilone/pgcn/service/exchange/cines/ExportCinesService.java
- src/main/java/fr/progilone/pgcn/service/exchange/cines/ExportSipService.java
- src/main/java/fr/progilone/pgcn/service/exchange/omeka/OmekaService.java
- src/main/java/fr/progilone/pgcn/service/exchange/digitallibrary/DigitalLibraryDiffusionRequestHandlerService.java
- src/main/java/fr/progilone/pgcn/service/exchange/digitallibrary/DigitalLibraryDiffusionService.java
- src/main/java/fr/progilone/pgcn/service/storage/FileCleaningManager.java
- src/main/java/fr/progilone/pgcn/service/storage/AltoService.java
Serveur
Le port utilisé par NumaHOP.
server:
port: # default: 80
Uses:
- src/main/java/fr/progilone/pgcn/web/rest/administration/HealthController.java
Tailles d’images
images:
format:
default:
thumbHeight: # default: 150
thumbWidth: # default: 150
viewHeight: # default: 1417
viewWidth: # default: 982
printHeight: # default: 2835
printWidth: # default: 1964
Uses:
- src/main/java/fr/progilone/pgcn/service/util/DefaultFileFormats.java
Cron jobs
Plusieurs services de NumaHOP sont annotés avec @Scheduled. Ce sontdes con jobs configurable.
cron:
removeOldTokens: # default: 0 0 0 * * ?
cleanLocks: # default: 0 30 0 * * *
rebuildIndex: # Rebuild elastic search index. default: 0 40 0 * * *
cleanDeliveryFiles: # default: 0 0 1 * * ?
cinesExport: # Try to export eligible document units to the CINES. default: 0 30 1 * * ?
localExport: # Try to export eligible document units via SFTP. default: 0 0 4 * * ?
cleanTemporaryFiles: # Clean up temporary files for each library. default: 0 0 2 * * ?
internetArchiveExport: # Try to export eligible document units to Internet Archive. default: 0 26 17 * * ?
gestDeliveredFiles: # Save or delete the archived documents. default: 0 00 18 * * SAT
cinesUpdateStatus: # Download status of CINES export from the mailbox. default: 0 10 * * * *
omekaExport: # Try to export eligible document units to an Omeka instance. default: 0 0 3 * * ?
cleanExportCaches: # default: 0 30 6 * * ?
docUnitUpdateArk: # Retrieve Internet archive urls of archived documents. default: 0 0 6 * * ?
digitalLibraryExport: # default: 0 0 3 * * ?
La valeur de chaque clé est une expression cron utilisée pour configurer quand la tache doit être executée.
Uses:
- src/main/java/fr/progilone/pgcn/service/storage/FileCleaningManager.java
- src/main/java/fr/progilone/pgcn/service/exchange/digitallibrary/DigitalLibraryDiffusionRequestHandlerService.java
- src/main/java/fr/progilone/pgcn/service/exchange/exportftp/ExportFtpService.java
- src/main/java/fr/progilone/pgcn/service/exchange/omeka/OmekaRequestHandlerService.java
- src/main/java/fr/progilone/pgcn/service/exchange/cines/CinesRequestHandlerService.java
- src/main/java/fr/progilone/pgcn/service/es/IndexManagerService.java
- src/main/java/fr/progilone/pgcn/service/LockService.java
- src/main/java/fr/progilone/pgcn/service/exchange/internetarchive/InternetArchiveServiceAsync.java
- src/main/java/fr/progilone/pgcn/service/document/DocUnitService.java
- src/main/java/fr/progilone/pgcn/service/user/UserService.java
spring:
mail:
host: # default: localhost
port: # default: 25
user:
password:
from: # default: contact-numahop@numahop.fr
tls: # default: false
auth: # default: false
activated: # default: false
Uses:
- TODO