1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-27 13:48:49 +08:00

MF-1096 - Fix AuthN and Things Auth ENVARS (#1066)

* NOISSUE - Fix AuthN and Things Auth ENVARS

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Add DB envars to env.go

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix envars

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Add DefLogLLevelError

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix DB names

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix DB names

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix DB names and HTTP ports

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix .env

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Revert writers DB names

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Rm unused Twins envars

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix reviews

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix reviews

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix typo

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Remove definitions from env.go

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Revert HTTP gRPC ports

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Use default NATS URL as string

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix reviews

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Revert default ports

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix typo

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix cassandra ENVARS

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix cassandra reader ENVARS

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix readers and writers envars

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix readers and writers .env

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>

* Fix reviews

Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>
This commit is contained in:
Manuel Imperiale 2020-04-07 12:02:17 +02:00 committed by GitHub
parent 338c55e554
commit 6c39c85cc8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
51 changed files with 886 additions and 762 deletions

18
.env
View File

@ -28,6 +28,8 @@ MF_JAEGER_URL=jaeger:6831
MF_AUTHN_LOG_LEVEL=debug MF_AUTHN_LOG_LEVEL=debug
MF_AUTHN_HTTP_PORT=8189 MF_AUTHN_HTTP_PORT=8189
MF_AUTHN_GRPC_PORT=8181 MF_AUTHN_GRPC_PORT=8181
MF_AUTHN_GRPC_URL=authn:8181
MF_AUTHN_GRPC_TIMEOUT=1
MF_AUTHN_DB_PORT=5432 MF_AUTHN_DB_PORT=5432
MF_AUTHN_DB_USER=mainflux MF_AUTHN_DB_USER=mainflux
MF_AUTHN_DB_PASS=mainflux MF_AUTHN_DB_PASS=mainflux
@ -60,6 +62,8 @@ MF_THINGS_LOG_LEVEL=debug
MF_THINGS_HTTP_PORT=8182 MF_THINGS_HTTP_PORT=8182
MF_THINGS_AUTH_HTTP_PORT=8989 MF_THINGS_AUTH_HTTP_PORT=8989
MF_THINGS_AUTH_GRPC_PORT=8183 MF_THINGS_AUTH_GRPC_PORT=8183
MF_THINGS_AUTH_GRPC_URL=things:8183
MF_THINGS_AUTH_GRPC_TIMEOUT=1
MF_THINGS_DB_PORT=5432 MF_THINGS_DB_PORT=5432
MF_THINGS_DB_USER=mainflux MF_THINGS_DB_USER=mainflux
MF_THINGS_DB_PASS=mainflux MF_THINGS_DB_PASS=mainflux
@ -141,31 +145,31 @@ MF_INFLUX_WRITER_PORT=8900
MF_INFLUX_WRITER_BATCH_SIZE=5000 MF_INFLUX_WRITER_BATCH_SIZE=5000
MF_INFLUX_WRITER_BATCH_TIMEOUT=5 MF_INFLUX_WRITER_BATCH_TIMEOUT=5
MF_INFLUX_WRITER_DB_PORT=8086 MF_INFLUX_WRITER_DB_PORT=8086
MF_INFLUX_WRITER_DB_NAME=mainflux
MF_INFLUX_WRITER_DB_USER=mainflux MF_INFLUX_WRITER_DB_USER=mainflux
MF_INFLUX_WRITER_DB_PASS=mainflux MF_INFLUX_WRITER_DB_PASS=mainflux
MF_INFLUX_WRITER_DB=mainflux
MF_INFLUX_WRITER_GRAFANA_PORT=3001 MF_INFLUX_WRITER_GRAFANA_PORT=3001
### InfluxDB Reader ### InfluxDB Reader
MF_INFLUX_READER_LOG_LEVEL=debug MF_INFLUX_READER_LOG_LEVEL=debug
MF_INFLUX_READER_PORT=8905 MF_INFLUX_READER_PORT=8905
MF_INFLUX_READER_DB_NAME=mainflux
MF_INFLUX_READER_DB_PORT=8086 MF_INFLUX_READER_DB_PORT=8086
MF_INFLUX_READER_DB_USER=mainflux MF_INFLUX_READER_DB_USER=mainflux
MF_INFLUX_READER_DB_PASS=mainflux MF_INFLUX_READER_DB_PASS=mainflux
MF_INFLUX_READER_DB=mainflux
MF_INFLUX_READER_SERVER_CERT= MF_INFLUX_READER_SERVER_CERT=
MF_INFLUX_READER_SERVER_KEY= MF_INFLUX_READER_SERVER_KEY=
### MongoDB Writer ### MongoDB Writer
MF_MONGO_WRITER_LOG_LEVEL=debug MF_MONGO_WRITER_LOG_LEVEL=debug
MF_MONGO_WRITER_PORT=8901 MF_MONGO_WRITER_PORT=8901
MF_MONGO_WRITER_DB_NAME=mainflux MF_MONGO_WRITER_DB=mainflux
MF_MONGO_WRITER_DB_PORT=27017 MF_MONGO_WRITER_DB_PORT=27017
### MongoDB Reader ### MongoDB Reader
MF_MONGO_READER_LOG_LEVEL=debug MF_MONGO_READER_LOG_LEVEL=debug
MF_MONGO_READER_PORT=8904 MF_MONGO_READER_PORT=8904
MF_MONGO_READER_DB_NAME=mainflux MF_MONGO_READER_DB=mainflux
MF_MONGO_READER_DB_PORT=27017 MF_MONGO_READER_DB_PORT=27017
MF_MONGO_READER_SERVER_CERT= MF_MONGO_READER_SERVER_CERT=
MF_MONGO_READER_SERVER_KEY= MF_MONGO_READER_SERVER_KEY=
@ -176,7 +180,7 @@ MF_POSTGRES_WRITER_PORT=9104
MF_POSTGRES_WRITER_DB_PORT=5432 MF_POSTGRES_WRITER_DB_PORT=5432
MF_POSTGRES_WRITER_DB_USER=mainflux MF_POSTGRES_WRITER_DB_USER=mainflux
MF_POSTGRES_WRITER_DB_PASS=mainflux MF_POSTGRES_WRITER_DB_PASS=mainflux
MF_POSTGRES_WRITER_DB_NAME=messages MF_POSTGRES_WRITER_DB=messages
MF_POSTGRES_WRITER_DB_SSL_MODE=disable MF_POSTGRES_WRITER_DB_SSL_MODE=disable
MF_POSTGRES_WRITER_DB_SSL_CERT="" MF_POSTGRES_WRITER_DB_SSL_CERT=""
MF_POSTGRES_WRITER_DB_SSL_KEY="" MF_POSTGRES_WRITER_DB_SSL_KEY=""
@ -190,7 +194,7 @@ MF_POSTGRES_READER_CA_CERTS=""
MF_POSTGRES_READER_DB_PORT=5432 MF_POSTGRES_READER_DB_PORT=5432
MF_POSTGRES_READER_DB_USER=mainflux MF_POSTGRES_READER_DB_USER=mainflux
MF_POSTGRES_READER_DB_PASS=mainflux MF_POSTGRES_READER_DB_PASS=mainflux
MF_POSTGRES_READER_DB_NAME=messages MF_POSTGRES_READER_DB=messages
MF_POSTGRES_READER_DB_SSL_MODE=disable MF_POSTGRES_READER_DB_SSL_MODE=disable
MF_POSTGRES_READER_DB_SSL_CERT="" MF_POSTGRES_READER_DB_SSL_CERT=""
MF_POSTGRES_READER_DB_SSL_KEY="" MF_POSTGRES_READER_DB_SSL_KEY=""
@ -201,7 +205,7 @@ MF_TWINS_LOG_LEVEL=debug
MF_TWINS_HTTP_PORT=9021 MF_TWINS_HTTP_PORT=9021
MF_TWINS_SERVER_CERT="" MF_TWINS_SERVER_CERT=""
MF_TWINS_SERVER_KEY="" MF_TWINS_SERVER_KEY=""
MF_TWINS_DB_NAME=mainflux-twins MF_TWINS_DB=mainflux-twins
MF_TWINS_DB_HOST=twins-db MF_TWINS_DB_HOST=twins-db
MF_TWINS_DB_PORT=27018 MF_TWINS_DB_PORT=27018
MF_TWINS_SINGLE_USER_EMAIL="" MF_TWINS_SINGLE_USER_EMAIL=""

View File

@ -55,7 +55,6 @@ The service is configured using the environment variables presented in the follo
| MF_BOOTSTRAP_SERVER_KEY | Path to server key in pem format | | | MF_BOOTSTRAP_SERVER_KEY | Path to server key in pem format | |
| MF_SDK_BASE_URL | Base url for Mainflux SDK | http://localhost | | MF_SDK_BASE_URL | Base url for Mainflux SDK | http://localhost |
| MF_SDK_THINGS_PREFIX | SDK prefix for Things service | | | MF_SDK_THINGS_PREFIX | SDK prefix for Things service | |
| MF_USERS_URL | Users service URL | localhost:8181 |
| MF_THINGS_ES_URL | Things service event source URL | localhost:6379 | | MF_THINGS_ES_URL | Things service event source URL | localhost:6379 |
| MF_THINGS_ES_PASS | Things service event source password | | | MF_THINGS_ES_PASS | Things service event source password | |
| MF_THINGS_ES_DB | Things service event source database | 0 | | MF_THINGS_ES_DB | Things service event source database | 0 |
@ -64,7 +63,8 @@ The service is configured using the environment variables presented in the follo
| MF_BOOTSTRAP_ES_DB | Bootstrap service event source database | 0 | | MF_BOOTSTRAP_ES_DB | Bootstrap service event source database | 0 |
| MF_BOOTSTRAP_EVENT_CONSUMER | Bootstrap service event source consumer name | bootstrap | | MF_BOOTSTRAP_EVENT_CONSUMER | Bootstrap service event source consumer name | bootstrap |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_BOOTSTRAP_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_AUTHN_GRPC_URL | AuthN service gRPC URL | localhost:8181 |
| MF_AUTHN_GRPC_TIMEOUT | AuthN service gRPC request timeout in seconds | 1 |
## Deployment ## Deployment
@ -101,7 +101,6 @@ version: "2"
MF_BOOTSTRAP_SERVER_KEY: [String path to server key in pem format] MF_BOOTSTRAP_SERVER_KEY: [String path to server key in pem format]
MF_SDK_BASE_URL: [Base SDK URL for the Mainflux services] MF_SDK_BASE_URL: [Base SDK URL for the Mainflux services]
MF_SDK_THINGS_PREFIX: [SDK prefix for Things service] MF_SDK_THINGS_PREFIX: [SDK prefix for Things service]
MF_USERS_URL: [Users service URL]
MF_THINGS_ES_URL: [Things service event source URL] MF_THINGS_ES_URL: [Things service event source URL]
MF_THINGS_ES_PASS: [Things service event source password] MF_THINGS_ES_PASS: [Things service event source password]
MF_THINGS_ES_DB: [Things service event source database] MF_THINGS_ES_DB: [Things service event source database]
@ -110,7 +109,8 @@ version: "2"
MF_BOOTSTRAP_ES_DB: [Bootstrap service event source database] MF_BOOTSTRAP_ES_DB: [Bootstrap service event source database]
MF_BOOTSTRAP_EVENT_CONSUMER: [Bootstrap service event source consumer name] MF_BOOTSTRAP_EVENT_CONSUMER: [Bootstrap service event source consumer name]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_BOOTSTRAP_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_AUTHN_GRPC_URL: [AuthN service gRPC URL]
MF_AUTHN_GRPC_TIMEOUT: [AuthN service gRPC request timeout in seconds]
``` ```
To start the service outside of the container, execute the following shell script: To start the service outside of the container, execute the following shell script:
@ -128,7 +128,28 @@ make bootstrap
make install make install
# set the environment variables and run the service # set the environment variables and run the service
MF_BOOTSTRAP_LOG_LEVEL=[Bootstrap log level] MF_BOOTSTRAP_DB_HOST=[Database host address] MF_BOOTSTRAP_DB_PORT=[Database host port] MF_BOOTSTRAP_DB_USER=[Database user] MF_BOOTSTRAP_DB_PASS=[Database password] MF_BOOTSTRAP_DB=[Name of the database used by the service] MF_BOOTSTRAP_DB_SSL_MODE=[SSL mode to connect to the database with] MF_BOOTSTRAP_DB_SSL_CERT=[Path to the PEM encoded certificate file] MF_BOOTSTRAP_DB_SSL_KEY=[Path to the PEM encoded key file] MF_BOOTSTRAP_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] MF_BOOTSTRAP_ENCRYPT_KEY=[Hex-encoded encryption key used for secure bootstrap] MF_BOOTSTRAP_CLIENT_TLS=[Boolean value to enable/disable client TLS] MF_BOOTSTRAP_CA_CERTS=[Path to trusted CAs in PEM format] MF_BOOTSTRAP_PORT=[Service HTTP port] MF_BOOTSTRAP_SERVER_CERT=[Path to server certificate] MF_BOOTSTRAP_SERVER_KEY=[Path to server key] MF_SDK_BASE_URL=[Base SDK URL for the Mainflux services] MF_SDK_THINGS_PREFIX=[SDK prefix for Things service] MF_USERS_URL=[Users service URL] MF_JAEGER_URL=[Jaeger server URL] MF_BOOTSTRAP_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] $GOBIN/mainflux-bootstrap MF_BOOTSTRAP_LOG_LEVEL=[Bootstrap log level] \
MF_BOOTSTRAP_DB_HOST=[Database host address] \
MF_BOOTSTRAP_DB_PORT=[Database host port] \
MF_BOOTSTRAP_DB_USER=[Database user] \
MF_BOOTSTRAP_DB_PASS=[Database password] \
MF_BOOTSTRAP_DB=[Name of the database used by the service] \
MF_BOOTSTRAP_DB_SSL_MODE=[SSL mode to connect to the database with] \
MF_BOOTSTRAP_DB_SSL_CERT=[Path to the PEM encoded certificate file] \
MF_BOOTSTRAP_DB_SSL_KEY=[Path to the PEM encoded key file] \
MF_BOOTSTRAP_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] \
MF_BOOTSTRAP_ENCRYPT_KEY=[Hex-encoded encryption key used for secure bootstrap] \
MF_BOOTSTRAP_CLIENT_TLS=[Boolean value to enable/disable client TLS] \
MF_BOOTSTRAP_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_BOOTSTRAP_PORT=[Service HTTP port] \
MF_BOOTSTRAP_SERVER_CERT=[Path to server certificate] \
MF_BOOTSTRAP_SERVER_KEY=[Path to server key] \
MF_SDK_BASE_URL=[Base SDK URL for the Mainflux services] \
MF_SDK_THINGS_PREFIX=[SDK prefix for Things service] \
MF_JAEGER_URL=[Jaeger server URL] \
MF_AUTHN_GRPC_URL=[AuthN service gRPC URL] \
MF_AUTHN_GRPC_TIMEOUT=[AuthN service gRPC request timeout in seconds] \
$GOBIN/mainflux-bootstrap
``` ```
Setting `MF_BOOTSTRAP_CA_CERTS` expects a file in PEM format of trusted CAs. This will enable TLS against the Users gRPC endpoint trusting only those CAs that are provided. Setting `MF_BOOTSTRAP_CA_CERTS` expects a file in PEM format of trusted CAs. This will enable TLS against the Users gRPC endpoint trusting only those CAs that are provided.

View File

@ -36,7 +36,7 @@ const (
defDBPort = "5432" defDBPort = "5432"
defDBUser = "mainflux" defDBUser = "mainflux"
defDBPass = "mainflux" defDBPass = "mainflux"
defDBName = "authn" defDB = "authn"
defDBSSLMode = "disable" defDBSSLMode = "disable"
defDBSSLCert = "" defDBSSLCert = ""
defDBSSLKey = "" defDBSSLKey = ""
@ -53,7 +53,7 @@ const (
envDBPort = "MF_AUTHN_DB_PORT" envDBPort = "MF_AUTHN_DB_PORT"
envDBUser = "MF_AUTHN_DB_USER" envDBUser = "MF_AUTHN_DB_USER"
envDBPass = "MF_AUTHN_DB_PASS" envDBPass = "MF_AUTHN_DB_PASS"
envDBName = "MF_AUTHN_DB" envDB = "MF_AUTHN_DB"
envDBSSLMode = "MF_AUTHN_DB_SSL_MODE" envDBSSLMode = "MF_AUTHN_DB_SSL_MODE"
envDBSSLCert = "MF_AUTHN_DB_SSL_CERT" envDBSSLCert = "MF_AUTHN_DB_SSL_CERT"
envDBSSLKey = "MF_AUTHN_DB_SSL_KEY" envDBSSLKey = "MF_AUTHN_DB_SSL_KEY"
@ -122,7 +122,7 @@ func loadConfig() config {
Port: mainflux.Env(envDBPort, defDBPort), Port: mainflux.Env(envDBPort, defDBPort),
User: mainflux.Env(envDBUser, defDBUser), User: mainflux.Env(envDBUser, defDBUser),
Pass: mainflux.Env(envDBPass, defDBPass), Pass: mainflux.Env(envDBPass, defDBPass),
Name: mainflux.Env(envDBName, defDBName), Name: mainflux.Env(envDB, defDB),
SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode), SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode),
SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert), SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert),
SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey), SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey),

View File

