func()

in proxy/lib/proxy/proxy.go [327:340]


func (s *Service) fetchAccessTokenForSA(ctx context.Context) (string, time.Time, error) {
	resp, err := s.iamClient.GenerateAccessToken(ctx, &credentialspb.GenerateAccessTokenRequest{
		Name:     resourceName0fSA(s.opts.ServiceAccountName),
		Scope:    []string{"https://www.googleapis.com/auth/cloud-platform"},
		Lifetime: timeutil.DurationProto(gcpAccessTokenLifeTime),
	})

	if err != nil {
		return "", time.Time{}, err
	}

	// expires the token 10 seconds ahead as request may take some time to process and transfer to fhir backend.
	return resp.AccessToken, resp.ExpireTime.AsTime().Add(-gcpAccessTokenFetchInterval), nil
}