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

# README

Postgres reader

Postgres reader 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_POSTGRES_READER_LOG_LEVELService log leveldebug
MF_POSTGRES_READER_PORTService HTTP port8180
MF_POSTGRES_READER_CLIENT_TLSTLS mode flagfalse
MF_POSTGRES_READER_CA_CERTSPath to trusted CAs in PEM format
MF_POSTGRES_READER_DB_HOSTPostgres DB hostpostgres
MF_POSTGRES_READER_DB_PORTPostgres DB port5432
MF_POSTGRES_READER_DB_USERPostgres usermainflux
MF_POSTGRES_READER_DB_PASSPostgres passwordmainflux
MF_POSTGRES_READER_DBPostgres database namemessages
MF_POSTGRES_READER_DB_SSL_MODEPostgres SSL modedisabled
MF_POSTGRES_READER_DB_SSL_CERTPostgres SSL certificate path""
MF_POSTGRES_READER_DB_SSL_KEYPostgres SSL key""
MF_POSTGRES_READER_DB_SSL_ROOT_CERTPostgres SSL root certificate path""
MF_JAEGER_URLJaeger server URLlocalhost:6831
MF_THINGS_AUTH_GRPC_URLThings service Auth gRPC URLlocalhost:8183
MF_THINGS_AUTH_GRPC_TIMEOUTThings service Auth gRPC timeout in seconds1s
MF_AUTH_GRPC_URLAuth service gRPC URLlocalhost:8181
MF_AUTH_GRPC_TIMEOUTAuth service gRPC request timeout in seconds1s

Deployment

The service itself is distributed as Docker container. Check the postgres-reader 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_POSTGRES_READER_LOG_LEVEL=[Service log level] \
MF_POSTGRES_READER_PORT=[Service HTTP port] \
MF_POSTGRES_READER_CLIENT_TLS =[TLS mode flag] \
MF_POSTGRES_READER_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_POSTGRES_READER_DB_HOST=[Postgres host] \
MF_POSTGRES_READER_DB_PORT=[Postgres port] \
MF_POSTGRES_READER_DB_USER=[Postgres user] \
MF_POSTGRES_READER_DB_PASS=[Postgres password] \
MF_POSTGRES_READER_DB=[Postgres database name] \
MF_POSTGRES_READER_DB_SSL_MODE=[Postgres SSL mode] \
MF_POSTGRES_READER_DB_SSL_CERT=[Postgres SSL cert] \
MF_POSTGRES_READER_DB_SSL_KEY=[Postgres SSL key] \
MF_POSTGRES_READER_DB_SSL_ROOT_CERT=[Postgres SSL Root cert] \
MF_JAEGER_URL=[Jaeger server URL] \
MF_THINGS_AUTH_GRPC_URL=[Things service Auth GRPC URL] \
MF_THINGS_AUTH_GRPC_TIMEOUT=[Things service Auth gRPC request timeout in seconds] \
$GOBIN/mainfluxlabs-postgres-reader

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.