Übersicht
Die Anbindung der Service Archivierung an das ImageMaster-Archiv wird durch den imagemaster-archive-adapter Microservice realisiert.
Die Archivierung bei diesem Archiv erfolgt ohne Archivindex. Somit sind die Suche und die Anzeige der archivierten Nachrichten nicht über die B2B-Oberfläche möglich.
Imagemaster-Archive-Adapter
Der Microservice konsumiert die Nachrichten aus der Persistence Queue, konvertiert sie in das Zielformat und sendet sie an den REST-Endpunkt des ImageMaster.

Die Konfiguration des Microservices erfolgt über Umgebungsvariablen.
Releases
Der Service wird in den folgenden Versionen als Docker Container unter docker-nob-erp.next-level-apps.com/b2b-aaas-imagemaster-archive-adapter bereitgestellt.
2025-11-28
Hinweis: mit diesem Release wurde der default Queue-Type für die Consumer-Queue von default auf quorum geändert.
| Ticket | Beschreibung |
|---|---|
| BTOB-13670 | Erweiterung um Archivierung von Zertifikaten aus dem FSS |
2025-10-30
| Ticket | Beschreibung |
|---|---|
| BTOB-13471 | Initiale Entwicklung |
Konfiguration
Für die Minimalkonfiguration müssen folgende Konfigurationsparameter gesetzt sein:
# Imagemaster Archive configuration
imagemaster:
baseUrl: <ImageMaster API base URL>
tenant: <tenant name>
user: <username>
password: <password>
spring:
# RabbitMQ configuration
rabbitmq:
host: ${RABBITMQ_HOST}
port: ${RABBITMQ_PORT}
username: ${RABBITMQ_USER}
password: ${RABBITMQ_PASSWORD}
# Security configuration for accessing FSS via keycloak
security:
oauth2:
client:
registration:
securityserver:
client-id: <clientId>
client-secret: <clientSecret>
provider:
securityserver:
token-uri: <keycloak token URI>
# Security server (FSS) configuration
securityServer:
baseUrl: <FSS API base URL>
cronSchedule: <Cron String>
Für die Konfiguration der Placeholder siehe Installation.
Weitere optionale Konfigurationen erlauben die Anpassung der Attributnamen für das Zielsystem, die Anpassung der Consumer- und Producer-Queues und ggf. weitere spezifische Konnektivität-Settings wie Connection-Timeouts. Die Spring-Konfigurationen sollten dabei nur mit größter Sorgfals geändert werden, da dies die Verarbeitung eingehender Nachrichten stören kann.
Mögliche Konfigurationsparameter und ihre default-Werte sind wie folgt:
ab Version 2025-11-28
imagemaster:
messageAttributeMapping:
documentType: MARC_Marktkommunikation
messageId: MARC_Marktkommunikation.messageId
referenceId: MARC_Marktkommunikation.referenceId
direction: MARC_Marktkommunikation.direction
started: MARC_Marktkommunikation.started
finished: MARC_Marktkommunikation.finished
formatIn: MARC_Marktkommunikation.formatIn
formatOut: MARC_Marktkommunikation.formatOut
vdewType: MARC_Marktkommunikation.vdewType
vdewVersion: MARC_Marktkommunikation.vdewVersion
state: MARC_Marktkommunikation.state
acknowledgement: MARC_Marktkommunikation.acknowledgment
partner: MARC_Marktkommunikation.partner
sender: MARC_Marktkommunikation.sender
correlationId: MARC_Marktkommunikation.correlationId
alternativeId: MARC_Marktkommunikation.alternativeId
channelId: MARC_Marktkommunikation.channelId
clearingCode: MARC_Marktkommunikation.clearingCode
certificateAttributeMapping:
documentType: MARC_Zertifikat
id: MARC_Zertifikat.id
serialNumber: MARC_Zertifikat.serialNumber
hashId: MARC_Zertifikat.hashId
subjectDN: MARC_Zertifikat.subjectDN
subjectAlternativeName: MARC_Zertifikat.subjectAlternativeName
issuerDN: MARC_Zertifikat.issuerDN
signatureAlgorithm: MARC_Zertifikat.signatureAlgorithm
signature: MARC_Zertifikat.signature
ski: MARC_Zertifikat.ski
aki: MARC_Zertifikat.aki
validFrom: MARC_Zertifikat.validFrom
validTo: MARC_Zertifikat.validTo
rsaKeyLength: MARC_Zertifikat.rsaKeyLength
usageSignature: MARC_Zertifikat.usageSignature
usageEncryption: MARC_Zertifikat.usageEncryption
usageCertificateSigning: MARC_Zertifikat.usageCertificateSigning
crlUris: MARC_Zertifikat.crlUris
createTime: MARC_Zertifikat.createTime
sha1Fingerprint: MARC_Zertifikat.sha1Fingerprint
md5Fingerprint: MARC_Zertifikat.md5Fingerprint
alias: MARC_Zertifikat.alias
clientName: MARC_Zertifikat.clientName
connectTimeoutSeconds: 10
readTimeoutSeconds: 5
queues:
consumer: persistence_queue
producer:
success: success_queue
error: error_queue
spring:
cloud:
function:
definition: consumePersistenceQueueArchiveMessage
stream:
bindings:
consumePersistenceQueueArchiveMessage-in-0:
destination: ${queues.consumer}
group: default
consumer:
maxAttempts: 1
rabbit:
bindings:
consumePersistenceQueueArchiveMessage-in-0:
consumer:
requeueRejected: true
republishToDlq: false
quorum:
enabled: true
security:
oauth2:
client:
registration:
securityserver:
authorization-grant-type: client_credentials
scope: openid
Version 2025-10-30
imagemaster:
attributeNames:
messageId: MARC_Marktkommunikation.messageId
referenceId: MARC_Marktkommunikation.referenceId
direction: MARC_Marktkommunikation.direction
started: MARC_Marktkommunikation.started
finished: MARC_Marktkommunikation.finished
formatIn: MARC_Marktkommunikation.formatIn
formatOut: MARC_Marktkommunikation.formatOut
vdewType: MARC_Marktkommunikation.vdewType
vdewVersion: MARC_Marktkommunikation.vdewVersion
state: MARC_Marktkommunikation.state
acknowledgement: MARC_Marktkommunikation.acknowledgment
partner: MARC_Marktkommunikation.partner
sender: MARC_Marktkommunikation.sender
correlationId: MARC_Marktkommunikation.correlationId
alternativeId: MARC_Marktkommunikation.alternativeId
channelId: MARC_Marktkommunikation.channelId
clearingCode: MARC_Marktkommunikation.clearingCode
connectTimeoutSeconds: 10
readTimeoutSeconds: 5
queues:
consumer: persistence_queue
producer:
success: success_queue
error: error_queue
spring:
cloud:
function:
definition: consumePersistenceQueueArchiveMessage
stream:
bindings:
consumePersistenceQueueArchiveMessage-in-0:
destination: ${queues.consumer}
group: default
consumer:
maxAttempts: 1
rabbit:
bindings:
consumePersistenceQueueArchiveMessage-in-0:
consumer:
requeueRejected: true
republishToDlq: false