Commit Graph

162 Commits

Author SHA1 Message Date
ad2fecd1d2 ui: Make tileserver + attribution configurable. (#451)
Co-authored-by: Orne Brocaar <info@brocaar.com>
2024-07-10 15:05:33 +01:00
f854236b79 Bump version to 4.9.0-test.3 2024-06-26 14:57:17 +01:00
68473906c9 Bump version to 4.9.0-test.2 2024-06-25 12:27:28 +01:00
3f1a47e1e2 Integrate Gateway Mesh feature.
This adds a Gateway Mesh section to the web-interface (+ API endpoints)
to see the status op each Relay Gateway within the Gateway Mesh.

The Gateway Mesh (https://github.com/chirpstack/chirpstack-gateway-mesh)
is an experimental feature to extend LoRaWAN coverage throug Relay
Gateways.
2024-06-25 11:37:57 +01:00
4968f5d792 Bump version to 4.8.1 2024-05-13 16:47:14 +01:00
c3de89a4a4 Bump version to 4.8.0 2024-05-13 15:35:00 +01:00
73ad79a356 Bump version to 4.8.0-test.5 2024-05-09 13:45:24 +01:00
d03870ff11 Bump version to 4.8.0-test.4 2024-05-09 11:22:22 +01:00
e0a9e52cca Bump version to 4.8.0-test.3 2024-05-09 08:48:43 +01:00
b7dad2a7d0 Add RP002-1.0.4 option to device-profile. 2024-05-08 15:05:14 +01:00
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
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
9207effb5b Bump version to 4.8.0-test.2 2024-04-10 10:12:06 +01:00
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
b3ba23f32c Bump version to 4.8.0-test.1 2024-04-04 15:25:59 +01:00
ac9923e120 api: Add duty-cycle stats messages + types. 2024-04-04 14:28:24 +01:00
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
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
f970e94cca Show version in UI (for admin users).
Closes #73 and #158.
2024-03-26 09:01:21 +00:00
9de0354f13 api: Update dependencies. 2024-03-19 10:57:29 +00:00
06bcca147c Update tonic. 2024-03-19 10:38:08 +00:00
8c875c3bf1 Bump version to 4.7.0 2024-03-13 10:44:21 +00:00
519f53940e Bump version to 4.7.0-test.4 2024-02-27 16:48:40 +00:00
f816ca469b Update generated api code. 2024-02-27 16:34:31 +00:00
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
d599e7a276 Add js context to get_activation api method. 2024-02-06 13:16:26 +00:00
be26e60111 Bump version to 4.7.0-test.3 2024-01-12 09:19:50 +00:00
e1334f647d Bump version to 4.7.0-test.2 2024-01-11 15:42:16 +00:00
cc47958839 Bump version to 4.7.0-test.1 2024-01-11 12:48:18 +00:00
9f67b9c221 Implement direct redirect for OIDC and OAuth login. 2023-12-19 14:31:21 +00:00
9198d7d51b Implement Clerk as authentication backend (OAuth2). 2023-12-19 13:49:16 +00:00
f647949c05 Bump version to 4.6.0 2023-12-07 09:13:36 +00:00
20e28407d0 Bump version to 4.6.0-test.4 2023-11-28 13:01:40 +00:00
3538145e3d Add allow roaming option to device-profile. 2023-11-23 08:53:47 +00:00
f13a5f492c Bump version to 4.6.0-test.3 2023-11-22 11:28:00 +00:00
5fd56e7e3c Bump version to 4.6.0-test.2 2023-11-20 12:33:52 +00:00
6931e9adb5 api: Add BackendInterfacesRequest stream message. 2023-11-02 08:36:57 +00:00
36e6d5ccb9 api: Change streams > stream to be consistent. 2023-10-31 14:03:31 +00:00
1d38ae2544 api: Refactor api/request_log.proto to streams/api_requests.proto. 2023-10-31 11:59:07 +00:00
a4da4ab784 api: Refactor api/frame_log.proto into streams/frames.proto. 2023-10-31 11:21:43 +00:00
ec0ecf2044 api: Refactor meta/meta.proto to streams/meta.proto. 2023-10-31 10:19:38 +00:00
091909e8ea Bump version to 4.6.0-test.1 2023-10-26 15:38:37 +01:00
fefa4f8be9 Re-generate API code. 2023-10-26 15:38:37 +01:00
d38062aebd Add preamble and no_crc fields to LoraModulationInfo. 2023-10-26 15:38:37 +01:00
dc5be942d4 api: Re-generate API code. 2023-10-19 17:12:19 +01:00
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
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
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
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
503beaa2fd Bump version to 4.5.1 2023-10-05 10:20:32 +01:00