Secure and Interoperable Internet of Things

CI codecov Go Report Gitter C4

plgd Cloud

Internet of Things (IoT) technologies have evolved rapidly in recent years and continue to change how we interact with our surroundings. For companies, IoT brings new ways to monitor and manage objects in the physical world, while massive new streams of data offer better avenues for decision making. To ensure secure interoperability for customers, business and industries, the Open Connectivity Foundation with more than 400 members delivers an ISO ratified specification and certification program allowing devices to communicate regardless of form factor, operating system, service provider, transport technology or ecosystem.

Beyond the specification bounds is the open source plgd project delivering you the Cloud Native implementation of the OCF Cloud specification as well as other ecosystem supportive tools. The plgd Cloud is not just another IoT platform providing you remote access to your devices; it's an OCF Ecosystem building block designed to enable true Internet of Things - access a device as a service.

plgd Cloud high level diagram

Owner
plgd
Implementation of the OCF specifications in Go
plgd
Comments
  • [coap-gateway] all coap client connection was always closed whenever keep alive was reached.

    [coap-gateway] all coap client connection was always closed whenever keep alive was reached.

    @jkralik @ondrejtomcik

    Description

    All coap client connection was always closed whenever keep alive was reached even if coap client like cloud server, server certification test sample of iotivity-lite jakarta branch works fine. Because of that, cloud server and the other devices are offline and online repeatably.

    What is your keep-alive logic of coap-gateway? Why this happen to client connection?

    Logs, error output, etc.

    2021-08-23T12:29:28.985Z        DEBUG   log/log.go:108  close client 211.204.163.221:36818 for device 783afcdb-5f94-41a7-7325-5c732a9f433b
    2021-08-23T12:29:28.985Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36818 for device 783afcdb-5f94-41a7-7325-5c732a9f433b
    2021-08-23T12:29:28.985Z        DEBUG   log/log.go:108  cannot cancel resource('2713892058') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:29:28.985Z        DEBUG   log/log.go:108  cannot cancel resource('757679238') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:29:28.985Z        DEBUG   log/log.go:108  cannot cancel resource('318534269') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:29:28.985Z        DEBUG   log/log.go:108  cannot cancel resource('136750592') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:29:28.985Z        DEBUG   log/log.go:108  cannot cancel resource('510901701') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:29:28.986Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36818, device , user 
    2021-08-23T12:29:28.996Z        DEBUG   log/log.go:108  plgd/go-coap: tcp: 211.204.163.221:36818: cannot read from connection: EOF
    2021-08-23T12:31:13.019Z        ERROR   log/log.go:98   DeviceId: 0882f552-a331-4a49-7d1e-a9280e100f2d: keep alive was reached fail limit:: closing connection
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.New.func8
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:189
    github.com/plgd-dev/go-coap/v2/net/monitor/inactivity.(*KeepAlive).OnInactive
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/net/monitor/inactivity/keepalive.go:34
    github.com/plgd-dev/go-coap/v2/net/monitor/inactivity.(*inactivityMonitor).CheckInactivity
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/net/monitor/inactivity/inactivitymonitor.go:57
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2.1
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:216
    github.com/plgd-dev/go-coap/v2/net.(*Conn).ReadWithContext
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/net/conn.go:205
    github.com/plgd-dev/go-coap/v2/tcp.(*Session).Run
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/session.go:369
    github.com/plgd-dev/go-coap/v2/tcp.(*ClientConn).Run
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/clientconn.go:472
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:228
    2021-08-23T12:31:13.019Z        DEBUG   log/log.go:108  close client 211.204.163.221:36676 for device 0882f552-a331-4a49-7d1e-a9280e100f2d
    2021-08-23T12:31:13.019Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36676 for device 0882f552-a331-4a49-7d1e-a9280e100f2d
    2021-08-23T12:31:13.019Z        DEBUG   log/log.go:108  cannot cancel resource('2946766110') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:31:13.019Z        DEBUG   log/log.go:108  cannot cancel resource('510901701') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:31:13.019Z        DEBUG   log/log.go:108  cannot cancel resource('2058517680') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:31:13.019Z        DEBUG   log/log.go:108  cannot cancel resource('3878770302') observation: cannot write request: cannot write to connection: context canceled
    2021-08-23T12:31:13.019Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36676, device , user 
    2021-08-23T12:31:40.513Z        DEBUG   log/log.go:108  close client 211.204.163.221:36872 for device 
    2021-08-23T12:31:40.513Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36872 for device 
    2021-08-23T12:31:40.513Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36872, device , user 
    2021-08-23T12:31:40.514Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36872: cannot send CSM: cannot write to connection: cannot TLS handshake: tls: no cipher suite supported by both client and server
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:31:49.555Z        DEBUG   log/log.go:108  close client 211.204.163.221:36874 for device 
    2021-08-23T12:31:49.556Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36874 for device 
    2021-08-23T12:31:49.556Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36874, device , user 
    2021-08-23T12:31:49.556Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36874: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36874: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:31:52.932Z        DEBUG   log/log.go:108  close client 211.204.163.221:36876 for device 
    2021-08-23T12:31:52.932Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36876 for device 
    2021-08-23T12:31:52.932Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36876, device , user 
    2021-08-23T12:31:52.932Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36876: cannot send CSM: cannot write to connection: cannot TLS handshake: tls: no cipher suite supported by both client and server
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:32:00.242Z        DEBUG   log/log.go:108  close client 211.204.163.221:36878 for device 
    2021-08-23T12:32:00.242Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36878 for device 
    2021-08-23T12:32:00.242Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36878, device , user 
    2021-08-23T12:32:00.243Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36878: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36878: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:32:10.567Z        DEBUG   log/log.go:108  close client 211.204.163.221:36880 for device 
    2021-08-23T12:32:10.568Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36880 for device 
    2021-08-23T12:32:10.568Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36880, device , user 
    2021-08-23T12:32:10.568Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36880: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36880: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:33:09.847Z        DEBUG   log/log.go:108  close client 211.204.163.221:36890 for device 
    2021-08-23T12:33:09.847Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36890 for device 
    2021-08-23T12:33:09.847Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36890, device , user 
    2021-08-23T12:33:09.847Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36890: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36890: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:33:38.869Z        DEBUG   log/log.go:108  close client 211.204.163.221:36892 for device 
    2021-08-23T12:33:38.869Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36892 for device 
    2021-08-23T12:33:38.869Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36892, device , user 
    2021-08-23T12:33:38.869Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36892: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36892: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:33:47.088Z        DEBUG   log/log.go:108  close client 211.204.163.221:36896 for device 
    2021-08-23T12:33:47.088Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36896 for device 
    2021-08-23T12:33:47.088Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36896, device , user 
    2021-08-23T12:33:47.089Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36896: cannot send CSM: cannot write to connection: cannot TLS handshake: tls: received unexpected handshake message of type *tls.certificateMsg when waiting for *tls.clientHelloMsg
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:33:59.216Z        DEBUG   log/log.go:108  close client 211.204.163.221:36900 for device 
    2021-08-23T12:33:59.217Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36900 for device 
    2021-08-23T12:33:59.218Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36900, device , user 
    2021-08-23T12:33:59.219Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36900: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36900: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:34:00.321Z        DEBUG   log/log.go:108  close client 211.204.163.221:36902 for device 
    2021-08-23T12:34:00.321Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36902 for device 
    2021-08-23T12:34:00.321Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36902, device , user 
    2021-08-23T12:34:00.321Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36902: cannot send CSM: cannot write to connection: cannot TLS handshake: tls: no cipher suite supported by both client and server
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:34:10.425Z        DEBUG   log/log.go:108  close client 211.204.163.221:36904 for device 
    2021-08-23T12:34:10.425Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36904 for device 
    2021-08-23T12:34:10.425Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36904, device , user 
    2021-08-23T12:34:10.425Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36904: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36904: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:34:22.318Z        DEBUG   log/log.go:108  close client 211.204.163.221:36908 for device 
    2021-08-23T12:34:22.319Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36908 for device 
    2021-08-23T12:34:22.319Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36908, device , user 
    2021-08-23T12:34:22.319Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36908: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36908: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:34:59.959Z        DEBUG   log/log.go:108  close client 211.204.163.221:36912 for device 
    2021-08-23T12:34:59.960Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36912 for device 
    2021-08-23T12:34:59.960Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36912, device , user 
    2021-08-23T12:34:59.960Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36912: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36912: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:35:18.219Z        DEBUG   log/log.go:108  close client 211.204.163.221:36918 for device 
    2021-08-23T12:35:18.219Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36918 for device 
    2021-08-23T12:35:18.219Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36918, device , user 
    2021-08-23T12:35:18.219Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36918: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36918: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:36:17.899Z        DEBUG   log/log.go:108  close client 211.204.163.221:36924 for device 
    2021-08-23T12:36:17.899Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36924 for device 
    2021-08-23T12:36:17.900Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36924, device , user 
    2021-08-23T12:36:17.900Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36924: cannot send CSM: cannot write to connection: cannot TLS handshake: read tcp 172.19.0.8:5684->211.204.163.221:36924: i/o timeout
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:36:24.232Z        DEBUG   log/log.go:108  close client 211.204.163.221:36926 for device 
    2021-08-23T12:36:24.233Z        DEBUG   log/log.go:108  cleanUp client 211.204.163.221:36926 for device 
    2021-08-23T12:36:24.233Z        DEBUG   log/log.go:108  Authorization context replaced for client 211.204.163.221:36926, device , user 
    2021-08-23T12:36:24.233Z        ERROR   log/log.go:98   plgd/go-coap: tcp: 211.204.163.221:36926: cannot send CSM: cannot write to connection: cannot TLS handshake: tls: no cipher suite supported by both client and server
    github.com/plgd-dev/cloud/pkg/log.Error
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:98
    github.com/plgd-dev/cloud/pkg/log.LogAndReturnError
            /go/src/github.com/plgd-dev/cloud/pkg/log/logAndReturnError.go:35
    github.com/plgd-dev/cloud/pkg/log.Errorf
            /go/src/github.com/plgd-dev/cloud/pkg/log/log.go:124
    github.com/plgd-dev/cloud/coap-gateway/service.(*Service).setupCoapServer.func7
            /go/src/github.com/plgd-dev/cloud/coap-gateway/service/service.go:430
    github.com/plgd-dev/go-coap/v2/tcp.NewServer.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:136
    github.com/plgd-dev/go-coap/v2/tcp.(*Server).Serve.func2
            /go/pkg/mod/github.com/plgd-dev/go-coap/[email protected]/tcp/server.go:230
    2021-08-23T12:36:38.123Z        DEBUG   log/log.go:83
    

    Environment

    • plgd source : commit e019708
    • IoTivity version: jakarta branch
    • Deployment option: bundle on my own
  • authorization-server.md: update configuration info based on yaml config

    authorization-server.md: update configuration info based on yaml config

    I updated docs/guide/deployment/authorization-server.md based on yaml configuration of authorization. First of all, review this draft doc including Env variable, description on configuration table and then I will update minor update according to your opinion.

  • http-gateway websocket seems to have writing message issue.

    http-gateway websocket seems to have writing message issue.

    Below log is http-gateway log when I opened http-gateway web UI running on the my local PC. And also things menu does not show anything on the page.

    I used latest commit https://github.com/plgd-dev/cloud/commit/4604d315426e542bfbb60f9f4721b0e5add608fa you did commit yesterday.

    Should I avoid to run plgd cloud on local PC ? or Other problem ? Could you look into this problem @jkralik ?

      |   | 2021-07-20 23:36:36 | time="2021-07-20T14:36:36Z" level=warning msg="[read] error writing message to upstream http server: io: read/write on closed pipe"
    -- | -- | -- | --
      |   | 2021-07-20 23:36:36 |  
      |   | 2021-07-20 23:36:36 |  
      |   | 2021-07-20 23:36:36 | X-Scheme: https
      |   | 2021-07-20 23:36:36 | X-Request-Id: 3bef749e96be5efc07f39914ffe6d60a
      |   | 2021-07-20 23:36:36 | X-Real-Ip: 192.168.65.6
      |   | 2021-07-20 23:36:36 | X-Forwarded-Proto: https
      |   | 2021-07-20 23:36:36 | X-Forwarded-Port: 443
      |   | 2021-07-20 23:36:36 | X-Forwarded-Host: www.ocfcloud.com
      |   | 2021-07-20 23:36:36 | X-Forwarded-For: 192.168.65.6
      |   | 2021-07-20 23:36:36 | User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36
      |   | 2021-07-20 23:36:36 | Upgrade: websocket
      |   | 2021-07-20 23:36:36 | Sec-Websocket-Version: 13
      |   | 2021-07-20 23:36:36 | Sec-Websocket-Key: 1pFXTEEaBYPdqib7fF+/AQ==
      |   | 2021-07-20 23:36:36 | Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits
      |   | 2021-07-20 23:36:36 | Pragma: no-cache
      |   | 2021-07-20 23:36:36 | Origin: https://www.ocfcloud.com
      |   | 2021-07-20 23:36:36 | Cookie: _legacy_auth0.is.authenticated=true; auth0.is.authenticated=true
      |   | 2021-07-20 23:36:36 | Connection: upgrade
      |   | 2021-07-20 23:36:36 | Cache-Control: no-cache
      |   | 2021-07-20 23:36:36 | Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
      |   | 2021-07-20 23:36:36 | Accept-Encoding: gzip, deflate, br
      |   | 2021-07-20 23:36:36 | Host: www.ocfcloud.com
      |   | 2021-07-20 23:36:36 | 2021-07-20T14:36:36.509Z	INFO	log/log.go:107	Request: GET /api/v1/ws/devices HTTP/1.1
    
  • [cloud2cloud-connector] fix oauth error in account linking logic.

    [cloud2cloud-connector] fix oauth error in account linking logic.

    @ondrejtomcik I pushed fixed codes as I mentioned in issue https://github.com/plgd-dev/hub/issues/532. Review and then merge plz if you have any problem.

  • [cloud2cloud-connector] Account Linking API cannot exchange origin cloud authorization code caused by oauth  403 forbidden error.

    [cloud2cloud-connector] Account Linking API cannot exchange origin cloud authorization code caused by oauth 403 forbidden error.

    Description

    @ondrejtomcik @jkralik @Danielius1922 [cloud2cloud-connector] Account Linking API cannot exchange origin cloud authorization code caused by oauth 403 forbidden error. This is because handleOAuth() function of account linking API (addLinkedAccount.go) was not handle properly. The logic exchanges to origin cloud oauth provider with auth code of target cloud now. So you should change the logic in handleOAuth() in the addLinkedAccount.go to fixed codes below :

    Error Logs, error output, etc.

    cannot process oauth callback: cannot exchange origin cloud authorization code for access token: oauth2: cannot fetch token: 403 Forbidden
    Response: {"error":"invalid_grant","error_description":"Invalid authorization code"}
    

    Fixed Codes for proper OAuth exchange for both origin/target cloud account linking

    func (rh *RequestHandler) handleOAuth(w http.ResponseWriter, r *http.Request, linkedAccount store.LinkedAccount, linkedCloud store.LinkedCloud) (int, error) {
    	linkedCloud, ok := rh.store.LoadCloud(linkedAccount.LinkedCloudID)
    	if !ok {
    		return http.StatusBadRequest, fmt.Errorf("cannot find linked cloud with ID %v: not found", linkedAccount.LinkedCloudID)
    	}
    	t, err := generateRandomString(32)
    	if err != nil {
    		return http.StatusInternalServerError, fmt.Errorf("cannot generate token")
    	}
    	err = rh.provisionCache.Add(t, provisionCacheData{
    		linkedAccount: linkedAccount,
    		linkedCloud:   linkedCloud,
    	}, cache.DefaultExpiration)
    	if err != nil {
    		return http.StatusInternalServerError, fmt.Errorf("cannot store key - collision")
    	}
    
    	if !linkedAccount.Data.HasOrigin() {
    		url := rh.provider.OAuth2.AuthCodeURL(t)
    		http.Redirect(w, r, url, http.StatusTemporaryRedirect)
    	}
    
    	if !linkedAccount.Data.HasTarget() {
    		oauthCfg := linkedCloud.OAuth
    		if oauthCfg.RedirectURL == "" {
    			oauthCfg.RedirectURL = rh.provider.Config.RedirectURL
    		}
    		url := oauthCfg.AuthCodeURL(t)
    		http.Redirect(w, r, url, http.StatusTemporaryRedirect)
    	}
    	return http.StatusOK, nil
    }
    

    Environment

    • plgd source: commit https://github.com/plgd-dev/hub/commit/ba6d9594e1224a3a12decf3178ff72dc498e228a
    • Deployment option: own deployment for each service

    Additional context

  • problem receiving notifications by GRPC

    problem receiving notifications by GRPC

    Hi,

    Could you please advise if there are changes from release v2next-77de0a1 ( itself this version doesn't even let connection for GRPC as far as I could test it )

    v2next-d387ac2 - does not trigger notifications automatically on empty startup v2next-77de0a1 - does not connect to grpc v2next-b88a2ca - worked

    behaviour: 1)start a PLGD bundle from scratch. 2)launch secure devices 3)launch a GRPCclient (not using the certificate). Create a subscription for Online device status change 4)onboard devices using the SDK provided by the team

    expected: online notification is caught by the subscription created ( tested up to v2next-b88a2ca with success)

    observed: if no device existed before online notification is not triggered from v2next-d387ac2 up to latest. If the GRPC client subscription is launched after a device was onboarded/offboarded it will correctly receive all notifications

  • pkg/log: extend log configuration

    pkg/log: extend log configuration

    Examples: COAP:

    {
        "L": "DEBUG",
        "T": "2022-02-22T15:26:42.524269462Z",
        "M": "finished unary call from the device with code Changed",
        "startTime": "2022-02-22T15:26:42.481380231Z",
        "durationMs": 40.756,
        "request": {
            "body": {
                "accesstoken": "0ca0c61204a543abd3ee0ea2d16e829c",
                "authprovider": "plgd",
                "di": "b5a2a42e-b285-42f1-a36b-034c8fc8efd5"
            },
            "href": "/oic/sec/account",
            "method": "POST"
        },
        "response": {
            "body": {
                "accesstoken": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImIwZWE1MGMxLTY3MGMtNWIwOC1iNjc3LWQzZTdlZmFlNWUwZiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiaHR0cHM6Ly9sb2NhbGhvc3Q6MjAwMDkvIl0KLCJjbGllbnRfaWQiOiJ0ZXN0IiwiaHR0cHM6Ly9wbGdkLmRldi9kZXZpY2VJZCI6ImI1YTJhNDJlLWIyODUtNDJmMS1hMzZiLTAzNGM4ZmM4ZWZkNSIsImlhdCI6MTY0NTU0MzYwMgosImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0OjIwMDA5LyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MgcjoqIHc6KiIsInN1YiI6IjEifQ.y-eMN0RL7w4xxeVLHrc_8dugXfYOVMrKghky6EcueLTpgLMib8Src-e_Q_3d-QjSO6qRe2KrPmSdzjoRjy5ZYg",
                "expiresin": -1,
                "redirecturi": "",
                "refreshtoken": "refresh-token",
                "uid": "1"
            },
            "code": "Changed"
        },
        "protocol": "COAP"
    }
    

    GRPC:

    {
        "L": "WARN",
        "T": "2022-02-21T20:29:11.522144612Z",
        "M": "finished unary call with code PermissionDenied",
        "response": {
            "code": "PermissionDenied",
            "error": "rpc error: code = PermissionDenied desc = cannot validate user access: rpc error: code = PermissionDenied desc = access denied"
        },
        "durationMs": 1.846,
        "protocol": "GRPC",
        "startTime": "2022-02-21T20:29:11.519007649Z",
        "request": {
            "correlationId": "8d08dd47-9b6e-4eb4-bbb9-3f1bcfa3f025",
            "deviceId": "a",
            "href": "/b",
            "jwt": {
                "sub": "1"
            },
            "method": "CreateResource",
            "service": "resourceaggregate.pb.ResourceAggregate"
        }
    }
    

    HTTP:

    {
        "L": "DEBUG",
        "T": "2022-02-21T21:19:26.986032016Z",
        "M": "finished unary call with status code 200",
        "durationMs": 75.45,
        "request": {
            "href": "/api/v1/devices/6f1e8e14-e4fe-4282-672b-d6f89bd4a9f6/resource-links/switches",
            "jwt": {
                "sub": "1"
            },
            "method": "POST"
        },
        "response": {
            "code": 200
        },
        "startTime": "2022-02-21T21:19:26.909713334Z",
        "protocol": "HTTP"
    }
    

    Loki parser: https://grafana.com/docs/loki/latest/logql/log_queries/#json

    https://github.com/plgd-dev/www/pull/48

  • oauth-server.md: create deployment doc based on yaml config.

    oauth-server.md: create deployment doc based on yaml config.

    @ondrejtomcik @jkralik I newly created this guide based on yaml config as well as making certificates/private keys, getting/editing config file, running image. Review and then give me comments. If good, approve plz.

  • Config refactoring

    Config refactoring

    I just pushed config refactoring of coap-gateway and authorization on config-refactoring branch but the others are not yet [Latest commit : plgd-dev/cloud@9f6d6ea]. If you have time to review, inform me your opinion regarding to yaml, code cleansing and so on.

  • Device status online when coap gateway is down

    Device status online when coap gateway is down

    Description

    When coap gateway is not running, plgd hub continues to report the previous online/offline device status of the device even though it cannot communicate with it (and so cannot be sure that is the actual state of the device).

    How can it be reproduced?

    1. deploy using command: microk8s.helm3 install am-1 -f withMock.yaml plgd/plgd-hub --create-namespace --namespace=am-1 --version 2.2.2

    withMock.yaml content:

    global:
      domain: "host.domain.com"
      hubId: "d03a1bb4-0a77-428c-b78c-1c46efe6a38e"
    mockoauthserver:
      enabled: true
    coapgateway:
      port: 5683
      service:
        type: NodePort
        nodePort: 5683
      apis:
        coap:
          tls:
            enabled: false
    
    1. onboard devices and check their status
    • export ACCESS_TOKEN=$(curl -ks "https://${HOSTNAME}:443/oauth/token?client_id=test&audience=test" | jq -r .access_token)

    • curl -ks -XGET "https://${HOSTNAME}:443/api/v1/devices" --header 'Content-Type: application/json' --header "Authorization: Bearer ${ACCESS_TOKEN}"

    1. stop coap gateway (by scaling it down to zero replicas) microk8s.kubectl scale deployment am-1-plgd-hub-coap-gateway --replicas=0 --namespace am-1

    2. Check devices status again

    • curl -ks -XGET "https://${HOSTNAME}:443/api/v1/devices" --header 'Content-Type: application/json' --header "Authorization: Bearer ${ACCESS_TOKEN}"

    Environment

    • microk8s v1.22.4 (snap) running on CentOS Linux release 8.5.2111
    • microk8s helm3 v3.5.0
    • plgd hub tag: 2.2.2
  • [cloud2cloud-gateway] Resource APIs can not retrieve resource data with query parameter (i.e. ?if=oic.if.baseline).

    [cloud2cloud-gateway] Resource APIs can not retrieve resource data with query parameter (i.e. ?if=oic.if.baseline).

    Description

    @ondrejtomcik @jkralik Recently, I'm doing test plgd cloud with CTT Tool. I found that Resource API(i.e. /api/v1/devices/{deviceId}/{resourceHref}) of cloud2cloud-gateway can not retrieve resource data with query parameter (i.e. ?if=oic.if.baseline).

    Logs

    22:39:47 VERBOSE: CTT HTTP Client -> [request ID=4E07D12D] GET https://c2c-api.ttaocfcloud.org/api/v1/devices/a0253411-a758-4a30-6efc-27b5061bbd58/platform?if=oic.if.baseline
    Headers: [Accept=application/json, Authorization=Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImxfcUtMNlE3djFRNTNyZ3dSSFN1aiJ9.eyJpc3MiOiJodHRwczovL3R0YW9jZi51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMDQ0MzAyMzI5NjAyMzA1ODY1OTUiLCJhdWQiOiJodHRwczovL3d3dy50dGFvY2ZjbG91ZC5vcmciLCJpYXQiOjE2MzA0ODI4MTYsImV4cCI6MTYzMDU2OTIxNiwiYXpwIjoieXhGOXJQQ3B0OFRrcVJEbmpYZ1NPa0YxR3dFUVVaYVoiLCJzY29wZSI6InI6ZGV2aWNlaW5mb3JtYXRpb246KiByOnJlc291cmNlczoqIHc6cmVzb3VyY2VzOioifQ.DTdhrd0FyzDIdQpj_IAFWvAmhDc4gwkogYBIRf7_8QJX0aAtqKVwdN6LGipVVLDhdZfaVi6UvGy0Qu2nw-U_kW68iQtP3oQF_ISEWGxRn3vOzLiyD6ppzqV6l5g4dLZXwd9KuEcdQ7rLOEb0Kz3PSd1tU8PUlPDsSm2_NDVl_Hm3PU4xnhMk_ReL11sATOlS3uKo11fUKciHPjbWAXuJEZ3SX6uFUEqFnVomwh592FpBaGpXLAEGm6jgOWwF05YikoeXys9EeyFA6CIcmHUzdAvyTCcRX7hzY9QGWFTc2uaA_L56Sw9sDZBkxExjUh0LgAwFvpUw82iUC-7TPlW5RA]
    22:39:47 VERBOSE: CTT HTTP Client <- [response ID=4E07D12D] GET https://c2c-api.ttaocfcloud.org/api/v1/devices/a0253411-a758-4a30-6efc-27b5061bbd58/platform?if=oic.if.baseline
    Code: 404 NotFound
    Headers: [Connection=keep-alive, Content-Length=213, Content-Type=text/plain; charset=UTF-8, Date=Wed, 01 Sep 2021 13:39:47 GMT, Via=kong/2.5.0, X-Kong-Proxy-Latency=0, X-Kong-Upstream-Latency=3]
    Body: cannot retrieve resource: cannot retrieve resource(deviceID: a0253411-a758-4a30-6efc-27b5061bbd58, Href: /platform?if=oic.if.baseline): rpc error: code = NotFound desc = cannot retrieve resources values: not found
    22:39:47 ERROR: CT5.2.2_Check_3: Status code in response ID=4E07D12D is 404 while 200 was expected
    

    CTT is expecting below step: Step 3.5: If the Resource is a Collection or Atomic Measurement, the CTT Origin Cloud also sends a HTTPS GET message to "/api/v1/devices/{link href}" where {link href} is the "href" Link Parameter of the first Link returned in the response received in Step 2. The request contains a baseline OCF Interface query.

    Environment

    • plgd source : commit e019708
    • IoTivity version: jakarta branch merged with master
    • Deployment option: bundle on my own
  • build(deps): bump json5 from 1.0.1 to 1.0.2 in /http-gateway/web

    build(deps): bump json5 from 1.0.1 to 1.0.2 in /http-gateway/web

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • http-gateway/web/package.json
      • http-gateway/web/package-lock.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 713/1000
    Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 6.4 | Prototype Pollution
    SNYK-JS-JSON5-3182856 | Yes | Proof of Concept

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: react-scripts The new version differs by 69 commits.
    • 221e511 Publish
    • 6a3315b Update CONTRIBUTING.md
    • 5614c87 Add support for Tailwind (#11717)
    • 657739f chore(test): make all tests install with `npm ci` (#11723)
    • 20edab4 fix(webpackDevServer): disable overlay for warnings (#11413)
    • 69321b0 Remove cached lockfile (#11706)
    • 3afbbc0 Update all dependencies (#11624)
    • f5467d5 feat(eslint-config-react-app): support ESLint 8.x (#11375)
    • e8319da [WIP] Fix integration test teardown / cleanup and missing yarn installation (#11686)
    • c7627ce Update webpack and dev server (#11646)
    • f85b064 The default port used by `serve` has changed (#11619)
    • 544befe Update package.json (#11597)
    • 9d0369b Fix ESLint Babel preset resolution (#11547)
    • d7b23c8 test(create-react-app): assert for exit code (#10973)
    • 1465357 Prepare 5.0.0 alpha release
    • 3880ba6 Remove dependency pinning (#11474)
    • 8b9fbee Update CODEOWNERS
    • cacf590 Bump template dependency version (#11415)
    • 5cedfe4 Bump browserslist from 4.14.2 to 4.16.5 (#11476)
    • 50ea5ad allow CORS on webpack-dev-server (#11325)
    • 63bba07 Upgrade jest and related packages from 26.6.0 to 27.1.0 (#11338)
    • 960b21e Bump immer from 8.0.4 to 9.0.6 (#11364)
    • 134cd3c Resolve dependency issues in v5 alpha (#11294)
    • b45ae3c Update CONTRIBUTING.md

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Prototype Pollution

  • build(deps): bump express from 4.17.1 to 4.18.2 in /http-gateway/web

    build(deps): bump express from 4.17.1 to 4.18.2 in /http-gateway/web

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • build(deps): bump qs and express in /http-gateway/web

    build(deps): bump qs and express in /http-gateway/web

    Bumps qs and express. These dependencies needed to be updated together. Updates qs from 6.7.0 to 6.11.0

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Updates express from 4.17.1 to 4.18.2

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

Gobot - Golang framework for robotics, drones, and the Internet of Things (IoT)
Gobot - Golang framework for robotics, drones, and the Internet of Things (IoT)

Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical computing, and the Internet of Things.

Jan 8, 2023
A opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with minimal TCO

infinimesh IoT Platform infinimesh is a opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with

Feb 14, 2022
IoT platform with things/user management and visualization, in Go with Docker using microservices

BARIOT IoT platform to Manage Users and their Things and visualize their data. Microservices services architecture build with Go and docker (compose).

Jun 22, 2022
A realtime teenage driver behaviour monitoring system integrating OBII sensor, smart watch, smartphone, and Raspberry Pi, which examines over time novice teenage driving performance and risk

DriverMonitor A realtime teenage driver behaviour monitoring system integrating OBII sensor, smart watch, smartphone, and Raspberry Pi, which examines

Nov 27, 2021
Industrial IoT Messaging and Device Management Platform
Industrial IoT Messaging and Device Management Platform

Mainflux Mainflux is modern, scalable, secure, open-source, and patent-free IoT cloud platform written in Go. It accepts user and thing (sensor, actua

Dec 31, 2022
Securely access remote devices and servers
Securely access remote devices and servers

Deviceplane is an open source device management tool for embedded systems and edge computing. It solves various infrastructure problems related to rem

Dec 15, 2022
Raspberry pi project that controls jack-o-lantern via servo motor and PIR motion sensors
Raspberry pi project that controls jack-o-lantern via servo motor and PIR motion sensors

pumpkin-pi ?? Raspberry pi project that controls jack-o-lantern via servo motor and PIR motion sensors to simulate it "watching" you. Inspired by Ryde

Sep 13, 2022
A robust and easy to use MQTT rule engine
A robust and easy to use MQTT rule engine

⚙ MQTT COMMANDER A robust and easy to use MQTT rule engine Configure your MQTT Rules via easy to use YML Files Supports JSON encoded MQTT Messages Sup

Sep 21, 2022
Exploring and comparing different IOT messaging protocols / transports.

IOT Messaging Protocols Blynk https://blynk.io/ A fully integrated suite of IoT software Device provisioning Sensor data visualization Remote control

Jan 2, 2022
Read metrics from a Message Queue in Json format and expose them in a Prometheus compatible format

mq2prom Read metrics from a Message Queue in Json format and expose them in a Prometheus compatible format. Currently only works for MQTT compatible M

Jan 24, 2022
lirc.go - a library to send and receive via lircd

LIRC Go client for Linux Infrared Remote Control (LIRC) package Usage package main import ( "github.com/chbmuc/lirc" "log" "time" ) func keyPo

Oct 24, 2022
Golang framework for robotics, drones, and the Internet of Things (IoT)
Golang framework for robotics, drones, and the Internet of Things (IoT)

Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical computing, and the Internet of

Dec 29, 2022
Gobot - Golang framework for robotics, drones, and the Internet of Things (IoT)
Gobot - Golang framework for robotics, drones, and the Internet of Things (IoT)

Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical computing, and the Internet of Things.

Jan 8, 2023
A opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with minimal TCO

infinimesh IoT Platform infinimesh is a opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with

Feb 14, 2022
Resolved the issue that Windows cannot detect the Internet even if it does have an Internet connection.

win-connect 中文文档 Background This program is built to resolved the issue that Windows cannot detect the Internet even if it does have an Internet conne

Dec 19, 2021
Evmos is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and interoperable with Ethereum.

Evmos Evmos is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and interoperable with Ethereum. It's built using the Co

Dec 31, 2022
Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK.
Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK.

Ethermint Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK which runs on to

Jan 3, 2023
An interoperable smart contract hub
An interoperable smart contract hub

Juno An interoperable smart contract hub which automatically executes, controls or documents a procedure of relevant events and actions according to t

Jan 1, 2023
Imagine a simple, beautiful, secure, and freaking fast way to broadcast your events throw the internet

Event Superintendent Imagine a simple, beautiful, secure, and freaking fast way to broadcast your events throw the internet. That's exactly why you sh

Jul 18, 2022
Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.
Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.

Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.

Jan 8, 2023