I would like to integrate my loraserver application with an external MQTT based application, but to my big surprise I can only select HTTP and InfluxDB.
I have figured that I can simply subscribe to the mosquito used internally between the loraserver components, but that seems like an inelegant hack.
I guess I could write my own http<->mqtt gateway if I really have to.
Am I missing something?
Ah yes, my loraserver is a freshly installed docker install, guess that pulls the latest as greatest releases.
Problem is I have several organisations, each with their own application(s), and I must make sure they can not interfere with each other. Myself operating the loraserver is yet again a different entity, as an admin I am trusted to handle data, but the organisations should not have to trust each other.
I could configure the mosquito server to allow a particular user specific access to certain MQTT topics, but that would then have to be configured outside the loraserver admin interface, and would have to be maintained, by me as the global admin, every time a organisation decides to add/remove applications.
All this seems to be handled nicely with the HTTP integration since that is done at the application level, where as the MQTT is a global integration.
So if I run the server in a multi tenant environment, using MQTT as the integration method, yes I think it turns “ugly”. Of course given all my assumptions above are correct.
You are right that at application level it’s not. It’s easy to add application level authorization, but you’ll have to modify lora-app-server's source to add user privileges. Though I’d argue that if your users are not allowed to see different applications within the same organization, then maybe they shouldn’t be part of the same organization at all. After all, organization/application are just names for access and configuration grouping, with the first one grouping where users belong and the second one stating how devices should work (of course this is a bit simplistic and there’s more to it, but still).