Skip to content

fix(config): canonicalise every AWS service alias in purchase suppressions, not only ec2/compute #1420

Closed

Description

@cristim

#1412 (fixed by #1419) made purchase suppressions match AWS EC2 recs whether they carry ec2 or the canonical compute slug. The same double-buy class exists for the other AWS alias pairs, which the provider treats as equivalent (providers/aws provider.go ~468-476) and which mapServiceSlug in internal/purchase/execution.go ~1268-1281 accepts:

  • rds / relational-db
  • elasticache / cache
  • opensearch / search
  • redshift / data-warehouse

So an API purchase sent as aws/relational-db writes a suppression under that slug, which misses the scheduler's aws/rds rec for the same capacity. That capacity can then be shown, and bought, again.

Proposed fix: generalise config.CanonicalSuppressionService (added in #1419) to map every AWS alias pair to one canonical value, ideally derived from the same table mapServiceSlug uses so the two can't drift. Add a test per pair in both directions, and keep Azure/GCP unchanged. Found by the independent review of #1419.

Activity

  1. added a commit that references this issue on Oct 26, 2026
    bee0627
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions