Repository navigation
Add PubSub and BigTable support for Central hosted network controllers - #2526
Merged
Merged
Conversation
…stance for the whole library, add init/shutdown functions for it exposed to C
match other things already written
Tests currently need to be run with --test-threads=1. Seems like the instances of the pubsub emulator stomp on each other without that
…s in new CentralDB class This allows us to interchangeably use different listeners (pgsql, redis, pubsub) depending on configuration values passed into the constructor.
PubSub allows us to do schema validation, however it only allows one top level message at a time. Move other sub-message declarations under the main message declaration so that we can enable schema validation in the pubsub stream directly
Muuuuch easier to use external dependencies now Also tried out conan and vcpkg. Ran into dependency issues when solving for packages to install with conan. vcpkg is just obtuse as all hell to install and not easy to integrate
* Postgres Direct * Redis * BigTable
removing openssl dependency (except on Linux where it's still necessary) upgrade cpp-httplib new cmake-presets
lock -> notification, and double notify on erase
More use of scoped RAII guard for connections where appropriate.
Also add presets for the BSDs
pointing to LICENSE.TXT
Template was looking for {{networkId}} but that hadn't been populated
yet in the case where the IdP returned an error. This caused the
template parsing to crash and return its own error, disguising the error
from the IdP
Only enabled in the central controller builds. Trying to find more info about some mystery controller restarts in prod
Contributor
|
Working notes:
|
Contributor
Author
|
yes, smeeclient was removed as it's no longer needed for notifications of new members joining. Thanks to pubsub, that is now handled in CV1/CV2 instead of the controller. Will remove all the ZT_CONTROLLER=1 stuff from the makefile |
Contributor
|
Did an end to end test (root, controller, two nodes) of this branch using artifacts produced by the CMake build process and the two nodes were able to ping each other so it looks like things still work. Test output: |
joseph-henry
approved these changes
Jun 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a big one that goes along with other internal upcoming changes.
NotificationListenerinterface, and adds a 3rd method for message passing via GCP PubSub. Which one to use is configurable by local.conf controller settingsscripts/bootstrap-deps.shfor bootstrapping external dependencies (scripts/bootstrap-deps.ps1on Windows)ext/. This is likely more useful for Central controller builds than end user builds for the time being.