diff --git a/aws-source/build/package/Dockerfile b/aws-source/build/package/Dockerfile index 29f214a2..e4742809 100644 --- a/aws-source/build/package/Dockerfile +++ b/aws-source/build/package/Dockerfile @@ -1,5 +1,5 @@ # Build the source binary -FROM golang:1.27.0-alpine3.23 AS builder +FROM golang:1.27.1-alpine3.23 AS builder ARG TARGETOS ARG TARGETARCH ARG BUILD_VERSION diff --git a/go.mod b/go.mod index 4d2a909e..bee67ec9 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/overmindtech/cli -go 1.27.0 +go 1.27.1 replace github.com/anthropics/anthropic-sdk-go => github.com/anthropics/anthropic-sdk-go v0.2.0-alpha.4 @@ -69,44 +69,44 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault/v2 v2.0.2 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/maintenance/armmaintenance v1.3.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.3.0 - github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11 v11.0.0 + github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12 v12.0.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/operationalinsights/armoperationalinsights/v3 v3.0.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/postgresql/armpostgresqlflexibleservers/v5 v5.0.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns/v2 v2.0.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4 v4.0.0 - github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/sql/armsql/v2 v2.0.0-beta.8 - github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4 v4.1.0 + github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/sql/armsql/v2 v2.0.0-beta.9 + github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4 v4.2.0 github.com/Masterminds/semver/v3 v3.5.0 github.com/MrAlias/otel-schema-utils v0.4.0-alpha github.com/auth0/go-jwt-middleware/v3 v3.3.0 - github.com/aws/aws-sdk-go-v2 v1.47.0 - github.com/aws/aws-sdk-go-v2/config v1.33.4 - github.com/aws/aws-sdk-go-v2/credentials v1.20.4 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 - github.com/aws/aws-sdk-go-v2/service/apigateway v1.47.0 - github.com/aws/aws-sdk-go-v2/service/autoscaling v1.78.0 - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.73.0 - github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.72.0 - github.com/aws/aws-sdk-go-v2/service/directconnect v1.50.0 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.68.0 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.332.0 - github.com/aws/aws-sdk-go-v2/service/ecs v1.97.0 - github.com/aws/aws-sdk-go-v2/service/efs v1.49.0 - github.com/aws/aws-sdk-go-v2/service/eks v1.99.0 - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.41.0 - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.63.0 - github.com/aws/aws-sdk-go-v2/service/iam v1.64.0 - github.com/aws/aws-sdk-go-v2/service/kms v1.60.0 - github.com/aws/aws-sdk-go-v2/service/lambda v1.108.0 - github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.72.0 - github.com/aws/aws-sdk-go-v2/service/networkmanager v1.50.0 - github.com/aws/aws-sdk-go-v2/service/rds v1.129.0 - github.com/aws/aws-sdk-go-v2/service/route53 v1.70.0 - github.com/aws/aws-sdk-go-v2/service/s3 v1.113.0 - github.com/aws/aws-sdk-go-v2/service/sns v1.47.0 - github.com/aws/aws-sdk-go-v2/service/sqs v1.52.0 - github.com/aws/aws-sdk-go-v2/service/ssm v1.78.0 - github.com/aws/aws-sdk-go-v2/service/sts v1.50.0 + github.com/aws/aws-sdk-go-v2 v1.47.1 + github.com/aws/aws-sdk-go-v2/config v1.33.6 + github.com/aws/aws-sdk-go-v2/credentials v1.20.6 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.1 + github.com/aws/aws-sdk-go-v2/service/apigateway v1.50.0 + github.com/aws/aws-sdk-go-v2/service/autoscaling v1.78.1 + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.73.1 + github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.73.0 + github.com/aws/aws-sdk-go-v2/service/directconnect v1.53.0 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.69.1 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.336.1 + github.com/aws/aws-sdk-go-v2/service/ecs v1.99.1 + github.com/aws/aws-sdk-go-v2/service/efs v1.49.1 + github.com/aws/aws-sdk-go-v2/service/eks v1.101.0 + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.41.1 + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.63.1 + github.com/aws/aws-sdk-go-v2/service/iam v1.64.1 + github.com/aws/aws-sdk-go-v2/service/kms v1.61.1 + github.com/aws/aws-sdk-go-v2/service/lambda v1.110.0 + github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.74.0 + github.com/aws/aws-sdk-go-v2/service/networkmanager v1.50.1 + github.com/aws/aws-sdk-go-v2/service/rds v1.129.1 + github.com/aws/aws-sdk-go-v2/service/route53 v1.70.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.113.4 + github.com/aws/aws-sdk-go-v2/service/sns v1.47.2 + github.com/aws/aws-sdk-go-v2/service/sqs v1.52.1 + github.com/aws/aws-sdk-go-v2/service/ssm v1.78.1 + github.com/aws/aws-sdk-go-v2/service/sts v1.51.1 github.com/aws/smithy-go v1.28.1 github.com/cenkalti/backoff/v7 v7.0.0 github.com/coder/websocket v1.8.15 @@ -199,17 +199,17 @@ require ( github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/apparentlymart/go-textseg/v17 v17.0.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.13.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.10.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.38.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.13.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.4 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.10.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.38.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.1 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index a7e38e59..af291ee6 100644 --- a/go.sum +++ b/go.sum @@ -116,8 +116,8 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/maintenance/armmaintenance github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/maintenance/armmaintenance v1.3.0/go.mod h1:o8YD+BbSeK8ANH4SpxQFCiz5OIFKgHxV1uwF2FrQJYY= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.3.0 h1:L7G3dExHBgUxsO3qpTGhk/P2dgnYyW48yn7AO33Tbek= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.3.0/go.mod h1:Ms6gYEy0+A2knfKrwdatsggTXYA2+ICKug8w7STorFw= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11 v11.0.0 h1:6BG7Llwh8IcxjCQu7KZ7jMjtoMhKjvVP+pOmdQh1Nyw= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11 v11.0.0/go.mod h1:R3CG1mTV3BAxKaJl0hG2dU7FusEXL4vE4uCWKac01ew= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12 v12.0.0 h1:KSPTp+F/wadsyVKqsMxsooMmlROoQ77Mo8cft+5ebOM= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12 v12.0.0/go.mod h1:K/MJIfdVb0kcukInWroiX9aLeX5rjK49NkvQXwuAqtw= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/operationalinsights/armoperationalinsights/v3 v3.0.0 h1:PQCYE8OR+vgoTJ1Vq6EutuoMN8n6LgJygxMSHNTsuYY= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/operationalinsights/armoperationalinsights/v3 v3.0.0/go.mod h1:s9hOdyntXLv/Y+IzJ6+O021/eAo7omS8Y6KwwICcG58= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/postgresql/armpostgresqlflexibleservers/v5 v5.0.0 h1:S7K+MLPEYe+g9AX9dLKldBpYV03bPl7zeDaWhiNDqqs= @@ -132,10 +132,10 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v3 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v3 v3.0.1/go.mod h1:8h8yhzh9o+0HeSIhUxYny+rEQajScrfIpNktvgYG3Q8= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4 v4.0.0 h1:LXGvNeGX6VLx1S+wk3bbWrYWZuVow84Mny4T1I0CgBw= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4 v4.0.0/go.mod h1:IJLGVEPS/CqR2k0Q+EzmHqus1F69g5TCYzLFSWUM0Yw= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/sql/armsql/v2 v2.0.0-beta.8 h1:X5wmqo6zK8gS5sV6UmKbtH5MZCJghpY5QbtAspM2Vuo= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/sql/armsql/v2 v2.0.0-beta.8/go.mod h1:SgutGqhIddBTH0bzLUG6rkzXieokCtf4TgPBtCSUKTI= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4 v4.1.0 h1:LbdgZl0olU2QZ6oPuFRfjq6oSAE+Y3afpAMTtH1O9gY= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4 v4.1.0/go.mod h1:U1yQRidgRofesJpSYiJWogdsrj24Xa0J4lR1HYb9Bd8= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/sql/armsql/v2 v2.0.0-beta.9 h1:NuDFx/l+n+xZoEQxih0Qr19MrD9awtNww9Ev1HDmPWY= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/sql/armsql/v2 v2.0.0-beta.9/go.mod h1:tqP6YJ3nUnAJKv0IlQV0sDyg9pIu+ZXfuInBsCAfiU0= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4 v4.2.0 h1:lu3BSyR6E7pgc4JRPuF4h7+M6XMuK+HwgiH3CYEQG5c= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4 v4.2.0/go.mod h1:ALlHLzp+izhdNlBjJTu87A1bl4EO6CJtJSZZ0K/dowg= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= github.com/AzureAD/microsoft-authentication-library-for-go v1.8.0 h1:Nljr4q1GRA/5vCrMONS+g4u4LRHNgOXVSh3O43J2CnI= @@ -185,86 +185,86 @@ github.com/apparentlymart/go-textseg/v17 v17.0.1 h1:bpMXRgQ5cEoRNuQke1a80/Nl6w3G github.com/apparentlymart/go-textseg/v17 v17.0.1/go.mod h1:fa8X4jgGeevslICIY6LcdjkSecWnXmYd9Lk34z/VxZs= github.com/auth0/go-jwt-middleware/v3 v3.3.0 h1:nRALRLGsUdWgxX0knqwp60YxiYypeZYfhr+yFCvHoGY= github.com/auth0/go-jwt-middleware/v3 v3.3.0/go.mod h1:WXL/zFf3nuQJWQOVj3hGUQ289ixKVSrFGwZn6LxaQsw= -github.com/aws/aws-sdk-go-v2 v1.47.0 h1:0jsHallhJCeaU0Ko48c/3FK1ctOQ7NpzggxriJOQ8MQ= -github.com/aws/aws-sdk-go-v2 v1.47.0/go.mod h1:bttEH6JqnUL8LepvDVfdrds/fZ5bCIxzpe3abyUrhDU= +github.com/aws/aws-sdk-go-v2 v1.47.1 h1:uOIZnp4PK3ZhKI0dNrJrhTEsLxbpXHTAJlwoS1pvAtw= +github.com/aws/aws-sdk-go-v2 v1.47.1/go.mod h1:bttEH6JqnUL8LepvDVfdrds/fZ5bCIxzpe3abyUrhDU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20 h1:GPRlPwz40I2B2VrBEASOA3Bi77NyeqejNLkifosX0rs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20/go.mod h1:g7PNzKcsOKWb4fkSRBA7BZVAS6Y8IcxzN+nRohhQ1Q8= -github.com/aws/aws-sdk-go-v2/config v1.33.4 h1:FzvkXKSzwqHni4U7nDigHg4jjtqMpVUuHgmZfSoJVQ0= -github.com/aws/aws-sdk-go-v2/config v1.33.4/go.mod h1:VZqGZnZsCWVfK/iGPptJIyNIX3XEX6iQU2Rel4sLrr8= -github.com/aws/aws-sdk-go-v2/credentials v1.20.4 h1:hTvrJJseKbvw32kmiE0G+u/9ZqpqscjDrTigHIXP2qs= -github.com/aws/aws-sdk-go-v2/credentials v1.20.4/go.mod h1:gWp9O1ZBWwpcIrgV+mVHk4gZUurAEDkgypu/OXOlIaw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 h1:AM4hHjww+PSFtt6E+UrBrPlZkWsePCLEt9AjkfQX+yM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0/go.mod h1:3x/yXezeQjpOvBb4jEMxrS8SXvpdvJ5abv6l5c1gWM8= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3 h1:Hp/VgjP0BysR3OgLlR057Vz2LcbbVnoWeJ+3qWiS/fY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3/go.mod h1:nwGV5qw7F1IZPgxCvA/ph8N2TAuz+BkRG/bXn808qMA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3 h1:MUaM4f+kj1ZIBPZfUS8cxP1GKXXZtHJjAthy93AN7SM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3/go.mod h1:6YmVmEVRI5ZZzRjCSsb9SryKH0hAlMRdgA7kG9aDvBU= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3 h1:fuSCw4Z2qfRCztMPO3GXJNSiEp6Wee+WOLwrHHUMy9c= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3/go.mod h1:6SxcHheD1pPR5+kWm1wGvjlL/YqUsh267sAfEmN4K7A= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.47.0 h1:9Af5gpMRD70seN4LZDAPVOMvg2x1/bV+9Su67K4xx/g= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.47.0/go.mod h1:EIFk+g5F6UY9FQ4exdbvuTmxFIG68qQy3+f56TlWwB4= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.78.0 h1:CN7ZkNEZb5Ob0DtntBQLE7cdpT13gzS1Gn+QMoZOjHA= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.78.0/go.mod h1:nkWNnRTHDlkZZrZzhmcPrOkoF+werzJzCOHGpbIpcfA= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.73.0 h1:HPWvupnWpnWakePyUlEPCPgY2HDEmcwB1Pc7Ap5zz/U= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.73.0/go.mod h1:yau58e5HNLT0ZbIOk5u91J7B9JRfP2SiEqJiySQE8Q0= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.72.0 h1:BAVXU2PW/FQZUWdTZ9VQZPpbCF711hEQ0l6bW8FKl1I= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.72.0/go.mod h1:4ZX78yzuIXJ78KT4eiKxQ7bUUm/Oe5xWvKzWFoL6x+g= -github.com/aws/aws-sdk-go-v2/service/directconnect v1.50.0 h1:y8N9en6RdYWkeM/dDcMhrx7uA+z2rt7xR0jAblPbkZM= -github.com/aws/aws-sdk-go-v2/service/directconnect v1.50.0/go.mod h1:NC/+00QIKFQe7J6WTDC8zWiXJQYvKPkOsX7+9xCq/ac= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.68.0 h1:b1D6b5N6cIwLKP54WxDMQyRiRxzCPfcrvMJQbG1Oozs= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.68.0/go.mod h1:d7bRXj2c3K52qdd62I1c0o+ua/44QScJFj6EP0ufZeI= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.332.0 h1:T9rFYUxhZEBmnIgrzKZjd/0xMsWRF+brY/Gpgf5rc40= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.332.0/go.mod h1:2o5yJcnWuaBOsnNqlO1reYs1OQffFkqf2xJ2mmMWNH4= -github.com/aws/aws-sdk-go-v2/service/ecs v1.97.0 h1:uzFo5cX+i6nQTI1J0W3n90IYK6RKufkCyR9DfvD853k= -github.com/aws/aws-sdk-go-v2/service/ecs v1.97.0/go.mod h1:n91ZROStH0gUedR5Rh4RKLyHXG+XiDGcEi3rvTt2HCY= -github.com/aws/aws-sdk-go-v2/service/efs v1.49.0 h1:C5YKazI/2RBNaC7VjD3d4iyHlPuM+Hc6ALekEj9DnUs= -github.com/aws/aws-sdk-go-v2/service/efs v1.49.0/go.mod h1:Y1/nJ3u8kA87NuX5bzRVcidansAy04vY7Fr2+4xvtpc= -github.com/aws/aws-sdk-go-v2/service/eks v1.99.0 h1:DJhHBuKLyXU5krDg94uUwAbU4828vmurQd0O/VBanVk= -github.com/aws/aws-sdk-go-v2/service/eks v1.99.0/go.mod h1:flOCIr3poFqMcmCXl5ZZIhtDm0/n8tofP/Tio422uO0= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.41.0 h1:yPaN/BdbgXzEF4QBJR0MUmRB7026QEYQBjSjL6H2Q3I= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.41.0/go.mod h1:EQ+Yofw4BAZ1YUZRbCB7EksflOCaO6ttoNnIuIRqyHg= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.63.0 h1:1DabWJRKuH0NlRFz46Hjre4JiG1rFveqhJCp6opWcrY= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.63.0/go.mod h1:b4kwulEESlsKCSoAFD0PuUJlFskjwct+7odV4wCBJYE= -github.com/aws/aws-sdk-go-v2/service/iam v1.64.0 h1:CjgiPuyW26WQeQ934DxMNuwkDg6+ziqgPN9lHQ5rwYA= -github.com/aws/aws-sdk-go-v2/service/iam v1.64.0/go.mod h1:TI7OT5XlpXfs4BM4Y5NXcHTiyBwkqv6NpGiM4/usn5A= +github.com/aws/aws-sdk-go-v2/config v1.33.6 h1:MBjkSTLczek/UgiK+EYPIoRTqE7gP8vtW3OFbFo7Nug= +github.com/aws/aws-sdk-go-v2/config v1.33.6/go.mod h1:grRAFzdAZJrwcbasJRg2MPvIrVjtlfXllHssN6+E1JE= +github.com/aws/aws-sdk-go-v2/credentials v1.20.6 h1:NpAFXCU7NzXNkdGK3zQTtsRJ+3v9tZQV0xcdRw8uBdw= +github.com/aws/aws-sdk-go-v2/credentials v1.20.6/go.mod h1:mcZCoiPnyMvP8VMNbygNX5lLqSlkYJIMPODylQMurOk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.1 h1:8gALAAmacnIXh+z6VkdDanv4/IkG5APdg4DZLDTmLog= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.1/go.mod h1:Z7IJhJU+poOdJjUR2wpyY21ossQ1XS/R3Lk9Msq5kM4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.4 h1:CLq4+8UHCI+ZZYl/EuJxXovaIVN2xeeT8JV+dsApQ5E= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.4/go.mod h1:Wv4q5sAM04xAMkoOedxLx2inVf6K5FdxYp+A61L+q/0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.4 h1:dD4MR81I7YkpEBRk6UP9rocC2QnT3qVuXwzlYTtfGEs= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.4/go.mod h1:EcXV1kAFd5XwSkDHlj94gnF3q5CkJyYiIJfH8N0VmrE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.4 h1:7Wo47d/xn/7KttCSBd8EGYeZ7ULRFRkUHr6vkZPBzVQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.4/go.mod h1:tDB2IVC1xC3vX8o+6uRlzhTxP3g1b77CZXFX/oD2FnQ= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.50.0 h1:qqmEcIHue+Qj2+JpmbJiBaBuTD6/m5VazEAXj2lxtpI= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.50.0/go.mod h1:vohdhhN7O8YZl/zdlHuso9wV8Z3PRLlF98asxJAVVds= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.78.1 h1:nKss1SHiv0fjLRpgy9RyPT8QsEP8ufj8ZgvG62s2Wdg= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.78.1/go.mod h1:4roDw8gYFhAVo1b2ckuzEa0QPtpRXgU4o+dn44IvNF0= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.73.1 h1:/U9s1rmIvfAzSP9kg3k9CIB9wYM1l8ukje/+tx1J7yk= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.73.1/go.mod h1:LTDZxT77siIgcH1AsJLiEmNkwycK4V0pmbwk8UUqdDc= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.73.0 h1:OP6MlUKPwRwYJulM6brj+OdQzjbcSpVBujPi7GRagng= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.73.0/go.mod h1:7PauoCasn/NoAuZYkmRbZ8TjFJ4dr0i2SX4v64hfcBQ= +github.com/aws/aws-sdk-go-v2/service/directconnect v1.53.0 h1:pYktzhm8uW/h4m31zaojmS369vWy0hxQuRftL6bTmAI= +github.com/aws/aws-sdk-go-v2/service/directconnect v1.53.0/go.mod h1:gr5i+FfjdanF+yBm8I0EBVmf2dsczjR4tnOdAWLNNoU= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.69.1 h1:bKwiQA6SKqFXBO+1IwP/hTwCU5RlqeitG4gVvSuMN8U= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.69.1/go.mod h1:Gm+i2GlUsFNlzoBq8VXF44XHbKANn3tV8nYBBp3rN8Q= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.336.1 h1:qiuU5+MtLJV2CAxLZYA/GPuvrsScBIk2am+QNAoHmMM= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.336.1/go.mod h1:d0e0acsyS3WnFCFJiByGwnUgPpn2wAk97PTIksHN2NI= +github.com/aws/aws-sdk-go-v2/service/ecs v1.99.1 h1:rVVvtFSTJnHJ+tyrFvzvFGaKv09tygTCAHjFtHju6AY= +github.com/aws/aws-sdk-go-v2/service/ecs v1.99.1/go.mod h1:1BjycrF8UaNiy2N2Y+piEMKuOtoR7FeYwYTMhEY5Gp8= +github.com/aws/aws-sdk-go-v2/service/efs v1.49.1 h1:kQojJZq2ci84CcmLgL+vjKZ6qvpK98axyj/g5DIsfgs= +github.com/aws/aws-sdk-go-v2/service/efs v1.49.1/go.mod h1:OE8zILWZ9g0SqDh4IRPeVT817c9lKXFF44KgMBb8Syk= +github.com/aws/aws-sdk-go-v2/service/eks v1.101.0 h1:HqvP9Klnyc9OJj8hXVmFP4UhWrvRKvp+0H/sfmagVr4= +github.com/aws/aws-sdk-go-v2/service/eks v1.101.0/go.mod h1:7fl6nJPtJXGRN2f4HJhtFz3y52cWNfS+v/UhV7Ea/x0= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.41.1 h1:cmI8LjXZNWNncpvAXz+B4+On8USXIsF4HbkzCsFKrFs= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.41.1/go.mod h1:pJ1hV91gpz+X1MvqnbpKmP3hANtzOo/643pBVBKFAXc= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.63.1 h1:EEnFRsc58n3vgAM53KfNN8bKQedMWVYINZwZbtnnoMU= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.63.1/go.mod h1:6fHHZMaRnR4CQno5I1DlMBNk0uGJ5P95w3E2HXcoZDw= +github.com/aws/aws-sdk-go-v2/service/iam v1.64.1 h1:Uwitin0mXJ7iG5rFuuja3aG9/c84LpyyZUhaTiwZj7w= +github.com/aws/aws-sdk-go-v2/service/iam v1.64.1/go.mod h1:UUmRA59lum0YCVY7b8pz1Qaxa2Jx0rWFm0vX6YZPGfU= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19 h1:bAdDl/HkGCcGPoe25ToSHEw23VIxt6CT5fLcg111BKg= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19/go.mod h1:KaUzbLxv4CeSxh6ZCl9B4m7CuFenS8kUEaDs+f/DQr4= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3 h1:BHKCSX4QXERe8So8rbWqaM7owqOmDJxATXgJwGng22A= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3/go.mod h1:GqWeeKfYfezihA2KfFL9l7ohEdZWe1tuFWh3GfyNSnE= -github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.13.3 h1:76FYKEDB9AzQzOaERx6TKaKKS1fxjswzO/cfestdWnI= -github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.13.3/go.mod h1:BH5hXFPEK6XdipZfv99bfbjV44tKwyjImyOaB3gIzts= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3 h1:bON1rJf67TSTDCKg816AAIE4xSTtoo9tl0XRkO72R+I= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3/go.mod h1:c5BBpjJcQXpfeq9iASyVKA3T6vX6B6LEXY4mL/gklDY= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3 h1:L8vIOxylma91TcR96NFTEC07G3JDwSl+CvK2b+IODms= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3/go.mod h1:fmPIZQzTExYuBNWFyi1P7IoDjvskgphXqK1yObMzusM= -github.com/aws/aws-sdk-go-v2/service/kms v1.60.0 h1:O/xKUsrz7J69Q0yca9XeYxwgi+NbBVbxczcZWudJdU0= -github.com/aws/aws-sdk-go-v2/service/kms v1.60.0/go.mod h1:/eZ9xj8IZyb7fj+/t3HO7x89X+7Vn+gCDDbQ2NHCVtM= -github.com/aws/aws-sdk-go-v2/service/lambda v1.108.0 h1:iIjgs1MWp6quM8QyDUorxEjIZEpXV4UgqEp6wbFAz5U= -github.com/aws/aws-sdk-go-v2/service/lambda v1.108.0/go.mod h1:KYgalOoMYV+Dm9vz0ydRM+SQ3RtFcqGHR/rl36YD6oY= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.72.0 h1:EGW14hAgsMkXg1FKp6LmEvgnKxXROl4hNIzWdYfPHOQ= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.72.0/go.mod h1:uEqxkd05eh9kG5ckJzj+6nQiLPP/7509An1U5xLxX9I= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.50.0 h1:LkILfz4k/w6KDH8ZFXBREvgKCoFSrdh2LWkIhGd9Kvo= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.50.0/go.mod h1:JWFv/NbmNURecNtVAqEYDu7dZJEE4847WjiIsFKgO4I= -github.com/aws/aws-sdk-go-v2/service/rds v1.129.0 h1:rfqkLgq6+N4R2+03T8VS6B7yU4l1gx21zaK/v54Qaik= -github.com/aws/aws-sdk-go-v2/service/rds v1.129.0/go.mod h1:UKCSI4ZmISkI7H6ndDvwB64cwzbxJssyHe2wrmX60LU= -github.com/aws/aws-sdk-go-v2/service/route53 v1.70.0 h1:VxLw9i321VscFgoYqfSkd2UdLcRVmp9tiv9xnk4VSIY= -github.com/aws/aws-sdk-go-v2/service/route53 v1.70.0/go.mod h1:ZFR4YYQvjghZDMjaAmpXRaO/qxfCns/kjsQtguzvQVU= -github.com/aws/aws-sdk-go-v2/service/s3 v1.113.0 h1:0slwIjBv1sEigSUW4EfTtNw9mbHl0PlOUPX9Y1C/eLE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.113.0/go.mod h1:/uA+2Qj4jd5qBWagVC1AyzzDFXVK997E7U04w7Kw0wI= -github.com/aws/aws-sdk-go-v2/service/signin v1.10.0 h1:ZD5qFpWcaOKdTuhBi431pIDkCgrMkMlMT6jlpSPoIRI= -github.com/aws/aws-sdk-go-v2/service/signin v1.10.0/go.mod h1:8Nuuf+tR346PjJ3MvZPh9pekbLiLQFWJhzMXfwy7alA= -github.com/aws/aws-sdk-go-v2/service/sns v1.47.0 h1:LG0eB968S17nXOj6wfXasPvRXhlcN0xq26m4kaNbGL4= -github.com/aws/aws-sdk-go-v2/service/sns v1.47.0/go.mod h1:s/NR14+UXkT4NCUvC/GemXuNhd+lhAc2QbnZyTVqxlk= -github.com/aws/aws-sdk-go-v2/service/sqs v1.52.0 h1:39EpbrAPFSOPYc9FVr2ki84cLB/9C5nC03aL7ope2rU= -github.com/aws/aws-sdk-go-v2/service/sqs v1.52.0/go.mod h1:yErwLsJkArgQLSGWtLjjwlpvlLK4+c9h0jDZZVN02hw= -github.com/aws/aws-sdk-go-v2/service/ssm v1.78.0 h1:+a7gfPhZYdFvMxKwbC51PljAo4L/cdzg2tmtMusRkDE= -github.com/aws/aws-sdk-go-v2/service/ssm v1.78.0/go.mod h1:sCtehdCzGR2L4tFbPq6qnfqX1A86h2Hna8fU10VuTaA= -github.com/aws/aws-sdk-go-v2/service/sso v1.38.0 h1:JGeeBcMlhg1xtOXYpeCaTQBZObtXMPQCUqBcmr65NRA= -github.com/aws/aws-sdk-go-v2/service/sso v1.38.0/go.mod h1:XwteswG9EOMRFm73UT0t+MbTwyLxMrEXkU6e+v92Lzo= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0 h1:obhahQXDEdVEv8y5bTKXR30LVaxYe1kyYM0L7l2Iq+k= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0/go.mod h1:6twZZ/aXHNy1vXUO8koUbp++MYzMASkOgEBdkbJYmO0= -github.com/aws/aws-sdk-go-v2/service/sts v1.50.0 h1:khXV3+K5D3f4e8xtplaRdSFn1bEg3gj5EBHQvbCOZbQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.50.0/go.mod h1:/8JRcdTt//hG0Q4BTmGbuOplT7ABe+5rdtqUHqXvYIM= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.5 h1:/TYsZXdA8UTa+WCtCYSAJIr1vwl0+eho6TUgJGwFFO8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.5/go.mod h1:qPqp1Uwd/BqdhPufv6oem9j5J7HNsgc2V22dUiDPn+s= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.13.4 h1:6HvmOQ1rBRrZ4qPJSWxd5szPKUsngXCwSw+V3UaJHmw= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.13.4/go.mod h1:zv2N29aiQUhG2XZNM9zgwCnAyVBdTBbcIpfNAlNmA20= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.4 h1:29SvnfGhXjTl8ONxFwbj2rs6lbhiFXD2CgFQmbT/bXY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.4/go.mod h1:wm04I5DMuNVvZHFe/dHnUxincvNbbK7AiNBbYsQivek= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.4 h1:pPiWfgeNxqluKEph7hvU88kuGKBPOWzO+Dk9t2zqqNs= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.4/go.mod h1:YlwGoIUDG/3kBQbdNOVs/xKZ9J01G8e/6D1mRBj9uTk= +github.com/aws/aws-sdk-go-v2/service/kms v1.61.1 h1:BNBCE5IGMCehEPpSbPqhdyV4ZS9Y1Yr9NuvR9itr7aE= +github.com/aws/aws-sdk-go-v2/service/kms v1.61.1/go.mod h1:XBCtQL8tXGOCYe8ExoWRURhDQ5QnfyWbP9px5DNsuog= +github.com/aws/aws-sdk-go-v2/service/lambda v1.110.0 h1:fJUTGbCN/EKBq/TIR84MDI0qr4eY9qNaw19dT+S2LCA= +github.com/aws/aws-sdk-go-v2/service/lambda v1.110.0/go.mod h1:jUmFXtUKRVCKTaKap+NgL32pmSkVehamqqMENlGMApk= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.74.0 h1:c0ycxhkBXmbmOljqhSCvSchqBqRQ5hypwXFYdXz7aQQ= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.74.0/go.mod h1:7x9mYxOP5eK3I5/+WdmzyHmzxtL6vp9zYiDbaTHgHzI= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.50.1 h1:6q4HaefjjSsqgx12SIeEm/2pPAeSaDePUDspBbjUrBM= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.50.1/go.mod h1:eFiCbdU7tkCwcptV5b4Q6ZWAvGXIrpNGaMsB19/9dto= +github.com/aws/aws-sdk-go-v2/service/rds v1.129.1 h1:tLLKlVNRH6YIWCIq/9a8b6LMamBsIDCOQ5hdlhYl3qk= +github.com/aws/aws-sdk-go-v2/service/rds v1.129.1/go.mod h1:ISB8224E71TShRfUITcXvgbjlq0MVx/KWpvF0jbiFmg= +github.com/aws/aws-sdk-go-v2/service/route53 v1.70.1 h1:M30ocYvHPt4GiQH9KHG89/O/EKYpxT2bFwASOBmPtBw= +github.com/aws/aws-sdk-go-v2/service/route53 v1.70.1/go.mod h1:120WTsKTWzoFwIpk9W1qJt7Uq51pRztY+pRcdLSiQxM= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.4 h1:n6kO3OlBvnDEksQpvBLbAldjHwGlu8kErvhHJkhlaRY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.4/go.mod h1:9APRWGLFITKD+xzWSIyT9V7QV4bNlEuIieWlzXgGFlI= +github.com/aws/aws-sdk-go-v2/service/signin v1.10.1 h1:DzCCWLzcIRQ77F3DEUljud7bEjTgFOIKXP52NmVRyhU= +github.com/aws/aws-sdk-go-v2/service/signin v1.10.1/go.mod h1:xpo/geVldu8payT375WekctUzopG/hBU7miiqItMUlw= +github.com/aws/aws-sdk-go-v2/service/sns v1.47.2 h1:hAqjMqf85Ht/P69qoLoXAmCjWFaq5e2n1dCEgobkvf8= +github.com/aws/aws-sdk-go-v2/service/sns v1.47.2/go.mod h1:u1Rxkb4urNhfa5IAbBxPhNVsqWUkGku8IiZ5S5PFOFM= +github.com/aws/aws-sdk-go-v2/service/sqs v1.52.1 h1:jBQM8NL0q3h0ZpHqo4TxOD9Ope96SlEF1Y6VLsF20nQ= +github.com/aws/aws-sdk-go-v2/service/sqs v1.52.1/go.mod h1:+TDqZ1h8CLkW9ewfQkSPWHYRjm7/wDThKeDlR46qyvE= +github.com/aws/aws-sdk-go-v2/service/ssm v1.78.1 h1:wA+05YQro9VJtnfL+hfEg+UnK3QZsm+mNIaUH+G+xW0= +github.com/aws/aws-sdk-go-v2/service/ssm v1.78.1/go.mod h1:FLwEDLnpYkC/SwNx9gbsPcG25uMUk7Pxsx8ixaA9xmE= +github.com/aws/aws-sdk-go-v2/service/sso v1.38.1 h1:Umtl/0YZhng4xndfW3lKJrYYP7NLEjI6bGXVomwLcs0= +github.com/aws/aws-sdk-go-v2/service/sso v1.38.1/go.mod h1:rRD/dnm7q0HYE/I5TMaPgkWyyUGLcwuxHLABsLnQ3e0= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.1 h1:orIWdNiLgzrhu/11RcPPKO/SBzUUymbUQuZbSPImghg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.1/go.mod h1:skwM/xsbR/1ReUTesv9BhpJp1VjajR7DWQnuVLwiXsQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.51.1 h1:0HOqZXRvMytH6bFHVIc0oJX07sZjfhz0zXtjs6gdE8s= +github.com/aws/aws-sdk-go-v2/service/sts v1.51.1/go.mod h1:26zA0GhDrLo+yiLI2yXWxqB1PdsShfLikoI7GOEgugM= github.com/aws/smithy-go v1.28.1 h1:R/nXH00c8qcfCzQVELtRw+eLQWtzv+VAIEFJ1/xxXlQ= github.com/aws/smithy-go v1.28.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= diff --git a/go/auth/mcpoauth_test.go b/go/auth/mcpoauth_test.go index 401ab6a7..a8add355 100644 --- a/go/auth/mcpoauth_test.go +++ b/go/auth/mcpoauth_test.go @@ -36,7 +36,7 @@ func TestNewMCPOAuthMetadataHandler_RouteFamilyAliasContracts(t *testing.T) { "/.well-known/openid-configuration/oauth", "/oauth/.well-known/openid-configuration", }, - forbidden: []string{"/brent/"}, + forbidden: nil, }, } @@ -233,7 +233,7 @@ func TestNewMCPPRMHandler_RouteFamilyContracts(t *testing.T) { authorizationServer: "https://until.example.com/oauth", resource: "https://until.example.com/mcp", scopes: []string{"account:read", "until:read", "until:write"}, - forbidden: []string{"/brent/"}, + forbidden: nil, }, } diff --git a/go/tracing/telemetry_naming_test.go b/go/tracing/telemetry_naming_test.go index f5114659..86949963 100644 --- a/go/tracing/telemetry_naming_test.go +++ b/go/tracing/telemetry_naming_test.go @@ -47,35 +47,11 @@ func TestNoLegacyBrentTelemetryLiterals(t *testing.T) { "AddEvent", } - // Allowlist of non-telemetry brent.* identifiers that may remain. + // Allowlist of non-telemetry identifiers that may remain. allowlist := []string{ // Test fixture URLs (not actual telemetry emission) `"https://until.example`, `"http://until.example`, - - // Proto field comments describing legacy attribute keys - `"ovm.brent.llm.keySource"`, - - // File paths and directory references - `".brent/workflows"`, - `".brent/"`, - `"/brent/"`, - - // Function/method names in strings (not telemetry keys) - `"brent.validateBYOConnectEndpoint"`, - `"brent.MapByoIntakeError"`, - - // Auth0 identifiers, package names, and other non-telemetry uses - `"brent.Auth0ManagementClient"`, - `"brent.proto"`, - `"brent-backend"`, - `"project-brent"`, - - // Legacy plan ID prefixes in tests/docs (not telemetry) - `"BRENT-"`, - - // Test assertions checking for absence of brent prefix - `"brent."`, // Used in strings.HasPrefix checks in tests } var failures []string diff --git a/k8s-source/adapters/generic_source.go b/k8s-source/adapters/generic_source.go index c7575e54..2586c001 100644 --- a/k8s-source/adapters/generic_source.go +++ b/k8s-source/adapters/generic_source.go @@ -346,6 +346,10 @@ func (s *KubeTypeAdapter[Resource, ResourceList]) resourceToItem(resource Resour resource = s.Redact(resource) } + // Drop plaintext container environment values from workload objects. + // Names and valueFrom references stay so secret links still work. + redactWorkloadEnvValues(resource) + attributes, err := sdp.ToAttributesViaJson(resource) if err != nil { diff --git a/k8s-source/adapters/generic_source_test.go b/k8s-source/adapters/generic_source_test.go index 71bbac81..803b0c4f 100644 --- a/k8s-source/adapters/generic_source_test.go +++ b/k8s-source/adapters/generic_source_test.go @@ -2,9 +2,11 @@ package adapters import ( "context" + "encoding/json" "errors" "fmt" "regexp" + "strings" "testing" "time" @@ -36,6 +38,9 @@ func (p PodClient) Get(ctx context.Context, name string, opts metav1.GetOptions) UID: types.UID(uid), ResourceVersion: "9164", CreationTimestamp: metav1.NewTime(time.Now()), + Annotations: map[string]string{ + "overmind.example/url": "http://example.com", + }, Spec: v1.PodSpec{ Volumes: []v1.Volume{ { @@ -50,8 +55,17 @@ func (p PodClient) Get(ctx context.Context, name string, opts metav1.GetOptions) { Env: []v1.EnvVar{ { - Name: "INTERESTING_URL", - Value: "http://example.com", + Name: workloadEnvName, + Value: workloadEnvSentinel, + }, + { + Name: workloadSecretEnvName, + ValueFrom: &v1.EnvVarSource{ + SecretKeyRef: &v1.SecretKeySelector{ + Name: workloadSecretRefName, + Key: "token", + }, + }, }, }, }, @@ -352,6 +366,21 @@ func TestAdapterGet(t *testing.T) { if !foundAutomaticLink { t.Errorf("expected automatic link to http://example.com, got none") } + + attrMap := item.GetAttributes().GetAttrStruct().AsMap() + attrsJSON, marshalErr := json.Marshal(attrMap) + if marshalErr != nil { + t.Fatalf("marshal attributes: %v", marshalErr) + } + if strings.Contains(string(attrsJSON), workloadEnvSentinel) { + t.Errorf("plaintext env value leaked in attributes: %s", attrsJSON) + } + if !strings.Contains(string(attrsJSON), workloadEnvName) { + t.Errorf("expected env name %q to remain in attributes: %s", workloadEnvName, attrsJSON) + } + if !strings.Contains(string(attrsJSON), workloadSecretRefName) { + t.Errorf("expected secret ref %q to remain in attributes: %s", workloadSecretRefName, attrsJSON) + } }) t.Run("get non-existent item", func(t *testing.T) { diff --git a/k8s-source/adapters/workload_redact.go b/k8s-source/adapters/workload_redact.go new file mode 100644 index 00000000..7cfa32e4 --- /dev/null +++ b/k8s-source/adapters/workload_redact.go @@ -0,0 +1,62 @@ +package adapters + +import ( + appsv1 "k8s.io/api/apps/v1" + batchv1 "k8s.io/api/batch/v1" + corev1 "k8s.io/api/core/v1" +) + +// redactWorkloadEnvValues clears plaintext container environment values on +// Kubernetes workload objects before they are serialized to SDP attributes. +// Variable names and valueFrom secret/configmap references are kept so linked +// item queries still work. Unknown types are a no-op. +func redactWorkloadEnvValues(resource any) { + switch r := resource.(type) { + case *corev1.Pod: + redactPodSpecEnvValues(&r.Spec) + case *appsv1.Deployment: + redactPodSpecEnvValues(&r.Spec.Template.Spec) + case *appsv1.ReplicaSet: + redactPodSpecEnvValues(&r.Spec.Template.Spec) + case *appsv1.StatefulSet: + redactPodSpecEnvValues(&r.Spec.Template.Spec) + case *appsv1.DaemonSet: + redactPodSpecEnvValues(&r.Spec.Template.Spec) + case *batchv1.Job: + redactPodSpecEnvValues(&r.Spec.Template.Spec) + case *batchv1.CronJob: + redactPodSpecEnvValues(&r.Spec.JobTemplate.Spec.Template.Spec) + case *corev1.ReplicationController: + redactPodTemplateEnvValues(r.Spec.Template) + } +} + +func redactPodTemplateEnvValues(template *corev1.PodTemplateSpec) { + if template == nil { + return + } + redactPodSpecEnvValues(&template.Spec) +} + +func redactPodSpecEnvValues(spec *corev1.PodSpec) { + if spec == nil { + return + } + redactContainerEnv(spec.Containers) + redactContainerEnv(spec.InitContainers) + for i := range spec.EphemeralContainers { + redactEnvVars(spec.EphemeralContainers[i].Env) + } +} + +func redactContainerEnv(containers []corev1.Container) { + for i := range containers { + redactEnvVars(containers[i].Env) + } +} + +func redactEnvVars(env []corev1.EnvVar) { + for i := range env { + env[i].Value = "" + } +} diff --git a/k8s-source/adapters/workload_redact_test.go b/k8s-source/adapters/workload_redact_test.go new file mode 100644 index 00000000..7d8fccad --- /dev/null +++ b/k8s-source/adapters/workload_redact_test.go @@ -0,0 +1,275 @@ +package adapters + +import ( + "encoding/json" + "testing" + + "github.com/overmindtech/cli/go/sdpcache" + appsv1 "k8s.io/api/apps/v1" + batchv1 "k8s.io/api/batch/v1" + corev1 "k8s.io/api/core/v1" +) + +const ( + workloadEnvSentinel = "ovm-k8s-workload-env-sentinel-4e1d" + workloadInitEnvSentinel = "ovm-k8s-workload-init-env-sentinel-7c2b" + workloadEphEnvSentinel = "ovm-k8s-workload-eph-env-sentinel-9f3a" + workloadEnvName = "DATABASE_PASSWORD" + workloadInitEnvName = "INIT_TOKEN" + workloadEphEnvName = "DEBUG_TOKEN" + workloadSecretEnvName = "API_KEY" + workloadSecretRefName = "api-secret" +) + +func testPodSpecWithEnvSecrets() corev1.PodSpec { + return corev1.PodSpec{ + Containers: []corev1.Container{ + { + Name: "app", + Image: "example.invalid/app:latest", + Env: []corev1.EnvVar{ + { + Name: workloadEnvName, + Value: workloadEnvSentinel, + }, + { + Name: workloadSecretEnvName, + ValueFrom: &corev1.EnvVarSource{ + SecretKeyRef: &corev1.SecretKeySelector{ + Name: workloadSecretRefName, + Key: "token", + }, + }, + }, + }, + }, + }, + InitContainers: []corev1.Container{ + { + Name: "init", + Env: []corev1.EnvVar{ + { + Name: workloadInitEnvName, + Value: workloadInitEnvSentinel, + }, + }, + }, + }, + EphemeralContainers: []corev1.EphemeralContainer{ + { + Name: "debug", + Env: []corev1.EnvVar{ + { + Name: workloadEphEnvName, + Value: workloadEphEnvSentinel, + }, + }, + }, + }, + } +} + +func TestRedactWorkloadEnvValues(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + resource any + }{ + { + name: "Pod", + resource: &corev1.Pod{ + Name: "pod", + Spec: testPodSpecWithEnvSecrets(), + }, + }, + { + name: "Deployment", + resource: &appsv1.Deployment{ + Name: "deploy", + Spec: appsv1.DeploymentSpec{ + Template: corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + { + name: "ReplicaSet", + resource: &appsv1.ReplicaSet{ + Name: "rs", + Spec: appsv1.ReplicaSetSpec{ + Template: corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + { + name: "StatefulSet", + resource: &appsv1.StatefulSet{ + Name: "sts", + Spec: appsv1.StatefulSetSpec{ + Template: corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + { + name: "DaemonSet", + resource: &appsv1.DaemonSet{ + Name: "ds", + Spec: appsv1.DaemonSetSpec{ + Template: corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + { + name: "Job", + resource: &batchv1.Job{ + Name: "job", + Spec: batchv1.JobSpec{ + Template: corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + { + name: "CronJob", + resource: &batchv1.CronJob{ + Name: "cron", + Spec: batchv1.CronJobSpec{ + JobTemplate: batchv1.JobTemplateSpec{ + Spec: batchv1.JobSpec{ + Template: corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + }, + }, + { + name: "ReplicationController", + resource: &corev1.ReplicationController{ + Name: "rc", + Spec: corev1.ReplicationControllerSpec{ + Template: &corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + redactWorkloadEnvValues(tt.resource) + + b, err := json.Marshal(tt.resource) + if err != nil { + t.Fatalf("marshal resource: %v", err) + } + attrsJSON := string(b) + + for _, sentinel := range []string{workloadEnvSentinel, workloadInitEnvSentinel, workloadEphEnvSentinel} { + if containsJSONStringValue(attrsJSON, sentinel) { + t.Errorf("plaintext env value %q leaked in %s attributes: %s", sentinel, tt.name, attrsJSON) + } + } + for _, name := range []string{workloadEnvName, workloadInitEnvName, workloadEphEnvName, workloadSecretEnvName, workloadSecretRefName} { + if !containsJSONStringValue(attrsJSON, name) { + t.Errorf("expected %q to remain in %s attributes: %s", name, tt.name, attrsJSON) + } + } + }) + } +} + +func TestRedactWorkloadEnvValues_nilReplicationControllerTemplate(t *testing.T) { + t.Parallel() + + rc := &corev1.ReplicationController{ + Name: "rc", + } + redactWorkloadEnvValues(rc) + if rc.Name != "rc" { + t.Errorf("expected name to remain %q, got %q", "rc", rc.Name) + } +} + +func TestRedactWorkloadEnvValues_unknownType(t *testing.T) { + t.Parallel() + + secret := &corev1.Secret{ + Name: "s", + Data: map[string][]byte{"password": []byte("keep-me")}, + } + redactWorkloadEnvValues(secret) + if string(secret.Data["password"]) != "keep-me" { + t.Errorf("expected unknown types to be left unchanged, got %q", secret.Data["password"]) + } +} + +func TestResourceToItemRedactsCronJobEnv(t *testing.T) { + t.Parallel() + + adapter := &KubeTypeAdapter[*batchv1.CronJob, *batchv1.CronJobList]{ + ClusterName: "minikube", + TypeName: "CronJob", + cache: sdpcache.NewNoOpCache(), + ListExtractor: func(list *batchv1.CronJobList) ([]*batchv1.CronJob, error) { + return nil, nil + }, + } + + item, err := adapter.resourceToItem(&batchv1.CronJob{ + Name: "cron", Namespace: "default", + Spec: batchv1.CronJobSpec{ + JobTemplate: batchv1.JobTemplateSpec{ + Spec: batchv1.JobSpec{ + Template: corev1.PodTemplateSpec{Spec: testPodSpecWithEnvSecrets()}, + }, + }, + }, + }) + if err != nil { + t.Fatalf("resourceToItem: %v", err) + } + + attrMap := item.GetAttributes().GetAttrStruct().AsMap() + attrsJSON, marshalErr := json.Marshal(attrMap) + if marshalErr != nil { + t.Fatalf("marshal attributes: %v", marshalErr) + } + for _, sentinel := range []string{workloadEnvSentinel, workloadInitEnvSentinel, workloadEphEnvSentinel} { + if containsJSONStringValue(string(attrsJSON), sentinel) { + t.Errorf("plaintext env value %q leaked in CronJob attributes: %s", sentinel, attrsJSON) + } + } + for _, name := range []string{workloadEnvName, workloadSecretEnvName, workloadSecretRefName} { + if !containsJSONStringValue(string(attrsJSON), name) { + t.Errorf("expected %q to remain in CronJob attributes: %s", name, attrsJSON) + } + } +} + +func containsJSONStringValue(attrsJSON, value string) bool { + var decoded any + if err := json.Unmarshal([]byte(attrsJSON), &decoded); err != nil { + return false + } + return anyContainsStringValue(decoded, value) +} + +func anyContainsStringValue(v any, value string) bool { + switch x := v.(type) { + case string: + return x == value + case map[string]any: + for _, child := range x { + if anyContainsStringValue(child, value) { + return true + } + } + case []any: + for _, child := range x { + if anyContainsStringValue(child, value) { + return true + } + } + } + return false +} diff --git a/k8s-source/build/package/Dockerfile b/k8s-source/build/package/Dockerfile index 32f838ab..5c337577 100644 --- a/k8s-source/build/package/Dockerfile +++ b/k8s-source/build/package/Dockerfile @@ -1,5 +1,5 @@ # Build the source binary -FROM golang:1.27.0-alpine3.23 AS builder +FROM golang:1.27.1-alpine3.23 AS builder ARG TARGETOS ARG TARGETARCH ARG BUILD_VERSION diff --git a/sources/azure/build/package/Dockerfile b/sources/azure/build/package/Dockerfile index cdc34c42..ffce8ca4 100644 --- a/sources/azure/build/package/Dockerfile +++ b/sources/azure/build/package/Dockerfile @@ -1,5 +1,5 @@ # Build the source binary -FROM golang:1.27.0-alpine3.23 AS builder +FROM golang:1.27.1-alpine3.23 AS builder ARG TARGETOS ARG TARGETARCH ARG BUILD_VERSION diff --git a/sources/azure/clients/application-gateways-client.go b/sources/azure/clients/application-gateways-client.go index 587dbe0a..5b83ae23 100644 --- a/sources/azure/clients/application-gateways-client.go +++ b/sources/azure/clients/application-gateways-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_application_gateways_client.go -package=mocks -source=application-gateways-client.go diff --git a/sources/azure/clients/application-security-groups-client.go b/sources/azure/clients/application-security-groups-client.go index 5947bc4f..9101c37a 100644 --- a/sources/azure/clients/application-security-groups-client.go +++ b/sources/azure/clients/application-security-groups-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_application_security_groups_client.go -package=mocks -source=application-security-groups-client.go diff --git a/sources/azure/clients/ddos-protection-plans-client.go b/sources/azure/clients/ddos-protection-plans-client.go index babaa1f3..bce98dae 100644 --- a/sources/azure/clients/ddos-protection-plans-client.go +++ b/sources/azure/clients/ddos-protection-plans-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_ddos_protection_plans_client.go -package=mocks -source=ddos-protection-plans-client.go diff --git a/sources/azure/clients/default-security-rules-client.go b/sources/azure/clients/default-security-rules-client.go index 955e1bd8..b034e809 100644 --- a/sources/azure/clients/default-security-rules-client.go +++ b/sources/azure/clients/default-security-rules-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_default_security_rules_client.go -package=mocks -source=default-security-rules-client.go diff --git a/sources/azure/clients/flow-logs-client.go b/sources/azure/clients/flow-logs-client.go index ce6843b8..dbbd349f 100644 --- a/sources/azure/clients/flow-logs-client.go +++ b/sources/azure/clients/flow-logs-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_flow_logs_client.go -package=mocks -source=flow-logs-client.go diff --git a/sources/azure/clients/interface-ip-configurations-client.go b/sources/azure/clients/interface-ip-configurations-client.go index 2ff4c6b7..e5aa01c7 100644 --- a/sources/azure/clients/interface-ip-configurations-client.go +++ b/sources/azure/clients/interface-ip-configurations-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_interface_ip_configurations_client.go -package=mocks -source=interface-ip-configurations-client.go diff --git a/sources/azure/clients/ip-groups-client.go b/sources/azure/clients/ip-groups-client.go index b72561c8..965b5213 100644 --- a/sources/azure/clients/ip-groups-client.go +++ b/sources/azure/clients/ip-groups-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_ip_groups_client.go -package=mocks -source=ip-groups-client.go diff --git a/sources/azure/clients/load-balancer-backend-address-pools-client.go b/sources/azure/clients/load-balancer-backend-address-pools-client.go index 271ca566..a6ed8485 100644 --- a/sources/azure/clients/load-balancer-backend-address-pools-client.go +++ b/sources/azure/clients/load-balancer-backend-address-pools-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_load_balancer_backend_address_pools_client.go -package=mocks -source=load-balancer-backend-address-pools-client.go diff --git a/sources/azure/clients/load-balancer-frontend-ip-configurations-client.go b/sources/azure/clients/load-balancer-frontend-ip-configurations-client.go index 3cd14405..7c700e41 100644 --- a/sources/azure/clients/load-balancer-frontend-ip-configurations-client.go +++ b/sources/azure/clients/load-balancer-frontend-ip-configurations-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_load_balancer_frontend_ip_configurations_client.go -package=mocks -source=load-balancer-frontend-ip-configurations-client.go diff --git a/sources/azure/clients/load-balancer-probes-client.go b/sources/azure/clients/load-balancer-probes-client.go index 33206da7..218fb335 100644 --- a/sources/azure/clients/load-balancer-probes-client.go +++ b/sources/azure/clients/load-balancer-probes-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_load_balancer_probes_client.go -package=mocks -source=load-balancer-probes-client.go diff --git a/sources/azure/clients/load-balancers-client.go b/sources/azure/clients/load-balancers-client.go index a8f11cb3..78fc7706 100644 --- a/sources/azure/clients/load-balancers-client.go +++ b/sources/azure/clients/load-balancers-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_load_balancers_client.go -package=mocks -source=load-balancers-client.go diff --git a/sources/azure/clients/local-network-gateways-client.go b/sources/azure/clients/local-network-gateways-client.go index c066e36f..9e7a12c5 100644 --- a/sources/azure/clients/local-network-gateways-client.go +++ b/sources/azure/clients/local-network-gateways-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_local_network_gateways_client.go -package=mocks -source=local-network-gateways-client.go diff --git a/sources/azure/clients/nat-gateways-client.go b/sources/azure/clients/nat-gateways-client.go index b07fcbea..6ef2aadd 100644 --- a/sources/azure/clients/nat-gateways-client.go +++ b/sources/azure/clients/nat-gateways-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_nat_gateways_client.go -package=mocks -source=nat-gateways-client.go diff --git a/sources/azure/clients/network-interfaces-client.go b/sources/azure/clients/network-interfaces-client.go index b153d13f..e5a89f68 100644 --- a/sources/azure/clients/network-interfaces-client.go +++ b/sources/azure/clients/network-interfaces-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_network_interfaces_client.go -package=mocks -source=network-interfaces-client.go diff --git a/sources/azure/clients/network-private-endpoint-client.go b/sources/azure/clients/network-private-endpoint-client.go index 8cd527e8..985add3a 100644 --- a/sources/azure/clients/network-private-endpoint-client.go +++ b/sources/azure/clients/network-private-endpoint-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_network_private_endpoint_client.go -package=mocks -source=network-private-endpoint-client.go diff --git a/sources/azure/clients/network-security-groups-client.go b/sources/azure/clients/network-security-groups-client.go index 473b58ac..9d8207e8 100644 --- a/sources/azure/clients/network-security-groups-client.go +++ b/sources/azure/clients/network-security-groups-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_network_security_groups_client.go -package=mocks -source=network-security-groups-client.go diff --git a/sources/azure/clients/network-watchers-client.go b/sources/azure/clients/network-watchers-client.go index 4a32c136..b841ec9b 100644 --- a/sources/azure/clients/network-watchers-client.go +++ b/sources/azure/clients/network-watchers-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_network_watchers_client.go -package=mocks -source=network-watchers-client.go diff --git a/sources/azure/clients/private-link-services-client.go b/sources/azure/clients/private-link-services-client.go index 6cc16978..e5c9078a 100644 --- a/sources/azure/clients/private-link-services-client.go +++ b/sources/azure/clients/private-link-services-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_private_link_services_client.go -package=mocks -source=private-link-services-client.go diff --git a/sources/azure/clients/public-ip-addresses.go b/sources/azure/clients/public-ip-addresses.go index 68263495..5d7f6fa4 100644 --- a/sources/azure/clients/public-ip-addresses.go +++ b/sources/azure/clients/public-ip-addresses.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_public_ip_addresses_client.go -package=mocks -source=public-ip-addresses.go diff --git a/sources/azure/clients/public-ip-prefixes-client.go b/sources/azure/clients/public-ip-prefixes-client.go index 817e284f..903cf3d6 100644 --- a/sources/azure/clients/public-ip-prefixes-client.go +++ b/sources/azure/clients/public-ip-prefixes-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_public_ip_prefixes_client.go -package=mocks -source=public-ip-prefixes-client.go diff --git a/sources/azure/clients/route-tables-client.go b/sources/azure/clients/route-tables-client.go index caca7cbe..cd2fc5e3 100644 --- a/sources/azure/clients/route-tables-client.go +++ b/sources/azure/clients/route-tables-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_route_tables_client.go -package=mocks -source=route-tables-client.go diff --git a/sources/azure/clients/routes-client.go b/sources/azure/clients/routes-client.go index 961a52ca..f2cd6b67 100644 --- a/sources/azure/clients/routes-client.go +++ b/sources/azure/clients/routes-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_routes_client.go -package=mocks -source=routes-client.go diff --git a/sources/azure/clients/security-rules-client.go b/sources/azure/clients/security-rules-client.go index 7483738e..027f5cc6 100644 --- a/sources/azure/clients/security-rules-client.go +++ b/sources/azure/clients/security-rules-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_security_rules_client.go -package=mocks -source=security-rules-client.go diff --git a/sources/azure/clients/subnets-client.go b/sources/azure/clients/subnets-client.go index 9b8cc158..2088cc66 100644 --- a/sources/azure/clients/subnets-client.go +++ b/sources/azure/clients/subnets-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_subnets_client.go -package=mocks -source=subnets-client.go diff --git a/sources/azure/clients/virtual-network-gateway-connections-client.go b/sources/azure/clients/virtual-network-gateway-connections-client.go index 9172ecae..ca6359ff 100644 --- a/sources/azure/clients/virtual-network-gateway-connections-client.go +++ b/sources/azure/clients/virtual-network-gateway-connections-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_virtual_network_gateway_connections_client.go -package=mocks -source=virtual-network-gateway-connections-client.go diff --git a/sources/azure/clients/virtual-network-gateways-client.go b/sources/azure/clients/virtual-network-gateways-client.go index dbed887c..130befb4 100644 --- a/sources/azure/clients/virtual-network-gateways-client.go +++ b/sources/azure/clients/virtual-network-gateways-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_virtual_network_gateways_client.go -package=mocks -source=virtual-network-gateways-client.go diff --git a/sources/azure/clients/virtual-network-peerings-client.go b/sources/azure/clients/virtual-network-peerings-client.go index b9ff53cd..d0a73f51 100644 --- a/sources/azure/clients/virtual-network-peerings-client.go +++ b/sources/azure/clients/virtual-network-peerings-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_virtual_network_peerings_client.go -package=mocks -source=virtual-network-peerings-client.go diff --git a/sources/azure/clients/virtual-networks-client.go b/sources/azure/clients/virtual-networks-client.go index bf849d0e..dba3d229 100644 --- a/sources/azure/clients/virtual-networks-client.go +++ b/sources/azure/clients/virtual-networks-client.go @@ -3,7 +3,7 @@ package clients import ( "context" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" ) //go:generate mockgen -destination=../shared/mocks/mock_virtual_networks_client.go -package=mocks -source=virtual-networks-client.go diff --git a/sources/azure/integration-tests/batch-private-endpoint-connection_test.go b/sources/azure/integration-tests/batch-private-endpoint-connection_test.go index 6bfa09de..e0d90949 100644 --- a/sources/azure/integration-tests/batch-private-endpoint-connection_test.go +++ b/sources/azure/integration-tests/batch-private-endpoint-connection_test.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/batch/armbatch/v4" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/compute-availability-set_test.go b/sources/azure/integration-tests/compute-availability-set_test.go index cb92322d..f91d096e 100644 --- a/sources/azure/integration-tests/compute-availability-set_test.go +++ b/sources/azure/integration-tests/compute-availability-set_test.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v8" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/compute-virtual-machine-extension_test.go b/sources/azure/integration-tests/compute-virtual-machine-extension_test.go index b7ad795f..9c8c78d7 100644 --- a/sources/azure/integration-tests/compute-virtual-machine-extension_test.go +++ b/sources/azure/integration-tests/compute-virtual-machine-extension_test.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v8" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/compute-virtual-machine-run-command_test.go b/sources/azure/integration-tests/compute-virtual-machine-run-command_test.go index ffd72574..b97c29ed 100644 --- a/sources/azure/integration-tests/compute-virtual-machine-run-command_test.go +++ b/sources/azure/integration-tests/compute-virtual-machine-run-command_test.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v8" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/compute-virtual-machine-scale-set_test.go b/sources/azure/integration-tests/compute-virtual-machine-scale-set_test.go index 9ddad11d..bf0e5394 100644 --- a/sources/azure/integration-tests/compute-virtual-machine-scale-set_test.go +++ b/sources/azure/integration-tests/compute-virtual-machine-scale-set_test.go @@ -12,7 +12,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v8" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/compute-virtual-machine_test.go b/sources/azure/integration-tests/compute-virtual-machine_test.go index 5b291057..858acc56 100644 --- a/sources/azure/integration-tests/compute-virtual-machine_test.go +++ b/sources/azure/integration-tests/compute-virtual-machine_test.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v8" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-application-gateway_test.go b/sources/azure/integration-tests/network-application-gateway_test.go index 73d7e4ea..c25ff174 100644 --- a/sources/azure/integration-tests/network-application-gateway_test.go +++ b/sources/azure/integration-tests/network-application-gateway_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-dns-virtual-network-link_test.go b/sources/azure/integration-tests/network-dns-virtual-network-link_test.go index fe62c220..a27a5153 100644 --- a/sources/azure/integration-tests/network-dns-virtual-network-link_test.go +++ b/sources/azure/integration-tests/network-dns-virtual-network-link_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns/v2" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-flow-log_test.go b/sources/azure/integration-tests/network-flow-log_test.go index 173dce43..69e9b064 100644 --- a/sources/azure/integration-tests/network-flow-log_test.go +++ b/sources/azure/integration-tests/network-flow-log_test.go @@ -11,7 +11,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-ip-group_test.go b/sources/azure/integration-tests/network-ip-group_test.go index d33a478a..7973b149 100644 --- a/sources/azure/integration-tests/network-ip-group_test.go +++ b/sources/azure/integration-tests/network-ip-group_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-load-balancer-backend-address-pool_test.go b/sources/azure/integration-tests/network-load-balancer-backend-address-pool_test.go index 9c0521ec..0473c73b 100644 --- a/sources/azure/integration-tests/network-load-balancer-backend-address-pool_test.go +++ b/sources/azure/integration-tests/network-load-balancer-backend-address-pool_test.go @@ -6,7 +6,7 @@ import ( "os" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-load-balancer-frontend-ip-configuration_test.go b/sources/azure/integration-tests/network-load-balancer-frontend-ip-configuration_test.go index a1fdafa9..566258eb 100644 --- a/sources/azure/integration-tests/network-load-balancer-frontend-ip-configuration_test.go +++ b/sources/azure/integration-tests/network-load-balancer-frontend-ip-configuration_test.go @@ -5,7 +5,7 @@ import ( "os" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-load-balancer-probe_test.go b/sources/azure/integration-tests/network-load-balancer-probe_test.go index 76885298..bd7b4005 100644 --- a/sources/azure/integration-tests/network-load-balancer-probe_test.go +++ b/sources/azure/integration-tests/network-load-balancer-probe_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-load-balancer_test.go b/sources/azure/integration-tests/network-load-balancer_test.go index 9de4d1b5..a86c1c95 100644 --- a/sources/azure/integration-tests/network-load-balancer_test.go +++ b/sources/azure/integration-tests/network-load-balancer_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-local-network-gateway_test.go b/sources/azure/integration-tests/network-local-network-gateway_test.go index ee0c8213..67f9c407 100644 --- a/sources/azure/integration-tests/network-local-network-gateway_test.go +++ b/sources/azure/integration-tests/network-local-network-gateway_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-network-interface-ip-configuration_test.go b/sources/azure/integration-tests/network-network-interface-ip-configuration_test.go index 8ede9377..30e291d9 100644 --- a/sources/azure/integration-tests/network-network-interface-ip-configuration_test.go +++ b/sources/azure/integration-tests/network-network-interface-ip-configuration_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-network-interface_test.go b/sources/azure/integration-tests/network-network-interface_test.go index 8b3bf318..1268e8b7 100644 --- a/sources/azure/integration-tests/network-network-interface_test.go +++ b/sources/azure/integration-tests/network-network-interface_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-network-security-group_test.go b/sources/azure/integration-tests/network-network-security-group_test.go index ad8a9e5a..d9d08ef2 100644 --- a/sources/azure/integration-tests/network-network-security-group_test.go +++ b/sources/azure/integration-tests/network-network-security-group_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-network-watcher_test.go b/sources/azure/integration-tests/network-network-watcher_test.go index 01f84c56..ec8b1f78 100644 --- a/sources/azure/integration-tests/network-network-watcher_test.go +++ b/sources/azure/integration-tests/network-network-watcher_test.go @@ -11,7 +11,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-private-link-service_test.go b/sources/azure/integration-tests/network-private-link-service_test.go index f8f24a93..af55046e 100644 --- a/sources/azure/integration-tests/network-private-link-service_test.go +++ b/sources/azure/integration-tests/network-private-link-service_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-public-ip-address_test.go b/sources/azure/integration-tests/network-public-ip-address_test.go index f432fb08..89e94071 100644 --- a/sources/azure/integration-tests/network-public-ip-address_test.go +++ b/sources/azure/integration-tests/network-public-ip-address_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-route-table_test.go b/sources/azure/integration-tests/network-route-table_test.go index 999b21bc..68341952 100644 --- a/sources/azure/integration-tests/network-route-table_test.go +++ b/sources/azure/integration-tests/network-route-table_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-virtual-network-gateway-connection_test.go b/sources/azure/integration-tests/network-virtual-network-gateway-connection_test.go index 6518448d..be3a5086 100644 --- a/sources/azure/integration-tests/network-virtual-network-gateway-connection_test.go +++ b/sources/azure/integration-tests/network-virtual-network-gateway-connection_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/integration-tests/network-virtual-network_test.go b/sources/azure/integration-tests/network-virtual-network_test.go index 0ebbf783..e66ae554 100644 --- a/sources/azure/integration-tests/network-virtual-network_test.go +++ b/sources/azure/integration-tests/network-virtual-network_test.go @@ -5,7 +5,7 @@ import ( "os" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/v4" log "github.com/sirupsen/logrus" diff --git a/sources/azure/manual/adapters.go b/sources/azure/manual/adapters.go index b6d86d0d..fdfad251 100644 --- a/sources/azure/manual/adapters.go +++ b/sources/azure/manual/adapters.go @@ -14,7 +14,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault/v2" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/maintenance/armmaintenance" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/operationalinsights/armoperationalinsights/v3" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/postgresql/armpostgresqlflexibleservers/v5" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns/v2" diff --git a/sources/azure/manual/network-application-gateway.go b/sources/azure/manual/network-application-gateway.go index 86665dc8..d3c078a3 100644 --- a/sources/azure/manual/network-application-gateway.go +++ b/sources/azure/manual/network-application-gateway.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-application-gateway_test.go b/sources/azure/manual/network-application-gateway_test.go index 0e3b7594..c55f67e2 100644 --- a/sources/azure/manual/network-application-gateway_test.go +++ b/sources/azure/manual/network-application-gateway_test.go @@ -7,7 +7,7 @@ import ( "reflect" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-application-security-group.go b/sources/azure/manual/network-application-security-group.go index 13fb0267..f9d9ebc0 100644 --- a/sources/azure/manual/network-application-security-group.go +++ b/sources/azure/manual/network-application-security-group.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-application-security-group_test.go b/sources/azure/manual/network-application-security-group_test.go index 5252d693..de17bf97 100644 --- a/sources/azure/manual/network-application-security-group_test.go +++ b/sources/azure/manual/network-application-security-group_test.go @@ -7,7 +7,7 @@ import ( "sync" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-ddos-protection-plan.go b/sources/azure/manual/network-ddos-protection-plan.go index acaf89ba..c284d6a8 100644 --- a/sources/azure/manual/network-ddos-protection-plan.go +++ b/sources/azure/manual/network-ddos-protection-plan.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-ddos-protection-plan_test.go b/sources/azure/manual/network-ddos-protection-plan_test.go index 72c97b0b..cffeb044 100644 --- a/sources/azure/manual/network-ddos-protection-plan_test.go +++ b/sources/azure/manual/network-ddos-protection-plan_test.go @@ -7,7 +7,7 @@ import ( "sync" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-default-security-rule.go b/sources/azure/manual/network-default-security-rule.go index b63368bc..805322fa 100644 --- a/sources/azure/manual/network-default-security-rule.go +++ b/sources/azure/manual/network-default-security-rule.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-default-security-rule_test.go b/sources/azure/manual/network-default-security-rule_test.go index 29a39576..bc7b54ac 100644 --- a/sources/azure/manual/network-default-security-rule_test.go +++ b/sources/azure/manual/network-default-security-rule_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-flow-log.go b/sources/azure/manual/network-flow-log.go index 881d28e4..336f7955 100644 --- a/sources/azure/manual/network-flow-log.go +++ b/sources/azure/manual/network-flow-log.go @@ -5,7 +5,7 @@ import ( "errors" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-flow-log_test.go b/sources/azure/manual/network-flow-log_test.go index f081fb48..68f61618 100644 --- a/sources/azure/manual/network-flow-log_test.go +++ b/sources/azure/manual/network-flow-log_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-ip-group.go b/sources/azure/manual/network-ip-group.go index f89c097b..2511ee39 100644 --- a/sources/azure/manual/network-ip-group.go +++ b/sources/azure/manual/network-ip-group.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-ip-group_test.go b/sources/azure/manual/network-ip-group_test.go index 8eaaa294..097fc046 100644 --- a/sources/azure/manual/network-ip-group_test.go +++ b/sources/azure/manual/network-ip-group_test.go @@ -7,7 +7,7 @@ import ( "sync" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-load-balancer-backend-address-pool.go b/sources/azure/manual/network-load-balancer-backend-address-pool.go index db14c3a0..565450a9 100644 --- a/sources/azure/manual/network-load-balancer-backend-address-pool.go +++ b/sources/azure/manual/network-load-balancer-backend-address-pool.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-load-balancer-backend-address-pool_test.go b/sources/azure/manual/network-load-balancer-backend-address-pool_test.go index 2ec8ad13..d95a1d80 100644 --- a/sources/azure/manual/network-load-balancer-backend-address-pool_test.go +++ b/sources/azure/manual/network-load-balancer-backend-address-pool_test.go @@ -6,7 +6,7 @@ import ( "fmt" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-load-balancer-frontend-ip-configuration.go b/sources/azure/manual/network-load-balancer-frontend-ip-configuration.go index 1b808918..3ac27e69 100644 --- a/sources/azure/manual/network-load-balancer-frontend-ip-configuration.go +++ b/sources/azure/manual/network-load-balancer-frontend-ip-configuration.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-load-balancer-frontend-ip-configuration_test.go b/sources/azure/manual/network-load-balancer-frontend-ip-configuration_test.go index 13578694..40e06c58 100644 --- a/sources/azure/manual/network-load-balancer-frontend-ip-configuration_test.go +++ b/sources/azure/manual/network-load-balancer-frontend-ip-configuration_test.go @@ -6,7 +6,7 @@ import ( "fmt" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-load-balancer-probe.go b/sources/azure/manual/network-load-balancer-probe.go index 42493e7a..aea2d0ed 100644 --- a/sources/azure/manual/network-load-balancer-probe.go +++ b/sources/azure/manual/network-load-balancer-probe.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-load-balancer-probe_test.go b/sources/azure/manual/network-load-balancer-probe_test.go index 34871e45..c0628957 100644 --- a/sources/azure/manual/network-load-balancer-probe_test.go +++ b/sources/azure/manual/network-load-balancer-probe_test.go @@ -6,7 +6,7 @@ import ( "fmt" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-load-balancer.go b/sources/azure/manual/network-load-balancer.go index 36f9805f..0d1e5410 100644 --- a/sources/azure/manual/network-load-balancer.go +++ b/sources/azure/manual/network-load-balancer.go @@ -6,7 +6,7 @@ import ( "fmt" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-load-balancer_test.go b/sources/azure/manual/network-load-balancer_test.go index fc0f75a7..18605f37 100644 --- a/sources/azure/manual/network-load-balancer_test.go +++ b/sources/azure/manual/network-load-balancer_test.go @@ -8,7 +8,7 @@ import ( "slices" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-local-network-gateway.go b/sources/azure/manual/network-local-network-gateway.go index 8fe6ddc6..72ba7be8 100644 --- a/sources/azure/manual/network-local-network-gateway.go +++ b/sources/azure/manual/network-local-network-gateway.go @@ -5,7 +5,7 @@ import ( "errors" "net" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-local-network-gateway_test.go b/sources/azure/manual/network-local-network-gateway_test.go index 179154fc..8f1ec047 100644 --- a/sources/azure/manual/network-local-network-gateway_test.go +++ b/sources/azure/manual/network-local-network-gateway_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-nat-gateway.go b/sources/azure/manual/network-nat-gateway.go index 7c938f91..c2f92470 100644 --- a/sources/azure/manual/network-nat-gateway.go +++ b/sources/azure/manual/network-nat-gateway.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-nat-gateway_test.go b/sources/azure/manual/network-nat-gateway_test.go index d2a2ed8c..ae3a365d 100644 --- a/sources/azure/manual/network-nat-gateway_test.go +++ b/sources/azure/manual/network-nat-gateway_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-network-interface-ip-configuration.go b/sources/azure/manual/network-network-interface-ip-configuration.go index 035bc3e3..abe7054d 100644 --- a/sources/azure/manual/network-network-interface-ip-configuration.go +++ b/sources/azure/manual/network-network-interface-ip-configuration.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-network-interface-ip-configuration_test.go b/sources/azure/manual/network-network-interface-ip-configuration_test.go index b47fc1a2..2b1b4f3b 100644 --- a/sources/azure/manual/network-network-interface-ip-configuration_test.go +++ b/sources/azure/manual/network-network-interface-ip-configuration_test.go @@ -7,7 +7,7 @@ import ( "slices" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-network-interface.go b/sources/azure/manual/network-network-interface.go index e66b839e..0ca672ef 100644 --- a/sources/azure/manual/network-network-interface.go +++ b/sources/azure/manual/network-network-interface.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-network-interface_test.go b/sources/azure/manual/network-network-interface_test.go index 82c170fc..fa5c13ad 100644 --- a/sources/azure/manual/network-network-interface_test.go +++ b/sources/azure/manual/network-network-interface_test.go @@ -7,7 +7,7 @@ import ( "slices" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-network-security-group.go b/sources/azure/manual/network-network-security-group.go index 59eced2a..4476ef42 100644 --- a/sources/azure/manual/network-network-security-group.go +++ b/sources/azure/manual/network-network-security-group.go @@ -6,7 +6,7 @@ import ( "net" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-network-security-group_test.go b/sources/azure/manual/network-network-security-group_test.go index 97e21b32..c739337d 100644 --- a/sources/azure/manual/network-network-security-group_test.go +++ b/sources/azure/manual/network-network-security-group_test.go @@ -7,7 +7,7 @@ import ( "slices" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-network-watcher.go b/sources/azure/manual/network-network-watcher.go index ea0e21ab..acdb266c 100644 --- a/sources/azure/manual/network-network-watcher.go +++ b/sources/azure/manual/network-network-watcher.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-network-watcher_test.go b/sources/azure/manual/network-network-watcher_test.go index d57d4437..d7cb87af 100644 --- a/sources/azure/manual/network-network-watcher_test.go +++ b/sources/azure/manual/network-network-watcher_test.go @@ -6,7 +6,7 @@ import ( "sync" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-private-endpoint.go b/sources/azure/manual/network-private-endpoint.go index dc15ebc3..cfe1ad16 100644 --- a/sources/azure/manual/network-private-endpoint.go +++ b/sources/azure/manual/network-private-endpoint.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-private-endpoint_test.go b/sources/azure/manual/network-private-endpoint_test.go index 1612922f..318cf2fa 100644 --- a/sources/azure/manual/network-private-endpoint_test.go +++ b/sources/azure/manual/network-private-endpoint_test.go @@ -8,7 +8,7 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-private-link-service.go b/sources/azure/manual/network-private-link-service.go index f1cd904b..e62afa99 100644 --- a/sources/azure/manual/network-private-link-service.go +++ b/sources/azure/manual/network-private-link-service.go @@ -5,7 +5,7 @@ import ( "errors" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-private-link-service_test.go b/sources/azure/manual/network-private-link-service_test.go index c4924407..70634ae7 100644 --- a/sources/azure/manual/network-private-link-service_test.go +++ b/sources/azure/manual/network-private-link-service_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-public-ip-address.go b/sources/azure/manual/network-public-ip-address.go index b0442d7c..84c01534 100644 --- a/sources/azure/manual/network-public-ip-address.go +++ b/sources/azure/manual/network-public-ip-address.go @@ -5,7 +5,7 @@ import ( "errors" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-public-ip-address_test.go b/sources/azure/manual/network-public-ip-address_test.go index 7377e913..046a1b25 100644 --- a/sources/azure/manual/network-public-ip-address_test.go +++ b/sources/azure/manual/network-public-ip-address_test.go @@ -7,7 +7,7 @@ import ( "slices" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-public-ip-prefix.go b/sources/azure/manual/network-public-ip-prefix.go index 60ed23cc..73f9d29b 100644 --- a/sources/azure/manual/network-public-ip-prefix.go +++ b/sources/azure/manual/network-public-ip-prefix.go @@ -5,7 +5,7 @@ import ( "errors" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-public-ip-prefix_test.go b/sources/azure/manual/network-public-ip-prefix_test.go index d880fa61..a697e2ae 100644 --- a/sources/azure/manual/network-public-ip-prefix_test.go +++ b/sources/azure/manual/network-public-ip-prefix_test.go @@ -7,7 +7,7 @@ import ( "sync" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-route-table.go b/sources/azure/manual/network-route-table.go index 4fb3c8fc..9af674c0 100644 --- a/sources/azure/manual/network-route-table.go +++ b/sources/azure/manual/network-route-table.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-route-table_test.go b/sources/azure/manual/network-route-table_test.go index 7535f90e..4660e255 100644 --- a/sources/azure/manual/network-route-table_test.go +++ b/sources/azure/manual/network-route-table_test.go @@ -7,7 +7,7 @@ import ( "slices" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-route.go b/sources/azure/manual/network-route.go index b3b43b05..962aa887 100644 --- a/sources/azure/manual/network-route.go +++ b/sources/azure/manual/network-route.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-route_test.go b/sources/azure/manual/network-route_test.go index 49bc469a..ef2e6280 100644 --- a/sources/azure/manual/network-route_test.go +++ b/sources/azure/manual/network-route_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-security-rule.go b/sources/azure/manual/network-security-rule.go index bffe5ee8..f987d97c 100644 --- a/sources/azure/manual/network-security-rule.go +++ b/sources/azure/manual/network-security-rule.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-security-rule_test.go b/sources/azure/manual/network-security-rule_test.go index e1f3572a..f90fb0c4 100644 --- a/sources/azure/manual/network-security-rule_test.go +++ b/sources/azure/manual/network-security-rule_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-subnet.go b/sources/azure/manual/network-subnet.go index cbaedc68..19b6a926 100644 --- a/sources/azure/manual/network-subnet.go +++ b/sources/azure/manual/network-subnet.go @@ -5,7 +5,7 @@ import ( "errors" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-subnet_test.go b/sources/azure/manual/network-subnet_test.go index d6035da0..9d648547 100644 --- a/sources/azure/manual/network-subnet_test.go +++ b/sources/azure/manual/network-subnet_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-virtual-network-gateway-connection.go b/sources/azure/manual/network-virtual-network-gateway-connection.go index bfa939b2..390ee01a 100644 --- a/sources/azure/manual/network-virtual-network-gateway-connection.go +++ b/sources/azure/manual/network-virtual-network-gateway-connection.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-virtual-network-gateway-connection_test.go b/sources/azure/manual/network-virtual-network-gateway-connection_test.go index 3aedd2a7..58c3cfe8 100644 --- a/sources/azure/manual/network-virtual-network-gateway-connection_test.go +++ b/sources/azure/manual/network-virtual-network-gateway-connection_test.go @@ -6,7 +6,7 @@ import ( "sync" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-virtual-network-gateway.go b/sources/azure/manual/network-virtual-network-gateway.go index 100c1c82..55abcb22 100644 --- a/sources/azure/manual/network-virtual-network-gateway.go +++ b/sources/azure/manual/network-virtual-network-gateway.go @@ -7,7 +7,7 @@ import ( "net/url" "strings" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-virtual-network-gateway_test.go b/sources/azure/manual/network-virtual-network-gateway_test.go index 09f4dba8..7b970ded 100644 --- a/sources/azure/manual/network-virtual-network-gateway_test.go +++ b/sources/azure/manual/network-virtual-network-gateway_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-virtual-network-peering.go b/sources/azure/manual/network-virtual-network-peering.go index 39765e38..f039c9f5 100644 --- a/sources/azure/manual/network-virtual-network-peering.go +++ b/sources/azure/manual/network-virtual-network-peering.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-virtual-network-peering_test.go b/sources/azure/manual/network-virtual-network-peering_test.go index bebf90e1..9e1e9113 100644 --- a/sources/azure/manual/network-virtual-network-peering_test.go +++ b/sources/azure/manual/network-virtual-network-peering_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/network-virtual-network.go b/sources/azure/manual/network-virtual-network.go index 05544a25..fcbd22d8 100644 --- a/sources/azure/manual/network-virtual-network.go +++ b/sources/azure/manual/network-virtual-network.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "github.com/overmindtech/cli/go/discovery" "github.com/overmindtech/cli/go/sdp-go" "github.com/overmindtech/cli/go/sdpcache" diff --git a/sources/azure/manual/network-virtual-network_test.go b/sources/azure/manual/network-virtual-network_test.go index 7fee1b7c..857ef15a 100644 --- a/sources/azure/manual/network-virtual-network_test.go +++ b/sources/azure/manual/network-virtual-network_test.go @@ -7,7 +7,7 @@ import ( "slices" "testing" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" "go.uber.org/mock/gomock" "github.com/overmindtech/cli/go/discovery" diff --git a/sources/azure/manual/sql-server-private-endpoint-connection.go b/sources/azure/manual/sql-server-private-endpoint-connection.go index d4639ad8..ff17df92 100644 --- a/sources/azure/manual/sql-server-private-endpoint-connection.go +++ b/sources/azure/manual/sql-server-private-endpoint-connection.go @@ -3,7 +3,6 @@ package manual import ( "context" "errors" - "strings" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/sql/armsql/v2" "github.com/overmindtech/cli/go/discovery" @@ -177,15 +176,19 @@ func (s sqlServerPrivateEndpointConnectionWrapper) azurePrivateEndpointConnectio Scope: scope, } - // Health from provisioning state (armsql uses PrivateEndpointProvisioningState enum) + // Health from provisioning state. API version 2026-08-01-preview (the + // version this client calls) dropped Ready, Approving, Dropping, and + // Rejecting in 2025-08-01-preview. Those strings are no longer part of + // the contract, so they fall through to unknown. if conn.Properties != nil && conn.Properties.ProvisioningState != nil { - state := strings.ToLower(string(*conn.Properties.ProvisioningState)) - switch state { - case "ready": + switch *conn.Properties.ProvisioningState { + case armsql.PrivateEndpointProvisioningStateSucceeded: sdpItem.Health = sdp.Health_HEALTH_OK.Enum() - case "approving", "dropping": + case armsql.PrivateEndpointProvisioningStateCreated, + armsql.PrivateEndpointProvisioningStateInProgress: sdpItem.Health = sdp.Health_HEALTH_PENDING.Enum() - case "failed", "rejecting": + case armsql.PrivateEndpointProvisioningStateFailed, + armsql.PrivateEndpointProvisioningStateCanceled: sdpItem.Health = sdp.Health_HEALTH_ERROR.Enum() default: sdpItem.Health = sdp.Health_HEALTH_UNKNOWN.Enum() diff --git a/sources/azure/manual/sql-server-private-endpoint-connection_test.go b/sources/azure/manual/sql-server-private-endpoint-connection_test.go index eae0de00..2660db70 100644 --- a/sources/azure/manual/sql-server-private-endpoint-connection_test.go +++ b/sources/azure/manual/sql-server-private-endpoint-connection_test.go @@ -293,17 +293,60 @@ func TestSQLServerPrivateEndpointConnection(t *testing.T) { t.Error("Expected NetworkPrivateEndpoint in PotentialLinks") } }) + + t.Run("HealthMapping", func(t *testing.T) { + tests := []struct { + name string + state armsql.PrivateEndpointProvisioningState + expectedHealth sdp.Health + }{ + {"Succeeded", armsql.PrivateEndpointProvisioningStateSucceeded, sdp.Health_HEALTH_OK}, + {"Created", armsql.PrivateEndpointProvisioningStateCreated, sdp.Health_HEALTH_PENDING}, + {"InProgress", armsql.PrivateEndpointProvisioningStateInProgress, sdp.Health_HEALTH_PENDING}, + {"Failed", armsql.PrivateEndpointProvisioningStateFailed, sdp.Health_HEALTH_ERROR}, + {"Canceled", armsql.PrivateEndpointProvisioningStateCanceled, sdp.Health_HEALTH_ERROR}, + // Removed in API version 2025-08-01-preview; this client does not treat it as healthy. + {"RemovedReady", armsql.PrivateEndpointProvisioningState("Ready"), sdp.Health_HEALTH_UNKNOWN}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + conn := createAzureSQLServerPrivateEndpointConnection(connectionName, "") + conn.Properties.ProvisioningState = &tt.state + + mockClient := mocks.NewMockSQLServerPrivateEndpointConnectionsClient(ctrl) + mockClient.EXPECT().Get(ctx, resourceGroup, serverName, connectionName).Return( + armsql.PrivateEndpointConnectionsClientGetResponse{ + PrivateEndpointConnection: *conn, + }, nil) + + testClient := &testSQLServerPrivateEndpointConnectionsClient{MockSQLServerPrivateEndpointConnectionsClient: mockClient} + wrapper := manual.NewSQLServerPrivateEndpointConnection(testClient, []azureshared.ResourceGroupScope{azureshared.NewResourceGroupScope(subscriptionID, resourceGroup)}) + adapter := sources.WrapperToAdapter(wrapper, sdpcache.NewNoOpCache()) + + query := shared.CompositeLookupKey(serverName, connectionName) + sdpItem, qErr := adapter.Get(ctx, wrapper.Scopes()[0], query, true) + if qErr != nil { + t.Fatalf("Expected no error, got: %v", qErr) + } + + if sdpItem.GetHealth() != tt.expectedHealth { + t.Errorf("Expected health %v, got %v", tt.expectedHealth, sdpItem.GetHealth()) + } + }) + } + }) } func createAzureSQLServerPrivateEndpointConnection(connectionName, privateEndpointID string) *armsql.PrivateEndpointConnection { - ready := armsql.PrivateEndpointProvisioningStateReady + succeeded := armsql.PrivateEndpointProvisioningStateSucceeded approved := armsql.PrivateLinkServiceConnectionStateStatusApproved conn := &armsql.PrivateEndpointConnection{ ID: new("/subscriptions/test-subscription/resourceGroups/test-rg/providers/Microsoft.Sql/servers/test-sql-server/privateEndpointConnections/" + connectionName), Name: new(connectionName), Type: new("Microsoft.Sql/servers/privateEndpointConnections"), Properties: &armsql.PrivateEndpointConnectionProperties{ - ProvisioningState: &ready, + ProvisioningState: &succeeded, PrivateLinkServiceConnectionState: &armsql.PrivateLinkServiceConnectionStateProperty{ Status: &approved, }, diff --git a/sources/azure/shared/mocks/mock_application_gateways_client.go b/sources/azure/shared/mocks/mock_application_gateways_client.go index 3877b999..96051c2c 100644 --- a/sources/azure/shared/mocks/mock_application_gateways_client.go +++ b/sources/azure/shared/mocks/mock_application_gateways_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_application_security_groups_client.go b/sources/azure/shared/mocks/mock_application_security_groups_client.go index 23401e17..0ce809b1 100644 --- a/sources/azure/shared/mocks/mock_application_security_groups_client.go +++ b/sources/azure/shared/mocks/mock_application_security_groups_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_ddos_protection_plans_client.go b/sources/azure/shared/mocks/mock_ddos_protection_plans_client.go index 5215f344..945dd811 100644 --- a/sources/azure/shared/mocks/mock_ddos_protection_plans_client.go +++ b/sources/azure/shared/mocks/mock_ddos_protection_plans_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_default_security_rules_client.go b/sources/azure/shared/mocks/mock_default_security_rules_client.go index b15834d3..49b19206 100644 --- a/sources/azure/shared/mocks/mock_default_security_rules_client.go +++ b/sources/azure/shared/mocks/mock_default_security_rules_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_flow_logs_client.go b/sources/azure/shared/mocks/mock_flow_logs_client.go index c33b263e..390b04d8 100644 --- a/sources/azure/shared/mocks/mock_flow_logs_client.go +++ b/sources/azure/shared/mocks/mock_flow_logs_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_interface_ip_configurations_client.go b/sources/azure/shared/mocks/mock_interface_ip_configurations_client.go index 2a0c8d84..93069830 100644 --- a/sources/azure/shared/mocks/mock_interface_ip_configurations_client.go +++ b/sources/azure/shared/mocks/mock_interface_ip_configurations_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_ip_groups_client.go b/sources/azure/shared/mocks/mock_ip_groups_client.go index e84831d0..5a6ae6fa 100644 --- a/sources/azure/shared/mocks/mock_ip_groups_client.go +++ b/sources/azure/shared/mocks/mock_ip_groups_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_load_balancer_backend_address_pools_client.go b/sources/azure/shared/mocks/mock_load_balancer_backend_address_pools_client.go index 15d84e98..841ce357 100644 --- a/sources/azure/shared/mocks/mock_load_balancer_backend_address_pools_client.go +++ b/sources/azure/shared/mocks/mock_load_balancer_backend_address_pools_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_load_balancer_frontend_ip_configurations_client.go b/sources/azure/shared/mocks/mock_load_balancer_frontend_ip_configurations_client.go index 068c74d1..2274640a 100644 --- a/sources/azure/shared/mocks/mock_load_balancer_frontend_ip_configurations_client.go +++ b/sources/azure/shared/mocks/mock_load_balancer_frontend_ip_configurations_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_load_balancer_probes_client.go b/sources/azure/shared/mocks/mock_load_balancer_probes_client.go index 223ed4b7..2e5a4f39 100644 --- a/sources/azure/shared/mocks/mock_load_balancer_probes_client.go +++ b/sources/azure/shared/mocks/mock_load_balancer_probes_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_load_balancers_client.go b/sources/azure/shared/mocks/mock_load_balancers_client.go index 61a56b1f..262d0cb3 100644 --- a/sources/azure/shared/mocks/mock_load_balancers_client.go +++ b/sources/azure/shared/mocks/mock_load_balancers_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_local_network_gateways_client.go b/sources/azure/shared/mocks/mock_local_network_gateways_client.go index f6d0627d..8e15e965 100644 --- a/sources/azure/shared/mocks/mock_local_network_gateways_client.go +++ b/sources/azure/shared/mocks/mock_local_network_gateways_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_nat_gateways_client.go b/sources/azure/shared/mocks/mock_nat_gateways_client.go index 789016a3..fc6090c9 100644 --- a/sources/azure/shared/mocks/mock_nat_gateways_client.go +++ b/sources/azure/shared/mocks/mock_nat_gateways_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_network_interfaces_client.go b/sources/azure/shared/mocks/mock_network_interfaces_client.go index 3c65ccee..aa365559 100644 --- a/sources/azure/shared/mocks/mock_network_interfaces_client.go +++ b/sources/azure/shared/mocks/mock_network_interfaces_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_network_private_endpoint_client.go b/sources/azure/shared/mocks/mock_network_private_endpoint_client.go index 6aa5d4e4..4e0c5bc6 100644 --- a/sources/azure/shared/mocks/mock_network_private_endpoint_client.go +++ b/sources/azure/shared/mocks/mock_network_private_endpoint_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_network_security_groups_client.go b/sources/azure/shared/mocks/mock_network_security_groups_client.go index 0af1864f..8fee58c0 100644 --- a/sources/azure/shared/mocks/mock_network_security_groups_client.go +++ b/sources/azure/shared/mocks/mock_network_security_groups_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_network_watchers_client.go b/sources/azure/shared/mocks/mock_network_watchers_client.go index 99ce4634..7cfefa01 100644 --- a/sources/azure/shared/mocks/mock_network_watchers_client.go +++ b/sources/azure/shared/mocks/mock_network_watchers_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_private_link_services_client.go b/sources/azure/shared/mocks/mock_private_link_services_client.go index 5437495d..0f3e8a95 100644 --- a/sources/azure/shared/mocks/mock_private_link_services_client.go +++ b/sources/azure/shared/mocks/mock_private_link_services_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_public_ip_addresses_client.go b/sources/azure/shared/mocks/mock_public_ip_addresses_client.go index 77244700..68b4b75c 100644 --- a/sources/azure/shared/mocks/mock_public_ip_addresses_client.go +++ b/sources/azure/shared/mocks/mock_public_ip_addresses_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_public_ip_prefixes_client.go b/sources/azure/shared/mocks/mock_public_ip_prefixes_client.go index a4aaf2d7..08596598 100644 --- a/sources/azure/shared/mocks/mock_public_ip_prefixes_client.go +++ b/sources/azure/shared/mocks/mock_public_ip_prefixes_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_route_tables_client.go b/sources/azure/shared/mocks/mock_route_tables_client.go index 34b7bf35..45cdd295 100644 --- a/sources/azure/shared/mocks/mock_route_tables_client.go +++ b/sources/azure/shared/mocks/mock_route_tables_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_routes_client.go b/sources/azure/shared/mocks/mock_routes_client.go index 179036ad..667b304a 100644 --- a/sources/azure/shared/mocks/mock_routes_client.go +++ b/sources/azure/shared/mocks/mock_routes_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_security_rules_client.go b/sources/azure/shared/mocks/mock_security_rules_client.go index c1f4f32c..48d39612 100644 --- a/sources/azure/shared/mocks/mock_security_rules_client.go +++ b/sources/azure/shared/mocks/mock_security_rules_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_subnets_client.go b/sources/azure/shared/mocks/mock_subnets_client.go index 1c569b56..a673d6a6 100644 --- a/sources/azure/shared/mocks/mock_subnets_client.go +++ b/sources/azure/shared/mocks/mock_subnets_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_virtual_network_gateway_connections_client.go b/sources/azure/shared/mocks/mock_virtual_network_gateway_connections_client.go index 01d7102b..099758ef 100644 --- a/sources/azure/shared/mocks/mock_virtual_network_gateway_connections_client.go +++ b/sources/azure/shared/mocks/mock_virtual_network_gateway_connections_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_virtual_network_gateways_client.go b/sources/azure/shared/mocks/mock_virtual_network_gateways_client.go index 3bca54f4..6948a08b 100644 --- a/sources/azure/shared/mocks/mock_virtual_network_gateways_client.go +++ b/sources/azure/shared/mocks/mock_virtual_network_gateways_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_virtual_network_peerings_client.go b/sources/azure/shared/mocks/mock_virtual_network_peerings_client.go index fca06b9e..68c086a4 100644 --- a/sources/azure/shared/mocks/mock_virtual_network_peerings_client.go +++ b/sources/azure/shared/mocks/mock_virtual_network_peerings_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/azure/shared/mocks/mock_virtual_networks_client.go b/sources/azure/shared/mocks/mock_virtual_networks_client.go index ac47cb19..1000134e 100644 --- a/sources/azure/shared/mocks/mock_virtual_networks_client.go +++ b/sources/azure/shared/mocks/mock_virtual_networks_client.go @@ -13,7 +13,7 @@ import ( context "context" reflect "reflect" - armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v11" + armnetwork "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v12" clients "github.com/overmindtech/cli/sources/azure/clients" gomock "go.uber.org/mock/gomock" ) diff --git a/sources/gcp/build/package/Dockerfile b/sources/gcp/build/package/Dockerfile index 9e3b2893..b3bed257 100644 --- a/sources/gcp/build/package/Dockerfile +++ b/sources/gcp/build/package/Dockerfile @@ -1,5 +1,5 @@ # Build the source binary -FROM golang:1.27.0-alpine3.23 AS builder +FROM golang:1.27.1-alpine3.23 AS builder ARG TARGETOS ARG TARGETARCH ARG BUILD_VERSION diff --git a/sources/gcp/dynamic/adapters/cloudfunctions-function_test.go b/sources/gcp/dynamic/adapters/cloudfunctions-function_test.go index aee2326c..bfea2615 100644 --- a/sources/gcp/dynamic/adapters/cloudfunctions-function_test.go +++ b/sources/gcp/dynamic/adapters/cloudfunctions-function_test.go @@ -2,8 +2,10 @@ package adapters_test import ( "context" + "encoding/json" "fmt" "net/http" + "strings" "testing" "cloud.google.com/go/functions/apiv2/functionspb" @@ -23,6 +25,13 @@ func TestCloudFunctionsFunction(t *testing.T) { linker := gcpshared.NewLinker() location := "us-central1" functionName := "test-function" + const ( + serviceEnvSentinel = "ovm-fn-svc-env-sentinel-9f3a" + buildEnvSentinel = "ovm-fn-build-env-sentinel-7c2b" + serviceEnvName = "DATABASE_PASSWORD" + buildEnvName = "NPM_TOKEN" + secretEnvName = "fn-api-key" + ) // Mock response for a Cloud Function cloudFunction := &functionspb.Function{ @@ -43,7 +52,14 @@ func TestCloudFunctionsFunction(t *testing.T) { VpcConnector: fmt.Sprintf("projects/%s/locations/%s/connectors/test-connector", projectID, location), Service: fmt.Sprintf("projects/%s/locations/%s/services/test-function-service", projectID, location), EnvironmentVariables: map[string]string{ - "ENV": "test", + serviceEnvName: serviceEnvSentinel, + }, + SecretEnvironmentVariables: []*functionspb.SecretEnvVar{ + { + Key: "API_KEY", + Secret: secretEnvName, + Version: "1", + }, }, }, BuildConfig: &functionspb.BuildConfig{ @@ -51,6 +67,9 @@ func TestCloudFunctionsFunction(t *testing.T) { EntryPoint: "main", DockerRepository: fmt.Sprintf("projects/%s/locations/%s/repositories/test-docker-repo", projectID, location), WorkerPool: fmt.Sprintf("projects/%s/locations/%s/workerPools/test-worker-pool", projectID, location), + EnvironmentVariables: map[string]string{ + buildEnvName: buildEnvSentinel, + }, Source: &functionspb.Source{ Source: &functionspb.Source_StorageSource{ StorageSource: &functionspb.StorageSource{ @@ -191,6 +210,47 @@ func TestCloudFunctionsFunction(t *testing.T) { t.Errorf("Expected buildConfig.entryPoint to be 'main', got %s", buildConfigMap["entryPoint"]) } + attrMap := sdpItem.GetAttributes().GetAttrStruct().AsMap() + attrsJSON, marshalErr := json.Marshal(attrMap) + if marshalErr != nil { + t.Fatalf("marshal attributes: %v", marshalErr) + } + if strings.Contains(string(attrsJSON), serviceEnvSentinel) { + t.Errorf("serviceConfig environment variable value leaked in attributes: %s", attrsJSON) + } + if strings.Contains(string(attrsJSON), buildEnvSentinel) { + t.Errorf("buildConfig environment variable value leaked in attributes: %s", attrsJSON) + } + if !strings.Contains(string(attrsJSON), secretEnvName) { + t.Errorf("expected secretEnvironmentVariables secret name %q to remain: %s", secretEnvName, attrsJSON) + } + + serviceConfig, ok := attrMap["serviceConfig"].(map[string]any) + if !ok { + t.Fatalf("expected serviceConfig object, got %T", attrMap["serviceConfig"]) + } + serviceEnv, ok := serviceConfig["environmentVariables"].(map[string]any) + if !ok { + t.Fatalf("expected serviceConfig.environmentVariables map, got %T", serviceConfig["environmentVariables"]) + } + if _, exists := serviceEnv[serviceEnvName]; !exists { + t.Errorf("expected serviceConfig environment variable name %q to remain", serviceEnvName) + } + if serviceEnv[serviceEnvName] != "" { + t.Errorf("expected serviceConfig environment variable %q to be empty, got %#v", serviceEnvName, serviceEnv[serviceEnvName]) + } + + buildEnv, ok := buildConfigMap["environmentVariables"].(map[string]any) + if !ok { + t.Fatalf("expected buildConfig.environmentVariables map, got %T", buildConfigMap["environmentVariables"]) + } + if _, exists := buildEnv[buildEnvName]; !exists { + t.Errorf("expected buildConfig environment variable name %q to remain", buildEnvName) + } + if buildEnv[buildEnvName] != "" { + t.Errorf("expected buildConfig environment variable %q to be empty, got %#v", buildEnvName, buildEnv[buildEnvName]) + } + t.Run("StaticTests", func(t *testing.T) { queryTests := shared.QueryTests{ // Test KMS key link diff --git a/sources/gcp/dynamic/adapters/compute-instance-template_test.go b/sources/gcp/dynamic/adapters/compute-instance-template_test.go index 4159b551..a8752a0b 100644 --- a/sources/gcp/dynamic/adapters/compute-instance-template_test.go +++ b/sources/gcp/dynamic/adapters/compute-instance-template_test.go @@ -2,7 +2,9 @@ package adapters import ( "context" + "encoding/json" "net/http" + "strings" "testing" "time" @@ -30,6 +32,7 @@ func TestComputeInstanceTemplate(t *testing.T) { ctx := context.Background() projectID := "test-project" linker := gcpshared.NewLinker() + startupScript := "echo fixture-instance-template-startup-script" // Create a template object template := &compute.InstanceTemplate{ @@ -110,6 +113,14 @@ func TestComputeInstanceTemplate(t *testing.T) { Key: "compute.googleapis.com/reservation-name", Values: []string{"my-reservation"}, }, + Metadata: &compute.Metadata{ + Items: []*compute.MetadataItems{ + { + Key: "startup-script", + Value: new(startupScript), + }, + }, + }, }, SelfLink: "https://compute.googleapis.com/compute/v1/projects/test-project/global/instanceTemplates/test-instance-template", } @@ -161,6 +172,29 @@ func TestComputeInstanceTemplate(t *testing.T) { t.Errorf("Expected unique attribute value 'test-instance-template', got %s", sdpItem.UniqueAttributeValue()) } + t.Run("ExcludesMetadataItemsFromAttributes", func(t *testing.T) { + attrsJSON, marshalErr := json.Marshal(sdpItem.GetAttributes().GetAttrStruct().AsMap()) + if marshalErr != nil { + t.Fatalf("marshal attributes: %v", marshalErr) + } + if strings.Contains(string(attrsJSON), startupScript) { + t.Errorf("startup-script value leaked in attributes: %s", attrsJSON) + } + + attrMap := sdpItem.GetAttributes().GetAttrStruct().AsMap() + properties, ok := attrMap["properties"].(map[string]any) + if !ok { + t.Fatalf("expected properties object, got %v", attrMap["properties"]) + } + metadata, _ := properties["metadata"].(map[string]any) + if metadata == nil { + return + } + if items, hasItems := metadata["items"]; hasItems { + t.Errorf("expected properties.metadata.items to be excluded, got %v", items) + } + }) + t.Run("StaticTests", func(t *testing.T) { queryTests := shared.QueryTests{ { diff --git a/sources/gcp/dynamic/adapters/run-revision_test.go b/sources/gcp/dynamic/adapters/run-revision_test.go index c1525c37..8df7380e 100644 --- a/sources/gcp/dynamic/adapters/run-revision_test.go +++ b/sources/gcp/dynamic/adapters/run-revision_test.go @@ -2,8 +2,10 @@ package adapters_test import ( "context" + "encoding/json" "fmt" "net/http" + "strings" "testing" "google.golang.org/api/run/v2" @@ -23,11 +25,36 @@ func TestRunRevision(t *testing.T) { serviceName := "test-service" revisionName := "test-revision" linker := gcpshared.NewLinker() + const ( + plaintextEnvSentinel = "ovm-run-rev-env-sentinel-8b6f" + plaintextEnvName = "DATABASE_URL" + secretEnvName = "API_KEY" + secretRef = "projects/test-project/secrets/rev-api-key" + ) revision := &run.GoogleCloudRunV2Revision{ Name: fmt.Sprintf("projects/%s/locations/%s/services/%s/revisions/%s", projectID, location, serviceName, revisionName), ServiceAccount: "run-sa@test-project.iam.gserviceaccount.com", Service: fmt.Sprintf("projects/%s/locations/%s/services/%s", projectID, location, serviceName), + Containers: []*run.GoogleCloudRunV2Container{ + { + Image: fmt.Sprintf("%s-docker.pkg.dev/%s/repo/image:latest", location, projectID), + Env: []*run.GoogleCloudRunV2EnvVar{ + { + Name: plaintextEnvName, + Value: plaintextEnvSentinel, + }, + { + Name: secretEnvName, + ValueSource: &run.GoogleCloudRunV2EnvVarSource{ + SecretKeyRef: &run.GoogleCloudRunV2SecretKeySelector{ + Secret: secretRef, + }, + }, + }, + }, + }, + }, } revisionList := &run.GoogleCloudRunV2ListRevisionsResponse{ @@ -64,6 +91,21 @@ func TestRunRevision(t *testing.T) { t.Errorf("Expected type %s, got %s", sdpItemType.String(), sdpItem.GetType()) } + attrMap := sdpItem.GetAttributes().GetAttrStruct().AsMap() + attrsJSON, marshalErr := json.Marshal(attrMap) + if marshalErr != nil { + t.Fatalf("marshal attributes: %v", marshalErr) + } + if strings.Contains(string(attrsJSON), plaintextEnvSentinel) { + t.Errorf("plaintext env value leaked in attributes: %s", attrsJSON) + } + if !strings.Contains(string(attrsJSON), plaintextEnvName) { + t.Errorf("expected env name %q to remain in attributes: %s", plaintextEnvName, attrsJSON) + } + if !strings.Contains(string(attrsJSON), secretRef) { + t.Errorf("expected secret ref to remain in attributes: %s", attrsJSON) + } + t.Run("StaticTests", func(t *testing.T) { queryTests := shared.QueryTests{ { diff --git a/sources/gcp/dynamic/adapters/run-service_test.go b/sources/gcp/dynamic/adapters/run-service_test.go index 382801c0..06000a30 100644 --- a/sources/gcp/dynamic/adapters/run-service_test.go +++ b/sources/gcp/dynamic/adapters/run-service_test.go @@ -2,8 +2,10 @@ package adapters_test import ( "context" + "encoding/json" "fmt" "net/http" + "strings" "testing" "cloud.google.com/go/run/apiv2/runpb" @@ -22,6 +24,14 @@ func TestRunService(t *testing.T) { location := "us-central1" linker := gcpshared.NewLinker() serviceName := "test-service" + const ( + plaintextEnvSentinel = "ovm-run-svc-env-sentinel-4e1d" + buildEnvSentinel = "ovm-run-svc-build-env-sentinel-2a8c" + plaintextEnvName = "DATABASE_URL" + secretEnvName = "API_KEY" + buildEnvName = "NPM_TOKEN" + secretRef = "projects/test-project/secrets/api-key" + ) service := &runpb.Service{ Name: fmt.Sprintf("projects/%s/locations/%s/services/%s", projectID, location, serviceName), @@ -41,10 +51,17 @@ func TestRunService(t *testing.T) { Image: fmt.Sprintf("%s-docker.pkg.dev/%s/repo/image:latest", location, projectID), Env: []*runpb.EnvVar{ { + Name: plaintextEnvName, + Values: &runpb.EnvVar_Value{ + Value: plaintextEnvSentinel, + }, + }, + { + Name: secretEnvName, Values: &runpb.EnvVar_ValueSource{ ValueSource: &runpb.EnvVarSource{ SecretKeyRef: &runpb.SecretKeySelector{ - Secret: fmt.Sprintf("projects/%s/secrets/api-key", projectID), + Secret: secretRef, }, }, }, @@ -77,6 +94,11 @@ func TestRunService(t *testing.T) { }, EncryptionKey: "projects/test-project/locations/global/keyRings/test-ring/cryptoKeys/test-key", }, + BuildConfig: &runpb.BuildConfig{ + EnvironmentVariables: map[string]string{ + buildEnvName: buildEnvSentinel, + }, + }, LatestReadyRevision: fmt.Sprintf("projects/%s/locations/%s/services/%s/revisions/rev-1", projectID, location, serviceName), LatestCreatedRevision: fmt.Sprintf("projects/%s/locations/%s/services/%s/revisions/rev-2", projectID, location, serviceName), Traffic: []*runpb.TrafficTarget{ @@ -148,6 +170,39 @@ func TestRunService(t *testing.T) { t.Errorf("Expected name field to be '%s', got %s", expectedName, val) } + attrMap := sdpItem.GetAttributes().GetAttrStruct().AsMap() + attrsJSON, marshalErr := json.Marshal(attrMap) + if marshalErr != nil { + t.Fatalf("marshal attributes: %v", marshalErr) + } + if strings.Contains(string(attrsJSON), plaintextEnvSentinel) { + t.Errorf("plaintext env value leaked in attributes: %s", attrsJSON) + } + if strings.Contains(string(attrsJSON), buildEnvSentinel) { + t.Errorf("buildConfig environment variable value leaked in attributes: %s", attrsJSON) + } + if !strings.Contains(string(attrsJSON), plaintextEnvName) { + t.Errorf("expected env name %q to remain in attributes: %s", plaintextEnvName, attrsJSON) + } + if !strings.Contains(string(attrsJSON), secretRef) { + t.Errorf("expected secret ref to remain in attributes: %s", attrsJSON) + } + + buildConfig, ok := attrMap["buildConfig"].(map[string]any) + if !ok { + t.Fatalf("expected buildConfig object, got %T", attrMap["buildConfig"]) + } + buildEnv, ok := buildConfig["environmentVariables"].(map[string]any) + if !ok { + t.Fatalf("expected buildConfig.environmentVariables map, got %T", buildConfig["environmentVariables"]) + } + if _, exists := buildEnv[buildEnvName]; !exists { + t.Errorf("expected buildConfig environment variable name %q to remain", buildEnvName) + } + if buildEnv[buildEnvName] != "" { + t.Errorf("expected buildConfig environment variable %q to be empty, got %#v", buildEnvName, buildEnv[buildEnvName]) + } + t.Run("StaticTests", func(t *testing.T) { queryTests := shared.QueryTests{ // template.serviceAccount diff --git a/sources/gcp/dynamic/adapters/run-worker-pool_test.go b/sources/gcp/dynamic/adapters/run-worker-pool_test.go new file mode 100644 index 00000000..fa2fdd7e --- /dev/null +++ b/sources/gcp/dynamic/adapters/run-worker-pool_test.go @@ -0,0 +1,90 @@ +package adapters_test + +import ( + "context" + "encoding/json" + "fmt" + "net/http" + "strings" + "testing" + + "cloud.google.com/go/run/apiv2/runpb" + + "github.com/overmindtech/cli/go/sdpcache" + "github.com/overmindtech/cli/sources/gcp/dynamic" + gcpshared "github.com/overmindtech/cli/sources/gcp/shared" + "github.com/overmindtech/cli/sources/shared" +) + +func TestRunWorkerPool(t *testing.T) { + ctx := context.Background() + projectID := "test-project" + location := "us-central1" + linker := gcpshared.NewLinker() + workerPoolName := "test-worker-pool" + const ( + plaintextEnvSentinel = "ovm-run-wp-env-sentinel-3d5c" + plaintextEnvName = "DATABASE_URL" + ) + + workerPool := &runpb.WorkerPool{ + Name: fmt.Sprintf("projects/%s/locations/%s/workerPools/%s", projectID, location, workerPoolName), + Template: &runpb.WorkerPoolRevisionTemplate{ + Containers: []*runpb.Container{ + { + Image: fmt.Sprintf("%s-docker.pkg.dev/%s/repo/image:latest", location, projectID), + Env: []*runpb.EnvVar{ + { + Name: plaintextEnvName, + Values: &runpb.EnvVar_Value{ + Value: plaintextEnvSentinel, + }, + }, + }, + }, + }, + }, + } + + sdpItemType := gcpshared.RunWorkerPool + + expectedCallAndResponses := map[string]shared.MockResponse{ + fmt.Sprintf("https://run.googleapis.com/v2/projects/%s/locations/%s/workerPools/%s", projectID, location, workerPoolName): { + StatusCode: http.StatusOK, + Body: workerPool, + }, + } + + t.Run("Get", func(t *testing.T) { + httpCli := shared.NewMockHTTPClientProvider(expectedCallAndResponses) + adapter, err := dynamic.MakeAdapter(sdpItemType, linker, httpCli, sdpcache.NewNoOpCache(), []gcpshared.LocationInfo{gcpshared.NewProjectLocation(projectID)}) + if err != nil { + t.Fatalf("Failed to create adapter for %s: %v", sdpItemType, err) + } + + combinedQuery := shared.CompositeLookupKey(location, workerPoolName) + sdpItem, err := adapter.Get(ctx, projectID, combinedQuery, true) + if err != nil { + t.Fatalf("Failed to get resource: %v", err) + } + + if sdpItem.GetType() != sdpItemType.String() { + t.Errorf("Expected type %s, got %s", sdpItemType.String(), sdpItem.GetType()) + } + if sdpItem.UniqueAttributeValue() != combinedQuery { + t.Errorf("Expected unique attribute value '%s', got %s", combinedQuery, sdpItem.UniqueAttributeValue()) + } + + attrMap := sdpItem.GetAttributes().GetAttrStruct().AsMap() + attrsJSON, marshalErr := json.Marshal(attrMap) + if marshalErr != nil { + t.Fatalf("marshal attributes: %v", marshalErr) + } + if strings.Contains(string(attrsJSON), plaintextEnvSentinel) { + t.Errorf("plaintext env value leaked in attributes: %s", attrsJSON) + } + if !strings.Contains(string(attrsJSON), plaintextEnvName) { + t.Errorf("expected env name %q to remain in attributes: %s", plaintextEnvName, attrsJSON) + } + }) +} diff --git a/sources/gcp/dynamic/shared.go b/sources/gcp/dynamic/shared.go index 38912252..88721417 100644 --- a/sources/gcp/dynamic/shared.go +++ b/sources/gcp/dynamic/shared.go @@ -101,7 +101,29 @@ func externalToSDP( linker *gcpshared.Linker, nameSelector string, ) (*sdp.Item, error) { - attributes, err := shared.ToAttributesWithExclude(resp, "labels") + // Redact on the attribute copy so linkItem still walks the original + // API payload. Instance templates drop metadata items; Cloud Run and + // Cloud Functions drop plaintext environment values while keeping + // names and secret references. + exclusions := []string{"labels"} + var blankMaps []string + switch sdpAssetType.String() { + case gcpshared.ComputeInstanceTemplate.String(): + exclusions = append(exclusions, "properties.metadata.items") + case gcpshared.RunService.String(): + exclusions = append(exclusions, "template.containers.env.value") + blankMaps = []string{"buildConfig.environmentVariables"} + case gcpshared.RunRevision.String(): + exclusions = append(exclusions, "containers.env.value") + case gcpshared.RunWorkerPool.String(): + exclusions = append(exclusions, "template.containers.env.value") + case gcpshared.CloudFunctionsFunction.String(): + blankMaps = []string{ + "serviceConfig.environmentVariables", + "buildConfig.environmentVariables", + } + } + attributes, err := shared.ToAttributesRedacting(resp, exclusions, blankMaps) if err != nil { return nil, err } diff --git a/sources/gcp/manual/compute-instance.go b/sources/gcp/manual/compute-instance.go index aa26e71c..2262ad43 100644 --- a/sources/gcp/manual/compute-instance.go +++ b/sources/gcp/manual/compute-instance.go @@ -310,7 +310,7 @@ func (c computeInstanceWrapper) listAggregatedStream(ctx context.Context, stream } func (c computeInstanceWrapper) gcpComputeInstanceToSDPItem(ctx context.Context, instance *computepb.Instance, location gcpshared.LocationInfo) (*sdp.Item, *sdp.QueryError) { - attributes, err := shared.ToAttributesWithExclude(instance, "labels") + attributes, err := shared.ToAttributesWithExclude(instance, "labels", "metadata.items") if err != nil { return nil, &sdp.QueryError{ ErrorType: sdp.QueryError_OTHER, diff --git a/sources/gcp/manual/compute-instance_test.go b/sources/gcp/manual/compute-instance_test.go index 5818f8f2..f7cd409c 100644 --- a/sources/gcp/manual/compute-instance_test.go +++ b/sources/gcp/manual/compute-instance_test.go @@ -2,7 +2,9 @@ package manual_test import ( "context" + "encoding/json" "fmt" + "strings" "sync" "testing" @@ -710,8 +712,13 @@ func TestComputeInstance(t *testing.T) { igmName := "my-mig" igmURI := fmt.Sprintf("projects/%s/regions/us-central1/instanceGroupManagers/%s", projectID, igmName) + startupScript := "echo fixture-compute-instance-startup-script" + sshKeys := "fixture-user:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIfixture testhost" + instance := createComputeInstance("test-instance", computepb.Instance_RUNNING) instance.Metadata = &computepb.Metadata{ + Fingerprint: new("fixture-metadata-fingerprint"), + Kind: new("compute#metadata"), Items: []*computepb.Items{ { Key: new("instance-template"), @@ -721,6 +728,14 @@ func TestComputeInstance(t *testing.T) { Key: new("created-by"), Value: new(igmURI), }, + { + Key: new("startup-script"), + Value: new(startupScript), + }, + { + Key: new("ssh-keys"), + Value: new(sshKeys), + }, }, } @@ -733,6 +748,20 @@ func TestComputeInstance(t *testing.T) { t.Fatalf("Expected no error, got: %v", qErr) } + t.Run("ExcludesMetadataItemsFromAttributes", func(t *testing.T) { + assertAttributesOmitSecrets(t, sdpItem, startupScript, sshKeys) + assertNestedMapKeyAbsent(t, sdpItem, "metadata", "items") + + attrMap := sdpItem.GetAttributes().GetAttrStruct().AsMap() + metadata, ok := attrMap["metadata"].(map[string]any) + if !ok { + t.Fatalf("expected metadata object to remain, got %v", attrMap["metadata"]) + } + if got := metadata["fingerprint"]; got != "fixture-metadata-fingerprint" { + t.Errorf("expected metadata.fingerprint %q, got %v", "fixture-metadata-fingerprint", got) + } + }) + t.Run("StaticTests", func(t *testing.T) { // Base queries that are always present baseQueries := shared.QueryTests{ @@ -1102,3 +1131,45 @@ func createComputeInstance(instanceName string, status computepb.Instance_Status }, } } + +func attributesJSON(t *testing.T, item *sdp.Item) string { + t.Helper() + b, err := json.Marshal(item.GetAttributes().GetAttrStruct().AsMap()) + if err != nil { + t.Fatalf("marshal attributes: %v", err) + } + return string(b) +} + +func assertAttributesOmitSecrets(t *testing.T, item *sdp.Item, secrets ...string) { + t.Helper() + attrsJSON := attributesJSON(t, item) + for _, secret := range secrets { + if strings.Contains(attrsJSON, secret) { + t.Errorf("secret value %q leaked in attributes: %s", secret, attrsJSON) + } + } +} + +func assertNestedMapKeyAbsent(t *testing.T, item *sdp.Item, path ...string) { + t.Helper() + current := any(item.GetAttributes().GetAttrStruct().AsMap()) + for i, key := range path { + m, ok := current.(map[string]any) + if !ok { + if i == len(path)-1 { + return + } + t.Fatalf("expected map at %v, got %T", path[:i], current) + } + next, exists := m[key] + if !exists { + return + } + if i == len(path)-1 { + t.Errorf("expected %s to be excluded, got %v", strings.Join(path, "."), next) + return + } + current = next + } +} diff --git a/sources/gcp/manual/compute-machine-image.go b/sources/gcp/manual/compute-machine-image.go index ec722ef7..4b6718c3 100644 --- a/sources/gcp/manual/compute-machine-image.go +++ b/sources/gcp/manual/compute-machine-image.go @@ -157,7 +157,7 @@ func (c computeMachineImageWrapper) ListStream(ctx context.Context, stream disco } func (c computeMachineImageWrapper) gcpComputeMachineImageToSDPItem(ctx context.Context, machineImage *computepb.MachineImage, location gcpshared.LocationInfo) (*sdp.Item, *sdp.QueryError) { - attributes, err := shared.ToAttributesWithExclude(machineImage, "labels") + attributes, err := shared.ToAttributesWithExclude(machineImage, "labels", "instance_properties.metadata.items", "source_instance_properties.metadata.items") if err != nil { return nil, &sdp.QueryError{ ErrorType: sdp.QueryError_OTHER, diff --git a/sources/gcp/manual/compute-machine-image_test.go b/sources/gcp/manual/compute-machine-image_test.go index 7f8ab02c..1ef176b7 100644 --- a/sources/gcp/manual/compute-machine-image_test.go +++ b/sources/gcp/manual/compute-machine-image_test.go @@ -178,6 +178,46 @@ func TestComputeMachineImage(t *testing.T) { }) }) + t.Run("GetWithMetadataSecrets", func(t *testing.T) { + wrapper := manual.NewComputeMachineImage(mockClient, []gcpshared.LocationInfo{gcpshared.NewProjectLocation(projectID)}) + + instancePropertiesScript := "echo fixture-machine-image-instance-properties-startup-script" + sourceInstancePropertiesScript := "echo fixture-machine-image-source-instance-properties-startup-script" + + image := createComputeMachineImage("test-machine-image", computepb.MachineImage_READY) + image.InstanceProperties.Metadata = &computepb.Metadata{ + Items: []*computepb.Items{ + { + Key: new("startup-script"), + Value: new(instancePropertiesScript), + }, + }, + } + image.SourceInstanceProperties = &computepb.SourceInstanceProperties{ + Metadata: &computepb.Metadata{ + Items: []*computepb.Items{ + { + Key: new("startup-script"), + Value: new(sourceInstancePropertiesScript), + }, + }, + }, + } + + mockClient.EXPECT().Get(ctx, gomock.Any()).Return(image, nil) + + adapter := sources.WrapperToAdapter(wrapper, sdpcache.NewNoOpCache()) + + sdpItem, qErr := adapter.Get(ctx, wrapper.Scopes()[0], "test-machine-image", true) + if qErr != nil { + t.Fatalf("Expected no error, got: %v", qErr) + } + + assertAttributesOmitSecrets(t, sdpItem, instancePropertiesScript, sourceInstancePropertiesScript) + assertNestedMapKeyAbsent(t, sdpItem, "instance_properties", "metadata", "items") + assertNestedMapKeyAbsent(t, sdpItem, "source_instance_properties", "metadata", "items") + }) + t.Run("HealthCheck", func(t *testing.T) { type testCase struct { name string diff --git a/sources/shared/util.go b/sources/shared/util.go index a642a1c5..4b539868 100644 --- a/sources/shared/util.go +++ b/sources/shared/util.go @@ -11,7 +11,19 @@ import ( // function, and also allows the user to exclude certain fields from the resulting attributes. // Top-level exclusions use the field name as it appears in JSON (e.g. "tags"). // Dot-separated paths exclude nested fields (e.g. "Properties.Value" matches properties.value). +// Intermediate arrays are walked in full so a path such as template.containers.env.value +// deletes value on every env entry of every container. func ToAttributesWithExclude(i any, exclusions ...string) (*sdp.ItemAttributes, error) { + return ToAttributesRedacting(i, exclusions, nil) +} + +// ToAttributesRedacting converts an interface to SDP attributes, then redacts +// selected fields on that attribute copy. exclude drops keys (case-insensitive), +// and dotted paths descend maps and every element of arrays. blankMaps names +// maps whose values are each replaced with an empty string; keys are kept. +// A missing path is a no-op. A non-string map value is also replaced with an +// empty string so an unexpected JSON type cannot keep a secret. +func ToAttributesRedacting(i any, exclude []string, blankMaps []string) (*sdp.ItemAttributes, error) { b, err := json.Marshal(i) if err != nil { return nil, err @@ -22,49 +34,78 @@ func ToAttributesWithExclude(i any, exclusions ...string) (*sdp.ItemAttributes, return nil, err } - for _, exclusion := range exclusions { + for _, exclusion := range exclude { if exclusion == "" { continue } - if strings.Contains(exclusion, ".") { - deleteNestedMapKey(m, strings.Split(exclusion, ".")) - } else { - deleteMapKey(m, exclusion) + walkAndDelete(m, strings.Split(exclusion, ".")) + } + + for _, path := range blankMaps { + if path == "" { + continue } + walkAndBlankMap(m, strings.Split(path, ".")) } return sdp.ToAttributes(m) } -func deleteMapKey(m map[string]any, key string) { - for k := range m { - if strings.EqualFold(k, key) { - delete(m, k) +func walkAndDelete(node any, path []string) { + if len(path) == 0 || node == nil { + return + } + + switch current := node.(type) { + case map[string]any: + key := path[0] + for k, v := range current { + if !strings.EqualFold(k, key) { + continue + } + if len(path) == 1 { + delete(current, k) + return + } + walkAndDelete(v, path[1:]) return } + case []any: + for _, elem := range current { + walkAndDelete(elem, path) + } } } -func deleteNestedMapKey(m map[string]any, path []string) { - if len(path) == 0 || m == nil { +func walkAndBlankMap(node any, path []string) { + if len(path) == 0 || node == nil { return } - key := path[0] - for k, v := range m { - if !strings.EqualFold(k, key) { - continue - } - if len(path) == 1 { - delete(m, k) + switch current := node.(type) { + case map[string]any: + key := path[0] + for k, v := range current { + if !strings.EqualFold(k, key) { + continue + } + if len(path) == 1 { + nested, ok := v.(map[string]any) + if !ok { + return + } + for mk := range nested { + nested[mk] = "" + } + return + } + walkAndBlankMap(v, path[1:]) return } - nested, ok := v.(map[string]any) - if !ok { - return + case []any: + for _, elem := range current { + walkAndBlankMap(elem, path) } - deleteNestedMapKey(nested, path[1:]) - return } } diff --git a/sources/shared/util_test.go b/sources/shared/util_test.go index 2cf25ff6..b5cee918 100644 --- a/sources/shared/util_test.go +++ b/sources/shared/util_test.go @@ -82,23 +82,232 @@ func TestToAttributesWithExclude_nestedPath(t *testing.T) { } } +func TestToAttributesRedacting_deletesLeafThroughArrays(t *testing.T) { + t.Parallel() + + payload := map[string]any{ + "template": map[string]any{ + "containers": []any{ + map[string]any{ + "image": "us-central1-docker.pkg.dev/p/repo/image:latest", + "env": []any{ + map[string]any{ + "name": "DATABASE_URL", + "value": "postgres://array-env-sentinel-9f3a", + }, + map[string]any{ + "name": "API_KEY", + "valueSource": map[string]any{ + "secretKeyRef": map[string]any{ + "secret": "projects/p/secrets/api-key", + }, + }, + }, + }, + }, + map[string]any{ + "image": "us-central1-docker.pkg.dev/p/repo/sidecar:latest", + "env": []any{ + map[string]any{ + "name": "SIDECAR_TOKEN", + "value": "sidecar-env-sentinel-7c2b", + }, + }, + }, + }, + }, + } + + attrs, err := ToAttributesRedacting(payload, []string{"template.containers.env.value"}, nil) + if err != nil { + t.Fatalf("ToAttributesRedacting: %v", err) + } + + attrMap := attrs.GetAttrStruct().AsMap() + attrsJSON := mustMarshalAttrs(t, attrMap) + if containsJSONStringValue(attrsJSON, "postgres://array-env-sentinel-9f3a") { + t.Fatalf("plaintext env value leaked in attributes: %s", attrsJSON) + } + if containsJSONStringValue(attrsJSON, "sidecar-env-sentinel-7c2b") { + t.Fatalf("plaintext sidecar env value leaked in attributes: %s", attrsJSON) + } + + template, ok := attrMap["template"].(map[string]any) + if !ok { + t.Fatalf("expected template object, got %T", attrMap["template"]) + } + containers, ok := template["containers"].([]any) + if !ok { + t.Fatalf("expected containers array, got %T", template["containers"]) + } + if len(containers) != 2 { + t.Fatalf("expected 2 containers, got %d", len(containers)) + } + + first, ok := containers[0].(map[string]any) + if !ok { + t.Fatalf("expected first container object, got %T", containers[0]) + } + if first["image"] != "us-central1-docker.pkg.dev/p/repo/image:latest" { + t.Errorf("expected first container image to remain, got %v", first["image"]) + } + firstEnv, ok := first["env"].([]any) + if !ok { + t.Fatalf("expected first env array, got %T", first["env"]) + } + if len(firstEnv) != 2 { + t.Fatalf("expected 2 env entries on first container, got %d", len(firstEnv)) + } + assertEnvEntry(t, firstEnv[0], "DATABASE_URL", false, false) + assertEnvEntry(t, firstEnv[1], "API_KEY", true, false) + + second, ok := containers[1].(map[string]any) + if !ok { + t.Fatalf("expected second container object, got %T", containers[1]) + } + if second["image"] != "us-central1-docker.pkg.dev/p/repo/sidecar:latest" { + t.Errorf("expected second container image to remain, got %v", second["image"]) + } + secondEnv, ok := second["env"].([]any) + if !ok { + t.Fatalf("expected second env array, got %T", second["env"]) + } + if len(secondEnv) != 1 { + t.Fatalf("expected 1 env entry on second container, got %d", len(secondEnv)) + } + assertEnvEntry(t, secondEnv[0], "SIDECAR_TOKEN", false, false) +} + +func TestToAttributesRedacting_blanksMapValues(t *testing.T) { + t.Parallel() + + const sentinel = "map-env-sentinel-4e1d" + payload := map[string]any{ + "environmentVariables": map[string]any{ + "NPM_TOKEN": sentinel, + "DATABASE_URL": "postgres://example", + "NUMERIC_VALUE": 42, + }, + "runtime": "python39", + } + + attrs, err := ToAttributesRedacting(payload, nil, []string{"environmentVariables"}) + if err != nil { + t.Fatalf("ToAttributesRedacting: %v", err) + } + + attrMap := attrs.GetAttrStruct().AsMap() + attrsJSON := mustMarshalAttrs(t, attrMap) + if containsJSONStringValue(attrsJSON, sentinel) { + t.Fatalf("sentinel secret string leaked in attributes: %s", attrsJSON) + } + + envVars, ok := attrMap["environmentVariables"].(map[string]any) + if !ok { + t.Fatalf("expected environmentVariables map, got %T", attrMap["environmentVariables"]) + } + for _, key := range []string{"NPM_TOKEN", "DATABASE_URL", "NUMERIC_VALUE"} { + if _, exists := envVars[key]; !exists { + t.Errorf("expected key %q to remain", key) + } + if envVars[key] != "" { + t.Errorf("expected %q to be empty string, got %#v", key, envVars[key]) + } + } + if attrMap["runtime"] != "python39" { + t.Errorf("expected sibling runtime to remain, got %v", attrMap["runtime"]) + } +} + +func TestToAttributesRedacting_nonArrayExcludeAndMissingBlankPath(t *testing.T) { + t.Parallel() + + payload := map[string]any{ + "labels": map[string]any{"env": "prod"}, + "properties": map[string]any{ + "value": "nested-exclude-sentinel-2a8c", + "uri": "https://example.invalid/secret", + }, + "keep": "visible", + } + + attrs, err := ToAttributesRedacting(payload, []string{"properties.value"}, []string{"missing.environmentVariables"}) + if err != nil { + t.Fatalf("ToAttributesRedacting: %v", err) + } + + attrMap := attrs.GetAttrStruct().AsMap() + attrsJSON := mustMarshalAttrs(t, attrMap) + if containsJSONStringValue(attrsJSON, "nested-exclude-sentinel-2a8c") { + t.Fatalf("excluded nested value leaked in attributes: %s", attrsJSON) + } + if _, ok := attrMap["labels"]; !ok { + t.Fatalf("expected labels to remain when not excluded, got %v", attrMap) + } + properties, ok := attrMap["properties"].(map[string]any) + if !ok { + t.Fatalf("expected properties object, got %T", attrMap["properties"]) + } + if _, hasValue := properties["value"]; hasValue { + t.Errorf("expected properties.value to be deleted, got %v", properties["value"]) + } + if properties["uri"] != "https://example.invalid/secret" { + t.Errorf("expected properties.uri to remain, got %v", properties["uri"]) + } + if attrMap["keep"] != "visible" { + t.Errorf("expected keep to remain, got %v", attrMap["keep"]) + } +} + +func assertEnvEntry(t *testing.T, entry any, name string, wantValueSource bool, wantValue bool) { + t.Helper() + + env, ok := entry.(map[string]any) + if !ok { + t.Fatalf("expected env object, got %T", entry) + } + if env["name"] != name { + t.Errorf("expected env name %q, got %v", name, env["name"]) + } + if _, hasValue := env["value"]; hasValue != wantValue { + t.Errorf("env %q: expected value present=%v, got %v", name, wantValue, env["value"]) + } + if _, hasSource := env["valueSource"]; hasSource != wantValueSource { + t.Errorf("env %q: expected valueSource present=%v, got %v", name, wantValueSource, env["valueSource"]) + } +} + +func mustMarshalAttrs(t *testing.T, attrMap map[string]any) string { + t.Helper() + + b, err := json.Marshal(attrMap) + if err != nil { + t.Fatalf("marshal attributes: %v", err) + } + return string(b) +} + func containsJSONStringValue(attrsJSON, value string) bool { var m map[string]any if err := json.Unmarshal([]byte(attrsJSON), &m); err != nil { return false } - return mapContainsStringValue(m, value) + return anyContainsStringValue(m, value) } -func mapContainsStringValue(m map[string]any, value string) bool { - for _, v := range m { - switch x := v.(type) { - case string: - if x == value { +func anyContainsStringValue(v any, value string) bool { + switch x := v.(type) { + case string: + return x == value + case map[string]any: + for _, child := range x { + if anyContainsStringValue(child, value) { return true } - case map[string]any: - if mapContainsStringValue(x, value) { + } + case []any: + for _, child := range x { + if anyContainsStringValue(child, value) { return true } } diff --git a/sources/snapshot/build/package/Dockerfile b/sources/snapshot/build/package/Dockerfile index bc43bca2..c7580b83 100644 --- a/sources/snapshot/build/package/Dockerfile +++ b/sources/snapshot/build/package/Dockerfile @@ -1,5 +1,5 @@ # Build the source binary -FROM golang:1.27.0-alpine3.23 AS builder +FROM golang:1.27.1-alpine3.23 AS builder ARG TARGETOS ARG TARGETARCH ARG BUILD_VERSION diff --git a/stdlib-source/build/package/Dockerfile b/stdlib-source/build/package/Dockerfile index d044f6cb..2ccc171c 100644 --- a/stdlib-source/build/package/Dockerfile +++ b/stdlib-source/build/package/Dockerfile @@ -1,5 +1,5 @@ # Build the source binary -FROM golang:1.27.0-alpine3.23 AS builder +FROM golang:1.27.1-alpine3.23 AS builder ARG TARGETOS ARG TARGETARCH ARG BUILD_VERSION