mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-29 00:47:17 +02:00
config: add route name, description and logo (#5424)
* config: add route name, description and logo * remove name generation
This commit is contained in:
parent
dfd2457bb6
commit
8bc86fe06f
4 changed files with 808 additions and 770 deletions
|
@ -27,7 +27,10 @@ import (
|
|||
|
||||
// Policy contains route specific configuration and access settings.
|
||||
type Policy struct {
|
||||
ID string `mapstructure:"-" yaml:"-" json:"-"`
|
||||
ID string `mapstructure:"-" yaml:"-" json:"-"`
|
||||
Name string `mapstructure:"-" yaml:"-" json:"-"`
|
||||
Description string `mapstructure:"description" yaml:"description,omitempty" json:"description,omitempty"`
|
||||
LogoURL string `mapstructure:"logo_url" yaml:"logo_url,omitempty" json:"logo_url,omitempty"`
|
||||
|
||||
From string `mapstructure:"from" yaml:"from"`
|
||||
To WeightedURLs `mapstructure:"to" yaml:"to"`
|
||||
|
@ -285,6 +288,7 @@ func NewPolicyFromProto(pb *configpb.Route) (*Policy, error) {
|
|||
AllowSPDY: pb.GetAllowSpdy(),
|
||||
AllowWebsockets: pb.GetAllowWebsockets(),
|
||||
CORSAllowPreflight: pb.GetCorsAllowPreflight(),
|
||||
Description: pb.GetDescription(),
|
||||
EnableGoogleCloudServerlessAuthentication: pb.GetEnableGoogleCloudServerlessAuthentication(),
|
||||
From: pb.GetFrom(),
|
||||
HostPathRegexRewritePattern: pb.GetHostPathRegexRewritePattern(),
|
||||
|
@ -298,6 +302,8 @@ func NewPolicyFromProto(pb *configpb.Route) (*Policy, error) {
|
|||
JWTGroupsFilter: NewJWTGroupsFilter(pb.JwtGroupsFilter),
|
||||
KubernetesServiceAccountToken: pb.GetKubernetesServiceAccountToken(),
|
||||
KubernetesServiceAccountTokenFile: pb.GetKubernetesServiceAccountTokenFile(),
|
||||
LogoURL: pb.GetLogoUrl(),
|
||||
Name: pb.GetName(),
|
||||
PassIdentityHeaders: pb.PassIdentityHeaders,
|
||||
Path: pb.GetPath(),
|
||||
Prefix: pb.GetPrefix(),
|
||||
|
@ -438,6 +444,7 @@ func (p *Policy) ToProto() (*configpb.Route, error) {
|
|||
AllowSpdy: p.AllowSPDY,
|
||||
AllowWebsockets: p.AllowWebsockets,
|
||||
CorsAllowPreflight: p.CORSAllowPreflight,
|
||||
Description: p.Description,
|
||||
EnableGoogleCloudServerlessAuthentication: p.EnableGoogleCloudServerlessAuthentication,
|
||||
EnvoyOpts: p.EnvoyOpts,
|
||||
From: p.From,
|
||||
|
@ -446,7 +453,8 @@ func (p *Policy) ToProto() (*configpb.Route, error) {
|
|||
JwtGroupsFilter: p.JWTGroupsFilter.ToSlice(),
|
||||
KubernetesServiceAccountToken: p.KubernetesServiceAccountToken,
|
||||
KubernetesServiceAccountTokenFile: p.KubernetesServiceAccountTokenFile,
|
||||
Name: fmt.Sprint(p.RouteID()),
|
||||
LogoUrl: p.LogoURL,
|
||||
Name: p.Name,
|
||||
PassIdentityHeaders: p.PassIdentityHeaders,
|
||||
Path: p.Path,
|
||||
Policies: sps,
|
||||
|
@ -476,6 +484,9 @@ func (p *Policy) ToProto() (*configpb.Route, error) {
|
|||
TlsUpstreamAllowRenegotiation: p.TLSUpstreamAllowRenegotiation,
|
||||
TlsUpstreamServerName: p.TLSUpstreamServerName,
|
||||
}
|
||||
if pb.Name == "" {
|
||||
pb.Name = fmt.Sprint(p.RouteID())
|
||||
}
|
||||
if p.HostPathRegexRewritePattern != "" {
|
||||
pb.HostPathRegexRewritePattern = proto.String(p.HostPathRegexRewritePattern)
|
||||
}
|
||||
|
|
|
@ -218,6 +218,9 @@ func TestPolicy_FromToPb(t *testing.T) {
|
|||
|
||||
t.Run("normal", func(t *testing.T) {
|
||||
p := &Policy{
|
||||
Name: "ROUTE_NAME",
|
||||
Description: "DESCRIPTION",
|
||||
LogoURL: "LOGO_URL",
|
||||
From: "https://pomerium.io",
|
||||
To: mustParseWeightedURLs(t, "http://localhost"),
|
||||
AllowedUsers: []string{"foo@bar.com"},
|
||||
|
@ -235,6 +238,9 @@ func TestPolicy_FromToPb(t *testing.T) {
|
|||
|
||||
policyFromPb, err := NewPolicyFromProto(pbPolicy)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, p.Name, policyFromPb.Name)
|
||||
assert.Equal(t, p.Description, policyFromPb.Description)
|
||||
assert.Equal(t, p.LogoURL, policyFromPb.LogoURL)
|
||||
assert.Equal(t, p.From, policyFromPb.From)
|
||||
assert.Equal(t, p.To, policyFromPb.To)
|
||||
assert.Equal(t, p.AllowedUsers, policyFromPb.AllowedUsers)
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -45,9 +45,11 @@ enum IssuerFormat {
|
|||
IssuerURI = 1;
|
||||
}
|
||||
|
||||
// Next ID: 67.
|
||||
// Next ID: 69.
|
||||
message Route {
|
||||
string name = 1;
|
||||
string description = 67;
|
||||
string logo_url = 68;
|
||||
|
||||
string from = 2;
|
||||
repeated string to = 3;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue