mirror of
https://github.com/openziti/zrok.git
synced 2025-06-29 22:18:49 +02:00
added 'zrok overview public-frontends' to allow CLI listing (#996)
This commit is contained in:
@ -6,7 +6,7 @@ FEATURE: New add and delete API endpoints for frontend grants. New `zrok admin c
|
|||||||
|
|
||||||
FEATURE: New admin endpoint for deleting accounts. New `zrok admin delete account` CLI for invoking the API endpoint from the command line (https://github.com/openziti/zrok/issues/993)
|
FEATURE: New admin endpoint for deleting accounts. New `zrok admin delete account` CLI for invoking the API endpoint from the command line (https://github.com/openziti/zrok/issues/993)
|
||||||
|
|
||||||
FEATURE: New API endpoint (`/overview/public-frontends`) that returns the public frontends available to authenticated account. The public frontends include those marked with the `open` permission mode, and those marked `closed` where the user has a frontend grant allowing them to access the frontend (https://github.com/openziti/zrok/issues/996)
|
FEATURE: New API endpoint (`/overview/public-frontends`) that returns the public frontends available to authenticated account. The public frontends include those marked with the `open` permission mode, and those marked `closed` where the user has a frontend grant allowing them to access the frontend. New CLI command `zrok overview public-frontends` to allow end users to list the public frontends their account can use (https://github.com/openziti/zrok/issues/996)
|
||||||
|
|
||||||
## v1.0.6
|
## v1.0.6
|
||||||
|
|
||||||
|
@ -2,12 +2,13 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
httptransport "github.com/go-openapi/runtime/client"
|
httptransport "github.com/go-openapi/runtime/client"
|
||||||
"github.com/jedib0t/go-pretty/v6/table"
|
"github.com/jedib0t/go-pretty/v6/table"
|
||||||
"github.com/openziti/zrok/environment"
|
"github.com/openziti/zrok/environment"
|
||||||
"github.com/openziti/zrok/tui"
|
"github.com/openziti/zrok/tui"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"os"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -45,7 +46,7 @@ func (c *orgMembershipsCommand) run(_ *cobra.Command, _ []string) {
|
|||||||
zrok, err := root.Client()
|
zrok, err := root.Client()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
if !panicInstead {
|
||||||
tui.Error("error loading zrokdir", err)
|
tui.Error("error getting zrok client", err)
|
||||||
}
|
}
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -2,14 +2,18 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/openziti/zrok/environment"
|
"github.com/openziti/zrok/environment"
|
||||||
"github.com/openziti/zrok/sdk/golang/sdk"
|
"github.com/openziti/zrok/sdk/golang/sdk"
|
||||||
"github.com/openziti/zrok/tui"
|
"github.com/openziti/zrok/tui"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var overviewCmd *cobra.Command
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rootCmd.AddCommand(newOverviewCommand().cmd)
|
overviewCmd = newOverviewCommand().cmd
|
||||||
|
rootCmd.AddCommand(overviewCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
type overviewCommand struct {
|
type overviewCommand struct {
|
||||||
|
78
cmd/zrok/overviewFrontends.go
Normal file
78
cmd/zrok/overviewFrontends.go
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
httptransport "github.com/go-openapi/runtime/client"
|
||||||
|
"github.com/jedib0t/go-pretty/v6/table"
|
||||||
|
"github.com/openziti/zrok/environment"
|
||||||
|
"github.com/openziti/zrok/tui"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
overviewCmd.AddCommand(newOverviewFrontendsCommand().cmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
type overviewPublicFrontendsCommand struct {
|
||||||
|
cmd *cobra.Command
|
||||||
|
}
|
||||||
|
|
||||||
|
func newOverviewFrontendsCommand() *overviewPublicFrontendsCommand {
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "public-frontends",
|
||||||
|
Short: "Show the available public frontends",
|
||||||
|
Aliases: []string{"pf"},
|
||||||
|
Args: cobra.NoArgs,
|
||||||
|
}
|
||||||
|
command := &overviewPublicFrontendsCommand{cmd: cmd}
|
||||||
|
cmd.Run = command.run
|
||||||
|
return command
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cmd *overviewPublicFrontendsCommand) run(_ *cobra.Command, _ []string) {
|
||||||
|
root, err := environment.LoadRoot()
|
||||||
|
if err != nil {
|
||||||
|
if !panicInstead {
|
||||||
|
tui.Error("error loading zrokdir", err)
|
||||||
|
}
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !root.IsEnabled() {
|
||||||
|
tui.Error("unable to load environment; did you 'zrok enable'?", nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
zrok, err := root.Client()
|
||||||
|
if err != nil {
|
||||||
|
if !panicInstead {
|
||||||
|
tui.Error("error getting zrok client", err)
|
||||||
|
}
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
auth := httptransport.APIKeyAuth("X-TOKEN", "header", root.Environment().AccountToken)
|
||||||
|
resp, err := zrok.Metadata.ListPublicFrontendsForAccount(nil, auth)
|
||||||
|
if err != nil {
|
||||||
|
if !panicInstead {
|
||||||
|
tui.Error("error listing public frontends", err)
|
||||||
|
}
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(resp.Payload.PublicFrontends) > 0 {
|
||||||
|
fmt.Println()
|
||||||
|
t := table.NewWriter()
|
||||||
|
t.SetOutputMirror(os.Stdout)
|
||||||
|
t.SetStyle(table.StyleColoredDark)
|
||||||
|
t.AppendHeader(table.Row{"Frontend Name", "URL Template"})
|
||||||
|
for _, i := range resp.Payload.PublicFrontends {
|
||||||
|
t.AppendRow(table.Row{i.PublicName, i.URLTemplate})
|
||||||
|
}
|
||||||
|
t.Render()
|
||||||
|
fmt.Println()
|
||||||
|
} else {
|
||||||
|
fmt.Println("no public frontends found")
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user