Skip to content

Commit d17360b

Browse files
authored
Sync Gloo APIs to v1.5.17 (#63)
* gloo-v1.5.17
1 parent 2a39d27 commit d17360b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2370
-780
lines changed

api/gloo/enterprise.gloo/v1/auth_config.proto

+85-1
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,60 @@ message OAuth2 {
247247
}
248248
}
249249

250+
message RedisOptions {
251+
// address of the redis. can be address:port or unix://path/to/unix.sock
252+
string host = 1;
253+
// db to use. can leave unset for db 0.
254+
int32 db = 2;
255+
// size of the connection pool. can leave unset for default.
256+
// defaults to 10 connections per every CPU
257+
int32 pool_size = 3;
258+
}
259+
260+
message UserSession {
261+
message InternalSession{}
262+
message RedisSession{
263+
// Options to connect to redis
264+
RedisOptions options = 1;
265+
// Key prefix inside redis
266+
string key_prefix = 2;
267+
// Cookie name to set and store the session id. If empty the default "__session" is used.
268+
string cookie_name = 3;
269+
}
270+
271+
// should we fail auth flow when failing to get a session from redis, or allow it to continue,
272+
// potentially starting a new auth flow and setting a new session.
273+
bool fail_on_fetch_failure = 1;
274+
275+
message CookieOptions {
276+
// Max age for the cookie. Leave unset for a default of 30 days (2592000 seconds).
277+
// To disable cookie expiry, set explicitly to 0.
278+
google.protobuf.UInt32Value max_age = 1;
279+
// Use a non-secure cookie. Note - this should only be used for testing and in trusted
280+
// environments.
281+
bool not_secure = 2;
282+
// Path of the cookie. If unset, defaults to "/". Set it explicitly to "" to avoid setting a
283+
// path.
284+
google.protobuf.StringValue path = 3;
285+
// Cookie domain
286+
string domain = 4;
287+
}
288+
289+
// Set-Cookie options
290+
CookieOptions cookie_options = 2;
291+
oneof session {
292+
// Set the tokens in the cookie itself. No need for server side state.
293+
InternalSession cookie = 3;
294+
// Use redis to store the tokens and just store a random id in the cookie.
295+
RedisSession redis = 4;
296+
}
297+
}
298+
299+
message HeaderConfiguration {
300+
// If set, the id token will be forward upstream using this header name.
301+
string id_token_header = 1;
302+
}
303+
250304
message OidcAuthorizationCode {
251305
// your client id as registered with the issuer
252306
string client_id = 1;
@@ -266,12 +320,27 @@ message OidcAuthorizationCode {
266320
string app_url = 5;
267321

268322
// a callback path relative to app url that will be used for OIDC callbacks.
269-
// needs to not be used by the application
323+
// should not be used by the application.
270324
string callback_path = 6;
271325

326+
// a path relative to app url that will be used for logging out from an OIDC session.
327+
// should not be used by the application.
328+
// If not provided, logout functionality will be disabled.
329+
string logout_path = 9;
330+
272331
// Scopes to request in addition to openid scope.
273332
repeated string scopes = 7;
274333

334+
// Configuration related to the user session.
335+
UserSession session = 8;
336+
337+
// Configures headers added to requests.
338+
HeaderConfiguration headers = 10;
339+
340+
// The interval at which OIDC configuration is discovered at <issuerUrl>/.well-known/openid-configuration
341+
// If not specified, the default value is 30 minutes.
342+
google.protobuf.Duration discovery_poll_interval = 12;
343+
275344
// in the future we may implement this:
276345
// add optional configuration for validation of the access token received during the OIDC flow
277346
// AccessTokenValidation access_token_validation = 8;
@@ -437,6 +506,7 @@ message ExtAuthConfig {
437506
}
438507

439508
message OidcAuthorizationCodeConfig {
509+
440510
// your client id as registered with the issuer
441511
string client_id = 1;
442512

@@ -458,9 +528,23 @@ message ExtAuthConfig {
458528
// needs to not be used by the application
459529
string callback_path = 6;
460530

531+
// a path relative to app url that will be used for logging out from an OIDC session.
532+
// should not be used by the application.
533+
// If not provided, logout functionality will be disabled.
534+
string logout_path = 9;
535+
461536
// scopes to request in addition to the openid scope.
462537
repeated string scopes = 7;
463538

539+
UserSession session = 8;
540+
541+
// Configures headers added to requests.
542+
HeaderConfiguration headers = 10;
543+
544+
// The interval at which OIDC configuration is discovered at <issuerUrl>/.well-known/openid-configuration
545+
// If not specified, the default value is 30 minutes.
546+
google.protobuf.Duration discovery_poll_interval = 12;
547+
464548
// in the future we may implement this:
465549
// add optional configuration for validation of the access token received during the OIDC flow
466550
// AccessTokenValidation access_token_validation = 8;

api/gloo/gateway/v1/gateway.proto

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ message TcpGateway {
103103
gloo.solo.io.TcpListenerOptions options = 8;
104104
}
105105

106+
106107
message GatewayStatus {
107108
enum State {
108109
// Pending status indicates the resource has not yet been validated

api/gloo/gloo/external/envoy/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
### Envoy Protos in Gloo
1+
### Envoy Protos in Gloo Edge
22

3-
The envoy api in Gloo is now taken directly from the envoy protos and then copied into the relevant directory
4-
here in the Gloo repo. In order to allow for seamless addition of envoy protos directly into the gloo repo simply
3+
The envoy api in Gloo Edge is now taken directly from the envoy protos and then copied into the relevant directory
4+
here in the Gloo Edge repo. In order to allow for seamless addition of envoy protos directly into the gloo repo simply
55
change the go_package option to the appropriate `go-control-plane` package, or if none exists than add the `go-control-plane` one
66

77
For example:

api/gloo/gloo/external/envoy/api/v2/cluster/outlier_detection.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,4 @@ message OutlierDetection {
114114
// is set to true.
115115
google.protobuf.UInt32Value enforcing_local_origin_success_rate = 15
116116
[(validate.rules).uint32.lte = 100];
117-
}
117+
}

api/gloo/gloo/external/envoy/api/v2/core/health_check.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -273,4 +273,4 @@ enum HealthStatus {
273273

274274
// Degraded.
275275
DEGRADED = 5;
276-
}
276+
}

api/gloo/gloo/external/envoy/api/v2/route/route.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -1303,4 +1303,4 @@ message QueryParameterMatcher {
13031303
// the right of the equals sign in "key=value") must match the regex.
13041304
// E.g., the regex "\d+$" will match "123" but not "a123" or "123a".
13051305
google.protobuf.BoolValue regex = 4;
1306-
}
1306+
}

api/gloo/gloo/external/envoy/config/filter/http/gzip/v2/gzip.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,4 @@ message Gzip {
8080
// which will produce a 4096 bytes window. For more details about this parameter, please refer to
8181
// zlib manual > deflateInit2.
8282
google.protobuf.UInt32Value window_bits = 9 [(validate.rules).uint32 = {lte: 15 gte: 9}];
83-
}
83+
}

api/gloo/gloo/external/envoy/extensions/filters/http/wasm/v3/wasm.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ option java_multiple_files = true;
2626
message Wasm {
2727
// General Plugin configuration.
2828
envoy.extensions.wasm.v3.PluginConfig config = 1;
29-
}
29+
}

api/gloo/gloo/external/envoy/extensions/transformation/transformation.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -236,4 +236,4 @@ message Passthrough {}
236236

237237
message MergeExtractorsToBody {}
238238

239-
message HeaderBodyTransform {}
239+
message HeaderBodyTransform {}

api/gloo/gloo/external/envoy/type/range.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ message DoubleRange {
3232

3333
// end of the range (exclusive)
3434
double end = 2;
35-
}
35+
}

