XIVDeck's communications system will not work with the changes currently proposed in DIP59: Lockdown Mode (reference implementation). The purpose of this Issue is tracking everything required for Lockdown Mode compatibility.
In short, the current implementation of Lockdown Mode will remove all ability for Dalamud plugins to communicate to/from localhost on any HTTP port. This will require XIVDeck to switch to named pipes or some other communication method. Unfortunately, the Stream Deck Plugin in its current state (as a JavaScript plugin running in a browser context) can only perform HTTP connections. Therefore:
The Stream Deck Plugin must be completely rewritten to support a language/runtime that supports Named Pipes.
The Dalamud Plugin must be rewritten to use named pipes instead of HTTP APIs.
For this:
A new Stream Deck library will need to be found. Currently SharpDeck seems to be the likely choice, but it is missing some features of the SD+ API that will likely not be added as they are not officially/properly documented in Elgato's docs.
The Dalamud plugin will likely need to switch to gRPC or some other communications system. The exact nature of what the switch will be to is currently unknown.
Lockdown mode has been canceled (for now), so this is a lower priority. Ideally, I would still like to switch over to using named pipes, but it can wait.
XIVDeck's communications system will not work with the changes currently proposed in DIP59: Lockdown Mode (reference implementation). The purpose of this Issue is tracking everything required for Lockdown Mode compatibility.
In short, the current implementation of Lockdown Mode will remove all ability for Dalamud plugins to communicate to/from
localhost
on any HTTP port. This will require XIVDeck to switch to named pipes or some other communication method. Unfortunately, the Stream Deck Plugin in its current state (as a JavaScript plugin running in a browser context) can only perform HTTP connections. Therefore:For this: