Skip to content

Commit 874e3ea

Browse files
mblaschkeldez
andauthored
azuredns: servicediscovery for zones (go-acme#2140)
Co-authored-by: Fernandez Ludovic <[email protected]>
1 parent 27fd142 commit 874e3ea

File tree

11 files changed

+536
-244
lines changed

11 files changed

+536
-244
lines changed

cmd/zz_gen_cmd_dnshelp.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,6 @@ func displayDNSHelp(w io.Writer, name string) error {
314314
ew.writeln(` - "AZURE_CLIENT_CERTIFICATE_PATH": Client certificate path`)
315315
ew.writeln(` - "AZURE_CLIENT_ID": Client ID`)
316316
ew.writeln(` - "AZURE_CLIENT_SECRET": Client secret`)
317-
ew.writeln(` - "AZURE_RESOURCE_GROUP": DNS zone resource group`)
318-
ew.writeln(` - "AZURE_SUBSCRIPTION_ID": DNS zone subscription ID`)
319317
ew.writeln(` - "AZURE_TENANT_ID": Tenant ID`)
320318
ew.writeln()
321319

@@ -326,6 +324,9 @@ func displayDNSHelp(w io.Writer, name string) error {
326324
ew.writeln(` - "AZURE_POLLING_INTERVAL": Time between DNS propagation check`)
327325
ew.writeln(` - "AZURE_PRIVATE_ZONE": Set to true to use Azure Private DNS Zones and not public`)
328326
ew.writeln(` - "AZURE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`)
327+
ew.writeln(` - "AZURE_RESOURCE_GROUP": DNS zone resource group`)
328+
ew.writeln(` - "AZURE_SERVICEDISCOVERY_FILTER": Advanced ServiceDiscovery filter using Kusto query condition`)
329+
ew.writeln(` - "AZURE_SUBSCRIPTION_ID": DNS zone subscription ID`)
329330
ew.writeln(` - "AZURE_TTL": The TTL of the TXT record used for the DNS challenge`)
330331
ew.writeln(` - "AZURE_ZONE_NAME": Zone name to use inside Azure DNS service to add the TXT record in`)
331332

docs/content/dns/zz_gen_azuredns.md

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,12 @@ lego --domains example.com --email [email protected] --dns azuredns run
4848
### Using Managed Identity (Azure VM)
4949

5050
AZURE_TENANT_ID=<your service principal tenant ID> \
51-
AZURE_SUBSCRIPTION_ID=<your target zone subscription ID> \
5251
AZURE_RESOURCE_GROUP=<your target zone resource group name> \
5352
lego --domains example.com --email [email protected] --dns azuredns run
5453

5554
### Using Managed Identity (Azure Arc)
5655

5756
AZURE_TENANT_ID=<your service principal tenant ID> \
58-
AZURE_SUBSCRIPTION_ID=<your target zone subscription ID> \
59-
AZURE_RESOURCE_GROUP=<your target zone resource group name> \
6057
IMDS_ENDPOINT=http://localhost:40342 \
6158
IDENTITY_ENDPOINT=http://localhost:40342/metadata/identity/oauth2/token \
6259
lego --domains example.com --email [email protected] --dns azuredns run
@@ -73,8 +70,6 @@ lego --domains example.com --email [email protected] --dns azuredns run
7370
| `AZURE_CLIENT_CERTIFICATE_PATH` | Client certificate path |
7471
| `AZURE_CLIENT_ID` | Client ID |
7572
| `AZURE_CLIENT_SECRET` | Client secret |
76-
| `AZURE_RESOURCE_GROUP` | DNS zone resource group |
77-
| `AZURE_SUBSCRIPTION_ID` | DNS zone subscription ID |
7873
| `AZURE_TENANT_ID` | Tenant ID |
7974

8075
The environment variable names can be suffixed by `_FILE` to reference a file instead of a value.
@@ -91,6 +86,9 @@ More information [here]({{< ref "dns#configuration-and-credentials" >}}).
9186
| `AZURE_POLLING_INTERVAL` | Time between DNS propagation check |
9287
| `AZURE_PRIVATE_ZONE` | Set to true to use Azure Private DNS Zones and not public |
9388
| `AZURE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation |
89+
| `AZURE_RESOURCE_GROUP` | DNS zone resource group |
90+
| `AZURE_SERVICEDISCOVERY_FILTER` | Advanced ServiceDiscovery filter using Kusto query condition |
91+
| `AZURE_SUBSCRIPTION_ID` | DNS zone subscription ID |
9492
| `AZURE_TTL` | The TTL of the TXT record used for the DNS challenge |
9593
| `AZURE_ZONE_NAME` | Zone name to use inside Azure DNS service to add the TXT record in |
9694

@@ -115,14 +113,30 @@ Link:
115113

116114
### Environment variables
117115

116+
#### Service Discovery
117+
118+
Lego automatically finds all visible Azure (private) DNS zones using [Azure ResourceGraph query](https://learn.microsoft.com/en-us/azure/governance/resource-graph/).
119+
This can be limited by specifying environment variable `AZURE_SUBSCRIPTION_ID` and/or `AZURE_RESOURCE_GROUP` which limits the
120+
DNS zones to only a subscription or to one resourceGroup.
121+
122+
Additionally environment variable `AZURE_SERVICEDISCOVERY_FILTER` can be used to filter DNS zones with an addition Kusto filter eg:
123+
124+
```
125+
resources
126+
| where type =~ "microsoft.network/dnszones"
127+
| ${AZURE_SERVICEDISCOVERY_FILTER}
128+
| project subscriptionId, resourceGroup, name
129+
```
130+
131+
118132
#### Client secret
119133

120134
The Azure Credentials can be configured using the following environment variables:
121135
* AZURE_CLIENT_ID = "Client ID"
122136
* AZURE_CLIENT_SECRET = "Client secret"
123137
* AZURE_TENANT_ID = "Tenant ID"
124138

125-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
139+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
126140

127141
#### Client certificate
128142

@@ -131,7 +145,7 @@ The Azure Credentials can be configured using the following environment variable
131145
* AZURE_CLIENT_CERTIFICATE_PATH = "Client certificate path"
132146
* AZURE_TENANT_ID = "Tenant ID"
133147

134-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
148+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `env`.
135149

136150
### Workload identity
137151

@@ -142,12 +156,12 @@ This must be configured in kubernetes workload deployment in one hand and on the
142156
Here is a summary of the steps to follow to use it :
143157
* create a `ServiceAccount` resource, add following annotations to reference the targeted Azure AD application registration : `azure.workload.identity/client-id` and `azure.workload.identity/tenant-id`.
144158
* on the `Deployment` resource you must reference the previous `ServiceAccount` and add the following label : `azure.workload.identity/use: "true"`.
145-
* create a fedreated credentials of type `Kubernetes accessing Azure resources`, add the cluster issuer URL and add the namespace and name of your kubernetes service account.
159+
* create a federated credentials of type `Kubernetes accessing Azure resources`, add the cluster issuer URL and add the namespace and name of your kubernetes service account.
146160

147161
Link :
148162
- [Azure AD Workload identity](https://azure.github.io/azure-workload-identity/docs/topics/service-account-labels-and-annotations.html)
149163

150-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `wli`.
164+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `wli`.
151165

152166
### Azure Managed Identity
153167

@@ -182,9 +196,9 @@ az role assignment create \
182196
```
183197

184198
A timeout wrapper is configured for this authentication method.
185-
The duraction can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
199+
The duration can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
186200
The default timeout is 2 seconds.
187-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
201+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
188202

189203
#### Azure Managed Identity (with Azure Arc)
190204

@@ -198,17 +212,17 @@ you may need to set the environment variables:
198212
* `IDENTITY_ENDPOINT=http://localhost:40342/metadata/identity/oauth2/token`
199213

200214
A timeout wrapper is configured for this authentication method.
201-
The duraction can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
215+
The duration can be configured by setting the `AZURE_AUTH_MSI_TIMEOUT`.
202216
The default timeout is 2 seconds.
203-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
217+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `msi`.
204218

205219
### Azure CLI
206220

207221
The Azure CLI is a command-line tool provided by Microsoft to interact with Azure resources.
208222
It provides an easy way to authenticate by simply running `az login` command.
209223
The generated token will be cached by default in the `~/.azure` folder.
210224

211-
This authentication method can be specificaly used by setting the `AZURE_AUTH_METHOD` environment variable to `cli`.
225+
This authentication method can be specifically used by setting the `AZURE_AUTH_METHOD` environment variable to `cli`.
212226

213227
### Open ID Connect
214228

go.mod

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ go 1.21
77
require (
88
cloud.google.com/go/compute/metadata v0.2.3
99
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
10-
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0
11-
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0
10+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1
11+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1
1212
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.1.0
1313
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.1.0
14+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0
1415
github.com/Azure/go-autorest/autorest v0.11.29
1516
github.com/Azure/go-autorest/autorest/azure/auth v0.5.12
1617
github.com/Azure/go-autorest/autorest/to v0.4.0
@@ -88,14 +89,14 @@ require (
8889
require (
8990
cloud.google.com/go/compute v1.20.1 // indirect
9091
github.com/AdamSLevy/jsonrpc2/v14 v14.1.0 // indirect
91-
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect
92+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect
9293
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
9394
github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect
9495
github.com/Azure/go-autorest/autorest/azure/cli v0.4.5 // indirect
9596
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
9697
github.com/Azure/go-autorest/logger v0.2.1 // indirect
9798
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
98-
github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 // indirect
99+
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 // indirect
99100
github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 // indirect
100101
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 // indirect
101102
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect
@@ -123,10 +124,11 @@ require (
123124
github.com/goccy/go-json v0.10.2 // indirect
124125
github.com/gofrs/uuid v4.4.0+incompatible // indirect
125126
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
127+
github.com/golang-jwt/jwt/v5 v5.2.0 // indirect
126128
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
127129
github.com/golang/protobuf v1.5.3 // indirect
128130
github.com/google/s2a-go v0.1.4 // indirect
129-
github.com/google/uuid v1.3.1 // indirect
131+
github.com/google/uuid v1.5.0 // indirect
130132
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
131133
github.com/googleapis/gax-go/v2 v2.11.0 // indirect
132134
github.com/hashicorp/errwrap v1.0.0 // indirect
@@ -144,7 +146,7 @@ require (
144146
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
145147
github.com/modern-go/reflect2 v1.0.2 // indirect
146148
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
147-
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
149+
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
148150
github.com/pkg/errors v0.9.1 // indirect
149151
github.com/pmezard/go-difflib v1.0.0 // indirect
150152
github.com/russross/blackfriday/v2 v2.1.0 // indirect

go.sum

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,20 @@ github.com/AdamSLevy/jsonrpc2/v14 v14.1.0 h1:Dy3M9aegiI7d7PF1LUdjbVigJReo+QOceYs
1919
github.com/AdamSLevy/jsonrpc2/v14 v14.1.0/go.mod h1:ZakZtbCXxCz82NJvq7MoREtiQesnDfrtF6RFUGzQfLo=
2020
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
2121
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
22-
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk=
23-
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q=
24-
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg=
25-
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U=
26-
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY=
27-
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM=
22+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ=
23+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA=
24+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ=
25+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo=
26+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA=
27+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI=
2828
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.1.0 h1:8iR6OLffWWorFdzL2JFCab5xpD8VKEE2DUBBl+HNTDY=
2929
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.1.0/go.mod h1:copqlcjMWc/wgQ1N2fzsJFQxDdqKGg1EQt8T5wJMOGE=
3030
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.1.2 h1:mLY+pNLjCUeKhgnAJWAKhEUQM+RJQo2H1fuGSw1Ky1E=
3131
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.1.2/go.mod h1:FbdwsQ2EzwvXxOPcMFYO8ogEc9uMMIj3YkmCdXdAFmk=
3232
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.1.0 h1:rR8ZW79lE/ppfXTfiYSnMFv5EzmVuY4pfZWIkscIJ64=
3333
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.1.0/go.mod h1:y2zXtLSMM/X5Mfawq0lOftpWn3f4V6OCsRdINsvWBPI=
34+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 h1:zLzoX5+W2l95UJoVwiyNS4dX8vHyQ6x2xRLoBBL9wMk=
35+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0/go.mod h1:wVEOJfGTj0oPAUGA1JuRAvz/lxXQsWW16axmHPP47Bk=
3436
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.0.0 h1:ECsQtyERDVz3NP3kvDOTLvbQhqWp/x9EsGKtb4ogUr8=
3537
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.0.0/go.mod h1:s1tW/At+xHqjNFvWU4G0c0Qv33KOhvbGNj0RCTQDV8s=
3638
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
@@ -56,8 +58,8 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z
5658
github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
5759
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
5860
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
59-
github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 h1:OBhqkivkhkMqLPymWEppkm7vgPQY2XsHoEkaMQ0AdZY=
60-
github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o=
61+
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA=
62+
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
6163
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
6264
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
6365
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
@@ -238,6 +240,8 @@ github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw
238240
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
239241
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
240242
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
243+
github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw=
244+
github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
241245
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
242246
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
243247
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -291,8 +295,8 @@ github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkj
291295
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
292296
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
293297
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
294-
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
295-
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
298+
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
299+
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
296300
github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k=
297301
github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
298302
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
@@ -514,8 +518,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR
514518
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
515519
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
516520
github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
517-
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU=
518-
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
521+
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
522+
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
519523
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
520524
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
521525
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -800,7 +804,6 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w
800804
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
801805
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
802806
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
803-
golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
804807
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
805808
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
806809
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -810,6 +813,7 @@ golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBc
810813
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
811814
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
812815
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
816+
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
813817
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
814818
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
815819
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

0 commit comments

Comments
 (0)