api/gloo/gloo/external/udpa/annotations/sensitive.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ extend google.protobuf.FieldOptions {
1212
// Protobuf functions such as `TextFormat::PrintToString`.
1313
bool sensitive = 76569463;
1414
}
15-
option go_package = "github.com/solo-io/solo-apis/pkg/api/gloo.solo.io/external/udpa/annotations";
15+
option go_package = "github.com/solo-io/solo-apis/pkg/api/gloo.solo.io/external/udpa/annotations";

api/gloo/gloo/v1/endpoint.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ message Endpoint {
4040
message HealthCheckConfig {
4141
// hostname to use for the endpoint health checks if provided.
4242
string hostname = 1;
43-
}
43+
}

api/gloo/gloo/v1/enterprise/options/ratelimit/ratelimit.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,4 @@ message RateLimitRouteExtension {
8484
// Define individual rate limits here. Each rate limit will be evaluated, if any rate limit
8585
// would be throttled, the entire request returns a 429 (gets throttled)
8686
repeated ratelimit.api.solo.io.RateLimitActions rate_limits = 2;
87-
}
87+
}

api/gloo/gloo/v1/enterprise/options/rbac/rbac.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,4 @@ message Permissions {
5353
string path_prefix = 1;
5454
// What http methods (GET, POST, ...) are allowed.
5555
repeated string methods = 2;
56-
}
56+
}

