Skip to content

Commit 87cbb3e

Browse files
getinnocuouscursoragent
authored andcommitted
Blast propagation proto removal (#3971)
Reserve `BlastPropagation` and `followOnlyBlastPropagation` fields from SDP protos to maintain wire-format compatibility and update documentation and tests to reflect their deprecation. This PR completes Phase 3 of the "Remove Blast Propagation Information" project (ENG-2404), following the prior code removal (ENG-2647). It ensures that old messages can still be parsed safely and prevents accidental reuse of field numbers. --- Linear Issue: [ENG-2404](https://linear.app/overmind/issue/ENG-2404/sdp-reserve-blastpropagation-and-followonlyblastpropagation-from) <p><a href="https://cursor.com/agents?id=bc-9c62732b-1a27-42af-abf2-8c9866357e8b"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-9c62732b-1a27-42af-abf2-8c9866357e8b"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</p> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Touches core protobuf contracts and regenerated client code; downstream services/clients relying on `blastPropagation` fields or reverse-edge filtering may break if not updated in lockstep. > > **Overview** > This PR **deprecates and effectively removes blast-propagation metadata from the SDP surface** by reserving the `BlastPropagation` fields in `sdp/items.proto` and `sdp/revlink.proto` (and regenerating Go/TS protobuf outputs) so old messages can still be parsed without allowing field-number reuse. > > It updates sources and tooling to stop setting/expecting `BlastPropagation` on links (e.g., AWS CloudWatch metric suggested queries, EC2 address links, snapshot edge→linked-item conversion), and strips Azure integration tests and docs/prompting guidance that referenced propagation semantics, reflecting the move to AI-driven blast radius calculation. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 58035be2747c0f212919a366e08717efd786b30f. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> GitOrigin-RevId: ecdcb08090547689567725f2c37d33617b0456aa
1 parent 1a176ab commit 87cbb3e

40 files changed

Lines changed: 82 additions & 872 deletions

aws-source/adapters/cloudwatch_metric_links.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@ func SuggestedQuery(namespace string, scope string, dimensions []types.Dimension
2424
var query *sdp.Query
2525
var err error
2626

27-
bp := &sdp.BlastPropagation{
28-
// These links are the metrics that feed the alarms. If the thing that
29-
// we're measuring changes, we definitely want the alarm to be in the
30-
// blast radius. But an alarm on its own doesn't affect these things
31-
In: false,
32-
Out: true,
33-
}
34-
3527
accountID, _, err := ParseScope(scope)
3628

3729
if err != nil {
@@ -244,7 +236,6 @@ func SuggestedQuery(namespace string, scope string, dimensions []types.Dimension
244236

245237
return &sdp.LinkedItemQuery{
246238
Query: query,
247-
BlastPropagation: bp,
248239
}, err
249240
}
250241

aws-source/adapters/ec2-address.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,6 @@ func addressOutputMapper(_ context.Context, _ *ec2.Client, scope string, _ *ec2.
3434
var err error
3535
var attrs *sdp.ItemAttributes
3636

37-
// An EC2-address, along with an IP is an item that inherently links things
38-
// and therefore should propagate blast radius in both directions on all
39-
// links
40-
bp := &sdp.BlastPropagation{
41-
In: true,
42-
Out: true,
43-
}
44-
4537
for _, address := range output.Addresses {
4638
attrs, err = ToAttributesWithExclude(address, "tags")
4739

@@ -62,7 +54,6 @@ func addressOutputMapper(_ context.Context, _ *ec2.Client, scope string, _ *ec2.
6254
Query: *address.PublicIp,
6355
Scope: "global",
6456
},
65-
BlastPropagation: bp,
6657
},
6758
},
6859
Tags: ec2TagsToMap(address.Tags),
@@ -76,7 +67,6 @@ func addressOutputMapper(_ context.Context, _ *ec2.Client, scope string, _ *ec2.
7667
Query: *address.InstanceId,
7768
Scope: scope,
7869
},
79-
BlastPropagation: bp,
8070
})
8171
}
8272

@@ -88,7 +78,6 @@ func addressOutputMapper(_ context.Context, _ *ec2.Client, scope string, _ *ec2.
8878
Query: *address.CarrierIp,
8979
Scope: "global",
9080
},
91-
BlastPropagation: bp,
9281
})
9382
}
9483

@@ -100,7 +89,6 @@ func addressOutputMapper(_ context.Context, _ *ec2.Client, scope string, _ *ec2.
10089
Query: *address.CustomerOwnedIp,
10190
Scope: "global",
10291
},
103-
BlastPropagation: bp,
10492
})
10593
}
10694

@@ -112,7 +100,6 @@ func addressOutputMapper(_ context.Context, _ *ec2.Client, scope string, _ *ec2.
112100
Query: *address.NetworkInterfaceId,
113101
Scope: scope,
114102
},
115-
BlastPropagation: bp,
116103
})
117104
}
118105

@@ -124,7 +111,6 @@ func addressOutputMapper(_ context.Context, _ *ec2.Client, scope string, _ *ec2.
124111
Query: *address.PrivateIpAddress,
125112
Scope: "global",
126113
},
127-
BlastPropagation: bp,
128114
})
129115
}
130116

go/sdp-go/items.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@ import (
2020

2121
const WILDCARD = "*"
2222

23-
// IsEqual compares two BlastPropagation settings for equality by checking
24-
// both the In and Out propagation directions.
25-
func (bp *BlastPropagation) IsEqual(other *BlastPropagation) bool {
26-
return bp.GetIn() == other.GetIn() && bp.GetOut() == other.GetOut()
27-
}
28-
2923
// UniqueAttributeValue returns the value of whatever the Unique Attribute is
3024
// for this item. This will then be converted to a string and returned
3125
func (i *Item) UniqueAttributeValue() string {

go/sdp-go/items.pb.go

Lines changed: 61 additions & 133 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)