commit
616df2c285
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.22.2@sha256:450e3822c7a135e1463cd83e51c8e2eb03b86a02113c89424e6f0f8344bb4168 as builder
|
FROM golang:1.23 as builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ../ .
|
COPY ../ .
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o acs cmd/acs/main.go
|
RUN CGO_ENABLED=0 GOOS=linux go build -o acs cmd/acs/main.go
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,21 @@
|
||||||
module oktopUSP/backend/services/acs
|
module oktopUSP/backend/services/acs
|
||||||
|
|
||||||
go 1.22.2
|
go 1.23.0
|
||||||
|
|
||||||
|
toolchain go1.23.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/joho/godotenv v1.5.1
|
github.com/joho/godotenv v1.5.1
|
||||||
github.com/nats-io/nats.go v1.35.0
|
github.com/nats-io/nats.go v1.35.0
|
||||||
github.com/oleiade/lane v1.0.1
|
github.com/oleiade/lane v1.0.1
|
||||||
golang.org/x/sys v0.28.0
|
golang.org/x/sys v0.33.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/klauspost/compress v1.17.8 // indirect
|
github.com/klauspost/compress v1.17.8 // indirect
|
||||||
github.com/nats-io/nkeys v0.4.7 // indirect
|
github.com/nats-io/nkeys v0.4.7 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
golang.org/x/crypto v0.31.0 // indirect
|
golang.org/x/crypto v0.38.0 // indirect
|
||||||
golang.org/x/text v0.21.0 // indirect
|
golang.org/x/text v0.25.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,9 @@ github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||||
github.com/oleiade/lane v1.0.1 h1:hXofkn7GEOubzTwNpeL9MaNy8WxolCYb9cInAIeqShU=
|
github.com/oleiade/lane v1.0.1 h1:hXofkn7GEOubzTwNpeL9MaNy8WxolCYb9cInAIeqShU=
|
||||||
github.com/oleiade/lane v1.0.1/go.mod h1:IyTkraa4maLfjq/GmHR+Dxb4kCMtEGeb+qmhlrQ5Mk4=
|
github.com/oleiade/lane v1.0.1/go.mod h1:IyTkraa4maLfjq/GmHR+Dxb4kCMtEGeb+qmhlrQ5Mk4=
|
||||||
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ func (a *Api) StartApi() {
|
||||||
iot.HandleFunc("/cwmp/{sn}/setParameterValues", a.cwmpSetParameterValuesMsg).Methods("PUT")
|
iot.HandleFunc("/cwmp/{sn}/setParameterValues", a.cwmpSetParameterValuesMsg).Methods("PUT")
|
||||||
iot.HandleFunc("/cwmp/{sn}/addObject", a.cwmpAddObjectMsg).Methods("PUT")
|
iot.HandleFunc("/cwmp/{sn}/addObject", a.cwmpAddObjectMsg).Methods("PUT")
|
||||||
iot.HandleFunc("/cwmp/{sn}/deleteObject", a.cwmpDeleteObjectMsg).Methods("PUT")
|
iot.HandleFunc("/cwmp/{sn}/deleteObject", a.cwmpDeleteObjectMsg).Methods("PUT")
|
||||||
iot.HandleFunc("", a.retrieveDevices).Methods("GET")
|
iot.HandleFunc("", a.retrieveDevices).Methods("GET", "DELETE")
|
||||||
iot.HandleFunc("/filterOptions", a.filterOptions).Methods("GET")
|
iot.HandleFunc("/filterOptions", a.filterOptions).Methods("GET")
|
||||||
iot.HandleFunc("/{sn}/{mtp}/generic", a.deviceGenericMessage).Methods("PUT")
|
iot.HandleFunc("/{sn}/{mtp}/generic", a.deviceGenericMessage).Methods("PUT")
|
||||||
iot.HandleFunc("/{sn}/{mtp}/get", a.deviceGetMsg).Methods("PUT")
|
iot.HandleFunc("/{sn}/{mtp}/get", a.deviceGetMsg).Methods("PUT")
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
FROM golang:1.23 as builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ../ .
|
COPY ../ .
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o adapter cmd/adapter/main.go
|
RUN CGO_ENABLED=0 GOOS=linux go build -o adapter cmd/adapter/main.go
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
module github.com/OktopUSP/oktopus/backend/services/mtp/adapter
|
module github.com/OktopUSP/oktopus/backend/services/mtp/adapter
|
||||||
|
|
||||||
go 1.22.0
|
go 1.23.0
|
||||||
|
|
||||||
|
toolchain go1.23.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/joho/godotenv v1.5.1
|
github.com/joho/godotenv v1.5.1
|
||||||
|
|
@ -19,8 +22,8 @@ require (
|
||||||
github.com/xdg-go/scram v1.1.2 // indirect
|
github.com/xdg-go/scram v1.1.2 // indirect
|
||||||
github.com/xdg-go/stringprep v1.0.4 // indirect
|
github.com/xdg-go/stringprep v1.0.4 // indirect
|
||||||
github.com/youmark/pkcs8 v0.0.0-20240424034433-3c2c7870ae76 // indirect
|
github.com/youmark/pkcs8 v0.0.0-20240424034433-3c2c7870ae76 // indirect
|
||||||
golang.org/x/crypto v0.31.0 // indirect
|
golang.org/x/crypto v0.38.0 // indirect
|
||||||
golang.org/x/sync v0.10.0 // indirect
|
golang.org/x/sync v0.14.0 // indirect
|
||||||
golang.org/x/sys v0.28.0 // indirect
|
golang.org/x/sys v0.33.0 // indirect
|
||||||
golang.org/x/text v0.21.0 // indirect
|
golang.org/x/text v0.25.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -31,31 +31,31 @@ go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUS
|
||||||
go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c=
|
go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
|
||||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,14 @@ module github.com/OktopUSP/oktopus/backend/services/mqtt-adapter
|
||||||
|
|
||||||
go 1.23.0
|
go 1.23.0
|
||||||
|
|
||||||
toolchain go1.24.1
|
toolchain go1.23.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/eclipse/paho.golang v0.21.0
|
github.com/eclipse/paho.golang v0.21.0
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/joho/godotenv v1.5.1
|
github.com/joho/godotenv v1.5.1
|
||||||
github.com/nats-io/nats.go v1.35.0
|
github.com/nats-io/nats.go v1.35.0
|
||||||
golang.org/x/sys v0.30.0
|
golang.org/x/sys v0.33.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|
@ -17,7 +17,7 @@ require (
|
||||||
github.com/klauspost/compress v1.17.8 // indirect
|
github.com/klauspost/compress v1.17.8 // indirect
|
||||||
github.com/nats-io/nkeys v0.4.7 // indirect
|
github.com/nats-io/nkeys v0.4.7 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
golang.org/x/crypto v0.35.0 // indirect
|
golang.org/x/crypto v0.38.0 // indirect
|
||||||
golang.org/x/net v0.36.0 // indirect
|
golang.org/x/net v0.40.0 // indirect
|
||||||
golang.org/x/text v0.22.0 // indirect
|
golang.org/x/text v0.25.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -24,13 +24,13 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
|
||||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||||
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
|
||||||
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
|
||||||
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
|
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
||||||
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
|
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
FROM golang:1.23 as builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ../ .
|
COPY ../ .
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o mqtt cmd/mqtt/main.go
|
RUN CGO_ENABLED=0 GOOS=linux go build -o mqtt cmd/mqtt/main.go
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
module broker
|
module broker
|
||||||
|
|
||||||
go 1.18
|
go 1.23.0
|
||||||
|
|
||||||
|
toolchain go1.23.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/go-redis/redis/v8 v8.11.5
|
github.com/go-redis/redis/v8 v8.11.5
|
||||||
|
|
@ -21,8 +23,8 @@ require (
|
||||||
github.com/nats-io/nkeys v0.4.7 // indirect
|
github.com/nats-io/nkeys v0.4.7 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
github.com/rs/xid v1.4.0 // indirect
|
github.com/rs/xid v1.4.0 // indirect
|
||||||
golang.org/x/crypto v0.31.0 // indirect
|
golang.org/x/crypto v0.38.0 // indirect
|
||||||
golang.org/x/sys v0.28.0 // indirect
|
golang.org/x/sys v0.33.0 // indirect
|
||||||
golang.org/x/text v0.21.0 // indirect
|
golang.org/x/text v0.25.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -42,15 +42,24 @@ github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc=
|
||||||
github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU=
|
github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU=
|
||||||
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
|
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
|
||||||
github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 h1:k/gmLsJDWwWqbLCur2yWnJzwQEKRcAHXo6seXGuSwWw=
|
github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 h1:k/gmLsJDWwWqbLCur2yWnJzwQEKRcAHXo6seXGuSwWw=
|
||||||
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc=
|
||||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
|
||||||
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
|
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
|
||||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
|
||||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
|
||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||||
|
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
|
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
||||||
|
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||||
|
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.22@sha256:82e07063a1ac3ee59e6f38b1222e32ce88469e4431ff6496cc40fb9a0fc18229 as builder
|
FROM golang:1.23 as builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ../ .
|
COPY ../ .
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o stomp-adapter cmd/stomp-adapter/main.go
|
RUN CGO_ENABLED=0 GOOS=linux go build -o stomp-adapter cmd/stomp-adapter/main.go
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,19 @@
|
||||||
module github.com/oktopUSP/oktopus/backend/services/mtp/stomp-adapter
|
module github.com/oktopUSP/oktopus/backend/services/mtp/stomp-adapter
|
||||||
|
|
||||||
go 1.22.1
|
go 1.23.0
|
||||||
|
|
||||||
|
toolchain go1.23.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/joho/godotenv v1.5.1
|
github.com/joho/godotenv v1.5.1
|
||||||
github.com/nats-io/nats.go v1.35.0
|
github.com/nats-io/nats.go v1.35.0
|
||||||
golang.org/x/sys v0.28.0
|
golang.org/x/sys v0.33.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/klauspost/compress v1.17.8 // indirect
|
github.com/klauspost/compress v1.17.8 // indirect
|
||||||
github.com/nats-io/nkeys v0.4.7 // indirect
|
github.com/nats-io/nkeys v0.4.7 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
golang.org/x/crypto v0.31.0 // indirect
|
golang.org/x/crypto v0.38.0 // indirect
|
||||||
golang.org/x/text v0.21.0 // indirect
|
golang.org/x/text v0.25.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
|
||||||
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
||||||
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||||
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.24 as builder
|
FROM golang:1.23 as builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ../ .
|
COPY ../ .
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o ws-adapter cmd/ws-adapter/main.go
|
RUN CGO_ENABLED=0 GOOS=linux go build -o ws-adapter cmd/ws-adapter/main.go
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,14 @@ module github.com/OktopUSP/oktopus/backend/services/mtp/ws-adapter
|
||||||
|
|
||||||
go 1.23.0
|
go 1.23.0
|
||||||
|
|
||||||
toolchain go1.24.1
|
toolchain go1.23.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/gorilla/websocket v1.5.1
|
github.com/gorilla/websocket v1.5.1
|
||||||
github.com/joho/godotenv v1.5.1
|
github.com/joho/godotenv v1.5.1
|
||||||
github.com/nats-io/nats.go v1.35.0
|
github.com/nats-io/nats.go v1.35.0
|
||||||
golang.org/x/sys v0.30.0
|
golang.org/x/sys v0.33.0
|
||||||
google.golang.org/protobuf v1.34.1
|
google.golang.org/protobuf v1.34.1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -17,7 +17,7 @@ require (
|
||||||
github.com/klauspost/compress v1.17.8 // indirect
|
github.com/klauspost/compress v1.17.8 // indirect
|
||||||
github.com/nats-io/nkeys v0.4.7 // indirect
|
github.com/nats-io/nkeys v0.4.7 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
golang.org/x/crypto v0.35.0 // indirect
|
golang.org/x/crypto v0.38.0 // indirect
|
||||||
golang.org/x/net v0.36.0 // indirect
|
golang.org/x/net v0.40.0 // indirect
|
||||||
golang.org/x/text v0.22.0 // indirect
|
golang.org/x/text v0.25.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -14,14 +14,14 @@ github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
|
||||||
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
||||||
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||||
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
|
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
||||||
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
|
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
|
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.24 as builder
|
FROM golang:1.23 as builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ../ .
|
COPY ../ .
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o ws cmd/ws/main.go
|
RUN CGO_ENABLED=0 GOOS=linux go build -o ws cmd/ws/main.go
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ module github.com/OktopUSP/oktopus/ws
|
||||||
|
|
||||||
go 1.23.0
|
go 1.23.0
|
||||||
|
|
||||||
toolchain go1.24.1
|
toolchain go1.23.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gorilla/mux v1.8.1
|
github.com/gorilla/mux v1.8.1
|
||||||
|
|
@ -16,8 +16,8 @@ require (
|
||||||
github.com/klauspost/compress v1.17.8 // indirect
|
github.com/klauspost/compress v1.17.8 // indirect
|
||||||
github.com/nats-io/nkeys v0.4.7 // indirect
|
github.com/nats-io/nkeys v0.4.7 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
golang.org/x/crypto v0.35.0 // indirect
|
golang.org/x/crypto v0.38.0 // indirect
|
||||||
golang.org/x/net v0.36.0 // indirect
|
golang.org/x/net v0.40.0 // indirect
|
||||||
golang.org/x/sys v0.30.0 // indirect
|
golang.org/x/sys v0.33.0 // indirect
|
||||||
golang.org/x/text v0.22.0 // indirect
|
golang.org/x/text v0.25.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -14,14 +14,14 @@ github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
|
||||||
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
||||||
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||||
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
|
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||||
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
|
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||||
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
|
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
||||||
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
|
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||||
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||||
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
|
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,9 @@ import FolderIcon from '@heroicons/react/24/solid/FolderIcon';
|
||||||
import ShieldCheckIcon from '@heroicons/react/24/solid/ShieldCheckIcon';
|
import ShieldCheckIcon from '@heroicons/react/24/solid/ShieldCheckIcon';
|
||||||
import EnvelopeIcon from '@heroicons/react/24/solid/EnvelopeIcon';
|
import EnvelopeIcon from '@heroicons/react/24/solid/EnvelopeIcon';
|
||||||
import UserIcon from '@heroicons/react/24/solid/UserIcon';
|
import UserIcon from '@heroicons/react/24/solid/UserIcon';
|
||||||
|
import BuildingOffice2Icon from '@heroicons/react/24/solid/BuildingOffice2Icon';
|
||||||
|
import BookOpenIcon from '@heroicons/react/24/solid/BookOpenIcon';
|
||||||
|
import CommandLineIcon from '@heroicons/react/24/solid/CommandLineIcon';
|
||||||
|
|
||||||
export const items = [
|
export const items = [
|
||||||
{
|
{
|
||||||
|
|
@ -38,12 +41,10 @@ export const items = [
|
||||||
<RectangleGroupIcon color='gray'/>
|
<RectangleGroupIcon color='gray'/>
|
||||||
</SvgIcon>
|
</SvgIcon>
|
||||||
),
|
),
|
||||||
tooltip: 'Upgrade to Business Plan',
|
|
||||||
disabled: true,
|
disabled: true,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
title: 'Firmware Update',
|
title: 'Firmware Update',
|
||||||
tooltip: 'Upgrade to Business Plan',
|
|
||||||
icon: (
|
icon: (
|
||||||
<SvgIcon fontSize="small">
|
<SvgIcon fontSize="small">
|
||||||
<ArrowDownOnSquareStackIcon color='gray'/>
|
<ArrowDownOnSquareStackIcon color='gray'/>
|
||||||
|
|
@ -53,7 +54,6 @@ export const items = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Message',
|
title: 'Message',
|
||||||
tooltip: 'Upgrade to Business Plan',
|
|
||||||
disabled: true,
|
disabled: true,
|
||||||
icon: (
|
icon: (
|
||||||
<SvgIcon fontSize="small">
|
<SvgIcon fontSize="small">
|
||||||
|
|
@ -63,6 +63,15 @@ export const items = [
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: 'Scripts',
|
||||||
|
disabled: true,
|
||||||
|
icon: (
|
||||||
|
<SvgIcon fontSize="small">
|
||||||
|
<CommandLineIcon color='gray'/>
|
||||||
|
</SvgIcon>
|
||||||
|
)
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: 'Credentials',
|
title: 'Credentials',
|
||||||
path: '/credentials',
|
path: '/credentials',
|
||||||
|
|
@ -75,17 +84,24 @@ export const items = [
|
||||||
{
|
{
|
||||||
title: 'Access Control',
|
title: 'Access Control',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
tooltip: 'Upgrade to Business Plan',
|
|
||||||
icon: (
|
icon: (
|
||||||
<SvgIcon fontSize="small">
|
<SvgIcon fontSize="small">
|
||||||
<UserGroupIcon color='gray'/>
|
<UserGroupIcon color='gray'/>
|
||||||
</SvgIcon>
|
</SvgIcon>
|
||||||
),
|
),
|
||||||
children: [
|
children: [
|
||||||
|
{
|
||||||
|
title: 'Tenants',
|
||||||
|
disabled: true,
|
||||||
|
icon: (
|
||||||
|
<SvgIcon fontSize="small">
|
||||||
|
<BuildingOffice2Icon color='gray'/>
|
||||||
|
</SvgIcon>
|
||||||
|
)
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: 'Roles',
|
title: 'Roles',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
tooltip: 'Upgrade to Business Plan',
|
|
||||||
icon: (
|
icon: (
|
||||||
<SvgIcon fontSize="small">
|
<SvgIcon fontSize="small">
|
||||||
<ShieldCheckIcon color='gray'/>
|
<ShieldCheckIcon color='gray'/>
|
||||||
|
|
@ -105,7 +121,6 @@ export const items = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'File Server',
|
title: 'File Server',
|
||||||
tooltip: 'Upgrade to Business Plan',
|
|
||||||
disabled: true,
|
disabled: true,
|
||||||
icon: (
|
icon: (
|
||||||
<SvgIcon fontSize="small">
|
<SvgIcon fontSize="small">
|
||||||
|
|
@ -122,6 +137,16 @@ export const items = [
|
||||||
</SvgIcon>
|
</SvgIcon>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: 'Docs',
|
||||||
|
path: 'https://docs.oktopus.app.br',
|
||||||
|
icon: (
|
||||||
|
<SvgIcon fontSize="small">
|
||||||
|
<BookOpenIcon />
|
||||||
|
</SvgIcon>
|
||||||
|
),
|
||||||
|
external: true,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { Box, ButtonBase, Collapse, SvgIcon, Tooltip } from '@mui/material';
|
||||||
import ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon';
|
import ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon';
|
||||||
import ChevronUpIcon from '@heroicons/react/24/outline/ChevronUpIcon';
|
import ChevronUpIcon from '@heroicons/react/24/outline/ChevronUpIcon';
|
||||||
import { usePathname } from 'next/navigation';
|
import { usePathname } from 'next/navigation';
|
||||||
|
import ArrowTopRightOnSquareIcon from '@heroicons/react/24/solid/ArrowTopRightOnSquareIcon';
|
||||||
|
|
||||||
export const SideNavItem = (props) => {
|
export const SideNavItem = (props) => {
|
||||||
const { active = false, disabled, external, icon, path, title, children, padleft, tooltip } = props;
|
const { active = false, disabled, external, icon, path, title, children, padleft, tooltip } = props;
|
||||||
|
|
@ -112,7 +113,13 @@ export const SideNavItem = (props) => {
|
||||||
}}
|
}}
|
||||||
{...linkProps}
|
{...linkProps}
|
||||||
>
|
>
|
||||||
{title}
|
{title} {
|
||||||
|
external && (
|
||||||
|
<SvgIcon fontSize='8px' sx={{ml: 1}}>
|
||||||
|
<ArrowTopRightOnSquareIcon />
|
||||||
|
</SvgIcon>
|
||||||
|
)
|
||||||
|
}
|
||||||
</Box>
|
</Box>
|
||||||
{ children &&
|
{ children &&
|
||||||
<Box
|
<Box
|
||||||
|
|
@ -158,7 +165,7 @@ export const SideNavItem = (props) => {
|
||||||
<SideNavItem
|
<SideNavItem
|
||||||
active={isItemActive(pathname, child.path)}
|
active={isItemActive(pathname, child.path)}
|
||||||
disabled={child.disabled}
|
disabled={child.disabled}
|
||||||
external={false}
|
external={child.external ? true : false}
|
||||||
icon={child.icon}
|
icon={child.icon}
|
||||||
key={child.title}
|
key={child.title}
|
||||||
path={child.path}
|
path={child.path}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@ import {
|
||||||
DialogActions,
|
DialogActions,
|
||||||
DialogContent,
|
DialogContent,
|
||||||
DialogContentText,
|
DialogContentText,
|
||||||
Button
|
Button,
|
||||||
|
Link
|
||||||
} from '@mui/material';
|
} from '@mui/material';
|
||||||
import XMarkIcon from '@heroicons/react/24/outline/XMarkIcon';
|
import XMarkIcon from '@heroicons/react/24/outline/XMarkIcon';
|
||||||
import { alpha } from '@mui/material/styles';
|
import { alpha } from '@mui/material/styles';
|
||||||
|
|
@ -27,6 +28,7 @@ import { AccountPopover } from './account-popover';
|
||||||
import { useAuth } from 'src/hooks/use-auth';
|
import { useAuth } from 'src/hooks/use-auth';
|
||||||
import { WsContext } from 'src/contexts/socketio-context';
|
import { WsContext } from 'src/contexts/socketio-context';
|
||||||
import { useContext, useEffect } from 'react';
|
import { useContext, useEffect } from 'react';
|
||||||
|
import CurrencyDollarIcon from '@heroicons/react/24/outline/CurrencyDollarIcon';
|
||||||
|
|
||||||
const SIDE_NAV_WIDTH = 280;
|
const SIDE_NAV_WIDTH = 280;
|
||||||
const TOP_NAV_HEIGHT = 64;
|
const TOP_NAV_HEIGHT = 64;
|
||||||
|
|
@ -91,13 +93,22 @@ export const TopNav = (props) => {
|
||||||
direction="row"
|
direction="row"
|
||||||
spacing={2}
|
spacing={2}
|
||||||
>
|
>
|
||||||
{/*<Tooltip title="Contacts">
|
{/* <Tooltip title="Contacts">
|
||||||
<IconButton>
|
<IconButton>
|
||||||
<SvgIcon fontSize="small">
|
<SvgIcon fontSize="small">
|
||||||
<UsersIcon />
|
<UsersIcon />
|
||||||
</SvgIcon>
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>*/}
|
</Tooltip> */}
|
||||||
|
<Link href='https://www.oktopus.app.br/pricing' underline="none" target='_blank'>
|
||||||
|
<Tooltip title="Upgrade to Pro">
|
||||||
|
<IconButton>
|
||||||
|
<SvgIcon fontSize="small">
|
||||||
|
<CurrencyDollarIcon/>
|
||||||
|
</SvgIcon>
|
||||||
|
</IconButton>
|
||||||
|
</Tooltip>
|
||||||
|
</Link>
|
||||||
{/*<Tooltip title="Notifications">
|
{/*<Tooltip title="Notifications">
|
||||||
<IconButton>
|
<IconButton>
|
||||||
<Badge
|
<Badge
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,8 @@ import {
|
||||||
Select,
|
Select,
|
||||||
DialogContentText,
|
DialogContentText,
|
||||||
TableContainer,
|
TableContainer,
|
||||||
TablePagination
|
TablePagination,
|
||||||
|
Typography
|
||||||
} from '@mui/material';
|
} from '@mui/material';
|
||||||
|
|
||||||
import ViewColumnsIcon from '@heroicons/react/24/outline/ViewColumnsIcon';
|
import ViewColumnsIcon from '@heroicons/react/24/outline/ViewColumnsIcon';
|
||||||
|
|
@ -95,8 +96,10 @@ const Page = () => {
|
||||||
const [rowsPerPage, setRowsPerPage] = useState(20);
|
const [rowsPerPage, setRowsPerPage] = useState(20);
|
||||||
|
|
||||||
const [showSetDeviceAlias, setShowSetDeviceAlias] = useState(false);
|
const [showSetDeviceAlias, setShowSetDeviceAlias] = useState(false);
|
||||||
|
const [showSetDeviceToBeRemoved, setShowSetDeviceToBeRemoved] = useState(false);
|
||||||
const [deviceAlias, setDeviceAlias] = useState(null);
|
const [deviceAlias, setDeviceAlias] = useState(null);
|
||||||
const [deviceToBeChanged, setDeviceToBeChanged] = useState(null);
|
const [deviceToBeChanged, setDeviceToBeChanged] = useState(null);
|
||||||
|
const [deviceToBeRemoved, setDeviceToBeRemoved] = useState(null);
|
||||||
const [showFilter, setShowFilter] = useState(false);
|
const [showFilter, setShowFilter] = useState(false);
|
||||||
const [selected, setSelected] = useState([]);
|
const [selected, setSelected] = useState([]);
|
||||||
const [selectAll, setSelectAll] = useState(false);
|
const [selectAll, setSelectAll] = useState(false);
|
||||||
|
|
@ -260,6 +263,38 @@ const Page = () => {
|
||||||
|
|
||||||
}, [auth.user]);
|
}, [auth.user]);
|
||||||
|
|
||||||
|
const removeDevice = async (sn) => {
|
||||||
|
var myHeaders = new Headers();
|
||||||
|
myHeaders.append("Content-Type", "application/json");
|
||||||
|
myHeaders.append("Authorization", localStorage.getItem("token"));
|
||||||
|
|
||||||
|
var requestOptions = {
|
||||||
|
method: 'DELETE',
|
||||||
|
headers: myHeaders,
|
||||||
|
redirect: 'follow'
|
||||||
|
};
|
||||||
|
|
||||||
|
let result = await fetch(`${process.env.NEXT_PUBLIC_REST_ENDPOINT || ""}/api/device?id=${sn}`, requestOptions)
|
||||||
|
console.log("result:", result)
|
||||||
|
if (result.status === 401) {
|
||||||
|
router.push("/auth/login")
|
||||||
|
} else if (result.status != 200) {
|
||||||
|
console.log("Status:", result.status)
|
||||||
|
let content = await result.json()
|
||||||
|
console.log("Message:", content)
|
||||||
|
setShowSetDeviceToBeRemoved(false)
|
||||||
|
setDeviceToBeRemoved(null)
|
||||||
|
} else {
|
||||||
|
let content = await result.json()
|
||||||
|
console.log("remove device result:", content)
|
||||||
|
setShowSetDeviceToBeRemoved(false)
|
||||||
|
setDeviceToBeRemoved(null)
|
||||||
|
devices.splice(deviceToBeRemoved, 1)
|
||||||
|
setDevices([...devices])
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const setNewDeviceAlias = async (alias, sn) => {
|
const setNewDeviceAlias = async (alias, sn) => {
|
||||||
var myHeaders = new Headers();
|
var myHeaders = new Headers();
|
||||||
myHeaders.append("Content-Type", "application/json");
|
myHeaders.append("Content-Type", "application/json");
|
||||||
|
|
@ -663,6 +698,21 @@ const Page = () => {
|
||||||
</SvgIcon>
|
</SvgIcon>
|
||||||
</Button>
|
</Button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
<Tooltip title="Delete device">
|
||||||
|
<Button
|
||||||
|
onClick={()=>{
|
||||||
|
setDeviceToBeRemoved(index)
|
||||||
|
setShowSetDeviceToBeRemoved(true)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<SvgIcon
|
||||||
|
fontSize="small"
|
||||||
|
sx={{cursor: 'pointer'}}
|
||||||
|
>
|
||||||
|
<TrashIcon />
|
||||||
|
</SvgIcon>
|
||||||
|
</Button>
|
||||||
|
</Tooltip>
|
||||||
{/* <Tooltip title="Edit device labels">
|
{/* <Tooltip title="Edit device labels">
|
||||||
<Button
|
<Button
|
||||||
onClick={()=>{
|
onClick={()=>{
|
||||||
|
|
@ -736,6 +786,23 @@ const Page = () => {
|
||||||
}}>Save</Button>
|
}}>Save</Button>
|
||||||
</DialogActions>
|
</DialogActions>
|
||||||
</Dialog>}
|
</Dialog>}
|
||||||
|
{showSetDeviceToBeRemoved &&
|
||||||
|
<Dialog open={showSetDeviceToBeRemoved}>
|
||||||
|
<DialogContent>
|
||||||
|
<DialogContentText>Are you sure you want to remove <b>{devices[deviceToBeRemoved].SN}</b> device?</DialogContentText>
|
||||||
|
</DialogContent>
|
||||||
|
<DialogActions>
|
||||||
|
<Button onClick={() => {
|
||||||
|
setShowSetDeviceToBeRemoved(false)
|
||||||
|
setDeviceToBeRemoved(null)
|
||||||
|
}}>Cancel</Button>
|
||||||
|
<Button
|
||||||
|
endIcon={<SvgIcon><TrashIcon /></SvgIcon>}
|
||||||
|
onClick={() => {
|
||||||
|
removeDevice(devices[deviceToBeRemoved].SN)
|
||||||
|
}}>Apply</Button>
|
||||||
|
</DialogActions>
|
||||||
|
</Dialog>}
|
||||||
</div>
|
</div>
|
||||||
{/* / :
|
{/* / :
|
||||||
// <Box
|
// <Box
|
||||||
|
|
|
||||||
|
|
@ -75,21 +75,21 @@ const Page = () => {
|
||||||
justifyContent:'center',
|
justifyContent:'center',
|
||||||
}}>
|
}}>
|
||||||
<Tabs value={router.query.id[1]} aria-label="icon label tabs example" variant='scrollable'>
|
<Tabs value={router.query.id[1]} aria-label="icon label tabs example" variant='scrollable'>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><WifiIcon/></SvgIcon>}
|
icon={<SvgIcon><WifiIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Wi-Fi"
|
label="Wi-Fi"
|
||||||
value={"wifi"}
|
value={"wifi"}
|
||||||
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><SignalIcon/></SvgIcon>}
|
icon={<SvgIcon><SignalIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Site Survey"
|
label="Site Survey"
|
||||||
value={"site-survey"}
|
value={"site-survey"}
|
||||||
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><DevicePhoneMobile/></SvgIcon>}
|
icon={<SvgIcon><DevicePhoneMobile/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
|
|
@ -97,42 +97,42 @@ const Page = () => {
|
||||||
style={{opacity:"0.5", cursor:"default"}}
|
style={{opacity:"0.5", cursor:"default"}}
|
||||||
value={"connected-devices"}
|
value={"connected-devices"}
|
||||||
/></Tooltip>
|
/></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><WrenchScrewDriverIcon/></SvgIcon>}
|
icon={<SvgIcon><WrenchScrewDriverIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Diagnostic"
|
label="Diagnostic"
|
||||||
value={"diagnostic"}
|
value={"diagnostic"}
|
||||||
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><ServerStackIcon/></SvgIcon>}
|
icon={<SvgIcon><ServerStackIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Ports"
|
label="Ports"
|
||||||
style={{opacity:"0.5", cursor:"default"}}
|
style={{opacity:"0.5", cursor:"default"}}
|
||||||
value={"ports"} /></Tooltip>
|
value={"ports"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><ArrowTrendingUpIcon/></SvgIcon>}
|
icon={<SvgIcon><ArrowTrendingUpIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Historic"
|
label="Historic"
|
||||||
value={"historic"}
|
value={"historic"}
|
||||||
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
style={{opacity:"0.5", cursor:"default"}}/></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><CommandLineIcon/></SvgIcon>}
|
icon={<SvgIcon><CommandLineIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Actions"
|
label="Actions"
|
||||||
style={{opacity:"0.5", cursor:"default"}}
|
style={{opacity:"0.5", cursor:"default"}}
|
||||||
value={"actions"} /></Tooltip>
|
value={"actions"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><DocumentTextIcon/></SvgIcon>}
|
icon={<SvgIcon><DocumentTextIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Logs"
|
label="Logs"
|
||||||
style={{opacity:"0.5", cursor:"default"}}
|
style={{opacity:"0.5", cursor:"default"}}
|
||||||
value={"logs"} /></Tooltip>
|
value={"logs"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><MapPinIcon/></SvgIcon>}
|
icon={<SvgIcon><MapPinIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ const Page = () => {
|
||||||
justifyContent:'center'
|
justifyContent:'center'
|
||||||
}}>
|
}}>
|
||||||
<Tabs value={router.query.id[1]} aria-label="icon label tabs example" variant='scrollable'>
|
<Tabs value={router.query.id[1]} aria-label="icon label tabs example" variant='scrollable'>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><WifiIcon/></SvgIcon>}
|
icon={<SvgIcon><WifiIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
|
|
@ -85,7 +85,7 @@ const Page = () => {
|
||||||
style={{cursor:"default", opacity: 0.5}}
|
style={{cursor:"default", opacity: 0.5}}
|
||||||
value={"wifi"}/>
|
value={"wifi"}/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><SignalIcon/></SvgIcon>}
|
icon={<SvgIcon><SignalIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
|
|
@ -94,7 +94,7 @@ const Page = () => {
|
||||||
value={"site-survey"}
|
value={"site-survey"}
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><DevicePhoneMobile/></SvgIcon>}
|
icon={<SvgIcon><DevicePhoneMobile/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
|
|
@ -103,42 +103,42 @@ const Page = () => {
|
||||||
value={"connected-devices"}
|
value={"connected-devices"}
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><WrenchScrewDriverIcon/></SvgIcon>}
|
icon={<SvgIcon><WrenchScrewDriverIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Diagnostic"
|
label="Diagnostic"
|
||||||
style={{cursor:"default", opacity: 0.5}}
|
style={{cursor:"default", opacity: 0.5}}
|
||||||
value={"diagnostic"} /></Tooltip>
|
value={"diagnostic"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><ServerStackIcon/></SvgIcon>}
|
icon={<SvgIcon><ServerStackIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Ports"
|
label="Ports"
|
||||||
style={{cursor:"default", opacity: 0.5}}
|
style={{cursor:"default", opacity: 0.5}}
|
||||||
value={"ports"} /></Tooltip>
|
value={"ports"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><ArrowTrendingUp/></SvgIcon>}
|
icon={<SvgIcon><ArrowTrendingUp/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Historic"
|
label="Historic"
|
||||||
style={{cursor:"default", opacity: 0.5}}
|
style={{cursor:"default", opacity: 0.5}}
|
||||||
value={"historic"} /></Tooltip>
|
value={"historic"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><CubeTransparentIcon/></SvgIcon>}
|
icon={<SvgIcon><CubeTransparentIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="LCM"
|
label="LCM"
|
||||||
style={{cursor:"default", opacity: 0.5}}
|
style={{cursor:"default", opacity: 0.5}}
|
||||||
value={"lcm"} /></Tooltip>
|
value={"lcm"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><MapPin/></SvgIcon>}
|
icon={<SvgIcon><MapPin/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
label="Location"
|
label="Location"
|
||||||
style={{cursor:"default", opacity: 0.5}}
|
style={{cursor:"default", opacity: 0.5}}
|
||||||
value={"location"} /></Tooltip>
|
value={"location"} /></Tooltip>
|
||||||
<Tooltip title="Upgrade to Business Plan" placement="bottom">
|
<Tooltip placement="bottom">
|
||||||
<Tab
|
<Tab
|
||||||
icon={<SvgIcon><CommandLineIcon/></SvgIcon>}
|
icon={<SvgIcon><CommandLineIcon/></SvgIcon>}
|
||||||
iconPosition={"end"}
|
iconPosition={"end"}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user