* feat: GCP authentication
Add authentication support for:
- authentication with service account key
- authentication with impersonating service account key
- authentication with application default credentials which are read from the environment
A HTTP client with a token set will be returned and used for authentication with all clients. for example
```
gcpClient, err := gcpConfig.GetClient(ctx)
if err != nil {
log.Fatalf("Failed to get client: %v", err)
}
client, err := computeCloud.NewInstancesRESTClient(ctx, option.WithHTTPClient(gcpClient))
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
```
60 lines
2.5 KiB
AMPL
60 lines
2.5 KiB
AMPL
module github.com/hashicorp/boundary-plugin-gcp
|
|
|
|
go 1.21
|
|
|
|
require (
|
|
github.com/hashicorp/boundary/sdk v0.0.47
|
|
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8
|
|
golang.org/x/oauth2 v0.21.0
|
|
google.golang.org/api v0.188.0
|
|
)
|
|
|
|
require (
|
|
cloud.google.com/go/auth v0.7.0 // indirect
|
|
cloud.google.com/go/auth/oauth2adapt v0.2.3 // indirect
|
|
cloud.google.com/go/compute/metadata v0.5.0 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/go-logr/logr v1.4.2 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
|
github.com/google/s2a-go v0.1.7 // indirect
|
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
|
github.com/googleapis/gax-go/v2 v2.12.5 // indirect
|
|
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
|
|
github.com/hashicorp/go-sockaddr v1.0.5 // indirect
|
|
github.com/ryanuber/go-glob v1.0.0 // indirect
|
|
go.opencensus.io v0.24.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect
|
|
go.opentelemetry.io/otel v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.28.0 // indirect
|
|
google.golang.org/genproto v0.0.0-20240711142825-46eb208f015d // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d // indirect
|
|
)
|
|
|
|
require (
|
|
cloud.google.com/go/compute v1.27.3
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
|
github.com/hashicorp/eventlogger v0.2.9 // indirect
|
|
github.com/hashicorp/eventlogger/filters/encrypt v0.1.8-0.20231025104552-802587e608f0 // indirect
|
|
github.com/hashicorp/go-kms-wrapping/v2 v2.0.16 // indirect
|
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
|
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
|
github.com/mitchellh/mapstructure v1.5.0
|
|
github.com/mitchellh/pointerstructure v1.2.1 // indirect
|
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/stretchr/testify v1.9.0
|
|
golang.org/x/crypto v0.25.0 // indirect
|
|
golang.org/x/net v0.27.0 // indirect
|
|
golang.org/x/sys v0.22.0 // indirect
|
|
golang.org/x/text v0.16.0 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d // indirect
|
|
google.golang.org/grpc v1.65.0
|
|
google.golang.org/protobuf v1.34.2
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|