Commit Graph

744 Commits

Author SHA1 Message Date
Orne Brocaar
9de0354f13 api: Update dependencies. 2024-03-19 10:57:29 +00:00
dependabot[bot]
7e0c18cf00
Bump google.golang.org/protobuf from 1.31.0 to 1.33.0 in /api/go (#379)
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 10:39:55 +00:00
dependabot[bot]
b02f2a21d2
Bump google.golang.org/protobuf in /examples/frame_log/go (#380)
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 10:39:46 +00:00
dependabot[bot]
1505abf215
Bump google.golang.org/protobuf in /examples/event_log/go (#381)
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 10:39:36 +00:00
dependabot[bot]
81d70fba14
Bump google.golang.org/protobuf in /examples/request_log/go (#382)
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 10:39:26 +00:00
dependabot[bot]
9dad578d89
Bump google.golang.org/protobuf in /examples/meta_log/go (#383)
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 10:39:18 +00:00
dependabot[bot]
a254f70fe1
Bump follow-redirects from 1.15.4 to 1.15.6 in /ui (#384)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 10:38:57 +00:00
Orne Brocaar
cef454920e Document missing recvTime codec option.
Closes #385.
2024-03-19 10:38:08 +00:00
Orne Brocaar
a78bc226f6 Update redis crate.
This version solves inconsistent pipeline output types when using
multiplexed async connections.
2024-03-19 10:38:08 +00:00
Orne Brocaar
06bcca147c Update tonic. 2024-03-19 10:38:08 +00:00
Orne Brocaar
26cef0b2ca Update rustls / tls functions. 2024-03-19 10:38:08 +00:00
Simon Arnell
b118ab56be
Fix typo in error string. (#367) 2024-03-14 14:53:38 +00:00
Orne Brocaar
0cd5dd8d31 Update updating gw loc + tls cert.
This refactors the multiple update functions into a single function
accepting a change-set struct. This also adds a sanity check to make
sure we are not updating the gw loc when lat / lon / alt are all set to
0.
2024-03-14 12:20:11 +00:00
Orne Brocaar
8c875c3bf1 Bump version to 4.7.0 2024-03-13 10:44:21 +00:00
Orne Brocaar
c815c6be88 Update Rust + dev env. 2024-03-13 09:44:29 +00:00
Aidar
5f72db234f
Updated docker-compose to docker compose (#377) 2024-03-12 11:27:27 +00:00
Orne Brocaar
34ca1c2d6b Hide change password on oAuth2 login. 2024-03-05 10:06:08 +00:00
Orne Brocaar
519f53940e Bump version to 4.7.0-test.4 2024-02-27 16:48:40 +00:00
Orne Brocaar
f816ca469b Update generated api code. 2024-02-27 16:34:31 +00:00
Orne Brocaar
098f8db4c6 Migrate device-sessions from Redis to PostgreSQL.
This migrates the device-sessions from Redis into PostgreSQL. This fixes
a performance issue in case the same DevAddr is reused many times
(e.g. devices rejoining very often or a NetID with small DevAddr space).

There were two issues:

The Redis key containing the DevAddr -> DevEUIs mapping could contain
DevEUIs that no longer used the DevAddr. This mapping would only expire
from the Redis database after none of the devices would use the DevAddr
for more than the configured device_session_ttl.

The other issue with the previous approach was that on for example a
Type 7 NetID, a single DevAddr could be re-used multiple times. As each
device-session could be stored on a different Redis Cluster instance,
there was no option to retrieve all device-sessions at once. Thus a high
re-usage of a single DevAddr would cause an increase in Redis queries.

Both issues are solved by moving the device-session into PostgreSQL
as the DevAddr is a column of the device record and thus filtering on
this DevAddr would always result in the devices using that DevAddr, as
well all device-sessions for a DevAddr can be retrieved by a single
query.

Note that to migrate the device-sessions, you must run:

chirpstack -c path/to/config migrate-device-sessions-to-postgres

A nice side-effect is that a PostgreSQL backup / restore will also
restore the device connectivity.

Closes #362 and #74.
2024-02-27 16:17:15 +00:00
Orne Brocaar
fc30a3b7e5 Add OIDC CustomClaims struct.
This is needed when custom claims are returned that are not used by
ChirpStack, but might be used during user registration.
2024-02-22 13:38:29 +00:00
Orne Brocaar
d599e7a276 Add js context to get_activation api method. 2024-02-06 13:16:26 +00:00
Orne Brocaar
8cde64c4b7 Save metrics in one pipelined Redis query.
This saves the metrics in one pipelined Redis query, rather than one
query per aggregation level. This saves 2 queries per save.
2024-01-31 12:11:54 +00:00
Orne Brocaar
b65faf7b98 Merge deduplication_put and _locked queries.
This merges the deduplication_put and deduplication_locked Redis queries
into a single pipelined query. Simulating 400 uplinks / seconds through
3 gateways (thus 1200 messages / second), and an artificial TCP latency
of 5ms between ChirpStack <> Redis, this reduces the
storage_redis_conn_get_duration_seconds_sum metric by about 50%.

What we are trying to solve here is that under high (simulated) load, we
exhaust the Redis connection pool. This situation gets worse when there
is a significant latency between ChirpStack <> Redis, because the query
takes longer to complete and is reserved from the pool for a longer
time. The result can be that during the de-duplication process, the key
containing the uplink set has already expired before the
deduplicate_collect function is able to get a Redis connection from the
pool.

This query merge is a quick win, because each uplink can be received by
N gateways, thus this merge saves N Redis queries per uplink.
2024-01-31 11:06:03 +00:00
Orne Brocaar
9de86ffdec Track pg and redis get conn metrics.
This data is useful when debugging connection-pool size related issues.
E.g. when more connections are requested than the connection pool allows
then this will result in a longer wait time.
2024-01-31 09:54:00 +00:00
Orne Brocaar
107fbfa7bb Fix setting dev_addr field on ABP activate. 2024-01-25 11:23:33 +00:00
dependabot[bot]
4ce886b21d
Bump unsafe-libyaml from 0.2.9 to 0.2.10 (#341)
Bumps [unsafe-libyaml](https://github.com/dtolnay/unsafe-libyaml) from 0.2.9 to 0.2.10.
- [Release notes](https://github.com/dtolnay/unsafe-libyaml/releases)
- [Commits](https://github.com/dtolnay/unsafe-libyaml/compare/0.2.9...0.2.10)

---
updated-dependencies:
- dependency-name: unsafe-libyaml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-12 15:55:03 +00:00
dependabot[bot]
a1c3431719
Bump follow-redirects from 1.15.3 to 1.15.4 in /ui (#353)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-12 15:54:33 +00:00
Orne Brocaar
be26e60111 Bump version to 4.7.0-test.3 2024-01-12 09:19:50 +00:00
Orne Brocaar
2e104dc6ef Fix OIDC and oAuth2 logout redirect.
This regression was introduced when implementing the oAuth2 auth
backend. As we are redirecting to an external URL, we should not use
`navigate`.
2024-01-12 09:03:05 +00:00
Orne Brocaar
e1334f647d Bump version to 4.7.0-test.2 2024-01-11 15:42:16 +00:00
Orne Brocaar
769d590fb2 Remove cargo-bitbake dev-dependency.
We no longer need this and it breaks the build as it requires OpenSSL.
2024-01-11 15:26:13 +00:00
Orne Brocaar
cc47958839 Bump version to 4.7.0-test.1 2024-01-11 12:48:18 +00:00
Liu Woon Yung
3b7ab175b4
Fix device activation not setting the device class for LoRaWAN 1.0 on ABP. (#344) 2024-01-11 12:39:15 +00:00
Liu Woon Yung
f248379259
Fix Chirpstack overwriting user updates by OIDC user provisioning callback (#343)
Co-authored-by: Orne Brocaar <info@brocaar.com>
2024-01-11 12:28:49 +00:00
Orne Brocaar
e379e8738c ui: Fix black bg in jsontree after update. 2023-12-20 13:24:33 +00:00
Orne Brocaar
9f67b9c221 Implement direct redirect for OIDC and OAuth login. 2023-12-19 14:31:21 +00:00
Orne Brocaar
9198d7d51b Implement Clerk as authentication backend (OAuth2). 2023-12-19 13:49:16 +00:00
Orne Brocaar
f45d12519c Update deadpool-redis dependency.
This deprecates the deadpool-redis-cluster crate in favor of the
deadpool-redis crate with cluster feature.
2023-12-18 10:04:05 +00:00
Orne Brocaar
fcd0ef2ca5 Update rcgen dependency. 2023-12-18 09:56:23 +00:00
Orne Brocaar
c62f2b6474 Immediately return PG conn after use.
Same as the previous commit, this will returns the PG connection back to
the pool after usage, avoiding the risk that we are holding the conn
longer than needed.
2023-12-12 11:22:15 +00:00
Orne Brocaar
fccf762c39 Immediately return Redis conn after use.
Before the Redis connection would be returned once variable c went out
of scope, in most cases at the return of the function. This would mean
that during the execution of the remaining code within the function,
the Redis connection would be reserved.

With this change, the Redis connection is immediately returned to the
pool after usage.
2023-12-12 11:02:29 +00:00
Orne Brocaar
f57aa32f23 ui: Update dependencies. 2023-12-11 16:14:13 +00:00
Orne Brocaar
fb29d7f58d Update rdkafka dependency. 2023-12-11 11:37:12 +00:00
Orne Brocaar
f0987af114 Update prometheus-client. 2023-12-11 11:33:19 +00:00
Orne Brocaar
691cee7beb Upgrade jsonwebtoken dependency.
Since v9 setting the audience is mandatory.
2023-12-11 11:23:52 +00:00
Orne Brocaar
0ff05a9285 Update dependencies (cargo update). 2023-12-11 11:10:06 +00:00
Orne Brocaar
2774c51ea2 Refactor client-cert generator to use rustls/rcgen.
This refactors the last bit of code that depends on the OpenSSL C
library. Note that the openssl-probe does not depend on OpenSSL, it only
tries to detect the CA certificate directory on the host system.
2023-12-11 10:55:36 +00:00
Orne Brocaar
fe98673bbb Fix uncommited configuration change. 2023-12-11 10:55:36 +00:00
Orne Brocaar
a0d4e80720 Fix remaining blocking code after async Redis refactor.
This code still used channel.blocking_send(..) and sleep from std::time.
As async anonymous functions are not (yet) supported, this moves the
stream handling into a separate async function.
2023-12-11 10:55:36 +00:00