-
Notifications
You must be signed in to change notification settings - Fork 15
Small Service Discovery Architecture: Client/Transport/Service registry etc. for out of process handlers #820
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThe changes introduce a substantial overhaul to the platform’s API gateway, service registration, and session/token management. New modules for an SSDA API gateway system are added, including foundational types, client/server logic, and a mock application gateway for testing. Session and token-related code is removed from the main and distributor modules, and the rules engine is modernized and integrated more tightly. Thunder plugin status checks are now configurable, and several device and authentication RPC endpoints are retired. Numerous supporting files, test modules, and configuration updates accompany these architectural changes. Changes
Sequence Diagram(s)sequenceDiagram
participant Service as Example Service
participant SSDA_Client as SSDA Client
participant SSDA_Gateway as SSDA API Gateway
participant Main as Platform Main Process
Service->>SSDA_Client: Register service handlers
SSDA_Client->>SSDA_Gateway: Connect via WebSocket, send registration
SSDA_Gateway-->>SSDA_Client: Registration response
Main->>SSDA_Gateway: Route ServiceRoutingRequest (for method)
SSDA_Gateway->>SSDA_Client: Forward request to appropriate service
SSDA_Client->>Service: Dispatch ServiceCall
Service-->>SSDA_Client: ServiceCallSuccessResponse / ErrorResponse
SSDA_Client-->>SSDA_Gateway: Forward response
SSDA_Gateway-->>Main: ServiceRoutingResponse (Success/Error)
sequenceDiagram
participant ThunderBroker
participant PlatformState
participant ThunderClient
participant PluginManager
PlatformState->>ThunderBroker: Start broker (with plugin status check flag)
ThunderBroker->>ThunderClient: Start Thunder client (status_check flag)
ThunderClient->>PluginManager: If status_check, send plugin status request(s)
PluginManager-->>ThunderClient: Status responses (for all or specific plugins)
ThunderClient-->>ThunderBroker: Status update(s)
Poem
Note ⚡️ AI Code Reviews for VS Code, Cursor, WindsurfCodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback. Note ⚡️ Faster reviews with cachingCodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure ✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
bobra200 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Minimum allowed line rate is |
info!( | ||
"Creating new service connection_id={} app_id={} session_id={}, gateway_secure={}, port={}", | ||
connection_id, | ||
app_id_c, | ||
session_id_c, | ||
gateway_secure, | ||
_client_addr.port() | ||
); |
Check failure
Code scanning / CodeQL
Cleartext logging of sensitive information High
session_id_c
info!( | ||
"Creating new connection_id={} app_id={} session_id={}, gateway_secure={}, port={}", | ||
connection_id, | ||
app_id_c, | ||
session_id_c, | ||
gateway_secure, | ||
_client_addr.port() | ||
); |
Check failure
Code scanning / CodeQL
Cleartext logging of sensitive information High
session_id_c
info!( | ||
"Unregistering service connection_id={} app_id={} session_id={}", | ||
connection_id, app_id_c, session_id_c | ||
); |
Check failure
Code scanning / CodeQL
Cleartext logging of sensitive information High
session_id_c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No-Harm testing done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No-Harm testing done.
Summary by CodeRabbit
New Features
Improvements
Removals
Bug Fixes
Tests
Chores
.gitignore
and toolchain files for new workspaces and packages.