Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
9991b6d
[ENG-2667] Fix copybara no-op failures for go/ package replacements (…
dylanratcliffe Feb 23, 2026
0e5794a
Blast propagation documentation (#3979)
getinnocuous Feb 24, 2026
2d1e9b7
chore(deps): update golang docker tag to v1.26 (#3869)
renovate[bot] Feb 24, 2026
588ccf1
Eng 2435 create networksubnet adapter (#3978)
Lionel-Wilson Feb 24, 2026
936dec4
Add Azure Gallery Applications Client and Adapter (#3986)
Lionel-Wilson Feb 24, 2026
8ed02db
chore(deps): lock file maintenance (#3969)
renovate[bot] Feb 24, 2026
0ba563f
fix(deps): update google.golang.org/genproto/googleapis/rpc digest to…
renovate[bot] Feb 24, 2026
3481385
Final blast propagation cleanup (#3985)
getinnocuous Feb 24, 2026
d0f3c1c
Add Azure SQL Server Firewall Rule Client and Adapter (#3989)
Lionel-Wilson Feb 24, 2026
16336fb
[ENG-2763] Add GCP network tag relationship discovery (#4000)
DavidS-ovm Feb 25, 2026
e3e9c2a
Add Azure Private Endpoint Client and Adapter (#3998)
Lionel-Wilson Feb 25, 2026
b4a1bb0
[ENG-2781] Walk up directory tree to discover knowledge files (#4009)
jameslaneovermind Feb 25, 2026
70ceae3
Go fix (#3996)
DavidS-ovm Feb 26, 2026
049ef07
Add Azure Storage Encryption Scope Client and Adapter (#4014)
Lionel-Wilson Feb 26, 2026
52f8c5c
Add Azure documentation for configuration and category (#4015) (#4017)
Lionel-Wilson Feb 26, 2026
c5c203f
[ENG-2789] Prevent sources reporting healthy before adapters are init…
tphoney Feb 26, 2026
49ec810
Add Azure Virtual Network Peerings Client and Adapter (#4016)
Lionel-Wilson Feb 26, 2026
a7101df
Eng 2816 create networkroute adapter (#4020)
Lionel-Wilson Feb 26, 2026
84dde2f
Add Azure Security Rules Client and Adapter (#4021)
Lionel-Wilson Feb 26, 2026
29235c4
Network tag relationship follow-up (#4004)
tphoney Feb 26, 2026
e07a552
Add Azure SQL Server Virtual Network Rule Client and Adapter (#4024)
Lionel-Wilson Feb 26, 2026
c0c27d6
fix(deps): update google.golang.org/genproto/googleapis/rpc digest to…
renovate[bot] Feb 27, 2026
cfa1efa
fix(deps): update github.com/hashicorp/terraform-config-inspect diges…
renovate[bot] Feb 27, 2026
2961746
ci: fix markdownlint CI step and resolve all docs lint violations (#4…
DavidS-ovm Feb 27, 2026
1543975
Add PostgreSQL Flexible Server Firewall Rule Client and Adapter (#4040)
Lionel-Wilson Feb 27, 2026
cbbe5bf
Add a CI check for go fix (#4023)
DavidS-ovm Feb 27, 2026
2aa46e3
Add Azure Key Vault Key Client and Adapter (#4042)
Lionel-Wilson Feb 27, 2026
886f81c
docs(gcp): fix generated markdown lint issues (#4044)
tphoney Feb 27, 2026
957e484
Review prompt and feedback (#4041)
DavidS-ovm Feb 27, 2026
c7d8540
CI updates and outage-tracker db test fix (#4045)
DavidS-ovm Feb 27, 2026
c9d6807
Implement Azure Storage Private Endpoint Connection Client (#4048)
Lionel-Wilson Feb 27, 2026
a013ab9
Source image promotion (#4046)
DavidS-ovm Mar 2, 2026
c50fbf6
Add SQL Elastic Pool Client and Adapter (#4050)
DavidS-ovm Mar 2, 2026
a13c2c1
chore(deps): lock file maintenance (#4055)
DavidS-ovm Mar 2, 2026
cbbb8c6
Eng 2708 create documentdbprivateendpointconnection adapter (#4060)
Lionel-Wilson Mar 2, 2026
8e24013
fix(deps): update go (#3952)
renovate[bot] Mar 2, 2026
4283d88
Eng 2872 create batchbatchapplication adapter (#4063)
Lionel-Wilson Mar 2, 2026
b33b871
feat(sdp): add mappedItemRef to ItemDiff for LLM-mapped blast radius …
DavidS-ovm Mar 3, 2026
24cf2ce
Eng 2871 create batchbatchpool adapter (#4068)
DavidS-ovm Mar 3, 2026
5d7526f
Eng 2874 create computededicatedhost adapter (#4080)
Lionel-Wilson Mar 3, 2026
f7a8c85
Overmind knowledge list (#4079)
carabasdaniel Mar 3, 2026
a12ce90
ENG-2778 update and automate outdated screenshots and instructions on…
getinnocuous Mar 3, 2026
2e7a432
Go library updates (#4083)
DavidS-ovm Mar 3, 2026
011af98
Eng 2875 create computecapacityreservation adapter (#4081)
Lionel-Wilson Mar 3, 2026
dbb09da
GitHub Actions script injection (#4088)
DavidS-ovm Mar 3, 2026
0422179
[ENG-2935] Add tracing instrumentation for Source WaitGroups stuck di…
DavidS-ovm Mar 3, 2026
3748440
Add SQL Server Private Endpoint Connection Adapter and Tests (#4090)
Lionel-Wilson Mar 3, 2026
3e179ac
Eng 2882 create dbforpostgresqlflexibleserver private endpoint connec…
Lionel-Wilson Mar 3, 2026
b72b71b
[ENG-2678] Add OpenTofu registry links to customer docs (#4091)
DavidS-ovm Mar 3, 2026
b6378da
Eng 2881 create keyvaultmanagedhsmprivateendpointconnection adapter (…
Lionel-Wilson Mar 3, 2026
894d437
[ENG-2943] Switch to overmindtech/otelpgx fork (no acquire/prepare sp…
DavidS-ovm Mar 3, 2026
86423c3
[ENG-2893] Migrate charmbracelet/lipgloss/v2 to charm.land/lipgloss/v…
DavidS-ovm Mar 4, 2026
00e79e7
feat(cli): exit non-zero from knowledge list when invalid files (#4109)
carabasdaniel Mar 4, 2026
7470427
Area51 snapshot JSON format (#4075)
carabasdaniel Mar 4, 2026
dd2668c
Add Azure DNS Record Sets Client and Adapter Implementation (#4108)
Lionel-Wilson Mar 4, 2026
a9a38fe
Eng 2204 create microsoftnetworkprivatednszones adapter (#4111)
Lionel-Wilson Mar 4, 2026
2a44d7c
Implement Azure Application Security Groups Client and Adapter (#4114)
DavidS-ovm Mar 4, 2026
777d787
[ENG-2935] Fix captureGoroutineSummary thundering herd with singlefli…
DavidS-ovm Mar 4, 2026
c214001
[ENG-2960] Fix K8s Endpoints/EndpointSlice adapter links and backward…
tphoney Mar 5, 2026
2ca5ad0
perf: replace protojson.Format with proto.Size in publish tracing (#4…
DavidS-ovm Mar 5, 2026
71e8663
feat: add Azure Public IP Prefixes client and adapter (#4124)
Lionel-Wilson Mar 5, 2026
369f737
chore(deps): update github actions (major) (#4139)
renovate[bot] Mar 5, 2026
ce1ee72
Eng 2886 create networkddosprotectionplan adapter (#4129)
Lionel-Wilson Mar 5, 2026
8bbb2c7
feat: add Azure Virtual Network Gateways client and adapter (#4150)
Lionel-Wilson Mar 5, 2026
18f0c91
[ENG-2975] Increase ResponseSender heartbeat interval to 30s with jit…
DavidS-ovm Mar 5, 2026
5c1b60b
fix(deps): update go (#4163)
renovate[bot] Mar 6, 2026
35863ff
[ENG-2977] Implement BoltDB hash-based sharding for sdpcache (#4157)
DavidS-ovm Mar 6, 2026
fd808ca
Implement NAT Gateways Client and Adapter for Azure (#4169)
Lionel-Wilson Mar 6, 2026
8593a4e
fix(deps): update azure-sdk-for-go monorepo (major) (#4144)
renovate[bot] Mar 6, 2026
8dede06
chore(deps): lock file maintenance (#4182)
renovate[bot] Mar 9, 2026
00b1b01
fix: always attach goroutine profile on stuck waitgroup detection (#4…
DavidS-ovm Mar 9, 2026
f8bff30
feat: add MCP server skeleton with OAuth PRM and JWT auth (#4131)
DavidS-ovm Mar 9, 2026
987798e
Fix paths in .goreleaser.yaml for tracing version (#4187)
tphoney Mar 9, 2026
02c7feb
Run go mod tidy
actions-user Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,18 @@ jobs:
echo "Version: $VERSION"

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: depot/use-action@v1
- uses: depot/use-action@v1.3.1
with:
project: xnsnw3m20t

- name: Build and push container
uses: depot/build-push-action@v1
uses: depot/build-push-action@v1.17.0
id: build
with:
project: xnsnw3m20t
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/finalize-copybara-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,13 @@ jobs:
run: go mod tidy

- name: Commit and push go mod tidy changes
env:
HEAD_BRANCH: ${{ github.ref_name }}
run: |
if ! git diff --quiet go.mod go.sum; then
git add go.mod go.sum
git commit -m "Run go mod tidy"
git push origin ${{ github.ref_name }}
git push origin "$HEAD_BRANCH"
else
echo "No changes from go mod tidy"
fi
Expand Down Expand Up @@ -81,6 +83,7 @@ jobs:
AUTHOR_NAME: ${{ steps.author.outputs.name }}
AUTHOR_EMAIL: ${{ steps.author.outputs.email }}
GITHUB_USER: ${{ steps.author.outputs.github_user }}
HEAD_BRANCH: ${{ github.ref_name }}
run: |
# Build PR body
PR_BODY="## Copybara Sync - Release ${VERSION}
Expand All @@ -106,7 +109,7 @@ jobs:
# Create the PR
PR_URL=$(gh pr create \
--base main \
--head "${{ github.ref_name }}" \
--head "$HEAD_BRANCH" \
--title "Release ${VERSION}" \
--body "$PR_BODY")

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
cache: true

- name: Run GoReleaser (publish)
uses: goreleaser/goreleaser-action@v6
uses: goreleaser/goreleaser-action@v7
with:
version: latest
args: release --clean
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/tag-on-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ jobs:
steps:
- name: Extract version from branch name
id: version
env:
BRANCH: ${{ github.event.pull_request.head.ref }}
run: |
# Extract v1.2.3 from copybara/v1.2.3
BRANCH="${{ github.event.pull_request.head.ref }}"
VERSION=$(echo "$BRANCH" | sed 's|copybara/||')
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"
Expand Down Expand Up @@ -48,8 +49,8 @@ jobs:
- name: Delete copybara branch
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: ${{ github.event.pull_request.head.ref }}
run: |
BRANCH="${{ github.event.pull_request.head.ref }}"
echo "Deleting branch: $BRANCH"
git push origin --delete "$BRANCH" || echo "Branch may have already been deleted"

4 changes: 2 additions & 2 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ builds:
- linux
- windows
ldflags:
- -s -w -X github.com/overmindtech/cli/tracing.version={{.Version}}
- -s -w -X github.com/overmindtech/cli/go/tracing.version={{.Version}}
- binary: overmind
id: overmind-macos
env:
- CGO_ENABLED=0
goos:
- darwin
ldflags:
- -s -w -X github.com/overmindtech/cli/tracing.version={{.Version}}
- -s -w -X github.com/overmindtech/cli/go/tracing.version={{.Version}}

# For now we are going to disable signing MacOS packages. This works on Dylan's
# person laptop, but we haven't worked out a way to get this set up in a github
Expand Down
58 changes: 29 additions & 29 deletions .terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,14 @@ overmind --version
changes you make with `overmind terraform apply`, so that you can be sure
that your changes haven't had any unexpected downstream impact.

- `overmind knowledge list`

View which knowledge files Overmind would discover from your current location.
Knowledge files in `.overmind/knowledge/` teach the AI investigator about your
infrastructure context, standards, and approved patterns. This command shows the
resolved knowledge directory path, valid files with their metadata, and any
validation warnings for invalid files.

## Cloud Provider Support

The CLI automatically discovers AWS and GCP providers from your Terraform configuration.
Expand Down
9 changes: 2 additions & 7 deletions aws-source/adapters/adapterhelpers_get_list_adapter_v2.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"slices"
"time"

"github.com/overmindtech/cli/go/discovery"
Expand Down Expand Up @@ -135,13 +136,7 @@ func (s *GetListAdapterV2[ListInput, ListOutput, AWSItem, ClientStruct, Options]
return true
}

for _, s := range s.Scopes() {
if s == scope {
return true
}
}

return false
return slices.Contains(s.Scopes(), scope)
}

// Get retrieves an item from the adapter based on the provided scope, query, and
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ func TestListFuncPaginatorBuilder(t *testing.T) {
return output, nil
},
ItemMapper: func(query *string, scope string, awsItem string) (*sdp.Item, error) {
attrs, _ := sdp.ToAttributes(map[string]interface{}{
attrs, _ := sdp.ToAttributes(map[string]any{
"id": awsItem,
})
return &sdp.Item{
Expand Down
9 changes: 2 additions & 7 deletions aws-source/adapters/adapterhelpers_get_list_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"slices"
"time"

"buf.build/go/protovalidate"
Expand Down Expand Up @@ -108,13 +109,7 @@ func (s *GetListAdapter[AWSItem, ClientStruct, Options]) hasScope(scope string)
return true
}

for _, s := range s.Scopes() {
if s == scope {
return true
}
}

return false
return slices.Contains(s.Scopes(), scope)
}

// Get retrieves an item from the adapter based on the provided scope, query, and
Expand Down
28 changes: 0 additions & 28 deletions aws-source/adapters/adapterhelpers_shared_tests.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,34 +12,6 @@ import (
"github.com/overmindtech/cli/go/sdp-go"
)

func PtrString(v string) *string {
return &v
}

func PtrInt32(v int32) *int32 {
return &v
}

func PtrInt64(v int64) *int64 {
return &v
}

func PtrFloat32(v float32) *float32 {
return &v
}

func PtrFloat64(v float64) *float64 {
return &v
}

func PtrTime(v time.Time) *time.Time {
return &v
}

func PtrBool(v bool) *bool {
return &v
}

type Subnet struct {
ID *string
CIDR string
Expand Down
2 changes: 1 addition & 1 deletion aws-source/adapters/adapterhelpers_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ func GetAutoConfig(t *testing.T) (aws.Config, string, string) {
// Converts an interface to SDP attributes using the `sdp.ToAttributesSorted`
// function, and also allows the user to exclude certain top-level fields from
// the resulting attributes
func ToAttributesWithExclude(i interface{}, exclusions ...string) (*sdp.ItemAttributes, error) {
func ToAttributesWithExclude(i any, exclusions ...string) (*sdp.ItemAttributes, error) {
attrs, err := sdp.ToAttributesViaJson(i)
if err != nil {
return nil, err
Expand Down
26 changes: 13 additions & 13 deletions aws-source/adapters/apigateway-domain-name_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,21 +43,21 @@ import (

func TestDomainNameOutputMapper(t *testing.T) {
domainName := &types.DomainName{
CertificateArn: PtrString("arn:aws:acm:region:account-id:certificate/certificate-id"),
CertificateName: PtrString("certificate-name"),
CertificateUploadDate: PtrTime(time.Now()),
DistributionDomainName: PtrString("distribution-domain-name"),
DistributionHostedZoneId: PtrString("distribution-hosted-zone-id"),
DomainName: PtrString("domain-name"),
CertificateArn: new("arn:aws:acm:region:account-id:certificate/certificate-id"),
CertificateName: new("certificate-name"),
CertificateUploadDate: new(time.Now()),
DistributionDomainName: new("distribution-domain-name"),
DistributionHostedZoneId: new("distribution-hosted-zone-id"),
DomainName: new("domain-name"),
DomainNameStatus: types.DomainNameStatusAvailable,
DomainNameStatusMessage: PtrString("status-message"),
DomainNameStatusMessage: new("status-message"),
EndpointConfiguration: &types.EndpointConfiguration{Types: []types.EndpointType{types.EndpointTypeEdge}},
MutualTlsAuthentication: &types.MutualTlsAuthentication{TruststoreUri: PtrString("truststore-uri")},
OwnershipVerificationCertificateArn: PtrString("arn:aws:acm:region:account-id:certificate/ownership-verification-certificate-id"),
RegionalCertificateArn: PtrString("arn:aws:acm:region:account-id:certificate/regional-certificate-id"),
RegionalCertificateName: PtrString("regional-certificate-name"),
RegionalDomainName: PtrString("regional-domain-name"),
RegionalHostedZoneId: PtrString("regional-hosted-zone-id"),
MutualTlsAuthentication: &types.MutualTlsAuthentication{TruststoreUri: new("truststore-uri")},
OwnershipVerificationCertificateArn: new("arn:aws:acm:region:account-id:certificate/ownership-verification-certificate-id"),
RegionalCertificateArn: new("arn:aws:acm:region:account-id:certificate/regional-certificate-id"),
RegionalCertificateName: new("regional-certificate-name"),
RegionalDomainName: new("regional-domain-name"),
RegionalHostedZoneId: new("regional-hosted-zone-id"),
SecurityPolicy: types.SecurityPolicyTls12,
Tags: map[string]string{"key": "value"},
}
Expand Down
Loading