Commit Graph

158 Commits

Author SHA1 Message Date
Orne Brocaar
4968f5d792 Bump version to 4.8.1 2024-05-13 16:47:14 +01:00
Orne Brocaar
c3de89a4a4 Bump version to 4.8.0 2024-05-13 15:35:00 +01:00
Orne Brocaar
73ad79a356 Bump version to 4.8.0-test.5 2024-05-09 13:45:24 +01:00
Orne Brocaar
d03870ff11 Bump version to 4.8.0-test.4 2024-05-09 11:22:22 +01:00
Orne Brocaar
e0a9e52cca Bump version to 4.8.0-test.3 2024-05-09 08:48:43 +01:00
Orne Brocaar
b7dad2a7d0 Add RP002-1.0.4 option to device-profile. 2024-05-08 15:05:14 +01:00
Orne Brocaar
487f785302 Add option to increase RX1 Delay in device-profile.
In general ChirpStack is configured with a rx1_delay configuration
matching the network latency (e.g. on cellular, one might want to set
this to rx1_delay=3). However, this does not take into account a
possible latency of the end-application. Handling the uplink and
enqueueing a downlink might take more time than the configured rx1_delay
(and get_downlink_data_delay) allows.

This option makes it possible to increase the RX1 Delay in the
device-profile. If the RX1 Delay has between increased relative to
the system default, then the get_downlink_data_delay will be
incremented with the same amount of seconds.
2024-05-02 10:29:10 +01:00
Orne Brocaar
a5ff416fa2 Implement storing + display duty-cycle stats.
Note that these stats are only available for Concentratord based
gateways as these metrics must be aggregated by the gateway.
2024-04-17 14:34:11 +01:00
Orne Brocaar
9207effb5b Bump version to 4.8.0-test.2 2024-04-10 10:12:06 +01:00
Orne Brocaar
6ef100c9b7 api: Add back rust/proto directory.
This needs to be tracked by git to make cargo publish work. If this
folder is in the .gitignore, then cargo publish will ignore this folder
as well and the publish command will fail because of missing .proto
files. If we would temporarily remove / rename the .gitignore file, then
cargo publish will error because the git state is dirty.
2024-04-04 15:55:59 +01:00
Orne Brocaar
b3ba23f32c Bump version to 4.8.0-test.1 2024-04-04 15:25:59 +01:00
Orne Brocaar
ac9923e120 api: Add duty-cycle stats messages + types. 2024-04-04 14:28:24 +01:00
Orne Brocaar
d170c7dd79 api: Remove generated API files from repo + update build.
All these files can be generated using the `make api` command and there
is no real need to commit these into the repo. Only the api/go files
need to be comitted of how the Go import system works.

This also updates the Rust, Go, JS and gRPC-web (JS) code generation and
UI build to use the nix-shell environment instead of using Docker.
2024-04-01 14:27:15 +01:00
Orne Brocaar
c71b856c78 Align multicast class-b ping-slot config.
This aligns the multicast class-b ping-slot configuration with the way
how it is configured in the device-profile. This deprecates the
class_b_ping_slot_period field in favor of the class_b_ping_slot_nb_k
field, which should be a value between 0 - 7 (this is defined and
explained by the LoRaWAN specification).

