-
Notifications
You must be signed in to change notification settings - Fork 21
Fix/ash oban tenant scheduler broken #2231
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
Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||||||||||||
CI Feedback 🧐(Feedback updated until commit 9b43388)A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
User description
IMPORTANT: Please sign the Developer Certificate of Origin
Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:
Describe your changes
Issue ticket number and link
Code checklist before requesting a review
PR Type
Enhancement, Bug fix
Description
Major architectural refactor from poller to gateway model: Comprehensive rename and restructuring of the entire codebase to replace the poller-based architecture with a new gateway-based push-first communication model
Multi-tenant support: Implemented full multi-tenant architecture with tenant ID and slug propagation throughout the system
Gateway monitoring and status management: New comprehensive gateway health checking, offline/recovery detection, and alert handling with periodic monitoring and streaming status report support
NATS bootstrap and account management: Added new NATS bootstrap functionality with JWT and credentials file management, supporting multi-tenant routing and operator/account generation
Push-based result delivery: Refactored sync service to use gateway client for push-based result delivery instead of pull-based KV storage
Dynamic configuration updates: Implemented gateway enrollment, config polling, and heartbeat loops for dynamic configuration management
Protobuf message updates: Refactored protobuf messages from poller to gateway architecture with new agent-gateway communication types
Removed legacy components: Deleted poller package, poller-related CLI commands, and associated infrastructure code
Updated terminology: Systematic updates across API documentation, SNMP checker, edge onboarding, and all related services
Diagram Walkthrough
File Walkthrough
6 files
monitoring.pb.go
Refactor protobuf messages from poller to gateway architectureproto/monitoring.pb.go
PollerIdfield toGatewayIdacross multiple message types(
StatusRequest,ResultsRequest,StatusResponse,ResultsResponse)PollerStatusRequest,PollerStatusResponse, andServiceStatusmessage typesPollerStatusChunkwith newGatewayStatusRequest,GatewayStatusResponse, andGatewayStatusChunktypesGatewayServiceStatusmessage type with tenant-related fields(
TenantId,TenantSlug)AgentHelloRequest,AgentHelloResponse,AgentConfigRequest,AgentConfigResponse,AgentCheckConfignats_bootstrap.go
Add comprehensive NATS bootstrap and configuration managementpkg/cli/nats_bootstrap.go
nats-bootstrapandadmin natssubcommandsand credentials file management
account listing via Core API
and JSON output formats
service.go
Multi-tenant gateway push architecture with dynamic configpkg/sync/service.go
gateway push-first communication model
for push-based result delivery
per-tenant source configuration management
dynamic configuration updates
deprecated pull-based GetResults API
gateways.go
Complete gateway monitoring and status management systempkg/core/gateways.go
implementation with 1540 lines of core functionality
alert handling with periodic monitoring
reassembly and service message handling
integration with service registry and event publishing
edge_onboarding.go
Rename poller to gateway terminology in edge onboardingpkg/core/edge_onboarding.go
pollerreferences togatewaythroughout theedge onboarding service (200+ occurrences)
reflect gateway terminology
EdgeOnboardingComponentTypeSynccomponent type inpackage creation and validation
config/pollers/toconfig/gateways/andrelated metadata field names
main.go
Update SNMP checker to use gateway terminologycmd/checkers/snmp/main.go
NewSNMPPollerServiceto
NewSNMPGatewayServicesnmp.Pollertosnmp.Gatewayto align withgateway terminology
1 files
main.go
Update API documentation terminologycmd/core/main.go
in Swagger documentation
2 files
prod.exs
Add Elixir production configurationelixir/serviceradar_agent_gateway/config/prod.exs
infofor production environmentdev.exs
Development configuration for Elixir gateway serviceelixir/serviceradar_agent_gateway/config/dev.exs
2 files
nats_account.pb.go
NATS account management protobuf definitionsproto/nats_account.pb.go
message types and 1 enum
operator bootstrap functionality
credential generation, and JWT signing
nats_account_grpc.pb.go
Generated gRPC code for NATS account serviceproto/nats_account_grpc.pb.go
operations
creation, and credential generation
account management
1 files
mock_armis.go
Remove KVWriter from Armis mock interfacespkg/sync/integrations/armis/mock_armis.go
KVWriterinterface frommocked interfaces
101 files