
Security News
Vite Releases Technical Preview of Rolldown-Vite, a Rust-Based Bundler
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
This packages provides "live actor" and "application monitored communication" infrastructure for the GridWorks SpaceHeat SCADA project. This separation allows the scada code to be more focussed on on application specific details and provides the potential to re-use the "live actor" and "application monitored" infrastructure.
Testing requires an MQTT broker. The Mosquitto broker can be installed with:
brew install mosquitto
brew services restart mosquitto
Testing uses TLS by default. The tests require the path to the CA certificate and private key used to sign the certificate of the MQTT broker. To set up TLS:
Install gridworks-cert (gwcert):
pipx install gridworks-cert
Create a local Certificate Authority:
gwcert ca create NAME_OF_YOUR_LOCAL_CA
Create certificate and key for the Mosquitto MQTT broker:
gwcert key add --dns localhost mosquitto
localhost
. See
External connections below to create a broker certificate which can accept connections from
external devices.Find the path to mosquitto.conf
in the output of:
brew services info mosquitto -v
Modify mosquitto.conf
with the TLS configuration in example-test-mosquitto.conf, fixing up the paths with real
absolute paths to certificate, key and CA certificate files. These paths can be found with:
gwcert ca info
Restart the Mosquitto server:
brew services restart mosquitto
Test Mosquitto 'clear' port:
# in one window
mosquitto_sub -h localhost -p 1883 -t foo
# in another window
mosquitto_pub -h localhost -p 1883 -t foo -m '{"bla":1}'
Test Mosquitto TLS port:
gwcert key add pubsub
# in one window
mosquitto_sub -h localhost -p 8883 -t foo \
--cafile $HOME/.local/share/gridworks/ca/ca.crt \
--cert $HOME/.local/share/gridworks/ca/certs/pubsub/pubsub.crt \
--key $HOME/.local/share/gridworks/ca/certs/pubsub/private/pubsub.pem
# in another window
mosquitto_pub -h localhost -p 8883 -t foo \
--cafile $HOME/.local/share/gridworks/ca/ca.crt \
--cert $HOME/.local/share/gridworks/ca/certs/pubsub/pubsub.crt \
--key $HOME/.local/share/gridworks/ca/certs/pubsub/private/pubsub.pem \
-m '{"bar":1}'
Mosquitto logging can be enabled in the mosquitto.conf
file with the lines:
log_dest stderr
log_type all
To see the console output, stop the Mosquitto service and start it explicitly on the command line:
brew services stop mosquitto
mosquitto -c /opt/homebrew/etc/mosquitto/mosquitto.conf
The broker certificate must be created with the hostname the client will use to connect to it. For example, to create
a broker certificate reachable at localhost
, MyMac.local
, 192.168.1.10
and foo.bar.baz
use the command:
gwcert key add \
--dns localhost \
--dns MyMac.local \
--dns 192.168.1.10 \
--dns foo.bar.baz \
mosquitto
If CA or Mosquito certificate can key files already exist, their paths can be specified in mosquitto.conf
as above
and
for the tests with there GWPROACTOR_TEST_CA_CERT_PATH and GWPROACTOR_TEST_CA_KEY_PATH environment variables.
To disable testing of TLS, modify the the file tests/.env-gwproactor-test
with:
GWCHILD_PARENT_MQTT__TLS__USE_TLS=false
GWPARENT_CHILD_MQTT__TLS__USE_TLS=false
You can install Gridworks Proactor via pip from PyPI:
$ pip install gridworks-proactor
Contributions are very welcome. In order to develop, do this:
$ poetry install --all-extras
To learn more, see the Contributor Guide.
Distributed under the terms of the MIT license, Gridworks Proactor is free and open source software.
If you encounter any problems, please file an issue along with a detailed description.
This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.
FAQs
Gridworks Proactor
We found that gridworks-proactor demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.