Closes #255.
2024-03-26 16:45:24 +00:00
Orne Brocaar
f970e94cca Show version in UI (for admin users).
Closes #73 and #158.
2024-03-26 09:01:21 +00:00
Orne Brocaar
9de0354f13 api: Update dependencies. 2024-03-19 10:57:29 +00:00
Orne Brocaar
06bcca147c Update tonic. 2024-03-19 10:38:08 +00:00
Orne Brocaar
8c875c3bf1 Bump version to 4.7.0 2024-03-13 10:44:21 +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
d599e7a276 Add js context to get_activation api method. 2024-02-06 13:16:26 +00:00
Orne Brocaar
be26e60111 Bump version to 4.7.0-test.3 2024-01-12 09:19:50 +00:00
Orne Brocaar
e1334f647d Bump version to 4.7.0-test.2 2024-01-11 15:42:16 +00:00
Orne Brocaar
cc47958839 Bump version to 4.7.0-test.1 2024-01-11 12:48:18 +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
f647949c05 Bump version to 4.6.0 2023-12-07 09:13:36 +00:00
Orne Brocaar
20e28407d0 Bump version to 4.6.0-test.4 2023-11-28 13:01:40 +00:00
Orne Brocaar
3538145e3d Add allow roaming option to device-profile. 2023-11-23 08:53:47 +00:00
Orne Brocaar
f13a5f492c Bump version to 4.6.0-test.3 2023-11-22 11:28:00 +00:00
Orne Brocaar
5fd56e7e3c Bump version to 4.6.0-test.2 2023-11-20 12:33:52 +00:00
Orne Brocaar
6931e9adb5 api: Add BackendInterfacesRequest stream message. 2023-11-02 08:36:57 +00:00
Orne Brocaar
36e6d5ccb9 api: Change streams > stream to be consistent. 2023-10-31 14:03:31 +00:00
Orne Brocaar
1d38ae2544 api: Refactor api/request_log.proto to streams/api_requests.proto. 2023-10-31 11:59:07 +00:00
Orne Brocaar
a4da4ab784 api: Refactor api/frame_log.proto into streams/frames.proto. 2023-10-31 11:21:43 +00:00
Orne Brocaar
ec0ecf2044 api: Refactor meta/meta.proto to streams/meta.proto. 2023-10-31 10:19:38 +00:00
Orne Brocaar
091909e8ea Bump version to 4.6.0-test.1 2023-10-26 15:38:37 +01:00
Orne Brocaar
fefa4f8be9 Re-generate API code. 2023-10-26 15:38:37 +01:00
Orne Brocaar
d38062aebd Add preamble and no_crc fields to LoraModulationInfo. 2023-10-26 15:38:37 +01:00
Orne Brocaar
dc5be942d4 api: Re-generate API code. 2023-10-19 17:12:19 +01:00
Orne Brocaar
a087c4c18b Add tags to tenants and applications.
Note that the integration events will contain the application +
device-profile + device tags. Integration events will NOT contain the
tenant tags. Most likely tenant tags will be used to store information
about the tenant, data that is unrelated to the integration events.

Fixes #211.
2023-10-19 17:11:50 +01:00
Orne Brocaar
b4845b5613 api: Rename time to gw_time. Add ns_time.
The gw_time defines the RX time by the gateway, the ns_time defines when
it was received by the NS. The latter could for example help to debug
latency between the GW <> NS.
2023-10-16 12:11:57 +01:00
Orne Brocaar
c82bfa5a72 api: Ignore unknown fields (Rust JSON decode).
The JSON encoding should only be used for debugging purposes! However
this change avoids showing errors in case there are unknown fields in the
JSON payload. This would happen when for example the MQTT Forwarder
and ChirpStack uses a different API version (which in case of Protobuf
would be fine, as long as the major version remains the same).
2023-10-16 10:51:29 +01:00
Orne Brocaar
41d00cb651 Implement end-to-end app payload encryption.
This implements end-to-end encryption between the end-device and
end-application. The encrypted AppSKey or SessionKeyID is forwarded to
the end-application which should be able to decrypt or request the
AppSKey to decrypt the uplink payload. As well the end-application will
be able to enqueue encrypted application payloads.

Using this mechanism, ChirpStack will never have access to the uplink
and downlink application-payloads.
2023-10-05 13:06:09 +01:00
Orne Brocaar
503beaa2fd Bump version to 4.5.1 2023-10-05 10:20:32 +01:00
Michael Jeffrey
fe131c070a
api: Re-export prost dependency. (#285) 2023-10-03 15:29:49 +01:00
Orne Brocaar
a402b487f8 Update dependencies. 2023-09-18 16:22:05 +01:00
Orne Brocaar
4ebee8d614 Bump version to 4.5.0 2023-09-11 16:58:25 +01:00
Orne Brocaar
81ac49ff8f Bump version to 4.5.0-test.3 2023-09-07 16:53:20 +01:00