feat: support multiple accounts, regions, and clusters per provider#643
Conversation
Greptile SummaryThis PR adds multi-instance support to five provider integrations (Grafana, AWS, Datadog, Honeycomb, Coralogix) through a new v2 store schema, The three P1 regressions from PR #527 are explicitly addressed (AWS Confidence Score: 5/5Safe to merge — all previously flagged P1 issues are resolved and the one remaining finding is a P2 edge case affecting only uppercase tag values in env-sourced instances. All three PR #527 P1 bugs are fixed with named regression tests. Previous review threads about the propagation condition mismatch, _STRUCTURAL_RECORD_FIELDS duplication, and the Grafana hint silent fallback are all addressed in this revision. The only new finding (tag case normalization for env-sourced instances) is a P2 that only bites users who intentionally supply uppercase tag values in *_INSTANCES JSON, which is unlikely given the documentation examples all use lowercase. app/integrations/catalog.py — tag normalization gap in _parse_instances_env (P2). Important Files Changed
|
|
@Devesh36 please again review. |
|
Yeah, looks good. Really appreciate the contribution. @hamzzaaamalik |
Adds multi-instance support to integrations a single provider (Grafana, AWS, Datadog, Honeycomb, Coralogix) can now have multiple named, tagged instances configured via
*_INSTANCESJSON env vars or a new v2 store schema. Every existing single-instance config keeps working unchanged: legacy env vars are untouched, v1 store files auto-migrate on load,resolved_integrations[<service>]still returns the flat default-instance dict. New selector helpers (get_instance_by_name,get_instances_by_tag) plus Grafana end-to-end selection via agrafana_instancealert hint. Explicitly designed around PR #527's three P1 bugs (AWSrole_arnpath mismatch, env data loss via merge-by-service, filtered-get leak) with named regression tests for each. 54 new tests; full suite 2510/2510; zero existing tests modified.Closes #475.