Brio-IO Communication Server

Connector reference

Every connector protocol Brio-IO ships today — source and destination, with their configuration properties and the places where a secret is referenced rather than written down.

Last updated: Examples verified against brio-server fa237ec7ad

A connector is a first-class object with a protocol and a set of typed properties. It is created separately from the channel and referenced there. This page lists the protocols contained in the server today.

Overview

AreaSource (inbound)Destination (outbound)
Filefile-readerfile-writer
SFTPsftp-readersftp-writer
HTTPhttp-listenerhttp-sender
HL7 over network (MLLP)mllp-listenermllp-sender
Databasejdbc-readerjdbc-writer
Messaging (JMS)jms-listenerjms-sender
KIM (German telematics)kim-receiverkim-sender
Emailsmtp-sender

Eight inbound and seven outbound protocols. What is not in this list does not exist — more on that below.

Shared patterns

Secrets are referenced, not written down. Wherever a password or a key is needed, the property is named …Ref (passwordRef, privateKeyRef, signingCertificateRef). The value is a reference to a stored secret or certificate, not the secret itself — the channel configuration lives in Git, and a plaintext password has no business there.

Polling vs. listening. file-reader, sftp-reader, jdbc-reader and kim-receiver poll on an interval (pollingInterval, in milliseconds). http-listener, mllp-listener and jms-listener wait for incoming connections.

File

file-reader

Reads files from a directory.

PropertyMeaning
directorywatched directory
filePatternglob filter, e.g. *.hl7
pollingIntervalpoll interval in ms
recursivedescend into subdirectories (default: off)
sortByorder of the poll batch: name, date or size
charsetcharacter encoding (default: UTF-8)
postProcessingwhat happens to a successfully processed file: delete, move or keep
moveToAfterProcesstarget directory for postProcessing: move
moveToOnErrortarget directory for failed files
deleteAfterProcessolder spelling; postProcessing takes precedence

postProcessing is the unambiguous variant and should be set on new connectors. keep explicitly leaves the file in place — otherwise the file transport silently accumulates copies in a subdirectory.

file-writer

PropertyMeaning
directorytarget directory
fileNamefile name (expressions possible)
fileExistbehaviour when the file already exists
charsetcharacter encoding
eolline ending

SFTP

sftp-reader and sftp-writer take the same properties as their file counterparts, plus the connection:

PropertyMeaning
host, port, usernameconnection
passwordRefreference to the password secret
privateKeyRefreference to the private key (alternative to the password)
knownHostsFilepath to known_hosts
strictHostKeyCheckinghost key verification

Turning off strictHostKeyChecking means losing the ability to notice a man-in-the-middle. Production deployments need a maintained knownHostsFile.

HTTP

http-listener

PropertyMeaning
portport to listen on
bindAddressnetwork interface
basePathpath prefix of the endpoint
httpMethodRestrictallowed HTTP methods

http-sender

PropertyMeaning
targetUrltarget URL
methodHTTP method
timeoutMstimeout
retryCountnumber of retries

MLLP (HL7 over TCP)

mllp-listener

PropertyMeaning
port, bindAddressconnection
backlogqueue of pending connections
maxConcurrentConsumersparallel processing
receiveTimeoutMs, idleTimeoutMstimeouts
autoAckautomatic ACK response

mllp-sender

PropertyMeaning
host, porttarget
connectTimeoutMs, receiveTimeoutMstimeouts
keepAlivekeep the connection open

Database

jdbc-reader

PropertyMeaning
dataSourceUrl, driverClassNameconnection
username, passwordRefcredentials
queryquery that yields the messages
onProcessedUpdatestatement run after successful processing (mark rows as done)
pollingIntervalpoll interval in ms
maxRowslimit per run
maxPoolSize, connectionTimeoutMsconnection pool

jdbc-writer

PropertyMeaning
dataSourceUrl, driverClassNameconnection
username, passwordRefcredentials
statementwrite statement
batchSizebatch size
maxPoolSize, connectionTimeoutMsconnection pool

JMS

jms-listener

PropertyMeaning
connectionFactoryUrlbroker connection
destinationName, destinationTypequeue or topic
username, passwordRefcredentials
concurrentConsumers, maxConcurrentConsumersconcurrency
acknowledgementModeacknowledgement mode
durableSubscriptionName, clientIddurable topic subscriptions
messageSelectorselector expression

jms-sender

PropertyMeaning
connectionFactoryUrlbroker connection
destinationName, destinationTypetarget
username, passwordRefcredentials
deliveryPersistentpersistent delivery
timeToLive, prioritylifetime and priority

KIM (Kommunikation im Medizinwesen)

kim-receiver

PropertyMeaning
kimFachdienstUrl, kimPort, kimProtocolservice connection
kimUsername, kimPasswordRefcredentials
pollingIntervalfetch interval
deleteAfterFetchdelete the message after fetching
decryptionCertificateRefreference to the decryption certificate
senderCertificateRefreference to the sender certificate (signature check)
decryptionProvidercrypto provider

kim-sender

PropertyMeaning
kimFachdienstUrl, kimPort, kimUseSslservice connection
kimUsername, kimPasswordRefcredentials
senderAddress, recipientAddressKIM addresses
subject, payloadContentTypesubject and content type
signingCertificateRef, recipientCertificateRefsigning and encryption
vzdUrl, vzdBaseDn, vzdMailAttribute, vzdCertificateAttributedirectory service lookup
signatureProvidercrypto provider

Email

smtp-sender

PropertyMeaning
host, portmail server
username, passwordRefcredentials
useTLS, useSSLtransport encryption
from, to, cc, bccaddresses
subject, contentTypesubject and content type
attachmentFileNameattachment file name

There is deliberately no SMTP reader: a mailbox as a message source is rarely the right answer in clinical integration — for the telematics use case there is kim-receiver.

What does not exist (yet)

This list is the honest part of this page:

  • No TCP connector beyond MLLP. There is nothing for raw TCP today.
  • No script connector (a connector whose transport is a script).
  • No channel connector — that is, no direct channel-to-channel transport. To route from channel to channel today, you connect an http-sender to an http-listener. For the same reason there is no router.routeMessage() in scripts.
  • No DICOM. The Mirth importer recognises a “DICOM Listener” as a source transport but cannot map it and reports it as unsupported.

Placeholder modules for tcp, script and channel already exist in the server, but contain no implementation yet. They therefore appear neither in the UI nor in a valid configuration.

This page is currently available in German and English. A Spanish version will follow.