teleport/e_imports.go
Justinas Stankevičius d89879c2f5
Add gRPC service definition for Plugin resources (#21750)
* Add plugin exchange service

* Add Plugin methods to auth

* Add gRPC-layer methods for Plugin

* Add RBAC presets for Plugin

* Test GetPlugin()/NoSecrets access

* Make error assertions more correct in role test

* Deny setting credentials if user can not read them

* gofmt

* Apply minor suggestions from code review

Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>
Co-authored-by: Tiago Silva <tiago.silva@goteleport.com>

* Move dependency into an existing block in go.mod

* Improve error messages for failed type assertions

* DRY WithSecrets access checks for Plugins

* Run new tests in parallel

* Improve error assertions in auth_with_roles_test

* TestGetPluginWithSecrets: split cases to subtests

* Clean up test servers and clients

* Add proto for plugin service

* Remove Plugin methods from auth service

Moved to a dedicated service

* Remove plugin-related auth methods

Moved to a dedicated service in Enterprise

* Remove CreatePlugin test from auth_with_roles_test

Moved to a dedicated service in Enterprise

* Pass "backend getter" to local plugins service

This pattern is used in Enterprise to set up secondary services
before auth (and backend) are created.

* Rename InitialCredentials to BootstrapCredentials

* Add plugins service to genproto.sh

* Reformat generated proto

* Remove obsolete PluginExchangeService

The equivalent of this is now in Enterprise

* Add kube service to genproto.sh; regenerate

* Add ListPlugins to plugin backend service

* Reimplement GetPlugins on top of ListPlugins

This is a "convenience" implementation for the backend service layer.

* Replace GetPlugins with ListPlugins in gRPC schema

* Fix ListKubernetesResources unit test

* Simplify plugin pagination key to just the name

* Use existing constant for page size

* Make dummy clients return errors instead of panic

* Remove obsolete field

* Ensure go.mod is valid for corresponding e changes

* Fix passing mutex ref

* Move teleport-plugins import to e_imports

* Revert oauth change in go.mod

* Use limit+1 to look-ahead when paginating plugins

* Test plugin pagination with pageSize > numPlugins

* Add descriptive messages to gRPC dummy clients

* Plugin: add RW for editor; remove secrets from gRPC

* Make message more descriptive for dummy gRPC conn

---------

Co-authored-by: rosstimothy <39066650+rosstimothy@users.noreply.github.com>
Co-authored-by: Tiago Silva <tiago.silva@goteleport.com>
2023-02-23 14:32:41 +00:00

57 lines
2.3 KiB
Go

//go:build eimports
// Copyright 2022 Gravitational, Inc
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package teleport
// This file should import all non-stdlib, non-teleport packages that are
// imported by any package in ./e/ but not by packages in the rest of the main
// teleport module, so tidying that doesn't have access to teleport.e (like
// Dependabot) doesn't wrongly remove the modules they belong to.
// Remember to check that e is up to date and that there is not a go.work file
// before running the following command to generate the import list. The list of
// tags that might be needed in e (currently only "piv") can be extracted with a
// (cd e && git grep //go:build).
// TODO(espadolini): turn this into a lint (needs access to teleport.e in CI and
// ideally a resolution to https://github.com/golang/go/issues/42504 )
/*
comm -13 <(
go list ./... | sort -u | grep -Ev -e "^github.com/gravitational/teleport/e(/.*)?$" |
xargs go list -f '{{range .Imports}}{{println .}}{{end}}' |
sort -u | grep -Ev -e "^github.com/gravitational/teleport(/.*)?$" -e "^C$" |
xargs go list -f '{{if not .Standard}}{{println .ImportPath}}{{end}}'
) <(
go list -f '{{range .Imports}}{{println .}}{{end}}' -tags piv ./e/... |
sort -u | grep -Ev -e "^github.com/gravitational/teleport(/.*)?$" -e "^C$" |
xargs go list -f '{{if not .Standard}}{{println .ImportPath}}{{end}}'
) | awk '{ print "\t_ \"" $1 "\"" }'
*/
import (
_ "github.com/beevik/etree"
_ "github.com/coreos/go-oidc/oidc"
_ "github.com/crewjam/saml/samlidp"
_ "github.com/go-piv/piv-go/piv"
_ "github.com/gravitational/form"
_ "github.com/gravitational/teleport-plugins/access/common"
_ "google.golang.org/api/admin/directory/v1"
_ "google.golang.org/api/cloudidentity/v1"
_ "google.golang.org/genproto/googleapis/rpc/status"
_ "gopkg.in/check.v1"
)