in dex/oidc.go [16:50]
func CreateOidc(clientId string, clientSecret string, redirectUris []string, trustedPeers []string, public bool, name string, logoUrl string) error {
conn, err := newGrpcConnection()
if err != nil {
return getApiClientError(err)
}
defer conn.Close()
client := api.NewDexClient(conn)
c := api.Client{
Id: clientId,
Secret: clientSecret,
RedirectUris: redirectUris,
TrustedPeers: trustedPeers,
Public: public,
Name: name,
LogoUrl: logoUrl,
}
req := &api.CreateClientReq{
Client: &c,
}
if resp, err := client.CreateClient(context.TODO(), req); err != nil || (resp != nil && resp.AlreadyExists) {
if resp != nil && resp.AlreadyExists {
err = fmt.Errorf("oauth client %s already exists", clientId)
return getError(err)
}
err = fmt.Errorf("failed to create oauth client %s", err)
return getError(err)
}
return nil
}