mirror of
https://github.com/absmach/supermq.git
synced 2026-06-23 06:40:19 +00:00
b3e2f41194
* WIP: alarms service * fix(alarms): remove rule entity since it is not stored here Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * test(alarms): add tests cases for invalid alarms * feat(alarms): add authorization * feat(alarms): add docker deployment files Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix: update go mod file * feat(alarms): support filtering by resolved_by, updated_by and severity Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * style: fix linter errors Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): provide correct otel naming for create alarm Fixes https://github.com/absmach/magistrala/pull/106#discussion_r2030151971 Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): group routes appropriately Resolves https://github.com/absmach/magistrala/pull/106#discussion_r2030160891 Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): extract alarm id from url path rather than query params Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): add all status to help in decoding Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * style(alarms): maintain consistent import as naming for supermq api package Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * refactor(alarms): update supermq dependecy to the latest Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): Add domains gRPC service config to alarms service Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * test(alarms): all CRUD operations from the service Return empty results instead of nil This standardizes error responses across alarm endpoints to return empty result structs rather than nil. Also renames entityReq to alarmReq and adds HTTP status codes for created/deleted alarms. Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * test(alarms): fix failing tests due to introduction of context on sdk Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): remove channel id Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): standardize error handling across CRUD operations Updated error responses to use specific repository errors for consistency Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): add assignment fields to Alarm model and database Introduced AssignedAt and AssignedBy fields to the Alarm struct and updated the database schema accordingly. Enhanced the UpdateAlarm function to handle these new fields, ensuring proper assignment tracking in the alarms system. Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): enhance Alarm model with measurement attributes Updated the Alarm struct to include Measurement, Value, Unit, and Cause fields. Modified the validation logic to ensure these fields are present. Adjusted logging and tracing middleware to reflect the new attributes. Updated database schema and related functions to accommodate these changes, ensuring comprehensive alarm data management. Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): consume events from pubsub for creation of alarms Removed session dependencies from CreateAlarm method and enhanced alarm validation to ensure all required fields are present Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * style(alarms): add newline at the end of docker compose Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): Add assignee id and metadata fields when consuming messages Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): add acknowledged field Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): Add threshold value for the specific measurement Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): Add channel, thing, and subtopic fields to Alarm model This change adds required fields for tracking alarm sources and reorganizes alarm-related fields for better grouping. Alarms now track the channel, thing, and subtopic that triggered them, along with domain and rule info. Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * test(alarms): add service layer tests Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): consume created at from message rather than creating it Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): ready alarm as a gob encoded object Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): read alarms from alarms queue and remove transformer g Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): update version of supermq Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(alarms): add gob transformer Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): rename thing id to client id Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): create alarms stream Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): check on logic to create new alarm create new alarm if severity, status, subtopic changes enhance logging with additional details for alarms management Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * remove conusmer and use pubsub Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * fix(alarms): use build tags for rabbitmq and nats * fix(alarms): add health and metrics endpoint * fix(magistrala): use supermq as build flags to see version and commit * fix(alarms): use js config * fix(alarms): remove validation when updating an alarm fix authorization too --------- Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
144 lines
6.7 KiB
Modula-2
144 lines
6.7 KiB
Modula-2
module github.com/absmach/magistrala
|
|
|
|
go 1.24.2
|
|
|
|
require (
|
|
github.com/0x6flab/namegenerator v1.4.0
|
|
github.com/absmach/callhome v0.14.0
|
|
github.com/absmach/supermq v0.16.1-0.20250411155830-602025b48bc0
|
|
github.com/authzed/authzed-go v1.3.1-0.20250320210445-0cde0d8c71e2
|
|
github.com/authzed/grpcutil v0.0.0-20250221190651-1985b19b35b8
|
|
github.com/caarlos0/env/v11 v11.3.1
|
|
github.com/eclipse/paho.mqtt.golang v1.5.0
|
|
github.com/fatih/color v1.18.0
|
|
github.com/fiorix/go-smpp v0.0.0-20210403173735-2894b96e70ba
|
|
github.com/go-chi/chi/v5 v5.2.1
|
|
github.com/go-kit/kit v0.13.0
|
|
github.com/gofrs/uuid/v5 v5.3.2
|
|
github.com/gookit/color v1.5.4
|
|
github.com/gorilla/websocket v1.5.3
|
|
github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f
|
|
github.com/ivanpirog/coloredcobra v1.0.1
|
|
github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438
|
|
github.com/jackc/pgtype v1.14.4
|
|
github.com/jackc/pgx/v5 v5.7.4
|
|
github.com/jmoiron/sqlx v1.4.0
|
|
github.com/ory/dockertest/v3 v3.12.0
|
|
github.com/pelletier/go-toml v1.9.5
|
|
github.com/prometheus/client_golang v1.22.0
|
|
github.com/redis/go-redis/v9 v9.7.3
|
|
github.com/rubenv/sql-migrate v1.7.1
|
|
github.com/spf13/cobra v1.9.1
|
|
github.com/spf13/viper v1.20.1
|
|
github.com/stretchr/testify v1.10.0
|
|
github.com/vadv/gopher-lua-libs v0.5.0
|
|
github.com/yuin/gopher-lua v1.1.1
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0
|
|
go.opentelemetry.io/otel v1.35.0
|
|
go.opentelemetry.io/otel/trace v1.35.0
|
|
golang.org/x/sync v0.13.0
|
|
gonum.org/v1/gonum v0.16.0
|
|
google.golang.org/grpc v1.71.1
|
|
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
|
moul.io/http2curl v1.0.0
|
|
)
|
|
|
|
require (
|
|
dario.cat/mergo v1.0.0 // indirect
|
|
filippo.io/edwards25519 v1.1.0 // indirect
|
|
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
|
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
|
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
|
|
github.com/absmach/certs v0.0.0-20250303232207-ef00d309ca02 // indirect
|
|
github.com/absmach/senml v1.0.7 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
|
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/containerd/continuity v0.4.5 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
|
github.com/docker/cli v27.4.1+incompatible // indirect
|
|
github.com/docker/docker v27.1.1+incompatible // indirect
|
|
github.com/docker/go-connections v0.5.0 // indirect
|
|
github.com/docker/go-units v0.5.0 // indirect
|
|
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/fsnotify/fsnotify v1.8.0 // indirect
|
|
github.com/fxamacker/cbor/v2 v2.8.0 // indirect
|
|
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
|
|
github.com/go-kit/log v0.2.1 // indirect
|
|
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
|
github.com/go-logr/logr v1.4.2 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/go-sql-driver/mysql v1.8.1 // indirect
|
|
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
|
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/jackc/pgio v1.0.0 // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.2 // indirect
|
|
github.com/jzelinskie/stringz v0.0.3 // indirect
|
|
github.com/klauspost/compress v1.18.0 // indirect
|
|
github.com/lib/pq v1.10.9 // indirect
|
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-sqlite3 v1.14.22 // indirect
|
|
github.com/moby/docker-image-spec v1.3.1 // indirect
|
|
github.com/moby/sys/user v0.3.0 // indirect
|
|
github.com/moby/term v0.5.0 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/nats-io/nats.go v1.41.0
|
|
github.com/nats-io/nkeys v0.4.10 // indirect
|
|
github.com/nats-io/nuid v1.0.1 // indirect
|
|
github.com/oklog/ulid/v2 v2.1.0 // indirect
|
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
|
github.com/opencontainers/image-spec v1.1.0 // indirect
|
|
github.com/opencontainers/runc v1.2.3 // indirect
|
|
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/planetscale/vtprotobuf v0.6.1-0.20240917153116-6f2963f01587 // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/client_model v0.6.1 // indirect
|
|
github.com/prometheus/common v0.62.0 // indirect
|
|
github.com/prometheus/procfs v0.15.1 // indirect
|
|
github.com/rabbitmq/amqp091-go v1.10.0 // indirect
|
|
github.com/sagikazarmark/locafero v0.7.0 // indirect
|
|
github.com/samber/lo v1.49.1 // indirect
|
|
github.com/sirupsen/logrus v1.9.3 // indirect
|
|
github.com/sourcegraph/conc v0.3.0 // indirect
|
|
github.com/spf13/afero v1.12.0 // indirect
|
|
github.com/spf13/cast v1.7.1 // indirect
|
|
github.com/spf13/pflag v1.0.6 // indirect
|
|
github.com/stretchr/objx v0.5.2 // indirect
|
|
github.com/subosito/gotenv v1.6.0 // indirect
|
|
github.com/x448/float16 v0.8.4 // indirect
|
|
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
|
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
|
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.35.0 // indirect
|
|
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
|
|
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
golang.org/x/crypto v0.37.0 // indirect
|
|
golang.org/x/net v0.37.0 // indirect
|
|
golang.org/x/sys v0.32.0 // indirect
|
|
golang.org/x/text v0.24.0 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
|
|
google.golang.org/protobuf v1.36.6
|
|
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|