api/gloo/gloo/v1/enterprise/options/waf/waf.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@ message CoreRuleSet {
4242
// String representing the core rule set custom config options
4343
string custom_settings_file = 3;
4444
}
45-
}
45+
}

api/gloo/gloo/v1/extensions.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ message Extensions {
1515

1616
message Extension {
1717
google.protobuf.Struct config = 1;
18-
}
18+
}

api/gloo/gloo/v1/failover.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,4 @@ message Locality {
115115
// into smaller chunks of sub-zones so they can be load balanced
116116
// independently.
117117
string sub_zone = 3;
118-
}
118+
}

api/gloo/gloo/v1/options.proto

+11
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ import "solo-apis/api/gloo/gloo/v1/enterprise/options/waf/waf.proto";
4444
import "solo-apis/api/gloo/gloo/v1/enterprise/options/dlp/dlp.proto";
4545
import "solo-apis/api/gloo/gloo/v1/options/transformation/transformation.proto";
4646

47+
import "envoy/api/v2/core/base.proto";
48+
4749
import "google/protobuf/duration.proto";
4850
import "google/protobuf/wrappers.proto";
4951

@@ -66,6 +68,10 @@ message ListenerOptions {
6668
// Soft limit on size of the listener's new connection read and write buffers. If unspecified, defaults to 1MiB
6769
// For more info, check out the [Envoy docs](https://www.envoyproxy.io/docs/envoy/v1.14.1/api-v2/api/v2/listener.proto)
6870
google.protobuf.UInt32Value per_connection_buffer_limit_bytes = 3;
71+
72+
// Additional socket options that may not be present in Envoy source code or
73+
// precompiled binaries.
74+
repeated envoy.api.v2.core.SocketOption socket_options = 4;
6975
}
7076

7177
// Optional, feature-specific configuration that lives on http listeners
@@ -120,6 +126,11 @@ message HttpListenerOptions {
120126
// envoy.filters.http.grpc_json_transcoder.
121127
// For more, see https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/grpc_json_transcoder/v3/transcoder.proto
122128
grpc_json.options.gloo.solo.io.GrpcJsonTranscoder grpc_json_transcoder = 13;
129+
130+
// Enterprise-only: If using the HTTP header specified by cluster_header to direct traffic to a cluster,
131+
// this option will sanitize that header from downstream traffic.
132+
// Defaults to false
133+
google.protobuf.BoolValue sanitize_cluster_header = 14;
123134
}
124135

125136
// Optional, feature-specific configuration that lives on tcp listeners

api/gloo/gloo/v1/options/cors/cors.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@ message CorsPolicy {
4242
// Optional, only applies to route-specific CORS Policies, defaults to false.
4343
// If set, the CORS Policy (specified on the virtual host) will be disabled for this route.
4444
bool disable_for_route = 8;
45-
}
45+
}

api/gloo/gloo/v1/options/grpc/grpc.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ message DestinationSpec {
4848
// Parameters describe how to extract the function parameters from the
4949
// request.
5050
transformation.options.gloo.solo.io.Parameters parameters = 4;
51-
}
51+
}

api/gloo/gloo/v1/options/grpc_json/grpc_json.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,4 @@ message GrpcJsonTranscoder {
158158
// the ``google/rpc/error_details.proto`` should be included in the configured
159159
// :ref:`proto descriptor set <config_grpc_json_generate_proto_descriptor_set>`.
160160
bool convert_grpc_status = 9;
161-
}
161+
}

api/gloo/gloo/v1/options/grpc_web/grpc_web.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ import "solo-apis/api/gloo/gloo/v1/options/transformation/parameters.proto";
1414
message GrpcWeb {
1515
// Disable grpc web support.
1616
bool disable = 1;
17-
}
17+
}

api/gloo/gloo/v1/options/hcm/hcm.proto

+16
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,15 @@ message HttpConnectionManagerSettings {
2424
ALWAYS_FORWARD_ONLY = 4;
2525
}
2626

