Documentation ¶
Overview ¶
Package supermq acts as an umbrella package containing multiple different microservices and defines all shared domain concepts. For detailed documentation of the platform, please visit https://docs.supermq.abstractmachines.fr.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // Version represents the last service git tag in git history. // It's meant to be set using go build ldflags: // -ldflags "-X 'github.com/absmach/supermq.Version=0.0.0'". Version = "0.0.0" // Commit represents the service git commit hash. // It's meant to be set using go build ldflags: // -ldflags "-X 'github.com/absmach/supermq.Commit=ffffffff'". Commit = "ffffffff" // BuildTime represetns the service build time. // It's meant to be set using go build ldflags: // -ldflags "-X 'github.com/absmach/supermq.BuildTime=1970-01-01_00:00:00'". BuildTime = "1970-01-01_00:00:00" )
Functions ¶
func Health ¶
func Health(service, instanceID string) http.HandlerFunc
Health exposes an HTTP handler for retrieving service health.
Types ¶
type HealthInfo ¶
type HealthInfo struct { // Status contains service status. Status string `json:"status"` // Version contains current service version. Version string `json:"version"` // Commit represents the git hash commit. Commit string `json:"commit"` // Description contains service description. Description string `json:"description"` // BuildTime contains service build time. BuildTime string `json:"build_time"` // InstanceID contains the ID of the current service instance InstanceID string `json:"instance_id"` }
HealthInfo contains version endpoint response.
type IDProvider ¶
IDProvider specifies an API for generating unique identifiers.
Directories ¶
Path | Synopsis |
---|---|
api
Package api contains implementation of Auth service HTTP API.
|
Package api contains implementation of Auth service HTTP API. |
api/grpc/auth
Package auth contains implementation of Auth service gRPC API.
|
Package auth contains implementation of Auth service gRPC API. |
api/grpc/token
Package grpc contains implementation of Auth service gRPC API.
|
Package grpc contains implementation of Auth service gRPC API. |
postgres
Package postgres contains Key repository implementations using PostgreSQL as the underlying database.
|
Package postgres contains Key repository implementations using PostgreSQL as the underlying database. |
tracing
Package tracing provides tracing instrumentation for SuperMQ Users service.
|
Package tracing provides tracing instrumentation for SuperMQ Users service. |
Package bootstrap contains the domain concept definitions needed to support SuperMQ bootstrap service functionality.
|
Package bootstrap contains the domain concept definitions needed to support SuperMQ bootstrap service functionality. |
api
Package api contains implementation of bootstrap service HTTP API.
|
Package api contains implementation of bootstrap service HTTP API. |
events
Package events provides the domain concept definitions needed to support bootstrap events functionality.
|
Package events provides the domain concept definitions needed to support bootstrap events functionality. |
events/consumer
Package consumer contains events consumer for events published by Bootstrap service.
|
Package consumer contains events consumer for events published by Bootstrap service. |
events/producer
Package producer contains the domain events needed to support event sourcing of Bootstrap service actions.
|
Package producer contains the domain events needed to support event sourcing of Bootstrap service actions. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
postgres
Package postgres contains repository implementations using PostgreSQL as the underlying database.
|
Package postgres contains repository implementations using PostgreSQL as the underlying database. |
tracing
Package tracing provides tracing instrumentation for SuperMQ Users service.
|
Package tracing provides tracing instrumentation for SuperMQ Users service. |
Package certs contains the domain concept definitions needed to support SuperMQ certs service functionality.
|
Package certs contains the domain concept definitions needed to support SuperMQ certs service functionality. |
api
Package api contains implementation of certs service HTTP API.
|
Package api contains implementation of certs service HTTP API. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
pki/vault
Package pki contains the domain concept definitions needed to support SuperMQ Certs service functionality.
|
Package pki contains the domain concept definitions needed to support SuperMQ Certs service functionality. |
tracing
Package tracing provides tracing instrumentation for SuperMQ Users Groups service.
|
Package tracing provides tracing instrumentation for SuperMQ Users Groups service. |
api/grpc
Package grpc contains implementation of Auth service gRPC API.
|
Package grpc contains implementation of Auth service gRPC API. |
events
Package events provides the domain concept definitions needed to support clients events functionality.
|
Package events provides the domain concept definitions needed to support clients events functionality. |
tracing
Package tracing provides tracing instrumentation for SuperMQ channels service.
|
Package tracing provides tracing instrumentation for SuperMQ channels service. |
Package cli contains the domain concept definitions needed to support SuperMQ CLI functionality.
|
Package cli contains the domain concept definitions needed to support SuperMQ CLI functionality. |
Package clients contains the domain concept definitions needed to support SuperMQ clients service functionality.
|
Package clients contains the domain concept definitions needed to support SuperMQ clients service functionality. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
api/grpc
Package grpc contains implementation of Auth service gRPC API.
|
Package grpc contains implementation of Auth service gRPC API. |
cache
Package cache contains the domain concept definitions needed to support SuperMQ clients cache service functionality.
|
Package cache contains the domain concept definitions needed to support SuperMQ clients cache service functionality. |
events
Package events provides the domain concept definitions needed to support clients events functionality.
|
Package events provides the domain concept definitions needed to support clients events functionality. |
middleware
Package middleware provides middleware for SuperMQ Clients service.
|
Package middleware provides middleware for SuperMQ Clients service. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
postgres
Package postgres contains the database implementation of clients repository layer.
|
Package postgres contains the database implementation of clients repository layer. |
private
Private package is a service wrapper around the underlying Repository.
|
Private package is a service wrapper around the underlying Repository. |
standalone
Package standalone contains implementation for auth service in single-user scenario.
|
Package standalone contains implementation for auth service in single-user scenario. |
tracing
Package tracing provides tracing instrumentation for SuperMQ clients service.
|
Package tracing provides tracing instrumentation for SuperMQ clients service. |
cmd
|
|
bootstrap
Package main contains bootstrap main function to start the bootstrap service.
|
Package main contains bootstrap main function to start the bootstrap service. |
certs
Package main contains certs main function to start the certs service.
|
Package main contains certs main function to start the certs service. |
channels
Package main contains clients main function to start the clients service.
|
Package main contains clients main function to start the clients service. |
cli
Package main contains cli main function to run the cli.
|
Package main contains cli main function to run the cli. |
clients
Package main contains clients main function to start the clients service.
|
Package main contains clients main function to start the clients service. |
coap
Package main contains coap-adapter main function to start the coap-adapter service.
|
Package main contains coap-adapter main function to start the coap-adapter service. |
groups
Package main contains groups main function to start the groups service.
|
Package main contains groups main function to start the groups service. |
http
Package main contains http-adapter main function to start the http-adapter service.
|
Package main contains http-adapter main function to start the http-adapter service. |
invitations
Package main contains invitations main function to start the invitations service.
|
Package main contains invitations main function to start the invitations service. |
journal
Package main contains journal main function to start the journal service.
|
Package main contains journal main function to start the journal service. |
mqtt
Package main contains mqtt-adapter main function to start the mqtt-adapter service.
|
Package main contains mqtt-adapter main function to start the mqtt-adapter service. |
postgres-reader
Package main contains postgres-reader main function to start the postgres-reader service.
|
Package main contains postgres-reader main function to start the postgres-reader service. |
postgres-writer
Package main contains postgres-writer main function to start the postgres-writer service.
|
Package main contains postgres-writer main function to start the postgres-writer service. |
provision
Package main contains provision main function to start the provision service.
|
Package main contains provision main function to start the provision service. |
timescale-reader
Package main contains timescale-reader main function to start the timescale-reader service.
|
Package main contains timescale-reader main function to start the timescale-reader service. |
timescale-writer
Package main contains timescale-writer main function to start the timescale-writer service.
|
Package main contains timescale-writer main function to start the timescale-writer service. |
users
Package main contains users main function to start the users service.
|
Package main contains users main function to start the users service. |
ws
Package main contains websocket-adapter main function to start the websocket-adapter service.
|
Package main contains websocket-adapter main function to start the websocket-adapter service. |
Package coap contains the domain concept definitions needed to support SuperMQ CoAP adapter service functionality.
|
Package coap contains the domain concept definitions needed to support SuperMQ CoAP adapter service functionality. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
tracing
Package tracing provides tracing instrumentation for SuperMQ WebSocket adapter service.
|
Package tracing provides tracing instrumentation for SuperMQ WebSocket adapter service. |
Package consumers contain the domain concept definitions needed to support SuperMQ consumer services functionality.
|
Package consumers contain the domain concept definitions needed to support SuperMQ consumer services functionality. |
notifiers
Package notifiers contain the domain concept definitions needed to support SuperMQ notifications functionality.
|
Package notifiers contain the domain concept definitions needed to support SuperMQ notifications functionality. |
notifiers/api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
notifiers/mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
notifiers/postgres
Package postgres contains repository implementations using PostgreSQL as the underlying database.
|
Package postgres contains repository implementations using PostgreSQL as the underlying database. |
notifiers/tracing
Package tracing provides tracing instrumentation for SuperMQ WebSocket adapter service.
|
Package tracing provides tracing instrumentation for SuperMQ WebSocket adapter service. |
writers
Package writers contain the domain concept definitions needed to support SuperMQ writer services functionality.
|
Package writers contain the domain concept definitions needed to support SuperMQ writer services functionality. |
writers/api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
writers/postgres
Package postgres contains repository implementations using Postgres as the underlying database.
|
Package postgres contains repository implementations using Postgres as the underlying database. |
writers/timescale
Package timescale contains repository implementations using Timescale as the underlying database.
|
Package timescale contains repository implementations using Timescale as the underlying database. |
api/grpc
Package grpc contains implementation of Domains service gRPC API.
|
Package grpc contains implementation of Domains service gRPC API. |
events
Package events provides the domain concept definitions needed to support SuperMQ auth service functionality.
|
Package events provides the domain concept definitions needed to support SuperMQ auth service functionality. |
postgres
Package postgres contains Key repository implementations using PostgreSQL as the underlying database.
|
Package postgres contains Key repository implementations using PostgreSQL as the underlying database. |
Package groups contains the domain concept definitions needed to support SuperMQ groups functionality.
|
Package groups contains the domain concept definitions needed to support SuperMQ groups functionality. |
api/grpc
Package grpc contains implementation of Auth service gRPC API.
|
Package grpc contains implementation of Auth service gRPC API. |
api/http
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
events
Package events contains event source Redis client implementation.
|
Package events contains event source Redis client implementation. |
middleware
Package middleware provides middleware for SuperMQ Groups service.
|
Package middleware provides middleware for SuperMQ Groups service. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
postgres
Package postgres contains the database implementation of groups repository layer.
|
Package postgres contains the database implementation of groups repository layer. |
tracing
Package tracing provides tracing instrumentation for SuperMQ Users Groups service.
|
Package tracing provides tracing instrumentation for SuperMQ Users Groups service. |
Package http contains the domain concept definitions needed to support SuperMQ HTTP Adapter functionality.
|
Package http contains the domain concept definitions needed to support SuperMQ HTTP Adapter functionality. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
internal
|
|
api
Package api contains commonly used constants and functions for the HTTP endpoints.
|
Package api contains commonly used constants and functions for the HTTP endpoints. |
clients
Package clients contains the domain concept definitions needed to support SuperMQ clients functionality for example: postgres, redis, grpc, jaeger.
|
Package clients contains the domain concept definitions needed to support SuperMQ clients functionality for example: postgres, redis, grpc, jaeger. |
clients/redis
Package redis contains the domain concept definitions needed to support SuperMQ redis cache functionality.
|
Package redis contains the domain concept definitions needed to support SuperMQ redis cache functionality. |
email
Package email contains the domain concept definitions needed to support SuperMQ email functionality.
|
Package email contains the domain concept definitions needed to support SuperMQ email functionality. |
Package invitations provides the API to manage invitations.
|
Package invitations provides the API to manage invitations. |
middleware
Package middleware contains the middleware for the invitations service.
|
Package middleware contains the middleware for the invitations service. |
mocks
Package mocks provides a mock implementation of the invitations repository.
|
Package mocks provides a mock implementation of the invitations repository. |
postgres
Package postgres provides a postgres implementation of the invitations repository.
|
Package postgres provides a postgres implementation of the invitations repository. |
Package journal contains the journal service.
|
Package journal contains the journal service. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
events
Package events provides the event consumer for the journal service.
|
Package events provides the event consumer for the journal service. |
middleware
Package middleware provides middleware for the journal service.
|
Package middleware provides middleware for the journal service. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
postgres
Package postgres provides a postgres implementation of the journal log repository.
|
Package postgres provides a postgres implementation of the journal log repository. |
Package logger contains logger API definition, wrapper that can be used around any other logger.
|
Package logger contains logger API definition, wrapper that can be used around any other logger. |
Package mqtt contains the domain concept definitions needed to support SuperMQ MQTT service functionality.
|
Package mqtt contains the domain concept definitions needed to support SuperMQ MQTT service functionality. |
events
Package events provides the domain concept definitions needed to support mqtt events functionality.
|
Package events provides the domain concept definitions needed to support mqtt events functionality. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
tracing
Package tracing provides tracing instrumentation for SuperMQ MQTT adapter service.
|
Package tracing provides tracing instrumentation for SuperMQ MQTT adapter service. |
Package pkg contains library packages used by SuperMQ services and external services that integrate with SuperMQ.
|
Package pkg contains library packages used by SuperMQ services and external services that integrate with SuperMQ. |
errors
Package errors contains SuperMQ errors definitions.
|
Package errors contains SuperMQ errors definitions. |
events/nats
Package redis contains the domain concept definitions needed to support SuperMQ redis events source service functionality.
|
Package redis contains the domain concept definitions needed to support SuperMQ redis events source service functionality. |
events/rabbitmq
Package redis contains the domain concept definitions needed to support SuperMQ redis events source service functionality.
|
Package redis contains the domain concept definitions needed to support SuperMQ redis events source service functionality. |
events/redis
Package redis contains the domain concept definitions needed to support SuperMQ redis events source service functionality.
|
Package redis contains the domain concept definitions needed to support SuperMQ redis events source service functionality. |
grpcclient
Package auth contains the domain concept definitions needed to support SuperMQ auth functionality.
|
Package auth contains the domain concept definitions needed to support SuperMQ auth functionality. |
jaeger
Package jaeger contains the domain concept definitions needed to support SuperMQ Jaeger tracing functionality.
|
Package jaeger contains the domain concept definitions needed to support SuperMQ Jaeger tracing functionality. |
messaging/mqtt
Package mqtt hold the implementation of the Publisher and PubSub interfaces for the MQTT messaging system, the internal messaging broker of the SuperMQ IoT platform.
|
Package mqtt hold the implementation of the Publisher and PubSub interfaces for the MQTT messaging system, the internal messaging broker of the SuperMQ IoT platform. |
messaging/nats
Package nats hold the implementation of the Publisher and PubSub interfaces for the NATS messaging system, the internal messaging broker of the SuperMQ IoT platform.
|
Package nats hold the implementation of the Publisher and PubSub interfaces for the NATS messaging system, the internal messaging broker of the SuperMQ IoT platform. |
messaging/nats/tracing
Package tracing provides tracing instrumentation for SuperMQ clients policies service.
|
Package tracing provides tracing instrumentation for SuperMQ clients policies service. |
messaging/rabbitmq
Package rabbitmq holds the implementation of the Publisher and PubSub interfaces for the RabbitMQ messaging system, the internal messaging broker of the SuperMQ IoT platform.
|
Package rabbitmq holds the implementation of the Publisher and PubSub interfaces for the RabbitMQ messaging system, the internal messaging broker of the SuperMQ IoT platform. |
messaging/rabbitmq/tracing
Package tracing provides tracing instrumentation for SuperMQ clients policies service.
|
Package tracing provides tracing instrumentation for SuperMQ clients policies service. |
messaging/tracing
Package tracing provides tracing instrumentation for SuperMQ clients policies service.
|
Package tracing provides tracing instrumentation for SuperMQ clients policies service. |
oauth2
Package oauth2 contains the domain concept definitions needed to support SuperMQ ui service OAuth2 functionality.
|
Package oauth2 contains the domain concept definitions needed to support SuperMQ ui service OAuth2 functionality. |
oauth2/google
Package google contains the domain concept definitions needed to support SuperMQ services for Google OAuth2 functionality.
|
Package google contains the domain concept definitions needed to support SuperMQ services for Google OAuth2 functionality. |
policies
Package policies contains SuperMQ policy definitions.
|
Package policies contains SuperMQ policy definitions. |
policies/spicedb
Package server contains the HTTP, gRPC and CoAP server implementation.
|
Package server contains the HTTP, gRPC and CoAP server implementation. |
postgres
Package postgres contains the domain concept definitions needed to support SuperMQ PostgreSQL database functionality.
|
Package postgres contains the domain concept definitions needed to support SuperMQ PostgreSQL database functionality. |
prometheus
Package prometheus provides a framework for defining and collecting metrics for prometheus.
|
Package prometheus provides a framework for defining and collecting metrics for prometheus. |
roles/rolemanager/events
Package events provides the domain concept definitions needed to support SuperMQ auth service functionality.
|
Package events provides the domain concept definitions needed to support SuperMQ auth service functionality. |
sdk
Package sdk contains SuperMQ SDK.
|
Package sdk contains SuperMQ SDK. |
server
Package server contains the HTTP, gRPC and CoAP server implementation.
|
Package server contains the HTTP, gRPC and CoAP server implementation. |
server/coap
Package coap contains the CoAP server implementation.
|
Package coap contains the CoAP server implementation. |
server/grpc
Package grpc contains the gRPC server implementation.
|
Package grpc contains the gRPC server implementation. |
server/http
Package http contains the HTTP server implementation.
|
Package http contains the HTTP server implementation. |
sid
Package ulid contains ULID generator.
|
Package ulid contains ULID generator. |
transformers
Package transformers contains the domain concept definitions needed to support SuperMQ transformer services functionality.
|
Package transformers contains the domain concept definitions needed to support SuperMQ transformer services functionality. |
transformers/json
Package json contains JSON transformer.
|
Package json contains JSON transformer. |
transformers/senml
Package senml contains SenML transformer.
|
Package senml contains SenML transformer. |
ulid
Package ulid contains ULID generator.
|
Package ulid contains ULID generator. |
uuid
Package uuid contains UUID generator.
|
Package uuid contains UUID generator. |
Package provision contains domain concept definitions needed to support Provision service feature, i.e.
|
Package provision contains domain concept definitions needed to support Provision service feature, i.e. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
Package readers provides a set of readers for various formats.
|
Package readers provides a set of readers for various formats. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
postgres
Package postgres contains repository implementations using Postgres as the underlying database.
|
Package postgres contains repository implementations using Postgres as the underlying database. |
timescale
Package timescale contains repository implementations using Timescale as the underlying database.
|
Package timescale contains repository implementations using Timescale as the underlying database. |
Package tools contains tools for SuperMQ.
|
Package tools contains tools for SuperMQ. |
e2e
Package e2e contains entry point for end-to-end tests.
|
Package e2e contains entry point for end-to-end tests. |
e2e/cmd
Package main contains e2e tool for testing SuperMQ.
|
Package main contains e2e tool for testing SuperMQ. |
mqtt-bench
Package bench contains benchmarking tool for MQTT broker.
|
Package bench contains benchmarking tool for MQTT broker. |
mqtt-bench/cmd
Package main contains the entry point of the mqtt-bench tool.
|
Package main contains the entry point of the mqtt-bench tool. |
provision
Package provision is a simple utility to create a list of channels and clients connected to these channels with possibility to create certificates for mTLS use case.
|
Package provision is a simple utility to create a list of channels and clients connected to these channels with possibility to create certificates for mTLS use case. |
provision/cmd
Package main contains entry point for provisioning tool.
|
Package main contains entry point for provisioning tool. |
Package users contains the domain concept definitions needed to support SuperMQ users service functionality.
|
Package users contains the domain concept definitions needed to support SuperMQ users service functionality. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
emailer
Package emailer contains the domain concept definitions needed to support SuperMQ users email service functionality.
|
Package emailer contains the domain concept definitions needed to support SuperMQ users email service functionality. |
events
Package events provides the domain concept definitions needed to support SuperMQ users service functionality.
|
Package events provides the domain concept definitions needed to support SuperMQ users service functionality. |
hasher
Package hasher contains the domain concept definitions needed to support SuperMQ users password hasher sub-service functionality.
|
Package hasher contains the domain concept definitions needed to support SuperMQ users password hasher sub-service functionality. |
middleware
Package middleware provides middleware for SuperMQ Users service.
|
Package middleware provides middleware for SuperMQ Users service. |
mocks
Package mocks contains mocks for testing purposes.
|
Package mocks contains mocks for testing purposes. |
postgres
Package postgres contains the database implementation of users repository layer.
|
Package postgres contains the database implementation of users repository layer. |
tracing
Package tracing provides tracing instrumentation for SuperMQ Users service.
|
Package tracing provides tracing instrumentation for SuperMQ Users service. |
Package ws provides domain concept definitions required to support SuperMQ WebSocket adapter service functionality.
|
Package ws provides domain concept definitions required to support SuperMQ WebSocket adapter service functionality. |
api
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
tracing
Package tracing provides tracing instrumentation for SuperMQ WebSocket adapter service.
|
Package tracing provides tracing instrumentation for SuperMQ WebSocket adapter service. |
Click to show internal directories.
Click to hide internal directories.