@ -43,7 +43,7 @@ const (
defDBPort = "5432" defDBPort = "5432"
defDBUser = "mainflux" defDBUser = "mainflux"
defDBPass = "mainflux" defDBPass = "mainflux"
defDBName = "bootstrap" defDB = "bootstrap"
defDBSSLMode = "disable" defDBSSLMode = "disable"
defDBSSLCert = "" defDBSSLCert = ""
defDBSSLKey = "" defDBSSLKey = ""
@ -64,15 +64,15 @@ const (
defESDB = "0" defESDB = "0"
defESConsumerName = "bootstrap" defESConsumerName = "bootstrap"
defJaegerURL = "" defJaegerURL = ""
defAuthURL = "localhost:8181" defAuthnURL = "localhost:8181"
defAuthTimeout = "1" // in seconds defAuthnTimeout = "1" // in seconds
envLogLevel = "MF_BOOTSTRAP_LOG_LEVEL" envLogLevel = "MF_BOOTSTRAP_LOG_LEVEL"
envDBHost = "MF_BOOTSTRAP_DB_HOST" envDBHost = "MF_BOOTSTRAP_DB_HOST"
envDBPort = "MF_BOOTSTRAP_DB_PORT" envDBPort = "MF_BOOTSTRAP_DB_PORT"
envDBUser = "MF_BOOTSTRAP_DB_USER" envDBUser = "MF_BOOTSTRAP_DB_USER"
envDBPass = "MF_BOOTSTRAP_DB_PASS" envDBPass = "MF_BOOTSTRAP_DB_PASS"
envDBName = "MF_BOOTSTRAP_DB" envDB = "MF_BOOTSTRAP_DB"
envDBSSLMode = "MF_BOOTSTRAP_DB_SSL_MODE" envDBSSLMode = "MF_BOOTSTRAP_DB_SSL_MODE"
envDBSSLCert = "MF_BOOTSTRAP_DB_SSL_CERT" envDBSSLCert = "MF_BOOTSTRAP_DB_SSL_CERT"
envDBSSLKey = "MF_BOOTSTRAP_DB_SSL_KEY" envDBSSLKey = "MF_BOOTSTRAP_DB_SSL_KEY"
@ -93,8 +93,8 @@ const (
envESDB = "MF_BOOTSTRAP_ES_DB" envESDB = "MF_BOOTSTRAP_ES_DB"
envESConsumerName = "MF_BOOTSTRAP_EVENT_CONSUMER" envESConsumerName = "MF_BOOTSTRAP_EVENT_CONSUMER"
envJaegerURL = "MF_JAEGER_URL" envJaegerURL = "MF_JAEGER_URL"
envAuthURL = "MF_AUTH_URL" envAuthnURL = "MF_AUTHN_GRPC_URL"
envAuthTimeout = "MF_AUTH_TIMEOUT" envAuthnTimeout = "MF_AUTHN_GRPC_TIMEOUT"
) )
type config struct { type config struct {
@ -116,8 +116,8 @@ type config struct {
esDB string esDB string
esConsumerName string esConsumerName string
jaegerURL string jaegerURL string
authURL string authnURL string
authTimeout time.Duration authnTimeout time.Duration
} }
func main() { func main() {
@ -143,7 +143,7 @@ func main() {
authConn := connectToAuth(cfg, logger) authConn := connectToAuth(cfg, logger)
defer authConn.Close() defer authConn.Close()
auth := authapi.NewClient(authTracer, authConn, cfg.authTimeout) auth := authapi.NewClient(authTracer, authConn, cfg.authnTimeout)
svc := newService(auth, db, logger, esClient, cfg) svc := newService(auth, db, logger, esClient, cfg)
errs := make(chan error, 2) errs := make(chan error, 2)
@ -171,16 +171,16 @@ func loadConfig() config {
Port: mainflux.Env(envDBPort, defDBPort), Port: mainflux.Env(envDBPort, defDBPort),
User: mainflux.Env(envDBUser, defDBUser), User: mainflux.Env(envDBUser, defDBUser),
Pass: mainflux.Env(envDBPass, defDBPass), Pass: mainflux.Env(envDBPass, defDBPass),
Name: mainflux.Env(envDBName, defDBName), Name: mainflux.Env(envDB, defDB),
SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode), SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode),
SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert), SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert),
SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey), SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey),
SSLRootCert: mainflux.Env(envDBSSLRootCert, defDBSSLRootCert), SSLRootCert: mainflux.Env(envDBSSLRootCert, defDBSSLRootCert),
} }
timeout, err := strconv.ParseInt(mainflux.Env(envAuthTimeout, defAuthTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envAuthnTimeout, defAuthnTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envAuthTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envAuthnTimeout, err.Error())
} }
encKey, err := hex.DecodeString(mainflux.Env(envEncryptKey, defEncryptKey)) encKey, err := hex.DecodeString(mainflux.Env(envEncryptKey, defEncryptKey))
if err != nil { if err != nil {
@ -212,8 +212,8 @@ func loadConfig() config {
esDB: mainflux.Env(envESDB, defESDB), esDB: mainflux.Env(envESDB, defESDB),
esConsumerName: mainflux.Env(envESConsumerName, defESConsumerName), esConsumerName: mainflux.Env(envESConsumerName, defESConsumerName),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
authURL: mainflux.Env(envAuthURL, defAuthURL), authnURL: mainflux.Env(envAuthnURL, defAuthnURL),
authTimeout: time.Duration(timeout) * time.Second, authnTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -311,9 +311,9 @@ func connectToAuth(cfg config, logger logger.Logger) *grpc.ClientConn {
logger.Info("gRPC communication is not encrypted") logger.Info("gRPC communication is not encrypted")
} }
conn, err := grpc.Dial(cfg.authURL, opts...) conn, err := grpc.Dial(cfg.authnURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to users service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to authn service: %s", err))
os.Exit(1) os.Exit(1)
} }

View File

@ -34,48 +34,48 @@ import (
const ( const (
sep = "," sep = ","
defLogLevel = "error" defLogLevel = "error"
defPort = "8180" defPort = "8180"
defCluster = "127.0.0.1" defCluster = "127.0.0.1"
defKeyspace = "mainflux" defKeyspace = "messages"
defDBUsername = "" defDBUser = "mainflux"
defDBPassword = "" defDBPass = "mainflux"
defDBPort = "9042" defDBPort = "9042"
defThingsURL = "localhost:8181" defClientTLS = "false"
defClientTLS = "false" defCACerts = ""
defCACerts = "" defServerCert = ""
defServerCert = "" defServerKey = ""
defServerKey = "" defJaegerURL = ""
defJaegerURL = "" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envLogLevel = "MF_CASSANDRA_READER_LOG_LEVEL" envLogLevel = "MF_CASSANDRA_READER_LOG_LEVEL"
envPort = "MF_CASSANDRA_READER_PORT" envPort = "MF_CASSANDRA_READER_PORT"
envCluster = "MF_CASSANDRA_READER_DB_CLUSTER" envCluster = "MF_CASSANDRA_READER_DB_CLUSTER"
envKeyspace = "MF_CASSANDRA_READER_DB_KEYSPACE" envKeyspace = "MF_CASSANDRA_READER_DB_KEYSPACE"
envDBUsername = "MF_CASSANDRA_READER_DB_USERNAME" envDBUser = "MF_CASSANDRA_READER_DB_USER"
envDBPassword = "MF_CASSANDRA_READER_DB_PASSWORD" envDBPass = "MF_CASSANDRA_READER_DB_PASS"
envDBPort = "MF_CASSANDRA_READER_DB_PORT" envDBPort = "MF_CASSANDRA_READER_DB_PORT"
envThingsURL = "MF_THINGS_URL" envClientTLS = "MF_CASSANDRA_READER_CLIENT_TLS"
envClientTLS = "MF_CASSANDRA_READER_CLIENT_TLS" envCACerts = "MF_CASSANDRA_READER_CA_CERTS"
envCACerts = "MF_CASSANDRA_READER_CA_CERTS" envServerCert = "MF_CASSANDRA_READER_SERVER_CERT"
envServerCert = "MF_CASSANDRA_READER_SERVER_CERT" envServerKey = "MF_CASSANDRA_READER_SERVER_KEY"
envServerKey = "MF_CASSANDRA_READER_SERVER_KEY" envJaegerURL = "MF_JAEGER_URL"
envJaegerURL = "MF_JAEGER_URL" envThingsAuthURL = "MF_THINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_CASSANDRA_READER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMEOUT"
) )
type config struct { type config struct {
logLevel string logLevel string
port string port string
dbCfg cassandra.DBConfig dbCfg cassandra.DBConfig
thingsURL string clientTLS bool
clientTLS bool caCerts string
caCerts string serverCert string
serverCert string serverKey string
serverKey string jaegerURL string
jaegerURL string thingsAuthURL string
thingsTimeout time.Duration thingsAuthTimeout time.Duration
} }
func main() { func main() {
@ -95,7 +95,7 @@ func main() {
thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger) thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger)
defer thingsCloser.Close() defer thingsCloser.Close()
tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
repo := newService(session, logger) repo := newService(session, logger)
errs := make(chan error, 2) errs := make(chan error, 2)
@ -121,8 +121,8 @@ func loadConfig() config {
dbCfg := cassandra.DBConfig{ dbCfg := cassandra.DBConfig{
Hosts: strings.Split(mainflux.Env(envCluster, defCluster), sep), Hosts: strings.Split(mainflux.Env(envCluster, defCluster), sep),
Keyspace: mainflux.Env(envKeyspace, defKeyspace), Keyspace: mainflux.Env(envKeyspace, defKeyspace),
Username: mainflux.Env(envDBUsername, defDBUsername), User: mainflux.Env(envDBUser, defDBUser),
Password: mainflux.Env(envDBPassword, defDBPassword), Pass: mainflux.Env(envDBPass, defDBPass),
Port: dbPort, Port: dbPort,
} }
@ -131,22 +131,22 @@ func loadConfig() config {
log.Fatalf("Invalid value passed for %s\n", envClientTLS) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
return config{ return config{
logLevel: mainflux.Env(envLogLevel, defLogLevel), logLevel: mainflux.Env(envLogLevel, defLogLevel),
port: mainflux.Env(envPort, defPort), port: mainflux.Env(envPort, defPort),
dbCfg: dbCfg, dbCfg: dbCfg,
thingsURL: mainflux.Env(envThingsURL, defThingsURL), clientTLS: tls,
clientTLS: tls, caCerts: mainflux.Env(envCACerts, defCACerts),
caCerts: mainflux.Env(envCACerts, defCACerts), serverCert: mainflux.Env(envServerCert, defServerCert),
serverCert: mainflux.Env(envServerCert, defServerCert), serverKey: mainflux.Env(envServerKey, defServerKey),
serverKey: mainflux.Env(envServerKey, defServerKey), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsTimeout: time.Duration(timeout) * time.Second, thingsAuthTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -176,7 +176,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -29,13 +29,13 @@ const (
svcName = "cassandra-writer" svcName = "cassandra-writer"
sep = "," sep = ","
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defLogLevel = "error" defLogLevel = "error"
defPort = "8180" defPort = "8180"
defCluster = "127.0.0.1" defCluster = "127.0.0.1"
defKeyspace = "mainflux" defKeyspace = "messages"
defDBUsername = "" defDBUser = "mainflux"
defDBPassword = "" defDBPass = "mainflux"
defDBPort = "9042" defDBPort = "9042"
defSubjectsCfgPath = "/config/subjects.toml" defSubjectsCfgPath = "/config/subjects.toml"
@ -44,8 +44,8 @@ const (
envPort = "MF_CASSANDRA_WRITER_PORT" envPort = "MF_CASSANDRA_WRITER_PORT"
envCluster = "MF_CASSANDRA_WRITER_DB_CLUSTER" envCluster = "MF_CASSANDRA_WRITER_DB_CLUSTER"
envKeyspace = "MF_CASSANDRA_WRITER_DB_KEYSPACE" envKeyspace = "MF_CASSANDRA_WRITER_DB_KEYSPACE"
envDBUsername = "MF_CASSANDRA_WRITER_DB_USERNAME" envDBUser = "MF_CASSANDRA_WRITER_DB_USER"
envDBPassword = "MF_CASSANDRA_WRITER_DB_PASSWORD" envDBPass = "MF_CASSANDRA_WRITER_DB_PASS"
envDBPort = "MF_CASSANDRA_WRITER_DB_PORT" envDBPort = "MF_CASSANDRA_WRITER_DB_PORT"
envSubjectsCfgPath = "MF_CASSANDRA_WRITER_SUBJECTS_CONFIG" envSubjectsCfgPath = "MF_CASSANDRA_WRITER_SUBJECTS_CONFIG"
) )
@ -105,8 +105,8 @@ func loadConfig() config {
dbCfg := cassandra.DBConfig{ dbCfg := cassandra.DBConfig{
Hosts: strings.Split(mainflux.Env(envCluster, defCluster), sep), Hosts: strings.Split(mainflux.Env(envCluster, defCluster), sep),
Keyspace: mainflux.Env(envKeyspace, defKeyspace), Keyspace: mainflux.Env(envKeyspace, defKeyspace),
Username: mainflux.Env(envDBUsername, defDBUsername), User: mainflux.Env(envDBUser, defDBUser),
Password: mainflux.Env(envDBPassword, defDBPassword), Pass: mainflux.Env(envDBPass, defDBPass),
Port: dbPort, Port: dbPort,
} }

View File

@ -31,37 +31,37 @@ import (
) )
const ( const (
defPort = "5683" defPort = "5683"
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defThingsURL = "localhost:8181" defLogLevel = "error"
defLogLevel = "error" defClientTLS = "false"
defClientTLS = "false" defCACerts = ""
defCACerts = "" defPingPeriod = "12"
defPingPeriod = "12" defJaegerURL = ""
defJaegerURL = "" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envPort = "MF_COAP_ADAPTER_PORT" envPort = "MF_COAP_ADAPTER_PORT"
envNatsURL = "MF_NATS_URL" envNatsURL = "MF_NATS_URL"
envThingsURL = "MF_THINGS_URL" envLogLevel = "MF_COAP_ADAPTER_LOG_LEVEL"
envLogLevel = "MF_COAP_ADAPTER_LOG_LEVEL" envClientTLS = "MF_COAP_ADAPTER_CLIENT_TLS"
envClientTLS = "MF_COAP_ADAPTER_CLIENT_TLS" envCACerts = "MF_COAP_ADAPTER_CA_CERTS"
envCACerts = "MF_COAP_ADAPTER_CA_CERTS" envPingPeriod = "MF_COAP_ADAPTER_PING_PERIOD"
envPingPeriod = "MF_COAP_ADAPTER_PING_PERIOD" envJaegerURL = "MF_JAEGER_URL"
envJaegerURL = "MF_JAEGER_URL" envThingsAuthURL = "MF_THINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_COAP_ADAPTER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMEOUT"
) )
type config struct { type config struct {
port string port string
natsURL string natsURL string
thingsURL string logLevel string
logLevel string clientTLS bool
clientTLS bool caCerts string
caCerts string pingPeriod time.Duration
pingPeriod time.Duration jaegerURL string
jaegerURL string thingsAuthURL string
thingsTimeout time.Duration thingsAuthTimeout time.Duration
} }
func main() { func main() {
@ -78,7 +78,7 @@ func main() {
thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger) thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger)
defer thingsCloser.Close() defer thingsCloser.Close()
cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
respChan := make(chan string, 10000) respChan := make(chan string, 10000)
b, err := broker.New(cfg.natsURL) b, err := broker.New(cfg.natsURL)
@ -138,21 +138,21 @@ func loadConfig() config {
log.Fatalf("Value of %s must be between 1 and 24", envPingPeriod) log.Fatalf("Value of %s must be between 1 and 24", envPingPeriod)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
return config{ return config{
thingsURL: mainflux.Env(envThingsURL, defThingsURL), natsURL: mainflux.Env(envNatsURL, defNatsURL),
natsURL: mainflux.Env(envNatsURL, defNatsURL), port: mainflux.Env(envPort, defPort),
port: mainflux.Env(envPort, defPort), logLevel: mainflux.Env(envLogLevel, defLogLevel),
logLevel: mainflux.Env(envLogLevel, defLogLevel), clientTLS: tls,
clientTLS: tls, caCerts: mainflux.Env(envCACerts, defCACerts),
caCerts: mainflux.Env(envCACerts, defCACerts), pingPeriod: time.Duration(pp),
pingPeriod: time.Duration(pp), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsTimeout: time.Duration(timeout) * time.Second, thingsAuthTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -172,7 +172,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -31,34 +31,34 @@ import (
) )
const ( const (
defClientTLS = "false" defLogLevel = "error"
defCACerts = "" defClientTLS = "false"
defPort = "8180" defCACerts = ""
defLogLevel = "error" defPort = "8180"
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defThingsURL = "localhost:8181" defJaegerURL = ""
defJaegerURL = "" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envClientTLS = "MF_HTTP_ADAPTER_CLIENT_TLS" envLogLevel = "MF_HTTP_ADAPTER_LOG_LEVEL"
envCACerts = "MF_HTTP_ADAPTER_CA_CERTS" envClientTLS = "MF_HTTP_ADAPTER_CLIENT_TLS"
envPort = "MF_HTTP_ADAPTER_PORT" envCACerts = "MF_HTTP_ADAPTER_CA_CERTS"
envLogLevel = "MF_HTTP_ADAPTER_LOG_LEVEL" envPort = "MF_HTTP_ADAPTER_PORT"
envNatsURL = "MF_NATS_URL" envNatsURL = "MF_NATS_URL"
envThingsURL = "MF_THINGS_URL" envJaegerURL = "MF_JAEGER_URL"
envJaegerURL = "MF_JAEGER_URL" envThingsAuthURL = "MF_THINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_HTTP_ADAPTER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMEOUT"
) )
type config struct { type config struct {
thingsURL string natsURL string
natsURL string logLevel string
logLevel string port string
port string clientTLS bool
clientTLS bool caCerts string
caCerts string jaegerURL string
jaegerURL string thingsAuthURL string
thingsTimeout time.Duration thingsAuthTimeout time.Duration
} }
func main() { func main() {
@ -86,7 +86,7 @@ func main() {
} }
defer b.Close() defer b.Close()
cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
svc := adapter.New(b, cc) svc := adapter.New(b, cc)
svc = api.LoggingMiddleware(svc, logger) svc = api.LoggingMiddleware(svc, logger)
@ -130,20 +130,20 @@ func loadConfig() config {
log.Fatalf("Invalid value passed for %s\n", envClientTLS) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
return config{ return config{
thingsURL: mainflux.Env(envThingsURL, defThingsURL), natsURL: mainflux.Env(envNatsURL, defNatsURL),
natsURL: mainflux.Env(envNatsURL, defNatsURL), logLevel: mainflux.Env(envLogLevel, defLogLevel),
logLevel: mainflux.Env(envLogLevel, defLogLevel), port: mainflux.Env(envPort, defPort),
port: mainflux.Env(envPort, defPort), clientTLS: tls,
clientTLS: tls, caCerts: mainflux.Env(envCACerts, defCACerts),
caCerts: mainflux.Env(envCACerts, defCACerts), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsTimeout: time.Duration(timeout) * time.Second, thingsAuthTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -187,7 +187,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -28,52 +28,52 @@ import (
) )
const ( const (
defThingsURL = "localhost:8181" defLogLevel = "error"
defLogLevel = "error" defPort = "8180"
defPort = "8180" defDB = "messages"
defDBName = "mainflux" defDBHost = "localhost"
defDBHost = "localhost" defDBPort = "8086"
defDBPort = "8086" defDBUser = "mainflux"
defDBUser = "mainflux" defDBPass = "mainflux"
defDBPass = "mainflux" defClientTLS = "false"
defClientTLS = "false" defCACerts = ""
defCACerts = "" defServerCert = ""
defServerCert = "" defServerKey = ""
defServerKey = "" defJaegerURL = ""
defJaegerURL = "" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envThingsURL = "MF_THINGS_URL" envLogLevel = "MF_INFLUX_READER_LOG_LEVEL"
envLogLevel = "MF_INFLUX_READER_LOG_LEVEL" envPort = "MF_INFLUX_READER_PORT"
envPort = "MF_INFLUX_READER_PORT" envDB = "MF_INFLUX_READER_DB"
envDBName = "MF_INFLUX_READER_DB_NAME" envDBHost = "MF_INFLUX_READER_DB_HOST"
envDBHost = "MF_INFLUX_READER_DB_HOST" envDBPort = "MF_INFLUX_READER_DB_PORT"
envDBPort = "MF_INFLUX_READER_DB_PORT" envDBUser = "MF_INFLUX_READER_DB_USER"
envDBUser = "MF_INFLUX_READER_DB_USER" envDBPass = "MF_INFLUX_READER_DB_PASS"
envDBPass = "MF_INFLUX_READER_DB_PASS" envClientTLS = "MF_INFLUX_READER_CLIENT_TLS"
envClientTLS = "MF_INFLUX_READER_CLIENT_TLS" envCACerts = "MF_INFLUX_READER_CA_CERTS"
envCACerts = "MF_INFLUX_READER_CA_CERTS" envServerCert = "MF_INFLUX_READER_SERVER_CERT"
envServerCert = "MF_INFLUX_READER_SERVER_CERT" envServerKey = "MF_INFLUX_READER_SERVER_KEY"
envServerKey = "MF_INFLUX_READER_SERVER_KEY" envJaegerURL = "MF_JAEGER_URL"
envJaegerURL = "MF_JAEGER_URL" envThingsAuthURL = "MF_THINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_INFLUX_READER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMEOUT"
) )
type config struct { type config struct {
thingsURL string logLevel string
logLevel string port string
port string dbName string
dbName string dbHost string
dbHost string dbPort string
dbPort string dbUser string
dbUser string dbPass string
dbPass string clientTLS bool
clientTLS bool caCerts string
caCerts string serverCert string
serverCert string serverKey string
serverKey string jaegerURL string
jaegerURL string thingsAuthURL string
thingsTimeout time.Duration thingsAuthTimeout time.Duration
} }
func main() { func main() {
@ -88,7 +88,7 @@ func main() {
thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger) thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger)
defer thingsCloser.Close() defer thingsCloser.Close()
tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
client, err := influxdata.NewHTTPClient(clientCfg) client, err := influxdata.NewHTTPClient(clientCfg)
if err != nil { if err != nil {
@ -118,26 +118,26 @@ func loadConfigs() (config, influxdata.HTTPConfig) {
log.Fatalf("Invalid value passed for %s\n", envClientTLS) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
cfg := config{ cfg := config{
thingsURL: mainflux.Env(envThingsURL, defThingsURL), logLevel: mainflux.Env(envLogLevel, defLogLevel),
logLevel: mainflux.Env(envLogLevel, defLogLevel), port: mainflux.Env(envPort, defPort),
port: mainflux.Env(envPort, defPort), dbName: mainflux.Env(envDB, defDB),
dbName: mainflux.Env(envDBName, defDBName), dbHost: mainflux.Env(envDBHost, defDBHost),
dbHost: mainflux.Env(envDBHost, defDBHost), dbPort: mainflux.Env(envDBPort, defDBPort),
dbPort: mainflux.Env(envDBPort, defDBPort), dbUser: mainflux.Env(envDBUser, defDBUser),
dbUser: mainflux.Env(envDBUser, defDBUser), dbPass: mainflux.Env(envDBPass, defDBPass),
dbPass: mainflux.Env(envDBPass, defDBPass), clientTLS: tls,
clientTLS: tls, caCerts: mainflux.Env(envCACerts, defCACerts),
caCerts: mainflux.Env(envCACerts, defCACerts), serverCert: mainflux.Env(envServerCert, defServerCert),
serverCert: mainflux.Env(envServerCert, defServerCert), serverKey: mainflux.Env(envServerKey, defServerKey),
serverKey: mainflux.Env(envServerKey, defServerKey), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsTimeout: time.Duration(timeout) * time.Second, thingsAuthTimeout: time.Duration(timeout) * time.Second,
} }
clientCfg := influxdata.HTTPConfig{ clientCfg := influxdata.HTTPConfig{
@ -165,7 +165,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -26,10 +26,10 @@ import (
const ( const (
svcName = "influxdb-writer" svcName = "influxdb-writer"
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defLogLevel = "error" defLogLevel = "error"
defPort = "8180" defPort = "8180"
defDBName = "mainflux" defDB = "messages"
defDBHost = "localhost" defDBHost = "localhost"
defDBPort = "8086" defDBPort = "8086"
defDBUser = "mainflux" defDBUser = "mainflux"
@ -39,7 +39,7 @@ const (
envNatsURL = "MF_NATS_URL" envNatsURL = "MF_NATS_URL"
envLogLevel = "MF_INFLUX_WRITER_LOG_LEVEL" envLogLevel = "MF_INFLUX_WRITER_LOG_LEVEL"
envPort = "MF_INFLUX_WRITER_PORT" envPort = "MF_INFLUX_WRITER_PORT"
envDBName = "MF_INFLUX_WRITER_DB_NAME" envDB = "MF_INFLUX_WRITER_DB"
envDBHost = "MF_INFLUX_WRITER_DB_HOST" envDBHost = "MF_INFLUX_WRITER_DB_HOST"
envDBPort = "MF_INFLUX_WRITER_DB_PORT" envDBPort = "MF_INFLUX_WRITER_DB_PORT"
envDBUser = "MF_INFLUX_WRITER_DB_USER" envDBUser = "MF_INFLUX_WRITER_DB_USER"
@ -110,7 +110,7 @@ func loadConfigs() (config, influxdata.HTTPConfig) {
natsURL: mainflux.Env(envNatsURL, defNatsURL), natsURL: mainflux.Env(envNatsURL, defNatsURL),
logLevel: mainflux.Env(envLogLevel, defLogLevel), logLevel: mainflux.Env(envLogLevel, defLogLevel),
port: mainflux.Env(envPort, defPort), port: mainflux.Env(envPort, defPort),
dbName: mainflux.Env(envDBName, defDBName), dbName: mainflux.Env(envDB, defDB),
dbHost: mainflux.Env(envDBHost, defDBHost), dbHost: mainflux.Env(envDBHost, defDBHost),
dbPort: mainflux.Env(envDBPort, defDBPort), dbPort: mainflux.Env(envDBPort, defDBPort),
dbUser: mainflux.Env(envDBUser, defDBUser), dbUser: mainflux.Env(envDBUser, defDBUser),

View File

@ -27,10 +27,10 @@ import (
) )
const ( const (
defLogLevel = "error"
defHTTPPort = "8180" defHTTPPort = "8180"
defLoraMsgURL = "tcp://localhost:1883" defLoraMsgURL = "tcp://localhost:1883"
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defLogLevel = "error"
defESURL = "localhost:6379" defESURL = "localhost:6379"
defESPass = "" defESPass = ""
defESDB = "0" defESDB = "0"

View File

@ -33,46 +33,46 @@ import (
) )
const ( const (
defThingsURL = "localhost:8181" defLogLevel = "error"
defLogLevel = "error" defPort = "8180"
defPort = "8180" defDB = "messages"
defDBName = "mainflux" defDBHost = "localhost"
defDBHost = "localhost" defDBPort = "27017"
defDBPort = "27017" defClientTLS = "false"
defClientTLS = "false" defCACerts = ""
defCACerts = "" defServerCert = ""
defServerCert = "" defServerKey = ""
defServerKey = "" defJaegerURL = ""
defJaegerURL = "" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envThingsURL = "MF_THINGS_URL" envLogLevel = "MF_MONGO_READER_LOG_LEVEL"
envLogLevel = "MF_MONGO_READER_LOG_LEVEL" envPort = "MF_MONGO_READER_PORT"
envPort = "MF_MONGO_READER_PORT" envDB = "MF_MONGO_READER_DB"
envDBName = "MF_MONGO_READER_DB_NAME" envDBHost = "MF_MONGO_READER_DB_HOST"
envDBHost = "MF_MONGO_READER_DB_HOST" envDBPort = "MF_MONGO_READER_DB_PORT"
envDBPort = "MF_MONGO_READER_DB_PORT" envClientTLS = "MF_MONGO_READER_CLIENT_TLS"
envClientTLS = "MF_MONGO_READER_CLIENT_TLS" envCACerts = "MF_MONGO_READER_CA_CERTS"
envCACerts = "MF_MONGO_READER_CA_CERTS" envServerCert = "MF_MONGO_READER_SERVER_CERT"
envServerCert = "MF_MONGO_READER_SERVER_CERT" envServerKey = "MF_MONGO_READER_SERVER_KEY"
envServerKey = "MF_MONGO_READER_SERVER_KEY" envJaegerURL = "MF_JAEGER_URL"
envJaegerURL = "MF_JAEGER_URL" envThingsAuthURL = "MF_ThINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_MONGO_READER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMEOUT"
) )
type config struct { type config struct {
thingsURL string logLevel string
logLevel string port string
port string dbName string
dbName string dbHost string
dbHost string dbPort string
dbPort string clientTLS bool
clientTLS bool caCerts string
caCerts string serverCert string
serverCert string serverKey string
serverKey string jaegerURL string
jaegerURL string thingsAuthURL string
thingsTimeout time.Duration thingsAuthTimeout time.Duration
} }
func main() { func main() {
@ -88,7 +88,7 @@ func main() {
thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger) thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger)
defer thingsCloser.Close() defer thingsCloser.Close()
tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
db := connectToMongoDB(cfg.dbHost, cfg.dbPort, cfg.dbName, logger) db := connectToMongoDB(cfg.dbHost, cfg.dbPort, cfg.dbName, logger)
@ -113,24 +113,24 @@ func loadConfigs() config {
log.Fatalf("Invalid value passed for %s\n", envClientTLS) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
return config{ return config{
thingsURL: mainflux.Env(envThingsURL, defThingsURL), logLevel: mainflux.Env(envLogLevel, defLogLevel),
logLevel: mainflux.Env(envLogLevel, defLogLevel), port: mainflux.Env(envPort, defPort),
port: mainflux.Env(envPort, defPort), dbName: mainflux.Env(envDB, defDB),
dbName: mainflux.Env(envDBName, defDBName), dbHost: mainflux.Env(envDBHost, defDBHost),
dbHost: mainflux.Env(envDBHost, defDBHost), dbPort: mainflux.Env(envDBPort, defDBPort),
dbPort: mainflux.Env(envDBPort, defDBPort), clientTLS: tls,
clientTLS: tls, caCerts: mainflux.Env(envCACerts, defCACerts),
caCerts: mainflux.Env(envCACerts, defCACerts), serverCert: mainflux.Env(envServerCert, defServerCert),
serverCert: mainflux.Env(envServerCert, defServerCert), serverKey: mainflux.Env(envServerKey, defServerKey),
serverKey: mainflux.Env(envServerKey, defServerKey), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsTimeout: time.Duration(timeout) * time.Second, thingsAuthTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -185,7 +185,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -28,10 +28,10 @@ import (
const ( const (
svcName = "mongodb-writer" svcName = "mongodb-writer"
defNatsURL = mainflux.DefNatsURL
defLogLevel = "error" defLogLevel = "error"
defNatsURL = "nats://localhost:4222"
defPort = "8180" defPort = "8180"
defDBName = "mainflux" defDB = "messages"
defDBHost = "localhost" defDBHost = "localhost"
defDBPort = "27017" defDBPort = "27017"
defSubjectsCfgPath = "/config/subjects.toml" defSubjectsCfgPath = "/config/subjects.toml"
@ -39,7 +39,7 @@ const (
envNatsURL = "MF_NATS_URL" envNatsURL = "MF_NATS_URL"
envLogLevel = "MF_MONGO_WRITER_LOG_LEVEL" envLogLevel = "MF_MONGO_WRITER_LOG_LEVEL"
envPort = "MF_MONGO_WRITER_PORT" envPort = "MF_MONGO_WRITER_PORT"
envDBName = "MF_MONGO_WRITER_DB_NAME" envDB = "MF_MONGO_WRITER_DB"
envDBHost = "MF_MONGO_WRITER_DB_HOST" envDBHost = "MF_MONGO_WRITER_DB_HOST"
envDBPort = "MF_MONGO_WRITER_DB_PORT" envDBPort = "MF_MONGO_WRITER_DB_PORT"
envSubjectsCfgPath = "MF_MONGO_WRITER_SUBJECTS_CONFIG" envSubjectsCfgPath = "MF_MONGO_WRITER_SUBJECTS_CONFIG"
@ -107,7 +107,7 @@ func loadConfigs() config {
natsURL: mainflux.Env(envNatsURL, defNatsURL), natsURL: mainflux.Env(envNatsURL, defNatsURL),
logLevel: mainflux.Env(envLogLevel, defLogLevel), logLevel: mainflux.Env(envLogLevel, defLogLevel),
port: mainflux.Env(envPort, defPort), port: mainflux.Env(envPort, defPort),
dbName: mainflux.Env(envDBName, defDBName), dbName: mainflux.Env(envDB, defDB),
dbHost: mainflux.Env(envDBHost, defDBHost), dbHost: mainflux.Env(envDBHost, defDBHost),
dbPort: mainflux.Env(envDBPort, defDBPort), dbPort: mainflux.Env(envDBPort, defDBPort),
subjectsCfgPath: mainflux.Env(envSubjectsCfgPath, defSubjectsCfgPath), subjectsCfgPath: mainflux.Env(envSubjectsCfgPath, defSubjectsCfgPath),

View File

@ -28,6 +28,9 @@ import (
) )
const ( const (
// Logging
defLogLevel = "error"
envLogLevel = "MF_MQTT_ADAPTER_LOG_LEVEL"
// MQTT // MQTT
defMQTTHost = "0.0.0.0" defMQTTHost = "0.0.0.0"
defMQTTPort = "1883" defMQTTPort = "1883"
@ -50,16 +53,13 @@ const (
envHTTPTargetHost = "MF_MQTT_ADAPTER_WS_TARGET_HOST" envHTTPTargetHost = "MF_MQTT_ADAPTER_WS_TARGET_HOST"
envHTTPTargetPort = "MF_MQTT_ADAPTER_WS_TARGET_PORT" envHTTPTargetPort = "MF_MQTT_ADAPTER_WS_TARGET_PORT"
envHTTPTargetPath = "MF_MQTT_ADAPTER_WS_TARGET_PATH" envHTTPTargetPath = "MF_MQTT_ADAPTER_WS_TARGET_PATH"
// Logging
defLogLevel = "error"
envLogLevel = "MF_MQTT_ADAPTER_LOG_LEVEL"
// Things // Things
defThingsURL = "localhost:8181" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envThingsURL = "MF_THINGS_URL" envThingsAuthURL = "MF_THINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_MQTT_ADAPTER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMMEOUT"
// Nats // Nats
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
envNatsURL = "MF_NATS_URL" envNatsURL = "MF_NATS_URL"
// Jaeger // Jaeger
defJaegerURL = "" defJaegerURL = ""
@ -82,27 +82,28 @@ const (
) )
type config struct { type config struct {
mqttHost string mqttHost string
mqttPort string mqttPort string
mqttTargetHost string mqttTargetHost string
mqttTargetPort string mqttTargetPort string
httpHost string httpHost string
httpPort string httpPort string
httpScheme string httpScheme string
httpTargetHost string httpTargetHost string
httpTargetPort string httpTargetPort string
httpTargetPath string httpTargetPath string
jaegerURL string jaegerURL string
logLevel string logLevel string
thingsURL string thingsURL string
thingsTimeout time.Duration thingsAuthURL string
natsURL string thingsAuthTimeout time.Duration
clientTLS bool natsURL string
caCerts string clientTLS bool
instance string caCerts string
esURL string instance string
esPass string esURL string
esDB string esPass string
esDB string
} }
func main() { func main() {
@ -125,7 +126,7 @@ func main() {
rc := connectToRedis(cfg.esURL, cfg.esPass, cfg.esDB, logger) rc := connectToRedis(cfg.esURL, cfg.esPass, cfg.esDB, logger)
defer rc.Close() defer rc.Close()
cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
b, err := broker.New(cfg.natsURL) b, err := broker.New(cfg.natsURL)
if err != nil { if err != nil {
@ -163,33 +164,34 @@ func loadConfig() config {
log.Fatalf("Invalid value passed for %s\n", envClientTLS) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
return config{ return config{
mqttHost: mainflux.Env(envMQTTHost, defMQTTHost), mqttHost: mainflux.Env(envMQTTHost, defMQTTHost),
mqttPort: mainflux.Env(envMQTTPort, defMQTTPort), mqttPort: mainflux.Env(envMQTTPort, defMQTTPort),
mqttTargetHost: mainflux.Env(envMQTTTargetHost, defMQTTTargetHost), mqttTargetHost: mainflux.Env(envMQTTTargetHost, defMQTTTargetHost),
mqttTargetPort: mainflux.Env(envMQTTTargetPort, defMQTTTargetPort), mqttTargetPort: mainflux.Env(envMQTTTargetPort, defMQTTTargetPort),
httpHost: mainflux.Env(envHTTPHost, defHTTPHost), httpHost: mainflux.Env(envHTTPHost, defHTTPHost),
httpPort: mainflux.Env(envHTTPPort, defHTTPPort), httpPort: mainflux.Env(envHTTPPort, defHTTPPort),
httpScheme: mainflux.Env(envHTTPScheme, defHTTPScheme), httpScheme: mainflux.Env(envHTTPScheme, defHTTPScheme),
httpTargetHost: mainflux.Env(envHTTPTargetHost, defHTTPTargetHost), httpTargetHost: mainflux.Env(envHTTPTargetHost, defHTTPTargetHost),
httpTargetPort: mainflux.Env(envHTTPTargetPort, defHTTPTargetPort), httpTargetPort: mainflux.Env(envHTTPTargetPort, defHTTPTargetPort),
httpTargetPath: mainflux.Env(envHTTPTargetPath, defHTTPTargetPath), httpTargetPath: mainflux.Env(envHTTPTargetPath, defHTTPTargetPath),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
thingsTimeout: time.Duration(timeout) * time.Second, thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsURL: mainflux.Env(envThingsURL, defThingsURL), thingsAuthTimeout: time.Duration(timeout) * time.Second,
natsURL: mainflux.Env(envNatsURL, defNatsURL), thingsURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
logLevel: mainflux.Env(envLogLevel, defLogLevel), natsURL: mainflux.Env(envNatsURL, defNatsURL),
clientTLS: tls, logLevel: mainflux.Env(envLogLevel, defLogLevel),
caCerts: mainflux.Env(envCACerts, defCACerts), clientTLS: tls,
instance: mainflux.Env(envInstance, defInstance), caCerts: mainflux.Env(envCACerts, defCACerts),
esURL: mainflux.Env(envESURL, defESURL), instance: mainflux.Env(envInstance, defInstance),
esPass: mainflux.Env(envESPass, defESPass), esURL: mainflux.Env(envESURL, defESURL),
esDB: mainflux.Env(envESDB, defESDB), esPass: mainflux.Env(envESPass, defESPass),
esDB: mainflux.Env(envESDB, defESDB),
} }
} }
@ -233,7 +235,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -28,14 +28,14 @@ import (
) )
const ( const (
defHTTPPort = "8188" defLogLevel = "error"
defHTTPPort = "8180"
defOPCIntervalMs = "1000" defOPCIntervalMs = "1000"
defOPCPolicy = "" defOPCPolicy = ""
defOPCMode = "" defOPCMode = ""
defOPCCertFile = "" defOPCCertFile = ""
defOPCKeyFile = "" defOPCKeyFile = ""
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defLogLevel = "debug"
defESURL = "localhost:6379" defESURL = "localhost:6379"
defESPass = "" defESPass = ""
defESDB = "0" defESDB = "0"
@ -44,8 +44,8 @@ const (
defRouteMapPass = "" defRouteMapPass = ""
defRouteMapDB = "0" defRouteMapDB = "0"
envHTTPPort = "MF_OPCUA_ADAPTER_HTTP_PORT"
envLogLevel = "MF_OPCUA_ADAPTER_LOG_LEVEL" envLogLevel = "MF_OPCUA_ADAPTER_LOG_LEVEL"
envHTTPPort = "MF_OPCUA_ADAPTER_HTTP_PORT"
envOPCIntervalMs = "MF_OPCUA_ADAPTER_INTERVAL_MS" envOPCIntervalMs = "MF_OPCUA_ADAPTER_INTERVAL_MS"
envOPCPolicy = "MF_OPCUA_ADAPTER_POLICY" envOPCPolicy = "MF_OPCUA_ADAPTER_POLICY"
envOPCMode = "MF_OPCUA_ADAPTER_MODE" envOPCMode = "MF_OPCUA_ADAPTER_MODE"

View File

@ -34,50 +34,50 @@ const (
svcName = "postgres-writer" svcName = "postgres-writer"
sep = "," sep = ","
defThingsURL = "localhost:8183" defLogLevel = "error"
defLogLevel = "debug" defPort = "8180"
defPort = "9204" defClientTLS = "false"
defClientTLS = "false" defCACerts = ""
defCACerts = "" defDBHost = "localhost"
defDBHost = "localhost" defDBPort = "5432"
defDBPort = "5432" defDBUser = "mainflux"
defDBUser = "mainflux" defDBPass = "mainflux"
defDBPass = "mainflux" defDB = "messages"
defDBName = "messages" defDBSSLMode = "disable"
defDBSSLMode = "disable" defDBSSLCert = ""
defDBSSLCert = "" defDBSSLKey = ""
defDBSSLKey = "" defDBSSLRootCert = ""
defDBSSLRootCert = "" defJaegerURL = ""
defJaegerURL = "" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envThingsURL = "MF_THINGS_URL" envLogLevel = "MF_POSTGRES_READER_LOG_LEVEL"
envLogLevel = "MF_POSTGRES_READER_LOG_LEVEL" envPort = "MF_POSTGRES_READER_PORT"
envPort = "MF_POSTGRES_READER_PORT" envClientTLS = "MF_POSTGRES_READER_CLIENT_TLS"
envClientTLS = "MF_POSTGRES_READER_CLIENT_TLS" envCACerts = "MF_POSTGRES_READER_CA_CERTS"
envCACerts = "MF_POSTGRES_READER_CA_CERTS" envDBHost = "MF_POSTGRES_READER_DB_HOST"
envDBHost = "MF_POSTGRES_READER_DB_HOST" envDBPort = "MF_POSTGRES_READER_DB_PORT"
envDBPort = "MF_POSTGRES_READER_DB_PORT" envDBUser = "MF_POSTGRES_READER_DB_USER"
envDBUser = "MF_POSTGRES_READER_DB_USER" envDBPass = "MF_POSTGRES_READER_DB_PASS"
envDBPass = "MF_POSTGRES_READER_DB_PASS" envDB = "MF_POSTGRES_READER_DB"
envDBName = "MF_POSTGRES_READER_DB_NAME" envDBSSLMode = "MF_POSTGRES_READER_DB_SSL_MODE"
envDBSSLMode = "MF_POSTGRES_READER_DB_SSL_MODE" envDBSSLCert = "MF_POSTGRES_READER_DB_SSL_CERT"
envDBSSLCert = "MF_POSTGRES_READER_DB_SSL_CERT" envDBSSLKey = "MF_POSTGRES_READER_DB_SSL_KEY"
envDBSSLKey = "MF_POSTGRES_READER_DB_SSL_KEY" envDBSSLRootCert = "MF_POSTGRES_READER_DB_SSL_ROOT_CERT"
envDBSSLRootCert = "MF_POSTGRES_READER_DB_SSL_ROOT_CERT" envJaegerURL = "MF_JAEGER_URL"
envJaegerURL = "MF_JAEGER_URL" envThingsAuthURL = "MF_THINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_POSTGRES_READER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMEOUT"
) )
type config struct { type config struct {
thingsURL string logLevel string
logLevel string port string
port string clientTLS bool
clientTLS bool caCerts string
caCerts string dbConfig postgres.Config
dbConfig postgres.Config jaegerURL string
jaegerURL string thingsAuthURL string
thingsTimeout time.Duration thingsAuthTimeout time.Duration
} }
func main() { func main() {
@ -94,7 +94,7 @@ func main() {
thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger) thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger)
defer thingsCloser.Close() defer thingsCloser.Close()
tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) tc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
db := connectToDB(cfg.dbConfig, logger) db := connectToDB(cfg.dbConfig, logger)
defer db.Close() defer db.Close()
@ -121,25 +121,32 @@ func loadConfig() config {
Port: mainflux.Env(envDBPort, defDBPort), Port: mainflux.Env(envDBPort, defDBPort),
User: mainflux.Env(envDBUser, defDBUser), User: mainflux.Env(envDBUser, defDBUser),
Pass: mainflux.Env(envDBPass, defDBPass), Pass: mainflux.Env(envDBPass, defDBPass),
Name: mainflux.Env(envDBName, defDBName), Name: mainflux.Env(envDB, defDB),
SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode), SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode),
SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert), SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert),
SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey), SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey),
SSLRootCert: mainflux.Env(envDBSSLRootCert, defDBSSLRootCert), SSLRootCert: mainflux.Env(envDBSSLRootCert, defDBSSLRootCert),
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) tls, err := strconv.ParseBool(mainflux.Env(envClientTLS, defClientTLS))
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
}
timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
return config{ return config{
thingsURL: mainflux.Env(envThingsURL, defThingsURL), logLevel: mainflux.Env(envLogLevel, defLogLevel),
logLevel: mainflux.Env(envLogLevel, defLogLevel), port: mainflux.Env(envPort, defPort),
port: mainflux.Env(envPort, defPort), clientTLS: tls,
dbConfig: dbConfig, caCerts: mainflux.Env(envCACerts, defCACerts),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), dbConfig: dbConfig,
thingsTimeout: time.Duration(timeout) * time.Second, jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsAuthTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -192,7 +199,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -27,14 +27,14 @@ const (
svcName = "postgres-writer" svcName = "postgres-writer"
sep = "," sep = ","
defNatsURL = mainflux.DefNatsURL
defLogLevel = "error" defLogLevel = "error"
defPort = "9104" defNatsURL = "nats://localhost:4222"
defPort = "8180"
defDBHost = "postgres" defDBHost = "postgres"
defDBPort = "5432" defDBPort = "5432"
defDBUser = "mainflux" defDBUser = "mainflux"
defDBPass = "mainflux" defDBPass = "mainflux"
defDBName = "messages" defDB = "messages"
defDBSSLMode = "disable" defDBSSLMode = "disable"
defDBSSLCert = "" defDBSSLCert = ""
defDBSSLKey = "" defDBSSLKey = ""
@ -48,7 +48,7 @@ const (
envDBPort = "MF_POSTGRES_WRITER_DB_PORT" envDBPort = "MF_POSTGRES_WRITER_DB_PORT"
envDBUser = "MF_POSTGRES_WRITER_DB_USER" envDBUser = "MF_POSTGRES_WRITER_DB_USER"
envDBPass = "MF_POSTGRES_WRITER_DB_PASS" envDBPass = "MF_POSTGRES_WRITER_DB_PASS"
envDBName = "MF_POSTGRES_WRITER_DB_NAME" envDB = "MF_POSTGRES_WRITER_DB"
envDBSSLMode = "MF_POSTGRES_WRITER_DB_SSL_MODE" envDBSSLMode = "MF_POSTGRES_WRITER_DB_SSL_MODE"
envDBSSLCert = "MF_POSTGRES_WRITER_DB_SSL_CERT" envDBSSLCert = "MF_POSTGRES_WRITER_DB_SSL_CERT"
envDBSSLKey = "MF_POSTGRES_WRITER_DB_SSL_KEY" envDBSSLKey = "MF_POSTGRES_WRITER_DB_SSL_KEY"
@ -108,7 +108,7 @@ func loadConfig() config {
Port: mainflux.Env(envDBPort, defDBPort), Port: mainflux.Env(envDBPort, defDBPort),
User: mainflux.Env(envDBUser, defDBUser), User: mainflux.Env(envDBUser, defDBUser),
Pass: mainflux.Env(envDBPass, defDBPass), Pass: mainflux.Env(envDBPass, defDBPass),
Name: mainflux.Env(envDBName, defDBName), Name: mainflux.Env(envDB, defDB),
SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode), SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode),
SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert), SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert),
SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey), SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey),

View File

@ -47,7 +47,7 @@ const (
defDBPort = "5432" defDBPort = "5432"
defDBUser = "mainflux" defDBUser = "mainflux"
defDBPass = "mainflux" defDBPass = "mainflux"
defDBName = "things" defDB = "things"
defDBSSLMode = "disable" defDBSSLMode = "disable"
defDBSSLCert = "" defDBSSLCert = ""
defDBSSLKey = "" defDBSSLKey = ""
@ -60,23 +60,23 @@ const (
defESURL = "localhost:6379" defESURL = "localhost:6379"
defESPass = "" defESPass = ""
defESDB = "0" defESDB = "0"
defHTTPPort = "8180" defHTTPPort = "8182"
defAuthHTTPPort = "8989" defAuthHTTPPort = "8180"
defAuthGRPCPort = "8181" defAuthGRPCPort = "8181"
defServerCert = "" defServerCert = ""
defServerKey = "" defServerKey = ""
defSingleUserEmail = "" defSingleUserEmail = ""
defSingleUserToken = "" defSingleUserToken = ""
defJaegerURL = "" defJaegerURL = ""
defAuthURL = "localhost:8181" defAuthnURL = "localhost:8181"
defAuthTimeout = "1" // in seconds defAuthnTimeout = "1" // in seconds
envLogLevel = "MF_THINGS_LOG_LEVEL" envLogLevel = "MF_THINGS_LOG_LEVEL"
envDBHost = "MF_THINGS_DB_HOST" envDBHost = "MF_THINGS_DB_HOST"
envDBPort = "MF_THINGS_DB_PORT" envDBPort = "MF_THINGS_DB_PORT"
envDBUser = "MF_THINGS_DB_USER" envDBUser = "MF_THINGS_DB_USER"
envDBPass = "MF_THINGS_DB_PASS" envDBPass = "MF_THINGS_DB_PASS"
envDBName = "MF_THINGS_DB" envDB = "MF_THINGS_DB"
envDBSSLMode = "MF_THINGS_DB_SSL_MODE" envDBSSLMode = "MF_THINGS_DB_SSL_MODE"
envDBSSLCert = "MF_THINGS_DB_SSL_CERT" envDBSSLCert = "MF_THINGS_DB_SSL_CERT"
envDBSSLKey = "MF_THINGS_DB_SSL_KEY" envDBSSLKey = "MF_THINGS_DB_SSL_KEY"
@ -97,8 +97,8 @@ const (
envSingleUserEmail = "MF_THINGS_SINGLE_USER_EMAIL" envSingleUserEmail = "MF_THINGS_SINGLE_USER_EMAIL"
envSingleUserToken = "MF_THINGS_SINGLE_USER_TOKEN" envSingleUserToken = "MF_THINGS_SINGLE_USER_TOKEN"
envJaegerURL = "MF_JAEGER_URL" envJaegerURL = "MF_JAEGER_URL"
envAuthURL = "MF_AUTH_URL" envAuthnURL = "MF_AUTHN_GRPC_URL"
envAuthTimeout = "MF_AUTH_TIMEOUT" envAuthnTimeout = "MF_AUTHN_GRPC_TIMEOUT"
) )
type config struct { type config struct {
@ -120,8 +120,8 @@ type config struct {
singleUserEmail string singleUserEmail string
singleUserToken string singleUserToken string
jaegerURL string jaegerURL string
authURL string authnURL string
authTimeout time.Duration authnTimeout time.Duration
} }
func main() { func main() {
@ -179,9 +179,9 @@ func loadConfig() config {
log.Fatalf("Invalid value passed for %s\n", envClientTLS) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envAuthTimeout, defAuthTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envAuthnTimeout, defAuthnTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envAuthTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envAuthnTimeout, err.Error())
} }
dbConfig := postgres.Config{ dbConfig := postgres.Config{
@ -189,7 +189,7 @@ func loadConfig() config {
Port: mainflux.Env(envDBPort, defDBPort), Port: mainflux.Env(envDBPort, defDBPort),
User: mainflux.Env(envDBUser, defDBUser), User: mainflux.Env(envDBUser, defDBUser),
Pass: mainflux.Env(envDBPass, defDBPass), Pass: mainflux.Env(envDBPass, defDBPass),
Name: mainflux.Env(envDBName, defDBName), Name: mainflux.Env(envDB, defDB),
SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode), SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode),
SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert), SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert),
SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey), SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey),
@ -215,8 +215,8 @@ func loadConfig() config {
singleUserEmail: mainflux.Env(envSingleUserEmail, defSingleUserEmail), singleUserEmail: mainflux.Env(envSingleUserEmail, defSingleUserEmail),
singleUserToken: mainflux.Env(envSingleUserToken, defSingleUserToken), singleUserToken: mainflux.Env(envSingleUserToken, defSingleUserToken),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
authURL: mainflux.Env(envAuthURL, defAuthURL), authnURL: mainflux.Env(envAuthnURL, defAuthnURL),
authTimeout: time.Duration(timeout) * time.Second, authnTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -273,7 +273,7 @@ func createAuthClient(cfg config, tracer opentracing.Tracer, logger logger.Logge
} }
conn := connectToAuth(cfg, logger) conn := connectToAuth(cfg, logger)
return authapi.NewClient(tracer, conn, cfg.authTimeout), conn.Close return authapi.NewClient(tracer, conn, cfg.authnTimeout), conn.Close
} }
func connectToAuth(cfg config, logger logger.Logger) *grpc.ClientConn { func connectToAuth(cfg config, logger logger.Logger) *grpc.ClientConn {
@ -292,9 +292,9 @@ func connectToAuth(cfg config, logger logger.Logger) *grpc.ClientConn {
logger.Info("gRPC communication is not encrypted") logger.Info("gRPC communication is not encrypted")
} }
conn, err := grpc.Dial(cfg.authURL, opts...) conn, err := grpc.Dial(cfg.authnURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to users service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to authn service: %s", err))
os.Exit(1) os.Exit(1)
} }

View File

@ -40,45 +40,39 @@ import (
const ( const (
queue = "twins" queue = "twins"
defLogLevel = "info" defLogLevel = "error"
defHTTPPort = "9021" defHTTPPort = "8180"
defJaegerURL = "" defJaegerURL = ""
defServerCert = "" defServerCert = ""
defServerKey = "" defServerKey = ""
defDBName = "mainflux" defDB = "mainflux-twins"
defDBHost = "localhost" defDBHost = "localhost"
defDBPort = "27017" defDBPort = "27017"
defSingleUserEmail = "" defSingleUserEmail = ""
defSingleUserToken = "" defSingleUserToken = ""
defClientTLS = "false" defClientTLS = "false"
defCACerts = "" defCACerts = ""
defThingID = ""
defThingKey = ""
defChannelID = "" defChannelID = ""
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defAuthnURL = "localhost:8181"
defAuthnTimeout = "1" // in seconds defAuthnTimeout = "1" // in seconds
defAuthnURL = "localhost:8181"
envLogLevel = "MF_TWINS_LOG_LEVEL" envLogLevel = "MF_TWINS_LOG_LEVEL"
envHTTPPort = "MF_TWINS_HTTP_PORT" envHTTPPort = "MF_TWINS_HTTP_PORT"
envJaegerURL = "MF_JAEGER_URL" envJaegerURL = "MF_JAEGER_URL"
envServerCert = "MF_TWINS_SERVER_CERT" envServerCert = "MF_TWINS_SERVER_CERT"
envServerKey = "MF_TWINS_SERVER_KEY" envServerKey = "MF_TWINS_SERVER_KEY"
envDBName = "MF_TWINS_DB_NAME" envDB = "MF_TWINS_DB"
envDBHost = "MF_TWINS_DB_HOST" envDBHost = "MF_TWINS_DB_HOST"
envDBPort = "MF_TWINS_DB_PORT" envDBPort = "MF_TWINS_DB_PORT"
envSingleUserEmail = "MF_TWINS_SINGLE_USER_EMAIL" envSingleUserEmail = "MF_TWINS_SINGLE_USER_EMAIL"
envSingleUserToken = "MF_TWINS_SINGLE_USER_TOKEN" envSingleUserToken = "MF_TWINS_SINGLE_USER_TOKEN"
envClientTLS = "MF_TWINS_CLIENT_TLS" envClientTLS = "MF_TWINS_CLIENT_TLS"
envCACerts = "MF_TWINS_CA_CERTS" envCACerts = "MF_TWINS_CA_CERTS"
envThingID = "MF_TWINS_THING_ID"
envThingKey = "MF_TWINS_THING_KEY"
envChannelID = "MF_TWINS_CHANNEL_ID" envChannelID = "MF_TWINS_CHANNEL_ID"
envNatsURL = "MF_NATS_URL" envNatsURL = "MF_NATS_URL"
envAuthnURL = "MF_AUTHN_GRPC_URL"
envAuthnTimeout = "MF_AUTHN_TIMEOUT" envAuthnTimeout = "MF_AUTHN_GRPC_TIMEOUT"
envAuthnURL = "MF_AUTHN_URL"
) )
type config struct { type config struct {
@ -92,13 +86,11 @@ type config struct {
singleUserToken string singleUserToken string
clientTLS bool clientTLS bool
caCerts string caCerts string
thingID string
thingKey string
channelID string channelID string
natsURL string natsURL string
authnTimeout time.Duration
authnURL string authnURL string
authnTimeout time.Duration
} }
func main() { func main() {
@ -164,7 +156,7 @@ func loadConfig() config {
} }
dbCfg := twmongodb.Config{ dbCfg := twmongodb.Config{
Name: mainflux.Env(envDBName, defDBName), Name: mainflux.Env(envDB, defDB),
Host: mainflux.Env(envDBHost, defDBHost), Host: mainflux.Env(envDBHost, defDBHost),
Port: mainflux.Env(envDBPort, defDBPort), Port: mainflux.Env(envDBPort, defDBPort),
} }
@ -180,9 +172,7 @@ func loadConfig() config {
singleUserToken: mainflux.Env(envSingleUserToken, defSingleUserToken), singleUserToken: mainflux.Env(envSingleUserToken, defSingleUserToken),
clientTLS: tls, clientTLS: tls,
caCerts: mainflux.Env(envCACerts, defCACerts), caCerts: mainflux.Env(envCACerts, defCACerts),
thingID: mainflux.Env(envThingID, defThingID),
channelID: mainflux.Env(envChannelID, defChannelID), channelID: mainflux.Env(envChannelID, defChannelID),
thingKey: mainflux.Env(envThingKey, defThingKey),
natsURL: mainflux.Env(envNatsURL, defNatsURL), natsURL: mainflux.Env(envNatsURL, defNatsURL),
authnURL: mainflux.Env(envAuthnURL, defAuthnURL), authnURL: mainflux.Env(envAuthnURL, defAuthnURL),
authnTimeout: time.Duration(timeout) * time.Second, authnTimeout: time.Duration(timeout) * time.Second,
@ -240,7 +230,7 @@ func connectToAuth(cfg config, logger logger.Logger) *grpc.ClientConn {
conn, err := grpc.Dial(cfg.authnURL, opts...) conn, err := grpc.Dial(cfg.authnURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to auth service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to authn service: %s", err))
os.Exit(1) os.Exit(1)
} }

View File

@ -41,7 +41,7 @@ const (
defDBPort = "5432" defDBPort = "5432"
defDBUser = "mainflux" defDBUser = "mainflux"
defDBPass = "mainflux" defDBPass = "mainflux"
defDBName = "users" defDB = "users"
defDBSSLMode = "disable" defDBSSLMode = "disable"
defDBSSLCert = "" defDBSSLCert = ""
defDBSSLKey = "" defDBSSLKey = ""
@ -51,13 +51,6 @@ const (
defServerKey = "" defServerKey = ""
defJaegerURL = "" defJaegerURL = ""
defAuthnHTTPPort = "8989"
defAuthnGRPCPort = "8181"
defAuthnTimeout = "1" // in seconds
defAuthnTLS = "false"
defAuthnCACerts = ""
defAuthnURL = "localhost:8181"
defEmailLogLevel = "debug" defEmailLogLevel = "debug"
defEmailDriver = "smtp" defEmailDriver = "smtp"
defEmailHost = "localhost" defEmailHost = "localhost"
@ -70,12 +63,17 @@ const (
defTokenResetEndpoint = "/reset-request" // URL where user lands after click on the reset link from email defTokenResetEndpoint = "/reset-request" // URL where user lands after click on the reset link from email
defAuthnTLS = "false"
defAuthnCACerts = ""
defAuthnURL = "localhost:8181"
defAuthnTimeout = "1" // in seconds
envLogLevel = "MF_USERS_LOG_LEVEL" envLogLevel = "MF_USERS_LOG_LEVEL"
envDBHost = "MF_USERS_DB_HOST" envDBHost = "MF_USERS_DB_HOST"
envDBPort = "MF_USERS_DB_PORT" envDBPort = "MF_USERS_DB_PORT"
envDBUser = "MF_USERS_DB_USER" envDBUser = "MF_USERS_DB_USER"
envDBPass = "MF_USERS_DB_PASS" envDBPass = "MF_USERS_DB_PASS"
envDBName = "MF_USERS_DB" envDB = "MF_USERS_DB"
envDBSSLMode = "MF_USERS_DB_SSL_MODE" envDBSSLMode = "MF_USERS_DB_SSL_MODE"
envDBSSLCert = "MF_USERS_DB_SSL_CERT" envDBSSLCert = "MF_USERS_DB_SSL_CERT"
envDBSSLKey = "MF_USERS_DB_SSL_KEY" envDBSSLKey = "MF_USERS_DB_SSL_KEY"
@ -85,13 +83,6 @@ const (
envServerKey = "MF_USERS_SERVER_KEY" envServerKey = "MF_USERS_SERVER_KEY"
envJaegerURL = "MF_JAEGER_URL" envJaegerURL = "MF_JAEGER_URL"
envAuthnHTTPPort = "MF_AUTHN_HTTP_PORT"
envAuthnGRPCPort = "MF_AUTHN_GRPC_PORT"
envAuthnTimeout = "MF_AUTHN_TIMEOUT"
envAuthnTLS = "MF_AUTHN_CLIENT_TLS"
envAuthnCACerts = "MF_AUTHN_CA_CERTS"
envAuthnURL = "MF_AUTHN_URL"
envEmailDriver = "MF_EMAIL_DRIVER" envEmailDriver = "MF_EMAIL_DRIVER"
envEmailHost = "MF_EMAIL_HOST" envEmailHost = "MF_EMAIL_HOST"
envEmailPort = "MF_EMAIL_PORT" envEmailPort = "MF_EMAIL_PORT"
@ -103,23 +94,26 @@ const (
envEmailTemplate = "MF_EMAIL_TEMPLATE" envEmailTemplate = "MF_EMAIL_TEMPLATE"
envTokenResetEndpoint = "MF_TOKEN_RESET_ENDPOINT" envTokenResetEndpoint = "MF_TOKEN_RESET_ENDPOINT"
envAuthnTLS = "MF_AUTHN_CLIENT_TLS"
envAuthnCACerts = "MF_AUTHN_CA_CERTS"
envAuthnURL = "MF_AUTHN_GRPC_URL"
envAuthnTimeout = "MF_AUTHN_GRPC_TIMEOUT"
) )
type config struct { type config struct {
logLevel string logLevel string
dbConfig postgres.Config dbConfig postgres.Config
authnHTTPPort string emailConf email.Config
authnGRPCPort string httpPort string
authnTimeout time.Duration serverCert string
authnTLS bool serverKey string
authnCACerts string jaegerURL string
authnURL string resetURL string
emailConf email.Config authnTLS bool
httpPort string authnCACerts string
serverCert string authnURL string
serverKey string authnTimeout time.Duration
jaegerURL string
resetURL string
} }
func main() { func main() {
@ -178,7 +172,7 @@ func loadConfig() config {
Port: mainflux.Env(envDBPort, defDBPort), Port: mainflux.Env(envDBPort, defDBPort),
User: mainflux.Env(envDBUser, defDBUser), User: mainflux.Env(envDBUser, defDBUser),
Pass: mainflux.Env(envDBPass, defDBPass), Pass: mainflux.Env(envDBPass, defDBPass),
Name: mainflux.Env(envDBName, defDBName), Name: mainflux.Env(envDB, defDB),
SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode), SSLMode: mainflux.Env(envDBSSLMode, defDBSSLMode),
SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert), SSLCert: mainflux.Env(envDBSSLCert, defDBSSLCert),
SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey), SSLKey: mainflux.Env(envDBSSLKey, defDBSSLKey),
@ -197,19 +191,18 @@ func loadConfig() config {
} }
return config{ return config{
logLevel: mainflux.Env(envLogLevel, defLogLevel), logLevel: mainflux.Env(envLogLevel, defLogLevel),
dbConfig: dbConfig, dbConfig: dbConfig,
authnHTTPPort: mainflux.Env(envAuthnHTTPPort, defAuthnHTTPPort), emailConf: emailConf,
authnGRPCPort: mainflux.Env(envAuthnGRPCPort, defAuthnGRPCPort), httpPort: mainflux.Env(envHTTPPort, defHTTPPort),
authnURL: mainflux.Env(envAuthnURL, defAuthnURL), serverCert: mainflux.Env(envServerCert, defServerCert),
authnTimeout: time.Duration(timeout) * time.Second, serverKey: mainflux.Env(envServerKey, defServerKey),
authnTLS: tls, jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
emailConf: emailConf, resetURL: mainflux.Env(envTokenResetEndpoint, defTokenResetEndpoint),
httpPort: mainflux.Env(envHTTPPort, defHTTPPort), authnTLS: tls,
serverCert: mainflux.Env(envServerCert, defServerCert), authnCACerts: mainflux.Env(envAuthnCACerts, defAuthnCACerts),
serverKey: mainflux.Env(envServerKey, defServerKey), authnURL: mainflux.Env(envAuthnURL, defAuthnURL),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), authnTimeout: time.Duration(timeout) * time.Second,
resetURL: mainflux.Env(envTokenResetEndpoint, defTokenResetEndpoint),
} }
} }
@ -266,7 +259,7 @@ func connectToAuthn(cfg config, tracer opentracing.Tracer, logger logger.Logger)
conn, err := grpc.Dial(cfg.authnURL, opts...) conn, err := grpc.Dial(cfg.authnURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to users service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to authn service: %s", err))
os.Exit(1) os.Exit(1)
} }

View File

@ -31,34 +31,34 @@ import (
) )
const ( const (
defClientTLS = "false" defLogLevel = "error"
defCACerts = "" defClientTLS = "false"
defPort = "8180" defCACerts = ""
defLogLevel = "error" defPort = "8180"
defNatsURL = mainflux.DefNatsURL defNatsURL = "nats://localhost:4222"
defThingsURL = "localhost:8181" defJaegerURL = ""
defJaegerURL = "" defThingsAuthURL = "localhost:8181"
defThingsTimeout = "1" // in seconds defThingsAuthTimeout = "1" // in seconds
envClientTLS = "MF_WS_ADAPTER_CLIENT_TLS" envLogLevel = "MF_WS_ADAPTER_LOG_LEVEL"
envCACerts = "MF_WS_ADAPTER_CA_CERTS" envClientTLS = "MF_WS_ADAPTER_CLIENT_TLS"
envPort = "MF_WS_ADAPTER_PORT" envCACerts = "MF_WS_ADAPTER_CA_CERTS"
envLogLevel = "MF_WS_ADAPTER_LOG_LEVEL" envPort = "MF_WS_ADAPTER_PORT"
envNatsURL = "MF_NATS_URL" envNatsURL = "MF_NATS_URL"
envThingsURL = "MF_THINGS_URL" envJaegerURL = "MF_JAEGER_URL"
envJaegerURL = "MF_JAEGER_URL" envThingsAuthURL = "MF_THINGS_AUTH_GRPC_URL"
envThingsTimeout = "MF_WS_ADAPTER_THINGS_TIMEOUT" envThingsAuthTimeout = "MF_THINGS_AUTH_GRPC_TIMEOUT"
) )
type config struct { type config struct {
clientTLS bool clientTLS bool
caCerts string caCerts string
thingsURL string natsURL string
natsURL string logLevel string
logLevel string port string
port string jaegerURL string
jaegerURL string thingsAuthURL string
thingsTimeout time.Duration thingsAuthTimeout time.Duration
} }
func main() { func main() {
@ -75,7 +75,7 @@ func main() {
thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger) thingsTracer, thingsCloser := initJaeger("things", cfg.jaegerURL, logger)
defer thingsCloser.Close() defer thingsCloser.Close()
cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsTimeout) cc := thingsapi.NewClient(conn, thingsTracer, cfg.thingsAuthTimeout)
b, err := broker.New(cfg.natsURL) b, err := broker.New(cfg.natsURL)
if err != nil { if err != nil {
@ -110,20 +110,20 @@ func loadConfig() config {
log.Fatalf("Invalid value passed for %s\n", envClientTLS) log.Fatalf("Invalid value passed for %s\n", envClientTLS)
} }
timeout, err := strconv.ParseInt(mainflux.Env(envThingsTimeout, defThingsTimeout), 10, 64) timeout, err := strconv.ParseInt(mainflux.Env(envThingsAuthTimeout, defThingsAuthTimeout), 10, 64)
if err != nil { if err != nil {
log.Fatalf("Invalid %s value: %s", envThingsTimeout, err.Error()) log.Fatalf("Invalid %s value: %s", envThingsAuthTimeout, err.Error())
} }
return config{ return config{
clientTLS: tls, clientTLS: tls,
caCerts: mainflux.Env(envCACerts, defCACerts), caCerts: mainflux.Env(envCACerts, defCACerts),
thingsURL: mainflux.Env(envThingsURL, defThingsURL), natsURL: mainflux.Env(envNatsURL, defNatsURL),
natsURL: mainflux.Env(envNatsURL, defNatsURL), logLevel: mainflux.Env(envLogLevel, defLogLevel),
logLevel: mainflux.Env(envLogLevel, defLogLevel), port: mainflux.Env(envPort, defPort),
port: mainflux.Env(envPort, defPort), jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL),
jaegerURL: mainflux.Env(envJaegerURL, defJaegerURL), thingsAuthURL: mainflux.Env(envThingsAuthURL, defThingsAuthURL),
thingsTimeout: time.Duration(timeout) * time.Second, thingsAuthTimeout: time.Duration(timeout) * time.Second,
} }
} }
@ -143,7 +143,7 @@ func connectToThings(cfg config, logger logger.Logger) *grpc.ClientConn {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} }
conn, err := grpc.Dial(cfg.thingsURL, opts...) conn, err := grpc.Dial(cfg.thingsAuthURL, opts...)
if err != nil { if err != nil {
logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err)) logger.Error(fmt.Sprintf("Failed to connect to things service: %s", err))
os.Exit(1) os.Exit(1)

View File

@ -13,13 +13,13 @@ default values.
|--------------------------------|--------------------------------------------------------|-----------------------| |--------------------------------|--------------------------------------------------------|-----------------------|
| MF_COAP_ADAPTER_PORT | Service listening port | 5683 | | MF_COAP_ADAPTER_PORT | Service listening port | 5683 |
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | | MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
| MF_THINGS_URL | Things service URL | localhost:8181 |
| MF_COAP_ADAPTER_LOG_LEVEL | Service log level | error | | MF_COAP_ADAPTER_LOG_LEVEL | Service log level | error |
| MF_COAP_ADAPTER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false | | MF_COAP_ADAPTER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false |
| MF_COAP_ADAPTER_CA_CERTS | Path to trusted CAs in PEM format | | | MF_COAP_ADAPTER_CA_CERTS | Path to trusted CAs in PEM format | |
| MF_COAP_ADAPTER_PING_PERIOD | Hours between 1 and 24 to ping client with ACK message | 12 | | MF_COAP_ADAPTER_PING_PERIOD | Hours between 1 and 24 to ping client with ACK message | 12 |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_COAP_ADAPTER_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:8181 |
| MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC request timeout in seconds | 1 |
## Deployment ## Deployment
@ -37,13 +37,13 @@ services:
environment: environment:
MF_COAP_ADAPTER_PORT: [Service HTTP port] MF_COAP_ADAPTER_PORT: [Service HTTP port]
MF_NATS_URL: [NATS instance URL] MF_NATS_URL: [NATS instance URL]
MF_THINGS_URL: [Things service URL]
MF_COAP_ADAPTER_LOG_LEVEL: [Service log level] MF_COAP_ADAPTER_LOG_LEVEL: [Service log level]
MF_COAP_ADAPTER_CLIENT_TLS: [Flag that indicates if TLS should be turned on] MF_COAP_ADAPTER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_COAP_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format] MF_COAP_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_COAP_ADAPTER_PING_PERIOD: [Hours between 1 and 24 to ping client with ACK message] MF_COAP_ADAPTER_PING_PERIOD: [Hours between 1 and 24 to ping client with ACK message]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_COAP_ADAPTER_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
``` ```
Running this service outside of container requires working instance of the NATS service. Running this service outside of container requires working instance of the NATS service.
@ -62,7 +62,16 @@ make coap
make install make install
# set the environment variables and run the service # set the environment variables and run the service
MF_THINGS_URL=[Things service URL] MF_NATS_URL=[NATS instance URL] MF_COAP_ADAPTER_PORT=[Service HTTP port] MF_COAP_ADAPTER_LOG_LEVEL=[Service log level] MF_COAP_ADAPTER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] MF_COAP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] MF_COAP_ADAPTER_PING_PERIOD: [Hours between 1 and 24 to ping client with ACK message] MF_JAEGER_URL=[Jaeger server URL] MF_COAP_ADAPTER_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] $GOBIN/mainflux-coap MF_NATS_URL=[NATS instance URL] \
MF_COAP_ADAPTER_PORT=[Service HTTP port] \
MF_COAP_ADAPTER_LOG_LEVEL=[Service log level] \
MF_COAP_ADAPTER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] \
MF_COAP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_COAP_ADAPTER_PING_PERIOD: [Hours between 1 and 24 to ping client with ACK message] \
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/mainflux-coap
``` ```
## Usage ## Usage

View File

@ -47,9 +47,10 @@ services:
MF_BOOTSTRAP_DB_SSL_MODE: ${MF_BOOTSTRAP_DB_SSL_MODE} MF_BOOTSTRAP_DB_SSL_MODE: ${MF_BOOTSTRAP_DB_SSL_MODE}
MF_BOOTSTRAP_PORT: ${MF_BOOTSTRAP_PORT} MF_BOOTSTRAP_PORT: ${MF_BOOTSTRAP_PORT}
MF_SDK_BASE_URL: http://mainflux-things:${MF_THINGS_HTTP_PORT} MF_SDK_BASE_URL: http://mainflux-things:${MF_THINGS_HTTP_PORT}
MF_AUTH_URL: authn:${MF_AUTHN_GRPC_PORT}
MF_THINGS_ES_URL: es-redis:${MF_REDIS_TCP_PORT} MF_THINGS_ES_URL: es-redis:${MF_REDIS_TCP_PORT}
MF_BOOTSTRAP_ES_URL: es-redis:${MF_REDIS_TCP_PORT} MF_BOOTSTRAP_ES_URL: es-redis:${MF_REDIS_TCP_PORT}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_AUTHN_GRPC_URL: ${MF_AUTHN_GRPC_URL}
MF_AUTHN_GRPC_TIMMEOUT: ${MF_AUTHN_GRPC_TIMEOUT}
networks: networks:
- docker_mainflux-base-net - docker_mainflux-base-net

View File

@ -19,13 +19,14 @@ services:
restart: on-failure restart: on-failure
environment: environment:
MF_CASSANDRA_READER_LOG_LEVEL: ${MF_CASSANDRA_READER_LOG_LEVEL} MF_CASSANDRA_READER_LOG_LEVEL: ${MF_CASSANDRA_READER_LOG_LEVEL}
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_CASSANDRA_READER_PORT: ${MF_CASSANDRA_READER_PORT} MF_CASSANDRA_READER_PORT: ${MF_CASSANDRA_READER_PORT}
MF_CASSANDRA_READER_DB_CLUSTER: ${MF_CASSANDRA_READER_DB_CLUSTER} MF_CASSANDRA_READER_DB_CLUSTER: ${MF_CASSANDRA_READER_DB_CLUSTER}
MF_CASSANDRA_READER_DB_KEYSPACE: ${MF_CASSANDRA_READER_DB_KEYSPACE} MF_CASSANDRA_READER_DB_KEYSPACE: ${MF_CASSANDRA_READER_DB_KEYSPACE}
MF_CASSANDRA_READER_SERVER_CERT: ${MF_CASSANDRA_READER_SERVER_CERT} MF_CASSANDRA_READER_SERVER_CERT: ${MF_CASSANDRA_READER_SERVER_CERT}
MF_CASSANDRA_READER_SERVER_KEY: ${MF_CASSANDRA_READER_SERVER_KEY} MF_CASSANDRA_READER_SERVER_KEY: ${MF_CASSANDRA_READER_SERVER_KEY}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
ports: ports:
- ${MF_CASSANDRA_READER_PORT}:${MF_CASSANDRA_READER_PORT} - ${MF_CASSANDRA_READER_PORT}:${MF_CASSANDRA_READER_PORT}
networks: networks:

View File

@ -21,9 +21,8 @@ services:
restart: on-failure restart: on-failure
environment: environment:
MF_INFLUX_READER_LOG_LEVEL: debug MF_INFLUX_READER_LOG_LEVEL: debug
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_INFLUX_READER_PORT: ${MF_INFLUX_READER_PORT} MF_INFLUX_READER_PORT: ${MF_INFLUX_READER_PORT}
MF_INFLUX_READER_DB_NAME: ${MF_INFLUX_READER_DB_NAME} MF_INFLUX_READER_DB: ${MF_INFLUX_READER_DB}
MF_INFLUX_READER_DB_HOST: mainflux-influxdb MF_INFLUX_READER_DB_HOST: mainflux-influxdb
MF_INFLUX_READER_DB_PORT: ${MF_INFLUX_READER_DB_PORT} MF_INFLUX_READER_DB_PORT: ${MF_INFLUX_READER_DB_PORT}
MF_INFLUX_READER_DB_USER: ${MF_INFLUX_READER_DB_USER} MF_INFLUX_READER_DB_USER: ${MF_INFLUX_READER_DB_USER}
@ -31,6 +30,8 @@ services:
MF_INFLUX_READER_SERVER_CERT: ${MF_INFLUX_READER_SERVER_CERT} MF_INFLUX_READER_SERVER_CERT: ${MF_INFLUX_READER_SERVER_CERT}
MF_INFLUX_READER_SERVER_KEY: ${MF_INFLUX_READER_SERVER_KEY} MF_INFLUX_READER_SERVER_KEY: ${MF_INFLUX_READER_SERVER_KEY}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
ports: ports:
- ${MF_INFLUX_READER_PORT}:${MF_INFLUX_READER_PORT} - ${MF_INFLUX_READER_PORT}:${MF_INFLUX_READER_PORT}
networks: networks:

View File

@ -22,7 +22,7 @@ services:
container_name: mainflux-influxdb container_name: mainflux-influxdb
restart: on-failure restart: on-failure
environment: environment:
INFLUXDB_DB: ${MF_INFLUX_WRITER_DB_NAME} INFLUXDB_DB: ${MF_INFLUX_WRITER_DB}
INFLUXDB_ADMIN_USER: ${MF_INFLUX_WRITER_DB_USER} INFLUXDB_ADMIN_USER: ${MF_INFLUX_WRITER_DB_USER}
INFLUXDB_ADMIN_PASSWORD: ${MF_INFLUX_WRITER_DB_PASS} INFLUXDB_ADMIN_PASSWORD: ${MF_INFLUX_WRITER_DB_PASS}
networks: networks:
@ -44,7 +44,7 @@ services:
MF_INFLUX_WRITER_PORT: ${MF_INFLUX_WRITER_PORT} MF_INFLUX_WRITER_PORT: ${MF_INFLUX_WRITER_PORT}
MF_INFLUX_WRITER_BATCH_SIZE: ${MF_INFLUX_WRITER_BATCH_SIZE} MF_INFLUX_WRITER_BATCH_SIZE: ${MF_INFLUX_WRITER_BATCH_SIZE}
MF_INFLUX_WRITER_BATCH_TIMEOUT: ${MF_INFLUX_WRITER_BATCH_TIMEOUT} MF_INFLUX_WRITER_BATCH_TIMEOUT: ${MF_INFLUX_WRITER_BATCH_TIMEOUT}
MF_INFLUX_WRITER_DB_NAME: ${MF_INFLUX_WRITER_DB_NAME} MF_INFLUX_WRITER_DB: ${MF_INFLUX_WRITER_DB}
MF_INFLUX_WRITER_DB_HOST: mainflux-influxdb MF_INFLUX_WRITER_DB_HOST: mainflux-influxdb
MF_INFLUX_WRITER_DB_PORT: ${MF_INFLUX_WRITER_DB_PORT} MF_INFLUX_WRITER_DB_PORT: ${MF_INFLUX_WRITER_DB_PORT}
MF_INFLUX_WRITER_DB_USER: ${MF_INFLUX_WRITER_DB_USER} MF_INFLUX_WRITER_DB_USER: ${MF_INFLUX_WRITER_DB_USER}

View File

@ -20,14 +20,15 @@ services:
restart: on-failure restart: on-failure
environment: environment:
MF_MONGO_READER_LOG_LEVEL: ${MF_MONGO_READER_LOG_LEVEL} MF_MONGO_READER_LOG_LEVEL: ${MF_MONGO_READER_LOG_LEVEL}
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_MONGO_READER_PORT: ${MF_MONGO_READER_PORT} MF_MONGO_READER_PORT: ${MF_MONGO_READER_PORT}
MF_MONGO_READER_DB_NAME: ${MF_MONGO_READER_DB_NAME} MF_MONGO_READER_DB: ${MF_MONGO_READER_DB}
MF_MONGO_READER_DB_HOST: mongodb MF_MONGO_READER_DB_HOST: mongodb
MF_MONGO_READER_DB_PORT: ${MF_MONGO_READER_DB_PORT} MF_MONGO_READER_DB_PORT: ${MF_MONGO_READER_DB_PORT}
MF_MONGO_READER_SERVER_CERT: ${MF_MONGO_READER_SERVER_CERT} MF_MONGO_READER_SERVER_CERT: ${MF_MONGO_READER_SERVER_CERT}
MF_MONGO_READER_SERVER_KEY: ${MF_MONGO_READER_SERVER_KEY} MF_MONGO_READER_SERVER_KEY: ${MF_MONGO_READER_SERVER_KEY}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
ports: ports:
- ${MF_MONGO_READER_PORT}:${MF_MONGO_READER_PORT} - ${MF_MONGO_READER_PORT}:${MF_MONGO_READER_PORT}
networks: networks:

View File

@ -24,7 +24,7 @@ services:
container_name: mainflux-mongodb container_name: mainflux-mongodb
restart: on-failure restart: on-failure
environment: environment:
MONGO_INITDB_DATABASE: ${MF_MONGO_WRITER_DB_NAME} MONGO_INITDB_DATABASE: ${MF_MONGO_WRITER_DB}
ports: ports:
- ${MF_MONGO_WRITER_DB_PORT}:${MF_MONGO_WRITER_DB_PORT} - ${MF_MONGO_WRITER_DB_PORT}:${MF_MONGO_WRITER_DB_PORT}
networks: networks:
@ -43,7 +43,7 @@ services:
MF_MONGO_WRITER_LOG_LEVEL: ${MF_MONGO_WRITER_LOG_LEVEL} MF_MONGO_WRITER_LOG_LEVEL: ${MF_MONGO_WRITER_LOG_LEVEL}
MF_NATS_URL: ${MF_NATS_URL} MF_NATS_URL: ${MF_NATS_URL}
MF_MONGO_WRITER_PORT: ${MF_MONGO_WRITER_PORT} MF_MONGO_WRITER_PORT: ${MF_MONGO_WRITER_PORT}
MF_MONGO_WRITER_DB_NAME: ${MF_MONGO_WRITER_DB_NAME} MF_MONGO_WRITER_DB: ${MF_MONGO_WRITER_DB}
MF_MONGO_WRITER_DB_HOST: mongodb MF_MONGO_WRITER_DB_HOST: mongodb
MF_MONGO_WRITER_DB_PORT: ${MF_MONGO_WRITER_DB_PORT} MF_MONGO_WRITER_DB_PORT: ${MF_MONGO_WRITER_DB_PORT}
ports: ports:

View File

@ -19,7 +19,6 @@ services:
container_name: mainflux-postgres-reader container_name: mainflux-postgres-reader
restart: on-failure restart: on-failure
environment: environment:
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_POSTGRES_READER_LOG_LEVEL: ${MF_POSTGRES_READER_LOG_LEVEL} MF_POSTGRES_READER_LOG_LEVEL: ${MF_POSTGRES_READER_LOG_LEVEL}
MF_POSTGRES_READER_PORT: ${MF_POSTGRES_READER_PORT} MF_POSTGRES_READER_PORT: ${MF_POSTGRES_READER_PORT}
MF_POSTGRES_READER_CLIENT_TLS: ${MF_POSTGRES_READER_CLIENT_TLS} MF_POSTGRES_READER_CLIENT_TLS: ${MF_POSTGRES_READER_CLIENT_TLS}
@ -28,12 +27,14 @@ services:
MF_POSTGRES_READER_DB_PORT: ${MF_POSTGRES_READER_DB_PORT} MF_POSTGRES_READER_DB_PORT: ${MF_POSTGRES_READER_DB_PORT}
MF_POSTGRES_READER_DB_USER: ${MF_POSTGRES_READER_DB_USER} MF_POSTGRES_READER_DB_USER: ${MF_POSTGRES_READER_DB_USER}
MF_POSTGRES_READER_DB_PASS: ${MF_POSTGRES_READER_DB_PASS} MF_POSTGRES_READER_DB_PASS: ${MF_POSTGRES_READER_DB_PASS}
MF_POSTGRES_READER_DB_NAME: ${MF_POSTGRES_READER_DB_NAME} MF_POSTGRES_READER_DB: ${MF_POSTGRES_READER_DB}
MF_POSTGRES_READER_DB_SSL_MODE: ${MF_POSTGRES_READER_DB_SSL_MODE} MF_POSTGRES_READER_DB_SSL_MODE: ${MF_POSTGRES_READER_DB_SSL_MODE}
MF_POSTGRES_READER_DB_SSL_CERT: ${MF_POSTGRES_READER_DB_SSL_CERT} MF_POSTGRES_READER_DB_SSL_CERT: ${MF_POSTGRES_READER_DB_SSL_CERT}
MF_POSTGRES_READER_DB_SSL_KEY: ${MF_POSTGRES_READER_DB_SSL_KEY} MF_POSTGRES_READER_DB_SSL_KEY: ${MF_POSTGRES_READER_DB_SSL_KEY}
MF_POSTGRES_READER_DB_SSL_ROOT_CERT: ${MF_POSTGRES_READER_DB_SSL_ROOT_CERT} MF_POSTGRES_READER_DB_SSL_ROOT_CERT: ${MF_POSTGRES_READER_DB_SSL_ROOT_CERT}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
ports: ports:
- ${MF_POSTGRES_READER_PORT}:${MF_POSTGRES_READER_PORT} - ${MF_POSTGRES_READER_PORT}:${MF_POSTGRES_READER_PORT}
networks: networks:

View File

@ -25,7 +25,7 @@ services:
environment: environment:
POSTGRES_USER: ${MF_POSTGRES_WRITER_DB_USER} POSTGRES_USER: ${MF_POSTGRES_WRITER_DB_USER}
POSTGRES_PASSWORD: ${MF_POSTGRES_WRITER_DB_PASS} POSTGRES_PASSWORD: ${MF_POSTGRES_WRITER_DB_PASS}
POSTGRES_DB: ${MF_POSTGRES_WRITER_DB_NAME} POSTGRES_DB: ${MF_POSTGRES_WRITER_DB}
networks: networks:
- docker_mainflux-base-net - docker_mainflux-base-net
volumes: volumes:
@ -45,7 +45,7 @@ services:
MF_POSTGRES_WRITER_DB_PORT: ${MF_POSTGRES_WRITER_DB_PORT} MF_POSTGRES_WRITER_DB_PORT: ${MF_POSTGRES_WRITER_DB_PORT}
MF_POSTGRES_WRITER_DB_USER: ${MF_POSTGRES_WRITER_DB_USER} MF_POSTGRES_WRITER_DB_USER: ${MF_POSTGRES_WRITER_DB_USER}
MF_POSTGRES_WRITER_DB_PASS: ${MF_POSTGRES_WRITER_DB_PASS} MF_POSTGRES_WRITER_DB_PASS: ${MF_POSTGRES_WRITER_DB_PASS}
MF_POSTGRES_WRITER_DB_NAME: ${MF_POSTGRES_WRITER_DB_NAME} MF_POSTGRES_WRITER_DB: ${MF_POSTGRES_WRITER_DB}
MF_POSTGRES_WRITER_DB_SSL_MODE: ${MF_POSTGRES_WRITER_DB_SSL_MODE} MF_POSTGRES_WRITER_DB_SSL_MODE: ${MF_POSTGRES_WRITER_DB_SSL_MODE}
MF_POSTGRES_WRITER_DB_SSL_CERT: ${MF_POSTGRES_WRITER_DB_SSL_CERT} MF_POSTGRES_WRITER_DB_SSL_CERT: ${MF_POSTGRES_WRITER_DB_SSL_CERT}
MF_POSTGRES_WRITER_DB_SSL_KEY: ${MF_POSTGRES_WRITER_DB_SSL_KEY} MF_POSTGRES_WRITER_DB_SSL_KEY: ${MF_POSTGRES_WRITER_DB_SSL_KEY}

View File

@ -23,7 +23,7 @@ services:
container_name: mainflux-twins-db container_name: mainflux-twins-db
restart: on-failure restart: on-failure
environment: environment:
MONGO_INITDB_DATABASE: ${MF_TWINS_DB_NAME} MONGO_INITDB_DATABASE: ${MF_TWINS_DB}
ports: ports:
- ${MF_TWINS_DB_PORT}:${MF_TWINS_DB_PORT} - ${MF_TWINS_DB_PORT}:${MF_TWINS_DB_PORT}
networks: networks:
@ -39,15 +39,14 @@ services:
environment: environment:
MF_TWINS_LOG_LEVEL: ${MF_TWINS_LOG_LEVEL} MF_TWINS_LOG_LEVEL: ${MF_TWINS_LOG_LEVEL}
MF_TWINS_HTTP_PORT: ${MF_TWINS_HTTP_PORT} MF_TWINS_HTTP_PORT: ${MF_TWINS_HTTP_PORT}
MF_TWINS_DB_NAME: ${MF_TWINS_DB_NAME} MF_TWINS_DB: ${MF_TWINS_DB}
MF_TWINS_DB_HOST: ${MF_TWINS_DB_HOST} MF_TWINS_DB_HOST: ${MF_TWINS_DB_HOST}
MF_TWINS_DB_PORT: ${MF_TWINS_DB_PORT} MF_TWINS_DB_PORT: ${MF_TWINS_DB_PORT}
MF_TWINS_THING_ID: ${MF_TWINS_THING_ID}
MF_TWINS_THING_KEY: ${MF_TWINS_THING_KEY}
MF_TWINS_CHANNEL_ID: ${MF_TWINS_CHANNEL_ID} MF_TWINS_CHANNEL_ID: ${MF_TWINS_CHANNEL_ID}
MF_NATS_URL: ${MF_NATS_URL} MF_NATS_URL: ${MF_NATS_URL}
MF_AUTHN_URL: authn:${MF_AUTHN_GRPC_PORT}
MF_TWINS_MQTT_URL: ${MF_TWINS_MQTT_URL} MF_TWINS_MQTT_URL: ${MF_TWINS_MQTT_URL}
MF_AUTHN_GRPC_URL: ${MF_AUTHN_GRPC_URL}
MF_AUTHN_GRPC_TIMEOUT: ${MF_AUTHN_GRPC_TIMEOUT}
ports: ports:
- ${MF_TWINS_HTTP_PORT}:${MF_TWINS_HTTP_PORT} - ${MF_TWINS_HTTP_PORT}:${MF_TWINS_HTTP_PORT}
networks: networks:

View File

@ -134,7 +134,8 @@ services:
MF_EMAIL_FROM_NAME: ${MF_EMAIL_FROM_NAME} MF_EMAIL_FROM_NAME: ${MF_EMAIL_FROM_NAME}
MF_EMAIL_TEMPLATE: ${MF_EMAIL_TEMPLATE} MF_EMAIL_TEMPLATE: ${MF_EMAIL_TEMPLATE}
MF_TOKEN_RESET_ENDPOINT: ${MF_TOKEN_RESET_ENDPOINT} MF_TOKEN_RESET_ENDPOINT: ${MF_TOKEN_RESET_ENDPOINT}
MF_AUTHN_URL: authn:${MF_AUTHN_GRPC_PORT} MF_AUTHN_GRPC_URL: ${MF_AUTHN_GRPC_URL}
MF_AUTHN_GRPC_TIMEOUT: ${MF_AUTHN_GRPC_TIMEOUT}
ports: ports:
- ${MF_USERS_HTTP_PORT}:${MF_USERS_HTTP_PORT} - ${MF_USERS_HTTP_PORT}:${MF_USERS_HTTP_PORT}
networks: networks:
@ -181,9 +182,10 @@ services:
MF_THINGS_HTTP_PORT: ${MF_THINGS_HTTP_PORT} MF_THINGS_HTTP_PORT: ${MF_THINGS_HTTP_PORT}
MF_THINGS_AUTH_HTTP_PORT: ${MF_THINGS_AUTH_HTTP_PORT} MF_THINGS_AUTH_HTTP_PORT: ${MF_THINGS_AUTH_HTTP_PORT}
MF_THINGS_AUTH_GRPC_PORT: ${MF_THINGS_AUTH_GRPC_PORT} MF_THINGS_AUTH_GRPC_PORT: ${MF_THINGS_AUTH_GRPC_PORT}
MF_AUTH_URL: authn:${MF_AUTHN_GRPC_PORT}
MF_THINGS_SECRET: ${MF_THINGS_SECRET} MF_THINGS_SECRET: ${MF_THINGS_SECRET}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_AUTHN_GRPC_URL: ${MF_AUTHN_GRPC_URL}
MF_AUTHN_GRPC_TIMEOUT: ${MF_AUTHN_GRPC_TIMEOUT}
ports: ports:
- ${MF_THINGS_HTTP_PORT}:${MF_THINGS_HTTP_PORT} - ${MF_THINGS_HTTP_PORT}:${MF_THINGS_HTTP_PORT}
- ${MF_THINGS_AUTH_HTTP_PORT}:${MF_THINGS_AUTH_HTTP_PORT} - ${MF_THINGS_AUTH_HTTP_PORT}:${MF_THINGS_AUTH_HTTP_PORT}
@ -228,12 +230,13 @@ services:
MF_MQTT_ADAPTER_WS_PORT: ${MF_MQTT_ADAPTER_WS_PORT} MF_MQTT_ADAPTER_WS_PORT: ${MF_MQTT_ADAPTER_WS_PORT}
MF_MQTT_ADAPTER_ES_URL: es-redis:${MF_REDIS_TCP_PORT} MF_MQTT_ADAPTER_ES_URL: es-redis:${MF_REDIS_TCP_PORT}
MF_NATS_URL: ${MF_NATS_URL} MF_NATS_URL: ${MF_NATS_URL}
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_MQTT_ADAPTER_MQTT_TARGET_HOST: vernemq MF_MQTT_ADAPTER_MQTT_TARGET_HOST: vernemq
MF_MQTT_ADAPTER_MQTT_TARGET_PORT: ${MF_MQTT_BROKER_PORT} MF_MQTT_ADAPTER_MQTT_TARGET_PORT: ${MF_MQTT_BROKER_PORT}
MF_MQTT_ADAPTER_WS_TARGET_HOST: vernemq MF_MQTT_ADAPTER_WS_TARGET_HOST: vernemq
MF_MQTT_ADAPTER_WS_TARGET_PORT: ${MF_MQTT_BROKER_WS_PORT} MF_MQTT_ADAPTER_WS_TARGET_PORT: ${MF_MQTT_BROKER_WS_PORT}
MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
networks: networks:
- mainflux-base-net - mainflux-base-net
@ -249,8 +252,9 @@ services:
MF_WS_ADAPTER_LOG_LEVEL: ${MF_WS_ADAPTER_LOG_LEVEL} MF_WS_ADAPTER_LOG_LEVEL: ${MF_WS_ADAPTER_LOG_LEVEL}
MF_WS_ADAPTER_PORT: ${MF_WS_ADAPTER_PORT} MF_WS_ADAPTER_PORT: ${MF_WS_ADAPTER_PORT}
MF_NATS_URL: ${MF_NATS_URL} MF_NATS_URL: ${MF_NATS_URL}
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
ports: ports:
- ${MF_WS_ADAPTER_PORT}:${MF_WS_ADAPTER_PORT} - ${MF_WS_ADAPTER_PORT}:${MF_WS_ADAPTER_PORT}
networks: networks:
@ -267,8 +271,9 @@ services:
MF_HTTP_ADAPTER_LOG_LEVEL: debug MF_HTTP_ADAPTER_LOG_LEVEL: debug
MF_HTTP_ADAPTER_PORT: ${MF_HTTP_ADAPTER_PORT} MF_HTTP_ADAPTER_PORT: ${MF_HTTP_ADAPTER_PORT}
MF_NATS_URL: ${MF_NATS_URL} MF_NATS_URL: ${MF_NATS_URL}
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
ports: ports:
- ${MF_HTTP_ADAPTER_PORT}:${MF_HTTP_ADAPTER_PORT} - ${MF_HTTP_ADAPTER_PORT}:${MF_HTTP_ADAPTER_PORT}
networks: networks:
@ -294,8 +299,9 @@ services:
MF_COAP_ADAPTER_LOG_LEVEL: ${MF_COAP_ADAPTER_LOG_LEVEL} MF_COAP_ADAPTER_LOG_LEVEL: ${MF_COAP_ADAPTER_LOG_LEVEL}
MF_COAP_ADAPTER_PORT: ${MF_COAP_ADAPTER_PORT} MF_COAP_ADAPTER_PORT: ${MF_COAP_ADAPTER_PORT}
MF_NATS_URL: ${MF_NATS_URL} MF_NATS_URL: ${MF_NATS_URL}
MF_THINGS_URL: things:${MF_THINGS_AUTH_GRPC_PORT}
MF_JAEGER_URL: ${MF_JAEGER_URL} MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
ports: ports:
- ${MF_COAP_ADAPTER_PORT}:${MF_COAP_ADAPTER_PORT}/udp - ${MF_COAP_ADAPTER_PORT}:${MF_COAP_ADAPTER_PORT}/udp
- ${MF_COAP_ADAPTER_PORT}:${MF_COAP_ADAPTER_PORT}/tcp - ${MF_COAP_ADAPTER_PORT}:${MF_COAP_ADAPTER_PORT}/tcp

View File

@ -12,7 +12,6 @@ fi
envsubst ' envsubst '
${MF_USERS_HTTP_PORT} ${MF_USERS_HTTP_PORT}
${MF_THINGS_HTTP_PORT} ${MF_THINGS_HTTP_PORT}
${MF_THINGS_HTTP_PORT}
${MF_HTTP_ADAPTER_PORT} ${MF_HTTP_ADAPTER_PORT}
${MF_WS_ADAPTER_PORT}' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf ${MF_WS_ADAPTER_PORT}' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf

7
env.go
View File

@ -5,13 +5,6 @@ package mainflux
import ( import (
"os" "os"
"github.com/nats-io/nats.go"
)
const (
// DefNatsURL default NATS message broker URL
DefNatsURL = nats.DefaultURL
) )
// Env reads specified environment variable. If no value has been found, // Env reads specified environment variable. If no value has been found,

2
go.sum
View File

@ -168,8 +168,6 @@ github.com/mainflux/mainflux v0.0.0-20200314190902-c91fe0d45353/go.mod h1:yijZGL
github.com/mainflux/mainflux v0.0.0-20200324100741-6ffa916ed229/go.mod h1:mde8cQhTPjLulu2pn/x8OgQ2S++lDufS+ODE93zuHjY= github.com/mainflux/mainflux v0.0.0-20200324100741-6ffa916ed229/go.mod h1:mde8cQhTPjLulu2pn/x8OgQ2S++lDufS+ODE93zuHjY=
github.com/mainflux/mproxy v0.1.3 h1:/JNnxgo/03wSpbwQH2+WE1AzgMWaSKogTVXblh18x5s= github.com/mainflux/mproxy v0.1.3 h1:/JNnxgo/03wSpbwQH2+WE1AzgMWaSKogTVXblh18x5s=
github.com/mainflux/mproxy v0.1.3/go.mod h1:/BdaBfgye1GNCD+eat4ipFamy9IEVRH5nhZS0yEShVg= github.com/mainflux/mproxy v0.1.3/go.mod h1:/BdaBfgye1GNCD+eat4ipFamy9IEVRH5nhZS0yEShVg=
github.com/mainflux/mproxy v0.1.4 h1:g7LhJgA+BXlgaZeyLj505aD5DCsrix79TEiLWuHJZd4=
github.com/mainflux/mproxy v0.1.4/go.mod h1:MBLtv/RvhT8QsmXz4g3GxkRaP8PqlVqBWeqvw9QmO8k=
github.com/mainflux/mproxy v0.1.5 h1:a0zKiUyuTDld2TwCuhrOFtUvotcvSfwJMuh/JcrqC6I= github.com/mainflux/mproxy v0.1.5 h1:a0zKiUyuTDld2TwCuhrOFtUvotcvSfwJMuh/JcrqC6I=
github.com/mainflux/mproxy v0.1.5/go.mod h1:MBLtv/RvhT8QsmXz4g3GxkRaP8PqlVqBWeqvw9QmO8k= github.com/mainflux/mproxy v0.1.5/go.mod h1:MBLtv/RvhT8QsmXz4g3GxkRaP8PqlVqBWeqvw9QmO8k=
github.com/mainflux/mproxy v0.1.6 h1:In0JkSO7/XU7KdyqCzFfDQW3OOvNZc1tsrq1/aWRkRE= github.com/mainflux/mproxy v0.1.6 h1:In0JkSO7/XU7KdyqCzFfDQW3OOvNZc1tsrq1/aWRkRE=

View File

@ -8,16 +8,16 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|--------------------------------|------------------------------------------------|-----------------------| |--------------------------------|-----------------------------------------------------|-----------------------|
| MF_HTTP_ADAPTER_LOG_LEVEL | Log level for the HTTP Adapter | error | | MF_HTTP_ADAPTER_LOG_LEVEL | Log level for the HTTP Adapter | error |
| MF_HTTP_ADAPTER_PORT | Service HTTP port | 8180 | | MF_HTTP_ADAPTER_PORT | Service HTTP port | 8180 |
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | | MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
| MF_THINGS_URL | Things service URL | localhost:8181 | | MF_HTTP_ADAPTER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false |
| MF_HTTP_ADAPTER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false | | MF_HTTP_ADAPTER_CA_CERTS | Path to trusted CAs in PEM format | |
| MF_HTTP_ADAPTER_CA_CERTS | Path to trusted CAs in PEM format | | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:8181 |
| MF_HTTP_ADAPTER_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC request timeout in seconds | 1 |
## Deployment ## Deployment
@ -33,13 +33,13 @@ services:
ports: ports:
- [host machine port]:8180 - [host machine port]:8180
environment: environment:
MF_THINGS_URL: [Things service URL]
MF_NATS_URL: [NATS instance URL] MF_NATS_URL: [NATS instance URL]
MF_HTTP_ADAPTER_LOG_LEVEL: [HTTP Adapter Log Level] MF_HTTP_ADAPTER_LOG_LEVEL: [HTTP Adapter Log Level]
MF_HTTP_ADAPTER_PORT: [Service HTTP port] MF_HTTP_ADAPTER_PORT: [Service HTTP port]
MF_HTTP_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format] MF_HTTP_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_HTTP_ADAPTER_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
``` ```
To start the service outside of the container, execute the following shell script: To start the service outside of the container, execute the following shell script:
@ -57,7 +57,14 @@ make http
make install make install
# set the environment variables and run the service # set the environment variables and run the service
MF_THINGS_URL=[Things service URL] MF_NATS_URL=[NATS instance URL] MF_HTTP_ADAPTER_LOG_LEVEL=[HTTP Adapter Log Level] MF_HTTP_ADAPTER_PORT=[Service HTTP port] MF_HTTP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] MF_JAEGER_URL=[Jaeger server URL] MF_HTTP_ADAPTER_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] $GOBIN/mainflux-http MF_NATS_URL=[NATS instance URL] \
MF_HTTP_ADAPTER_LOG_LEVEL=[HTTP Adapter Log Level] \
MF_HTTP_ADAPTER_PORT=[Service HTTP port] \
MF_HTTP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] \
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/mainflux-http
``` ```
Setting `MF_HTTP_ADAPTER_CA_CERTS` expects a file in PEM format of trusted CAs. This will enable TLS against the Things gRPC endpoint trusting only those CAs that are provided. Setting `MF_HTTP_ADAPTER_CA_CERTS` expects a file in PEM format of trusted CAs. This will enable TLS against the Things gRPC endpoint trusting only those CAs that are provided.

View File

@ -13,7 +13,7 @@ default values.
| Variable | Description | Default | | Variable | Description | Default |
|----------------------------------|----------------------------------------|----------------------------| |----------------------------------|----------------------------------------|----------------------------|
| MF_OPCUA_ADAPTER_HTTP_PORT | Service HTTP port | 8188 | | MF_OPCUA_ADAPTER_HTTP_PORT | Service HTTP port | 8180 |
| MF_OPCUA_ADAPTER_LOG_LEVEL | Service Log level | error | | MF_OPCUA_ADAPTER_LOG_LEVEL | Service Log level | error |
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | | MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
| MF_OPCUA_ADAPTER_INTERVAL_MS | OPC-UA Server Interval in milliseconds | 1000 | | MF_OPCUA_ADAPTER_INTERVAL_MS | OPC-UA Server Interval in milliseconds | 1000 |

View File

@ -8,21 +8,21 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|------------------------------------|------------------------------------------------|----------------| |---------------------------------|-----------------------------------------------------|----------------|
| MF_CASSANDRA_READER_PORT | Service HTTP port | 8180 | | MF_CASSANDRA_READER_PORT | Service HTTP port | 8180 |
| MF_CASSANDRA_READER_DB_CLUSTER | Cassandra cluster comma separated addresses | 127.0.0.1 | | MF_CASSANDRA_READER_DB_CLUSTER | Cassandra cluster comma separated addresses | 127.0.0.1 |
| MF_CASSANDRA_READER_DB_KEYSPACE | Cassandra keyspace name | mainflux | | MF_CASSANDRA_READER_DB_USER | Cassandra DB username | |
| MF_CASSANDRA_READER_DB_USERNAME | Cassandra DB username | | | MF_CASSANDRA_READER_DB_PASS | Cassandra DB password | |
| MF_CASSANDRA_READER_DB_PASSWORD | Cassandra DB password | | | MF_CASSANDRA_READER_DB_KEYSPACE | Cassandra keyspace name | messages |
| MF_CASSANDRA_READER_DB_PORT | Cassandra DB port | 9042 | | MF_CASSANDRA_READER_DB_PORT | Cassandra DB port | 9042 |
| MF_THINGS_URL | Things service URL | localhost:8181 | | MF_CASSANDRA_READER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false |
| MF_CASSANDRA_READER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false | | MF_CASSANDRA_READER_CA_CERTS | Path to trusted CAs in PEM format | |
| MF_CASSANDRA_READER_CA_CERTS | Path to trusted CAs in PEM format | | | MF_CASSANDRA_READER_SERVER_CERT | Path to server certificate in pem format | |
| MF_CASSANDRA_READER_SERVER_CERT | Path to server certificate in pem format | | | MF_CASSANDRA_READER_SERVER_KEY | Path to server key in pem format | |
| MF_CASSANDRA_READER_SERVER_KEY | Path to server key in pem format | | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:8181 |
| MF_CASSANDRA_READER_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC request timeout in seconds | 1 |
## Deployment ## Deployment
@ -36,19 +36,19 @@ default values.
- [Service HTTP port] - [Service HTTP port]
restart: on-failure restart: on-failure
environment: environment:
MF_THINGS_URL: [Things service URL]
MF_CASSANDRA_READER_PORT: [Service HTTP port] MF_CASSANDRA_READER_PORT: [Service HTTP port]
MF_CASSANDRA_READER_DB_CLUSTER: [Cassandra cluster comma separated addresses] MF_CASSANDRA_READER_DB_CLUSTER: [Cassandra cluster comma separated addresses]
MF_CASSANDRA_READER_DB_KEYSPACE: [Cassandra keyspace name] MF_CASSANDRA_READER_DB_KEYSPACE: [Cassandra keyspace name]
MF_CASSANDRA_READER_DB_USERNAME: [Cassandra DB username] MF_CASSANDRA_READER_DB_USER: [Cassandra DB username]
MF_CASSANDRA_READER_DB_PASSWORD: [Cassandra DB password] MF_CASSANDRA_READER_DB_PASS: [Cassandra DB password]
MF_CASSANDRA_READER_DB_PORT: [Cassandra DB port] MF_CASSANDRA_READER_DB_PORT: [Cassandra DB port]
MF_CASSANDRA_READER_CLIENT_TLS: [Flag that indicates if TLS should be turned on] MF_CASSANDRA_READER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_CASSANDRA_READER_CA_CERTS: [Path to trusted CAs in PEM format] MF_CASSANDRA_READER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_CASSANDRA_READER_SERVER_CERT: [String path to server cert in pem format] MF_CASSANDRA_READER_SERVER_CERT: [String path to server cert in pem format]
MF_CASSANDRA_READER_SERVER_KEY: [String path to server key in pem format] MF_CASSANDRA_READER_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_CASSANDRA_READER_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports: ports:
- [host machine port]:[configured HTTP port] - [host machine port]:[configured HTTP port]
``` ```
@ -68,19 +68,19 @@ make cassandra-reader
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_THINGS_URL=[Things service URL] \
MF_CASSANDRA_READER_PORT=[Service HTTP port] \ MF_CASSANDRA_READER_PORT=[Service HTTP port] \
MF_CASSANDRA_READER_DB_CLUSTER=[Cassandra cluster comma separated addresses] \ MF_CASSANDRA_READER_DB_CLUSTER=[Cassandra cluster comma separated addresses] \
MF_CASSANDRA_READER_DB_KEYSPACE=[Cassandra keyspace name] \ MF_CASSANDRA_READER_DB_KEYSPACE=[Cassandra keyspace name] \
MF_CASSANDRA_READER_DB_USERNAME=[Cassandra DB username] \ MF_CASSANDRA_READER_DB_USER=[Cassandra DB username] \
MF_CASSANDRA_READER_DB_PASSWORD=[Cassandra DB password] \ MF_CASSANDRA_READER_DB_PASS=[Cassandra DB password] \
MF_CASSANDRA_READER_DB_PORT=[Cassandra DB port] \ MF_CASSANDRA_READER_DB_PORT=[Cassandra DB port] \
MF_CASSANDRA_READER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] \ MF_CASSANDRA_READER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] \
MF_CASSANDRA_READER_CA_CERTS=[Path to trusted CAs in PEM format] \ MF_CASSANDRA_READER_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_CASSANDRA_READER_SERVER_CERT=[Path to server pem certificate file] \ MF_CASSANDRA_READER_SERVER_CERT=[Path to server pem certificate file] \
MF_CASSANDRA_READER_SERVER_KEY=[Path to server pem key file] \ MF_CASSANDRA_READER_SERVER_KEY=[Path to server pem key file] \
MF_JAEGER_URL=[Jaeger server URL] \ MF_JAEGER_URL=[Jaeger server URL] \
MF_CASSANDRA_READER_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] \ MF_THINGS_AUTH_GRPC_URL=[Things service Auth gRPC URL] \
MF_THINGS_AUTH_GRPC_TIMEOUT=[Things service Auth gRPC request timeout in seconds] \
$GOBIN/mainflux-cassandra-reader $GOBIN/mainflux-cassandra-reader
``` ```

View File

@ -11,8 +11,8 @@ import (
type DBConfig struct { type DBConfig struct {
Hosts []string Hosts []string
Keyspace string Keyspace string
Username string User string
Password string Pass string
Port int Port int
} }
@ -22,8 +22,8 @@ func Connect(cfg DBConfig) (*gocql.Session, error) {
cluster.Keyspace = cfg.Keyspace cluster.Keyspace = cfg.Keyspace
cluster.Consistency = gocql.Quorum cluster.Consistency = gocql.Quorum
cluster.Authenticator = gocql.PasswordAuthenticator{ cluster.Authenticator = gocql.PasswordAuthenticator{
Username: cfg.Username, Username: cfg.User,
Password: cfg.Password, Password: cfg.Pass,
} }
cluster.Port = cfg.Port cluster.Port = cfg.Port

View File

@ -8,20 +8,21 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|---------------------------------|------------------------------------------------|----------------| |------------------------------|-----------------------------------------------------|----------------|
| MF_INFLUX_READER_PORT | Service HTTP port | 8180 | | MF_INFLUX_READER_PORT | Service HTTP port | 8180 |
| MF_INFLUX_READER_DB_NAME | InfluxDB database name | mainflux | | MF_INFLUX_READER_DB_HOST | InfluxDB host | localhost |
| MF_INFLUX_READER_DB_HOST | InfluxDB host | localhost | | MF_INFLUX_READER_DB_PORT | Default port of InfluxDB database | 8086 |
| MF_INFLUX_READER_DB_PORT | Default port of InfluxDB database | 8086 | | MF_INFLUX_READER_DB_USER | Default user of InfluxDB database | mainflux |
| MF_INFLUX_READER_DB_USER | Default user of InfluxDB database | mainflux | | MF_INFLUX_READER_DB_PASS | Default password of InfluxDB user | mainflux |
| MF_INFLUX_READER_DB_PASS | Default password of InfluxDB user | mainflux | | MF_INFLUX_READER_DB | InfluxDB database name | messages |
| MF_INFLUX_READER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false | | MF_INFLUX_READER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false |
| MF_INFLUX_READER_CA_CERTS | Path to trusted CAs in PEM format | | | MF_INFLUX_READER_CA_CERTS | Path to trusted CAs in PEM format | |
| MF_INFLUX_READER_SERVER_CERT | Path to server certificate in pem format | | | MF_INFLUX_READER_SERVER_CERT | Path to server certificate in pem format | |
| MF_INFLUX_READER_SERVER_KEY | Path to server key in pem format | | | MF_INFLUX_READER_SERVER_KEY | Path to server key in pem format | |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_INFLUX_READER_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:8181 |
| MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC request timeout in seconds | 1 |
## Deployment ## Deployment
@ -32,9 +33,8 @@ default values.
container_name: [instance name] container_name: [instance name]
restart: on-failure restart: on-failure
environment: environment:
MF_THINGS_URL: [Things service URL]
MF_INFLUX_READER_PORT: [Service HTTP port] MF_INFLUX_READER_PORT: [Service HTTP port]
MF_INFLUX_READER_DB_NAME: [InfluxDB name] MF_INFLUX_READER_DB: [InfluxDB name]
MF_INFLUX_READER_DB_HOST: [InfluxDB host] MF_INFLUX_READER_DB_HOST: [InfluxDB host]
MF_INFLUX_READER_DB_PORT: [InfluxDB port] MF_INFLUX_READER_DB_PORT: [InfluxDB port]
MF_INFLUX_READER_DB_USER: [InfluxDB admin user] MF_INFLUX_READER_DB_USER: [InfluxDB admin user]
@ -44,7 +44,8 @@ default values.
MF_INFLUX_READER_SERVER_CERT: [String path to server cert in pem format] MF_INFLUX_READER_SERVER_CERT: [String path to server cert in pem format]
MF_INFLUX_READER_SERVER_KEY: [String path to server key in pem format] MF_INFLUX_READER_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_INFLUX_READER_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports: ports:
- [host machine port]:[configured HTTP port] - [host machine port]:[configured HTTP port]
``` ```
@ -64,9 +65,8 @@ make influxdb-reader
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_THINGS_URL=[Things service URL] \
MF_INFLUX_READER_PORT=[Service HTTP port] \ MF_INFLUX_READER_PORT=[Service HTTP port] \
MF_INFLUX_READER_DB_NAME=[InfluxDB database name] \ MF_INFLUX_READER_DB=[InfluxDB database name] \
MF_INFLUX_READER_DB_HOST=[InfluxDB database host] \ MF_INFLUX_READER_DB_HOST=[InfluxDB database host] \
MF_INFLUX_READER_DB_PORT=[InfluxDB database port] \ MF_INFLUX_READER_DB_PORT=[InfluxDB database port] \
MF_INFLUX_READER_DB_USER=[InfluxDB admin user] \ MF_INFLUX_READER_DB_USER=[InfluxDB admin user] \
@ -76,7 +76,8 @@ MF_INFLUX_READER_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_INFLUX_READER_SERVER_CERT=[Path to server pem certificate file] \ MF_INFLUX_READER_SERVER_CERT=[Path to server pem certificate file] \
MF_INFLUX_READER_SERVER_KEY=[Path to server pem key file] \ MF_INFLUX_READER_SERVER_KEY=[Path to server pem key file] \
MF_JAEGER_URL=[Jaeger server URL] \ MF_JAEGER_URL=[Jaeger server URL] \
MF_INFLUX_READER_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] \ MF_THINGS_AUTH_GRPC_URL=[Things service Auth gRPC URL] \
MF_THINGS_AURH_GRPC_TIMEOUT=[Things service Auth gRPC request timeout in seconds] \
$GOBIN/mainflux-influxdb $GOBIN/mainflux-influxdb
``` ```

View File

@ -8,19 +8,19 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|--------------------------------|------------------------------------------------|----------------| |-----------------------------|-----------------------------------------------------|----------------|
| MF_THINGS_URL | Things service URL | localhost:8181 | | MF_MONGO_READER_PORT | Service HTTP port | 8180 |
| MF_MONGO_READER_PORT | Service HTTP port | 8180 | | MF_MONGO_READER_DB | MongoDB database name | messages |
| MF_MONGO_READER_DB_NAME | MongoDB database name | mainflux | | MF_MONGO_READER_DB_HOST | MongoDB database host | localhost |
| MF_MONGO_READER_DB_HOST | MongoDB database host | localhost | | MF_MONGO_READER_DB_PORT | MongoDB database port | 27017 |
| MF_MONGO_READER_DB_PORT | MongoDB database port | 27017 | | MF_MONGO_READER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false |
| MF_MONGO_READER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false | | MF_MONGO_READER_CA_CERTS | Path to trusted CAs in PEM format | |
| MF_MONGO_READER_CA_CERTS | Path to trusted CAs in PEM format | | | MF_MONGO_SERVER_CERT | Path to server certificate in pem format | |
| MF_MONGO_SERVER_CERT | Path to server certificate in pem format | | | MF_MONGO_SERVER_KEY | Path to server key in pem format | |
| MF_MONGO_SERVER_KEY | Path to server key in pem format | | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:8181 |
| MF_MONGO_READER_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC request timeout in seconds | 1 |
## Deployment ## Deployment
@ -33,9 +33,8 @@ default values.
- [Service HTTP port] - [Service HTTP port]
restart: on-failure restart: on-failure
environment: environment:
MF_THINGS_URL: [Things service URL]
MF_MONGO_READER_PORT: [Service HTTP port] MF_MONGO_READER_PORT: [Service HTTP port]
MF_MONGO_READER_DB_NAME: [MongoDB name] MF_MONGO_READER_DB: [MongoDB name]
MF_MONGO_READER_DB_HOST: [MongoDB host] MF_MONGO_READER_DB_HOST: [MongoDB host]
MF_MONGO_READER_DB_PORT: [MongoDB port] MF_MONGO_READER_DB_PORT: [MongoDB port]
MF_MONGO_READER_CLIENT_TLS: [Flag that indicates if TLS should be turned on] MF_MONGO_READER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
@ -43,7 +42,8 @@ default values.
MF_MONGO_READER_SERVER_CERT: [String path to server cert in pem format] MF_MONGO_READER_SERVER_CERT: [String path to server cert in pem format]
MF_MONGO_READER_SERVER_KEY: [String path to server key in pem format] MF_MONGO_READER_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_MONGO_READER_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports: ports:
- [host machine port]:[configured HTTP port] - [host machine port]:[configured HTTP port]
``` ```
@ -63,9 +63,8 @@ make mongodb-reader
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_THINGS_URL=[Things service URL] \
MF_MONGO_READER_PORT=[Service HTTP port] \ MF_MONGO_READER_PORT=[Service HTTP port] \
MF_MONGO_READER_DB_NAME=[MongoDB database name] \ MF_MONGO_READER_DB=[MongoDB database name] \
MF_MONGO_READER_DB_HOST=[MongoDB database host] \ MF_MONGO_READER_DB_HOST=[MongoDB database host] \
MF_MONGO_READER_DB_PORT=[MongoDB database port] \ MF_MONGO_READER_DB_PORT=[MongoDB database port] \
MF_MONGO_READER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] \ MF_MONGO_READER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] \
@ -73,7 +72,8 @@ MF_MONGO_READER_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_JAEGER_URL=[Jaeger server URL] \ MF_JAEGER_URL=[Jaeger server URL] \
MF_MONGO_READER_SERVER_CERT=[Path to server pem certificate file] \ MF_MONGO_READER_SERVER_CERT=[Path to server pem certificate file] \
MF_MONGO_READER_SERVER_KEY=[Path to server pem key file] \ MF_MONGO_READER_SERVER_KEY=[Path to server pem key file] \
MF_MONGO_READER_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] \ MF_THINGS_AUTH_GRPC_URL=[Things service Auth gRPC URL] \
MF_THINGS_AUTH_GRPC_TIMEOUT=[Things service Auth gRPC request timeout in seconds] \
$GOBIN/mainflux-mongodb-reader $GOBIN/mainflux-mongodb-reader
``` ```

View File

@ -8,24 +8,24 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|-------------------------------------|----------------------------------------|----------------| |-------------------------------------|---------------------------------------------|----------------|
| MF_THINGS_URL | Things service URL | things:8183 | | MF_POSTGRES_READER_LOG_LEVEL | Service log level | debug |
| MF_POSTGRES_READER_LOG_LEVEL | Service log level | debug | | MF_POSTGRES_READER_PORT | Service HTTP port | 8180 |
| MF_POSTGRES_READER_PORT | Service HTTP port | 9204 | | MF_POSTGRES_READER_CLIENT_TLS | TLS mode flag | false |
| MF_POSTGRES_READER_CLIENT_TLS | TLS mode flag | false | | MF_POSTGRES_READER_CA_CERTS | Path to trusted CAs in PEM format | |
| MF_POSTGRES_READER_CA_CERTS | Path to trusted CAs in PEM format | | | MF_POSTGRES_READER_DB_HOST | Postgres DB host | postgres |
| MF_POSTGRES_READER_DB_HOST | Postgres DB host | postgres | | MF_POSTGRES_READER_DB_PORT | Postgres DB port | 5432 |
| MF_POSTGRES_READER_DB_PORT | Postgres DB port | 5432 | | MF_POSTGRES_READER_DB_USER | Postgres user | mainflux |
| MF_POSTGRES_READER_DB_USER | Postgres user | mainflux | | MF_POSTGRES_READER_DB_PASS | Postgres password | mainflux |
| MF_POSTGRES_READER_DB_PASS | Postgres password | mainflux | | MF_POSTGRES_READER_DB | Postgres database name | messages |
| MF_POSTGRES_READER_DB_NAME | Postgres database name | messages | | MF_POSTGRES_READER_DB_SSL_MODE | Postgres SSL mode | disabled |
| MF_POSTGRES_READER_DB_SSL_MODE | Postgres SSL mode | disabled | | MF_POSTGRES_READER_DB_SSL_CERT | Postgres SSL certificate path | "" |
| MF_POSTGRES_READER_DB_SSL_CERT | Postgres SSL certificate path | "" | | MF_POSTGRES_READER_DB_SSL_KEY | Postgres SSL key | "" |
| MF_POSTGRES_READER_DB_SSL_KEY | Postgres SSL key | "" | | MF_POSTGRES_READER_DB_SSL_ROOT_CERT | Postgres SSL root certificate path | "" |
| MF_POSTGRES_READER_DB_SSL_ROOT_CERT | Postgres SSL root certificate path | "" | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:8181 |
| MF_POSTGRES_READER_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC timeout in seconds | 1 |
## Deployment ## Deployment
@ -46,15 +46,16 @@ default values.
MF_POSTGRES_READER_DB_PORT: [Postgres port] MF_POSTGRES_READER_DB_PORT: [Postgres port]
MF_POSTGRES_READER_DB_USER: [Postgres user] MF_POSTGRES_READER_DB_USER: [Postgres user]
MF_POSTGRES_READER_DB_PASS: [Postgres password] MF_POSTGRES_READER_DB_PASS: [Postgres password]
MF_POSTGRES_READER_DB_NAME: [Postgres database name] MF_POSTGRES_READER_DB: [Postgres database name]
MF_POSTGRES_READER_DB_SSL_MODE: [Postgres SSL mode] MF_POSTGRES_READER_DB_SSL_MODE: [Postgres SSL mode]
MF_POSTGRES_READER_DB_SSL_CERT: [Postgres SSL cert] MF_POSTGRES_READER_DB_SSL_CERT: [Postgres SSL cert]
MF_POSTGRES_READER_DB_SSL_KEY: [Postgres SSL key] MF_POSTGRES_READER_DB_SSL_KEY: [Postgres SSL key]
MF_POSTGRES_READER_DB_SSL_ROOT_CERT: [Postgres SSL Root cert] MF_POSTGRES_READER_DB_SSL_ROOT_CERT: [Postgres SSL Root cert]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_POSTGRES_READER_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports: ports:
- 8903:8903 - 8180:8180
networks: networks:
- docker_mainflux-base-net - docker_mainflux-base-net
``` ```
@ -74,7 +75,23 @@ make postgres-writer
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_THINGS_URL=[Things service URL] 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_NAME=[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_POSTGRES_READER_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] $GOBIN/mainflux-postgres-reader 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/mainflux-postgres-reader
``` ```
## Usage ## Usage

View File

@ -48,22 +48,22 @@ MF_THINGS_LOG_LEVEL=info MF_THINGS_HTTP_PORT=8182 MF_THINGS_AUTH_GRPC_PORT=8183
### ###
# HTTP # HTTP
### ###
MF_HTTP_ADAPTER_LOG_LEVEL=info MF_HTTP_ADAPTER_PORT=8185 MF_THINGS_URL=localhost:8183 $BUILD_DIR/mainflux-http & MF_HTTP_ADAPTER_LOG_LEVEL=info MF_HTTP_ADAPTER_PORT=8185 MF_THINGS_AUTH_GRPC_URL=localhost:8183 $BUILD_DIR/mainflux-http &
### ###
# WS # WS
### ###
MF_WS_ADAPTER_LOG_LEVEL=info MF_WS_ADAPTER_PORT=8186 MF_THINGS_URL=localhost:8183 $BUILD_DIR/mainflux-ws & MF_WS_ADAPTER_LOG_LEVEL=info MF_WS_ADAPTER_PORT=8186 MF_THINGS_AUTH_GRPC_URL=localhost:8183 $BUILD_DIR/mainflux-ws &
### ###
# MQTT # MQTT
### ###
MF_MQTT_ADAPTER_LOG_LEVEL=info MF_THINGS_URL=localhost:8183 $BUILD_DIR/mainflux-mqtt & MF_MQTT_ADAPTER_LOG_LEVEL=info MF_THINGS_AUTH_GRPC_URL=localhost:8183 $BUILD_DIR/mainflux-mqtt &
### ###
# CoAP # CoAP
### ###
MF_COAP_ADAPTER_LOG_LEVEL=info MF_COAP_ADAPTER_PORT=5683 MF_THINGS_URL=localhost:8183 $BUILD_DIR/mainflux-coap & MF_COAP_ADAPTER_LOG_LEVEL=info MF_COAP_ADAPTER_PORT=5683 MF_THINGS_AUTH_GRPC_URL=localhost:8183 $BUILD_DIR/mainflux-coap &
### ###
# AUTHN # AUTHN

View File

@ -36,16 +36,16 @@ default values.
| MF_THINGS_ES_URL | Event store URL | localhost:6379 | | MF_THINGS_ES_URL | Event store URL | localhost:6379 |
| MF_THINGS_ES_PASS | Event store password | | | MF_THINGS_ES_PASS | Event store password | |
| MF_THINGS_ES_DB | Event store instance name | 0 | | MF_THINGS_ES_DB | Event store instance name | 0 |
| MF_THINGS_HTTP_PORT | Things service HTTP port | 8180 | | MF_THINGS_HTTP_PORT | Things service HTTP port | 8182 |
| MF_THINGS_AUTH_HTTP_PORT | Things service auth HTTP port | 8989 | | MF_THINGS_AUTH_HTTP_PORT | Things service Auth HTTP port | 8180 |
| MF_THINGS_AUTH_GRPC_PORT | Things service auth gRPC port | 8181 | | MF_THINGS_AUTH_GRPC_PORT | Things service Auth gRPC port | 8181 |
| MF_THINGS_SERVER_CERT | Path to server certificate in pem format | | | MF_THINGS_SERVER_CERT | Path to server certificate in pem format | |
| MF_THINGS_SERVER_KEY | Path to server key in pem format | | | MF_THINGS_SERVER_KEY | Path to server key in pem format | |
| MF_USERS_URL | Users service URL | localhost:8181 |
| MF_THINGS_SINGLE_USER_EMAIL | User email for single user mode (no gRPC communication with users) | | | MF_THINGS_SINGLE_USER_EMAIL | User email for single user mode (no gRPC communication with users) | |
| MF_THINGS_SINGLE_USER_TOKEN | User token for single user mode that should be passed in auth header | | | MF_THINGS_SINGLE_USER_TOKEN | User token for single user mode that should be passed in auth header | |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_THINGS_USERS_TIMEOUT | Users gRPC request timeout in seconds | 1 | | MF_AUTHN_GRPC_URL | AuthN service gRPC URL | localhost:8181 |
| MF_AUTHN_GRPC_TIMEOUT | AuthN service gRPC request timeout in seconds | 1 |
**Note** that if you want `things` service to have only one user locally, you should use `MF_THINGS_SINGLE_USER` env vars. By specifying these, you don't need `users` service in your deployment as it won't be used for authorization. **Note** that if you want `things` service to have only one user locally, you should use `MF_THINGS_SINGLE_USER` env vars. By specifying these, you don't need `users` service in your deployment as it won't be used for authorization.
@ -81,17 +81,17 @@ services:
MF_THINGS_ES_URL: [Event store URL] MF_THINGS_ES_URL: [Event store URL]
MF_THINGS_ES_PASS: [Event store password] MF_THINGS_ES_PASS: [Event store password]
MF_THINGS_ES_DB: [Event store instance name] MF_THINGS_ES_DB: [Event store instance name]
MF_THINGS_HTTP_PORT: [Service HTTP port] MF_THINGS_HTTP_PORT: [Things service HTTP port]
MF_THINGS_AUTH_HTTP_PORT: [Service auth HTTP port] MF_THINGS_AUTH_HTTP_PORT: [Things service Auth HTTP port]
MF_THINGS_AUTH_GRPC_PORT: [Service auth gRPC port] MF_THINGS_AUTH_GRPC_PORT: [Things service Auth gRPC port]
MF_THINGS_SERVER_CERT: [String path to server cert in pem format] MF_THINGS_SERVER_CERT: [String path to server cert in pem format]
MF_THINGS_SERVER_KEY: [String path to server key in pem format] MF_THINGS_SERVER_KEY: [String path to server key in pem format]
MF_USERS_URL: [Users service URL]
MF_THINGS_SECRET: [String used for signing tokens] MF_THINGS_SECRET: [String used for signing tokens]
MF_THINGS_SINGLE_USER_EMAIL: [User email for single user mode (no gRPC communication with users)] MF_THINGS_SINGLE_USER_EMAIL: [User email for single user mode (no gRPC communication with users)]
MF_THINGS_SINGLE_USER_TOKEN: [User token for single user mode that should be passed in auth header] MF_THINGS_SINGLE_USER_TOKEN: [User token for single user mode that should be passed in auth header]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_THINGS_USERS_TIMEOUT: [Users gRPC request timeout in seconds] MF_AUTHN_GRPC_URL: [AuthN service gRPC URL]
MF_AUTHN_GRPC_TIMEOUT: [AuthN service gRPC request timeout in seconds]
``` ```
To start the service outside of the container, execute the following shell script: To start the service outside of the container, execute the following shell script:
@ -109,7 +109,34 @@ make things
make install make install
# set the environment variables and run the service # set the environment variables and run the service
MF_THINGS_LOG_LEVEL=[Things log level] MF_THINGS_DB_HOST=[Database host address] MF_THINGS_DB_PORT=[Database host port] MF_THINGS_DB_USER=[Database user] MF_THINGS_DB_PASS=[Database password] MF_THINGS_DB=[Name of the database used by the service] MF_THINGS_DB_SSL_MODE=[SSL mode to connect to the database with] MF_THINGS_DB_SSL_CERT=[Path to the PEM encoded certificate file] MF_THINGS_DB_SSL_KEY=[Path to the PEM encoded key file] MF_THINGS_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] MF_HTTP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] MF_THINGS_CACHE_URL=[Cache database URL] MF_THINGS_CACHE_PASS=[Cache database password] MF_THINGS_CACHE_DB=[Cache instance name] MF_THINGS_ES_URL=[Event store URL] MF_THINGS_ES_PASS=[Event store password] MF_THINGS_ES_DB=[Event store instance name] MF_THINGS_HTTP_PORT=[Service HTTP port] MF_THINGS_AUTH_HTTP_PORT=[Service auth HTTP port] MF_THINGS_AUTH_GRPC_PORT=[Service auth gRPC port] MF_USERS_URL=[Users service URL] MF_THINGS_SERVER_CERT=[Path to server certificate] MF_THINGS_SERVER_KEY=[Path to server key] MF_THINGS_SINGLE_USER_EMAIL=[User email for single user mode (no gRPC communication with users)] MF_THINGS_SINGLE_USER_TOKEN=[User token for single user mode that should be passed in auth header] MF_JAEGER_URL=[Jaeger server URL] MF_THINGS_USERS_TIMEOUT=[Users gRPC request timeout in seconds] $GOBIN/mainflux-things MF_THINGS_LOG_LEVEL=[Things log level] \
MF_THINGS_DB_HOST=[Database host address] \
MF_THINGS_DB_PORT=[Database host port] \
MF_THINGS_DB_USER=[Database user] \
MF_THINGS_DB_PASS=[Database password] \
MF_THINGS_DB=[Name of the database used by the service] \
MF_THINGS_DB_SSL_MODE=[SSL mode to connect to the database with] \
MF_THINGS_DB_SSL_CERT=[Path to the PEM encoded certificate file] \
MF_THINGS_DB_SSL_KEY=[Path to the PEM encoded key file] \
MF_THINGS_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] \
MF_HTTP_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_THINGS_CACHE_URL=[Cache database URL] \
MF_THINGS_CACHE_PASS=[Cache database password] \
MF_THINGS_CACHE_DB=[Cache instance name] \
MF_THINGS_ES_URL=[Event store URL] \
MF_THINGS_ES_PASS=[Event store password] \
MF_THINGS_ES_DB=[Event store instance name] \
MF_THINGS_HTTP_PORT=[Things service HTTP port] \
MF_THINGS_AUTH_HTTP_PORT=[Things service Auth HTTP port] \
MF_THINGS_AUTH_GRPC_PORT=[Things service Auth gRPC port] \
MF_THINGS_SERVER_CERT=[Path to server certificate] \
MF_THINGS_SERVER_KEY=[Path to server key] \
MF_THINGS_SINGLE_USER_EMAIL=[User email for single user mode (no gRPC communication with users)] \
MF_THINGS_SINGLE_USER_TOKEN=[User token for single user mode that should be passed in auth header] \
MF_JAEGER_URL=[Jaeger server URL] \
MF_AUTHN_GRPC_URL=[AuthN service gRPC URL] \
MF_AUTHN_GRPC_TIMEOUT=[AuthN service gRPC request timeout in seconds] \
$GOBIN/mainflux-things
``` ```
Setting `MF_THINGS_CA_CERTS` expects a file in PEM format of trusted CAs. This will enable TLS against the Users gRPC endpoint trusting only those CAs that are provided. Setting `MF_THINGS_CA_CERTS` expects a file in PEM format of trusted CAs. This will enable TLS against the Users gRPC endpoint trusting only those CAs that are provided.

View File

@ -19,7 +19,7 @@ default values.
| MF_TWINS_SERVER_CERT | Path to server certificate in PEM format | | | MF_TWINS_SERVER_CERT | Path to server certificate in PEM format | |
| MF_TWINS_SERVER_KEY | Path to server key in PEM format | | | MF_TWINS_SERVER_KEY | Path to server key in PEM format | |
| MF_JAEGER_URL | Jaeger server URL | | | MF_JAEGER_URL | Jaeger server URL | |
| MF_TWINS_DB_NAME | Database name | mainflux | | MF_TWINS_DB | Database name | mainflux |
| MF_TWINS_DB_HOST | Database host address | localhost | | MF_TWINS_DB_HOST | Database host address | localhost |
| MF_TWINS_DB_PORT | Database host port | 27017 | | MF_TWINS_DB_PORT | Database host port | 27017 |
| MF_TWINS_SINGLE_USER_EMAIL | User email for single user mode (no gRPC communication with users) | | | MF_TWINS_SINGLE_USER_EMAIL | User email for single user mode (no gRPC communication with users) | |
@ -30,10 +30,9 @@ default values.
| MF_TWINS_THING_ID | ID of thing representing twins service & mqtt user | | | MF_TWINS_THING_ID | ID of thing representing twins service & mqtt user | |
| MF_TWINS_THING_KEY | Key of thing representing twins service & mqtt pass | | | MF_TWINS_THING_KEY | Key of thing representing twins service & mqtt pass | |
| MF_TWINS_CHANNEL_ID | Mqtt notifications topic | | | MF_TWINS_CHANNEL_ID | Mqtt notifications topic | |
| MF_NATS_URL | Mainflux NATS broker URL | nats://127.0.0.1:4222 | | MF_NATS_URL | Mainflux NATS broker URL | nats://localhost:4222 |
| MF_AUTHN_GRPC_PORT | Authn service gRPC port | 8181 | | MF_AUTHN_GRPC_URL | AuthN service gRPC URL | localhost:8181 |
| MF_AUTHN_TIMEOUT | Authn gRPC request timeout in seconds | 1 | | MF_AUTHN_GRPC_TIMEOUT | AuthN service gRPC request timeout in seconds | 1 |
| MF_AUTHN_URL | Authn service URL | localhost:8181 |
## Deployment ## Deployment
@ -55,7 +54,7 @@ services:
MF_TWINS_SERVER_CERT: [String path to server cert in pem format] MF_TWINS_SERVER_CERT: [String path to server cert in pem format]
MF_TWINS_SERVER_KEY: [String path to server key in pem format] MF_TWINS_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_TWINS_DB_NAME: [Database name] MF_TWINS_DB: [Database name]
MF_TWINS_DB_HOST: [Database host address] MF_TWINS_DB_HOST: [Database host address]
MF_TWINS_DB_PORT: [Database host port] MF_TWINS_DB_PORT: [Database host port]
MF_TWINS_SINGLE_USER_EMAIL: [User email for single user mode] MF_TWINS_SINGLE_USER_EMAIL: [User email for single user mode]
@ -67,9 +66,8 @@ services:
MF_TWINS_THING_KEY: [Key of thing representing twins service] MF_TWINS_THING_KEY: [Key of thing representing twins service]
MF_TWINS_CHANNEL_ID: [Mqtt notifications topic] MF_TWINS_CHANNEL_ID: [Mqtt notifications topic]
MF_NATS_URL: [Mainflux NATS broker URL] MF_NATS_URL: [Mainflux NATS broker URL]
MF_AUTHN_GRPC_PORT: [Authn service gRPC port] MF_AUTHN_GRPC_URL: [AuthN service gRPC URL]
MF_AUTHN_TIMEOUT: [Authn gRPC request timeout in seconds] MF_AUTHN_GRPC_TIMEOUT: [AuthN service gRPC request timeout in seconds]
MF_AUTHN_URL: [Authn service URL]
``` ```
To start the service outside of the container, execute the following shell script: To start the service outside of the container, execute the following shell script:
@ -87,7 +85,25 @@ make twins
make install make install
# set the environment variables and run the service # set the environment variables and run the service
MF_TWINS_LOG_LEVEL: [Twins log level] MF_TWINS_HTTP_PORT: [Service HTTP port] MF_TWINS_SERVER_CERT: [String path to server cert in pem format] MF_TWINS_SERVER_KEY: [String path to server key in pem format] MF_JAEGER_URL: [Jaeger server URL] MF_TWINS_DB_NAME: [Database name] MF_TWINS_DB_HOST: [Database host address] MF_TWINS_DB_PORT: [Database host port] MF_TWINS_SINGLE_USER_EMAIL: [User email for single user mode] MF_TWINS_SINGLE_USER_TOKEN: [User token for single user mode] MF_TWINS_CLIENT_TLS: [Flag that indicates if TLS should be turned on] MF_TWINS_CA_CERTS: [Path to trusted CAs in PEM format] MF_TWINS_MQTT_URL: [Mqtt broker URL for twin CRUD and states] MF_TWINS_THING_ID: [ID of thing representing twins service] MF_TWINS_THING_KEY: [Key of thing representing twins service] MF_TWINS_CHANNEL_ID: [Mqtt notifications topic] MF_NATS_URL: [Mainflux NATS broker URL] MF_AUTHN_GRPC_PORT: [Authn service gRPC port] MF_AUTHN_TIMEOUT: [Authn gRPC request timeout in seconds] MF_AUTHN_URL: [Authn service URL] $GOBIN/mainflux-twins MF_TWINS_LOG_LEVEL: [Twins log level] \
MF_TWINS_HTTP_PORT: [Service HTTP port] \
MF_TWINS_SERVER_CERT: [String path to server cert in pem format] \
MF_TWINS_SERVER_KEY: [String path to server key in pem format] \
MF_JAEGER_URL: [Jaeger server URL] MF_TWINS_DB: [Database name] \
MF_TWINS_DB_HOST: [Database host address] \
MF_TWINS_DB_PORT: [Database host port] \
MF_TWINS_SINGLE_USER_EMAIL: [User email for single user mode] \
MF_TWINS_SINGLE_USER_TOKEN: [User token for single user mode] \
MF_TWINS_CLIENT_TLS: [Flag that indicates if TLS should be turned on] \
MF_TWINS_CA_CERTS: [Path to trusted CAs in PEM format] \
MF_TWINS_MQTT_URL: [Mqtt broker URL for twin CRUD and states] \
MF_TWINS_THING_ID: [ID of thing representing twins service] \
MF_TWINS_THING_KEY: [Key of thing representing twins service] \
MF_TWINS_CHANNEL_ID: [Mqtt notifications topic] \
MF_NATS_URL: [Mainflux NATS broker URL] \
MF_AUTHN_GRPC_URL: [AuthN service gRPC URL] \
MF_AUTHN_GRPC_TIMEOUT: [AuthN service gRPC request timeout in seconds] \
$GOBIN/mainflux-twins
``` ```
## Usage ## Usage

View File

@ -15,8 +15,8 @@ default values.
| MF_CASSANDRA_WRITER_PORT | Service HTTP port | 8180 | | MF_CASSANDRA_WRITER_PORT | Service HTTP port | 8180 |
| MF_CASSANDRA_WRITER_DB_CLUSTER | Cassandra cluster comma separated addresses | 127.0.0.1 | | MF_CASSANDRA_WRITER_DB_CLUSTER | Cassandra cluster comma separated addresses | 127.0.0.1 |
| MF_CASSANDRA_WRITER_DB_KEYSPACE | Cassandra keyspace name | mainflux | | MF_CASSANDRA_WRITER_DB_KEYSPACE | Cassandra keyspace name | mainflux |
| MF_CASSANDRA_WRITER_DB_USERNAME | Cassandra DB username | | | MF_CASSANDRA_WRITER_DB_USER | Cassandra DB username | |
| MF_CASSANDRA_WRITER_DB_PASSWORD | Cassandra DB password | | | MF_CASSANDRA_WRITER_DB_PASS | Cassandra DB password | |
| MF_CASSANDRA_WRITER_DB_PORT | Cassandra DB port | 9042 | | MF_CASSANDRA_WRITER_DB_PORT | Cassandra DB port | 9042 |
| MF_CASSANDRA_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml | | MF_CASSANDRA_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml |
## Deployment ## Deployment
@ -35,8 +35,8 @@ default values.
MF_CASSANDRA_WRITER_PORT: [Service HTTP port] MF_CASSANDRA_WRITER_PORT: [Service HTTP port]
MF_CASSANDRA_WRITER_DB_CLUSTER: [Cassandra cluster comma separated addresses] MF_CASSANDRA_WRITER_DB_CLUSTER: [Cassandra cluster comma separated addresses]
MF_CASSANDRA_WRITER_DB_KEYSPACE: [Cassandra keyspace name] MF_CASSANDRA_WRITER_DB_KEYSPACE: [Cassandra keyspace name]
MF_CASSANDRA_WRITER_DB_USERNAME: [Cassandra DB username] MF_CASSANDRA_WRITER_DB_USER: [Cassandra DB username]
MF_CASSANDRA_WRITER_DB_PASSWORD: [Cassandra DB password] MF_CASSANDRA_WRITER_DB_PASS: [Cassandra DB password]
MF_CASSANDRA_WRITER_DB_PORT: [Cassandra DB port] MF_CASSANDRA_WRITER_DB_PORT: [Cassandra DB port]
MF_CASSANDRA_WRITER_SUBJECTS_CONFIG: [Configuration file path with subjects list] MF_CASSANDRA_WRITER_SUBJECTS_CONFIG: [Configuration file path with subjects list]
ports: ports:
@ -60,7 +60,16 @@ make cassandra-writer
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_NATS_URL=[NATS instance URL] MF_CASSANDRA_WRITER_LOG_LEVEL=[Cassandra writer log level] MF_CASSANDRA_WRITER_PORT=[Service HTTP port] MF_CASSANDRA_WRITER_DB_CLUSTER=[Cassandra cluster comma separated addresses] MF_CASSANDRA_WRITER_DB_KEYSPACE=[Cassandra keyspace name] MF_CASSANDRA_READER_DB_USERNAME=[Cassandra DB username] MF_CASSANDRA_READER_DB_PASSWORD=[Cassandra DB password] MF_CASSANDRA_READER_DB_PORT=[Cassandra DB port] MF_CASSANDRA_WRITER_SUBJECTS_CONFIG=[Configuration file path with subjects list] $GOBIN/mainflux-cassandra-writer MF_NATS_URL=[NATS instance URL] \
MF_CASSANDRA_WRITER_LOG_LEVEL=[Cassandra writer log level] \
MF_CASSANDRA_WRITER_PORT=[Service HTTP port] \
MF_CASSANDRA_WRITER_DB_CLUSTER=[Cassandra cluster comma separated addresses] \
MF_CASSANDRA_WRITER_DB_KEYSPACE=[Cassandra keyspace name] \
MF_CASSANDRA_READER_DB_USER=[Cassandra DB username] \
MF_CASSANDRA_READER_DB_PASS=[Cassandra DB password] \
MF_CASSANDRA_READER_DB_PORT=[Cassandra DB port] \
MF_CASSANDRA_WRITER_SUBJECTS_CONFIG=[Configuration file path with subjects list] \
$GOBIN/mainflux-cassandra-writer
``` ```
### Using docker-compose ### Using docker-compose

View File

@ -27,8 +27,8 @@ const table = `CREATE TABLE IF NOT EXISTS messages (
type DBConfig struct { type DBConfig struct {
Hosts []string Hosts []string
Keyspace string Keyspace string
Username string User string
Password string Pass string
Port int Port int
} }
@ -38,8 +38,8 @@ func Connect(cfg DBConfig) (*gocql.Session, error) {
cluster.Keyspace = cfg.Keyspace cluster.Keyspace = cfg.Keyspace
cluster.Consistency = gocql.Quorum cluster.Consistency = gocql.Quorum
cluster.Authenticator = gocql.PasswordAuthenticator{ cluster.Authenticator = gocql.PasswordAuthenticator{
Username: cfg.Username, Username: cfg.User,
Password: cfg.Password, Password: cfg.Pass,
} }
cluster.Port = cfg.Port cluster.Port = cfg.Port

View File

@ -8,17 +8,17 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|-----------------------------------|-----------------------------------------------------------|------------------------| |----------------------------------|----------------------------------------------------------|------------------------|
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | | MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
| MF_INFLUX_WRITER_LOG_LEVEL | Log level for InfluxDB writer (debug, info, warn, error) | error | | MF_INFLUX_WRITER_LOG_LEVEL | Log level for InfluxDB writer (debug, info, warn, error) | error |
| MF_INFLUX_WRITER_PORT | Service HTTP port | 8180 | | MF_INFLUX_WRITER_PORT | Service HTTP port | 8180 |
| MF_INFLUX_WRITER_DB_NAME | InfluxDB database name | mainflux | | MF_INFLUX_WRITER_DB_HOST | InfluxDB host | localhost |
| MF_INFLUX_WRITER_DB_HOST | InfluxDB host | localhost | | MF_INFLUX_WRITER_DB_PORT | Default port of InfluxDB database | 8086 |
| MF_INFLUX_WRITER_DB_PORT | Default port of InfluxDB database | 8086 | | MF_INFLUX_WRITER_DB_USER | Default user of InfluxDB database | mainflux |
| MF_INFLUX_WRITER_DB_USER | Default user of InfluxDB database | mainflux | | MF_INFLUX_WRITER_DB_PASS | Default password of InfluxDB user | mainflux |
| MF_INFLUX_WRITER_DB_PASS | Default password of InfluxDB user | mainflux | | MF_INFLUX_WRITER_DB | InfluxDB database name | messages |
| MF_INFLUX_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml | | MF_INFLUX_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml |
## Deployment ## Deployment
@ -34,7 +34,7 @@ default values.
MF_NATS_URL: [NATS instance URL] MF_NATS_URL: [NATS instance URL]
MF_INFLUX_WRITER_LOG_LEVEL: [Influx writer log level] MF_INFLUX_WRITER_LOG_LEVEL: [Influx writer log level]
MF_INFLUX_WRITER_PORT: [Service HTTP port] MF_INFLUX_WRITER_PORT: [Service HTTP port]
MF_INFLUX_WRITER_DB_NAME: [InfluxDB name] MF_INFLUX_WRITER_DB: [InfluxDB name]
MF_INFLUX_WRITER_DB_HOST: [InfluxDB host] MF_INFLUX_WRITER_DB_HOST: [InfluxDB host]
MF_INFLUX_WRITER_DB_PORT: [InfluxDB port] MF_INFLUX_WRITER_DB_PORT: [InfluxDB port]
MF_INFLUX_WRITER_DB_USER: [InfluxDB admin user] MF_INFLUX_WRITER_DB_USER: [InfluxDB admin user]
@ -61,7 +61,7 @@ make influxdb
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_NATS_URL=[NATS instance URL] MF_INFLUX_WRITER_LOG_LEVEL=[Influx writer log level] MF_INFLUX_WRITER_PORT=[Service HTTP port] MF_INFLUX_WRITER_DB_NAME=[InfluxDB database name] MF_INFLUX_WRITER_DB_HOST=[InfluxDB database host] MF_INFLUX_WRITER_DB_PORT=[InfluxDB database port] MF_INFLUX_WRITER_DB_USER=[InfluxDB admin user] MF_INFLUX_WRITER_DB_PASS=[InfluxDB admin password] MF_INFLUX_WRITER_SUBJECTS_CONFIG=[Configuration file path with subjects list] $GOBIN/mainflux-influxdb MF_NATS_URL=[NATS instance URL] MF_INFLUX_WRITER_LOG_LEVEL=[Influx writer log level] MF_INFLUX_WRITER_PORT=[Service HTTP port] MF_INFLUX_WRITER_DB=[InfluxDB database name] MF_INFLUX_WRITER_DB_HOST=[InfluxDB database host] MF_INFLUX_WRITER_DB_PORT=[InfluxDB database port] MF_INFLUX_WRITER_DB_USER=[InfluxDB admin user] MF_INFLUX_WRITER_DB_PASS=[InfluxDB admin password] MF_INFLUX_WRITER_SUBJECTS_CONFIG=[Configuration file path with subjects list] $GOBIN/mainflux-influxdb
``` ```
### Using docker-compose ### Using docker-compose

View File

@ -8,15 +8,15 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|----------------------------------|---------------------------------------------|------------------------| |---------------------------------|--------------------------------------------|------------------------|
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | | MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
| MF_MONGO_WRITER_LOG_LEVEL | Log level for MongoDB writer | error | | MF_MONGO_WRITER_LOG_LEVEL | Log level for MongoDB writer | error |
| MF_MONGO_WRITER_PORT | Service HTTP port | 8180 | | MF_MONGO_WRITER_PORT | Service HTTP port | 8180 |
| MF_MONGO_WRITER_DB_NAME | Default MongoDB database name | mainflux | | MF_MONGO_WRITER_DB | Default MongoDB database name | messages |
| MF_MONGO_WRITER_DB_HOST | Default MongoDB database host | localhost | | MF_MONGO_WRITER_DB_HOST | Default MongoDB database host | localhost |
| MF_MONGO_WRITER_DB_PORT | Default MongoDB database port | 27017 | | MF_MONGO_WRITER_DB_PORT | Default MongoDB database port | 27017 |
| MF_MONGO_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml | | MF_MONGO_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml |
## Deployment ## Deployment
@ -35,7 +35,7 @@ default values.
MF_NATS_URL: [NATS instance URL] MF_NATS_URL: [NATS instance URL]
MF_MONGO_WRITER_LOG_LEVEL: [MongoDB writer log level] MF_MONGO_WRITER_LOG_LEVEL: [MongoDB writer log level]
MF_MONGO_WRITER_PORT: [Service HTTP port] MF_MONGO_WRITER_PORT: [Service HTTP port]
MF_MONGO_WRITER_DB_NAME: [MongoDB name] MF_MONGO_WRITER_DB: [MongoDB name]
MF_MONGO_WRITER_DB_HOST: [MongoDB host] MF_MONGO_WRITER_DB_HOST: [MongoDB host]
MF_MONGO_WRITER_DB_PORT: [MongoDB port] MF_MONGO_WRITER_DB_PORT: [MongoDB port]
MF_MONGO_WRITER_SUBJETCS_CONFIG: [Configuration file path with subjects list] MF_MONGO_WRITER_SUBJETCS_CONFIG: [Configuration file path with subjects list]
@ -60,7 +60,7 @@ make mongodb-writer
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_NATS_URL=[NATS instance URL] MF_MONGO_WRITER_LOG_LEVEL=[MongoDB writer log level] MF_MONGO_WRITER_PORT=[Service HTTP port] MF_MONGO_WRITER_DB_NAME=[MongoDB database name] MF_MONGO_WRITER_DB_HOST=[MongoDB database host] MF_MONGO_WRITER_DB_PORT=[MongoDB database port] MF_MONGO_WRITER_SUBJETCS_CONFIG=[Configuration file path with subjetcs list] $GOBIN/mainflux-mongodb-writer MF_NATS_URL=[NATS instance URL] MF_MONGO_WRITER_LOG_LEVEL=[MongoDB writer log level] MF_MONGO_WRITER_PORT=[Service HTTP port] MF_MONGO_WRITER_DB=[MongoDB database name] MF_MONGO_WRITER_DB_HOST=[MongoDB database host] MF_MONGO_WRITER_DB_PORT=[MongoDB database port] MF_MONGO_WRITER_SUBJETCS_CONFIG=[Configuration file path with subjetcs list] $GOBIN/mainflux-mongodb-writer
``` ```
## Usage ## Usage

View File

@ -8,21 +8,21 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|--------------------------------------|---------------------------------------------|------------------------| |-------------------------------------|---------------------------------------------|------------------------|
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | | MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
| MF_POSTGRES_WRITER_LOG_LEVEL | Service log level | error | | MF_POSTGRES_WRITER_LOG_LEVEL | Service log level | error |
| MF_POSTGRES_WRITER_PORT | Service HTTP port | 9104 | | MF_POSTGRES_WRITER_PORT | Service HTTP port | 9104 |
| MF_POSTGRES_WRITER_DB_HOST | Postgres DB host | postgres | | MF_POSTGRES_WRITER_DB_HOST | Postgres DB host | postgres |
| MF_POSTGRES_WRITER_DB_PORT | Postgres DB port | 5432 | | MF_POSTGRES_WRITER_DB_PORT | Postgres DB port | 5432 |
| MF_POSTGRES_WRITER_DB_USER | Postgres user | mainflux | | MF_POSTGRES_WRITER_DB_USER | Postgres user | mainflux |
| MF_POSTGRES_WRITER_DB_PASS | Postgres password | mainflux | | MF_POSTGRES_WRITER_DB_PASS | Postgres password | mainflux |
| MF_POSTGRES_WRITER_DB_NAME | Postgres database name | messages | | MF_POSTGRES_WRITER_DB | Postgres database name | messages |
| MF_POSTGRES_WRITER_DB_SSL_MODE | Postgres SSL mode | disabled | | MF_POSTGRES_WRITER_DB_SSL_MODE | Postgres SSL mode | disabled |
| MF_POSTGRES_WRITER_DB_SSL_CERT | Postgres SSL certificate path | "" | | MF_POSTGRES_WRITER_DB_SSL_CERT | Postgres SSL certificate path | "" |
| MF_POSTGRES_WRITER_DB_SSL_KEY | Postgres SSL key | "" | | MF_POSTGRES_WRITER_DB_SSL_KEY | Postgres SSL key | "" |
| MF_POSTGRES_WRITER_DB_SSL_ROOT_CERT | Postgres SSL root certificate path | "" | | MF_POSTGRES_WRITER_DB_SSL_ROOT_CERT | Postgres SSL root certificate path | "" |
| MF_POSTGRES_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml | | MF_POSTGRES_WRITER_SUBJECTS_CONFIG | Configuration file path with subjects list | /config/subjects.toml |
## Deployment ## Deployment
@ -43,7 +43,7 @@ default values.
MF_POSTGRES_WRITER_DB_PORT: [Postgres port] MF_POSTGRES_WRITER_DB_PORT: [Postgres port]
MF_POSTGRES_WRITER_DB_USER: [Postgres user] MF_POSTGRES_WRITER_DB_USER: [Postgres user]
MF_POSTGRES_WRITER_DB_PASS: [Postgres password] MF_POSTGRES_WRITER_DB_PASS: [Postgres password]
MF_POSTGRES_WRITER_DB_NAME: [Postgres database name] MF_POSTGRES_WRITER_DB: [Postgres database name]
MF_POSTGRES_WRITER_DB_SSL_MODE: [Postgres SSL mode] MF_POSTGRES_WRITER_DB_SSL_MODE: [Postgres SSL mode]
MF_POSTGRES_WRITER_DB_SSL_CERT: [Postgres SSL cert] MF_POSTGRES_WRITER_DB_SSL_CERT: [Postgres SSL cert]
MF_POSTGRES_WRITER_DB_SSL_KEY: [Postgres SSL key] MF_POSTGRES_WRITER_DB_SSL_KEY: [Postgres SSL key]
@ -72,7 +72,20 @@ make postgres-writer
make install make install
# Set the environment variables and run the service # Set the environment variables and run the service
MF_NATS_URL=[NATS 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_NAME=[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_SUBJECTS_CONFIG=[Configuration file path with subjects list] $GOBIN/mainflux-postgres-writer MF_NATS_URL=[NATS 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_SUBJECTS_CONFIG=[Configuration file path with subjects list] \
$GOBIN/mainflux-postgres-writer
``` ```
## Usage ## Usage

View File

@ -8,16 +8,16 @@ The service is configured using the environment variables presented in the
following table. Note that any unset variables will be replaced with their following table. Note that any unset variables will be replaced with their
default values. default values.
| Variable | Description | Default | | Variable | Description | Default |
|------------------------------|------------------------------------------------|-----------------------| |------------------------------|-----------------------------------------------------|-----------------------|
| MF_WS_ADAPTER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false | | MF_WS_ADAPTER_CLIENT_TLS | Flag that indicates if TLS should be turned on | false |
| MF_WS_ADAPTER_CA_CERTS | Path to trusted CAs in PEM format | | | MF_WS_ADAPTER_CA_CERTS | Path to trusted CAs in PEM format | |
| MF_WS_ADAPTER_LOG_LEVEL | Log level for the WS Adapter | error | | MF_WS_ADAPTER_LOG_LEVEL | Log level for the WS Adapter | error |
| MF_WS_ADAPTER_PORT | Service WS port | 8180 | | MF_WS_ADAPTER_PORT | Service WS port | 8180 |
| MF_NATS_URL | NATS instance URL | nats://localhost:4222 | | MF_NATS_URL | NATS instance URL | nats://localhost:4222 |
| MF_THINGS_URL | Things service URL | localhost:8181 | | MF_JAEGER_URL | Jaeger server URL | localhost:6831 |
| MF_JAEGER_URL | Jaeger server URL | localhost:6831 | | MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:8181 |
| MF_WS_ADAPTER_THINGS_TIMEOUT | Things gRPC request timeout in seconds | 1 | | MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC request timeout in seconds | 1 |
## Deployment ## Deployment
@ -33,14 +33,14 @@ services:
ports: ports:
- [host machine port]:[configured port] - [host machine port]:[configured port]
environment: environment:
MF_THINGS_URL: [Things service URL]
MF_NATS_URL: [NATS instance URL] MF_NATS_URL: [NATS instance URL]
MF_WS_ADAPTER_PORT: [Service WS port] MF_WS_ADAPTER_PORT: [Service WS port]
MF_WS_ADAPTER_LOG_LEVEL: [WS adapter log level] MF_WS_ADAPTER_LOG_LEVEL: [WS adapter log level]
MF_WS_ADAPTER_CLIENT_TLS: [Flag that indicates if TLS should be turned on] MF_WS_ADAPTER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_WS_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format] MF_WS_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_JAEGER_URL: [Jaeger server URL] MF_JAEGER_URL: [Jaeger server URL]
MF_WS_ADAPTER_THINGS_TIMEOUT: [Things gRPC request timeout in seconds] MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
``` ```
To start the service outside of the container, execute the following shell script: To start the service outside of the container, execute the following shell script:
@ -58,7 +58,15 @@ make ws
make install make install
# set the environment variables and run the service # set the environment variables and run the service
MF_THINGS_URL=[Things service URL] MF_NATS_URL=[NATS instance URL] MF_WS_ADAPTER_PORT=[Service WS port] MF_WS_ADAPTER_LOG_LEVEL=[WS adapter log level] MF_WS_ADAPTER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] MF_WS_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] MF_JAEGER_URL=[Jaeger server URL] MF_WS_ADAPTER_THINGS_TIMEOUT=[Things gRPC request timeout in seconds] $GOBIN/mainflux-ws MF_NATS_URL=[NATS instance URL] \
MF_WS_ADAPTER_PORT=[Service WS port] \
MF_WS_ADAPTER_LOG_LEVEL=[WS adapter log level] \
MF_WS_ADAPTER_CLIENT_TLS=[Flag that indicates if TLS should be turned on] \
MF_WS_ADAPTER_CA_CERTS=[Path to trusted CAs in PEM format] \
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/mainflux-ws
``` ```
## Usage ## Usage