27+
enum ServerHeaderTransformation {
28+
// (DEFAULT) Overwrite any Server header with the contents of server_name.
29+
OVERWRITE = 0;
30+
// If no Server header is present, append Server server_name If a Server header is present, pass it through.
31+
APPEND_IF_ABSENT = 1;
32+
// Pass through the value of the server header, and do not append a header if none is present.
33+
PASS_THROUGH = 2;
34+
}
35+
2736
message SetCurrentClientCertDetails {
2837
google.protobuf.BoolValue subject = 1;
2938
bool cert = 2;
@@ -62,4 +71,11 @@ message HttpConnectionManagerSettings {
6271
// HttpConnectionManager configuration for protocol upgrade requests.
6372
// Note: WebSocket upgrades are enabled by default on the HTTP Connection Manager and must be explicitly disabled.
6473
repeated protocol_upgrade.options.gloo.solo.io.ProtocolUpgradeConfig upgrades = 21;
74+
75+
// For an explanation of these settings see https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#config-core-v3-httpprotocoloptions
76+
google.protobuf.Duration max_connection_duration = 23 [ (gogoproto.stdduration) = true ];
77+
google.protobuf.Duration max_stream_duration = 24 [ (gogoproto.stdduration) = true ];
78+
79+
// For an explanation of the settings see: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto.html#envoy-v3-api-enum-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-serverheadertransformation
80+
ServerHeaderTransformation server_header_transformation = 25;
6581
}

api/gloo/gloo/v1/options/rest/rest.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ message DestinationSpec {
2929
transformation.options.gloo.solo.io.Parameters parameters = 2;
3030

3131
envoy.api.v2.filter.http.TransformationTemplate response_transformation = 3;
32-
}
32+
}

api/gloo/gloo/v1/options/service_spec.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ message ServiceSpec {
2222
rest.options.gloo.solo.io.ServiceSpec rest = 1;
2323
grpc.options.gloo.solo.io.ServiceSpec grpc = 2;
2424
}
25-
}
25+
}

api/gloo/gloo/v1/options/static/static.proto

+9
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ message UpstreamSpec {
2626

2727
// An optional Service Spec describing the service listening at this address
2828
.options.gloo.solo.io.ServiceSpec service_spec = 5;
29+
30+
// When set, automatically set the sni address to use to the addr field.
31+
// If both this and host.sni_addr are set, host.sni_addr has priority.
32+
// defaults to "true".
33+
google.protobuf.BoolValue auto_sni_rewrite = 6;
2934
}
3035

3136
// Represents a single instance of an upstream
@@ -35,6 +40,10 @@ message Host {
3540
// Port the instance is listening on
3641
uint32 port = 2;
3742

43+
// Address to use for SNI if using ssl.
44+
string sni_addr = 4;
45+
46+
3847
message HealthCheckConfig {
3948
// (Enterprise Only): Path to use when health checking this specific host.
4049
string path = 1;

api/gloo/gloo/v1/options/stats/stats.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,4 @@ message VirtualCluster {
4343

4444
// If specified, statistics will be exposed only for requests matching the given HTTP method.
4545
string method = 3;
46-
}
46+
}

api/gloo/gloo/v1/options/tcp/tcp.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ option (extproto.hash_all) = true;
1616
message TcpProxySettings {
1717
google.protobuf.UInt32Value max_connect_attempts = 1;
1818
google.protobuf.Duration idle_timeout = 2 [ (gogoproto.stdduration) = true ];
19-
}
19+
}

api/gloo/gloo/v1/options/tracing/tracing.proto

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ message RouteTracingSettings {
3535
// Requests can produce traces by random sampling or when the `x-client-trace-id` header is provided.
3636
// TracePercentages defines the limits for random, forced, and overall tracing percentages.
3737
TracePercentages trace_percentages = 2;
38+
// Optional. Default is true, If set to false, the tracing headers will not propagate to the upstream.
39+
google.protobuf.BoolValue propagate = 3;
3840
}
3941

4042
// Requests can produce traces by random sampling or when the `x-client-trace-id` header is provided.

api/gloo/gloo/v1/options/transformation/transformation.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ message TransformationStages {
5757
RequestResponseTransformations early = 1;
5858
// Regular transformations happen after Auth and Rate limit decisions has been made.
5959
RequestResponseTransformations regular = 2;
60-
}
60+
}

0 commit comments

Comments
 (0)