companion icon indicating copy to clipboard operation
companion copied to clipboard

Formalise/tidy up the remote protocols

Open Julusian opened this issue 1 year ago • 2 comments

Describe the feature

The HTTP, TCP, UDP and OSC protocols are a bit of a mess

They vary in consistency, and how well defined they are. There is no form of security or access control, some of which will need to be engrained into the protocol

Additionally, the http implementation is using names at the root level. This means that the ui has to be careful to not use the same name or it will clash and cause issues. Everything here should be moved to /api/ or something.

This task should spend some time writing a proper definition of the protocols, and make a from scratch reimplementation of them. We should allow them to be run side by side with the old implementations (on different ports), and after a couple of releases remove the old implementation.

  • Write a proper definition (something like https://github.com/bitfocus/companion/wiki/Satellite-API)
  • Should we implement some kind of api-token security in tcp, udp and http?
  • (Optional): How hard would it be to do ip based allow/deny lists.

Julusian avatar Jul 28 '22 14:07 Julusian

  • Should we implement some kind of api-token security in tcp, udp and http?

@Julusian, that is exactly what I was coming here to suggest now, might be easy to implement?

Alsso, what about disabling emulator and tablet pages at all? Or maybe add basic auth to them? What do you think? Is it easy to implement? Should I create an issue for these feature requests?

otelom avatar Nov 04 '23 14:11 otelom

@otelom ~~please open a new issue for that~~ There already is an issue for that https://github.com/bitfocus/companion/issues/579

Julusian avatar Nov 10 '23 23:11 Julusian

These apis were rewritten in 3.2, with the old apis put behind config flags. Security and firewalling will be covered by #1925

Julusian avatar Feb 25 '24 14:02 Julusian