package
0.23.2
Repository: https://github.com/mainfluxlabs/mainflux.git
Documentation: pkg.go.dev

# README

Postgres writer

Postgres writer provides message repository implementation for Postgres.

Configuration

The service is configured using the environment variables presented in the following table. Note that any unset variables will be replaced with their default values.

VariableDescriptionDefault
MF_BROKER_URLMessage broker instance URLnats://localhost:4222
MF_POSTGRES_WRITER_LOG_LEVELService log levelerror
MF_POSTGRES_WRITER_PORTService HTTP port9104
MF_POSTGRES_WRITER_DB_HOSTPostgres DB hostpostgres
MF_POSTGRES_WRITER_DB_PORTPostgres DB port5432
MF_POSTGRES_WRITER_DB_USERPostgres usermainflux
MF_POSTGRES_WRITER_DB_PASSPostgres passwordmainflux
MF_POSTGRES_WRITER_DBPostgres database namemessages
MF_POSTGRES_WRITER_DB_SSL_MODEPostgres SSL modedisabled
MF_POSTGRES_WRITER_DB_SSL_CERTPostgres SSL certificate path""
MF_POSTGRES_WRITER_DB_SSL_KEYPostgres SSL key""
MF_POSTGRES_WRITER_DB_SSL_ROOT_CERTPostgres SSL root certificate path""
MF_POSTGRES_WRITER_CONFIG_PATHConfig file path with Message broker subjects list, payload type and content-type/config.toml

Deployment

The service itself is distributed as Docker container. Check the postgres-writer service section in docker-compose to see how service is deployed.

To start the service, execute the following shell script:

# download the latest version of the service
git clone https://github.com/MainfluxLabs/mainflux

cd mainflux

# compile the postgres writer
make postgres-writer

# copy binary to bin
make install

# Set the environment variables and run the service
MF_BROKER_URL=[Message broker instance URL] \
MF_POSTGRES_WRITER_LOG_LEVEL=[Service log level] \
MF_POSTGRES_WRITER_PORT=[Service HTTP port] \
MF_POSTGRES_WRITER_DB_HOST=[Postgres host] \
MF_POSTGRES_WRITER_DB_PORT=[Postgres port] \
MF_POSTGRES_WRITER_DB_USER=[Postgres user] \
MF_POSTGRES_WRITER_DB_PASS=[Postgres password] \
MF_POSTGRES_WRITER_DB=[Postgres database name] \
MF_POSTGRES_WRITER_DB_SSL_MODE=[Postgres SSL mode] \
MF_POSTGRES_WRITER_DB_SSL_CERT=[Postgres SSL cert] \
MF_POSTGRES_WRITER_DB_SSL_KEY=[Postgres SSL key] \
MF_POSTGRES_WRITER_DB_SSL_ROOT_CERT=[Postgres SSL Root cert] \
MF_POSTGRES_WRITER_CONFIG_PATH=[Config file path with Message broker subjects list, payload type and content-type] \
$GOBIN/mainfluxlabs-postgres-writer

Usage

Starting service will start consuming normalized messages in SenML format.

# Functions

Connect creates a connection to the PostgreSQL instance and applies any unapplied database migrations.
New returns new PostgreSQL writer.

# Structs

Config defines the options that are used when connecting to a PostgreSQL instance.