Skip to content

Commit 203dded

Browse files
Split ProxyConnectionSettings into its own PR
1 parent 5d6c717 commit 203dded

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

proto/opamp.proto

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,10 @@ message OpAMPConnectionSettings {
327327
// Optional connection specific TLS settings.
328328
// Status: [Development]
329329
TLSConnectionSettings tls = 5;
330+
331+
// Optional connection specific proxy settings.
332+
// Status: [Development]
333+
ProxyConnectionSettings proxy = 6;
330334
}
331335

332336
// The TelemetryConnectionSettings message is a collection of fields which comprise an
@@ -357,6 +361,10 @@ message TelemetryConnectionSettings {
357361
// Optional connection specific TLS settings.
358362
// Status: [Development]
359363
TLSConnectionSettings tls = 4;
364+
365+
// Optional connection specific proxy settings.
366+
// Status: [Development]
367+
ProxyConnectionSettings proxy = 5;
360368
}
361369

362370
// The OtherConnectionSettings message is a collection of fields which comprise an
@@ -406,6 +414,10 @@ message OtherConnectionSettings {
406414
// Optional connection specific TLS settings.
407415
// Status: [Development]
408416
TLSConnectionSettings tls = 5;
417+
418+
// Optional connection specific proxy settings.
419+
// Status: [Development]
420+
ProxyConnectionSettings proxy = 6;
409421
}
410422

411423

@@ -432,6 +444,18 @@ message TLSConnectionSettings {
432444
repeated string cipher_suites = 6;
433445
}
434446

447+
// Status: [Development]
448+
message ProxyConnectionSettings {
449+
// A URL, host:port or some other destination specifier.
450+
string destination_endpoint = 1;
451+
452+
// Optional headers to send to proxies during CONNECT requests.
453+
// These headers can be ignored for non-HTTP based proxies.
454+
// For example:
455+
// key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l".
456+
Headers connect_headers = 2;
457+
}
458+
435459
// Status: [Beta]
436460
message Headers {
437461
repeated Header headers = 1;

specification.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,24 @@ Status: [Beta]
115115
- [OpAMPConnectionSettings.certificate](#opampconnectionsettingscertificate)
116116
- [OpAMPConnectionSettings.heartbeat_interval_seconds](#opampconnectionsettingsheartbeat_interval_seconds)
117117
- [OpAMPConnectionSettings.tls](#opampconnectionsettingstls)
118+
- [OpAMPConnectionSettings.proxy](#opampconnectionsettingsproxy)
118119
+ [TelemetryConnectionSettings](#telemetryconnectionsettings)
119120
- [TelemetryConnectionSettings.destination_endpoint](#telemetryconnectionsettingsdestination_endpoint)
120121
- [TelemetryConnectionSettings.headers](#telemetryconnectionsettingsheaders)
121122
- [TelemetryConnectionSettings.certificate](#telemetryconnectionsettingscertificate)
122123
- [TelemetryConnectionSettings.tls](#telemetryconnectionsettingstls)
124+
- [TelemetryConnectionSettings.proxy](#telemetryconnectionsettingsproxy)
123125
+ [OtherConnectionSettings](#otherconnectionsettings)
124126
- [OtherConnectionSettings.destination_endpoint](#otherconnectionsettingsdestination_endpoint)
125127
- [OtherConnectionSettings.headers](#otherconnectionsettingsheaders)
126128
- [OtherConnectionSettings.certificate](#otherconnectionsettingscertificate)
127129
- [OtherConnectionSettings.other_settings](#otherconnectionsettingsother_settings)
128130
- [OtherConnectionSettings.tls](#otherconnectionsettingstls)
131+
- [OtherConnectionSettings.proxy](#otherconnectionsettingsproxy)
129132
+ [TLSConnectionSettings Message](#tlsconnectionsettings-message)
133+
+ [ProxyConnectionSettings Message](#proxyconnectionsettings-message)
134+
- [ProxyConnectionSettings.destination_endpoint](#proxyconnectionsettingsdestination_endpoint)
135+
- [ProxyConnectionSettings.connect_headers](#proxyconnectionsettingsconnect_headers)
130136
+ [Headers Message](#headers-message)
131137
+ [TLSCertificate Message](#tlscertificate-message)
132138
- [TLSCertificate.cert](#tlscertificatecert)
@@ -1909,6 +1915,7 @@ message OpAMPConnectionSettings {
19091915
TLSCertificate certificate = 3;
19101916
uint64 heartbeat_interval_seconds = 4;
19111917
TLSConnectionSettings tls = 5;
1918+
ProxyConnectionSettings proxy = 6;
19121919
}
19131920
```
19141921

@@ -1990,6 +1997,12 @@ Status: [Development]
19901997

19911998
Optional OpAMP specific TLS settings.
19921999

2000+
##### OpAMPConnectionSettings.proxy
2001+
2002+
Status: [Development]
2003+
2004+
Optional OpAMP specific proxy settings.
2005+
19932006
#### TelemetryConnectionSettings
19942007

19952008
The TelemetryConnectionSettings message is a collection of fields which comprise an
@@ -2002,6 +2015,7 @@ message TelemetryConnectionSettings {
20022015
Headers headers = 2;
20032016
TLSCertificate certificate = 3;
20042017
TLSConnectionSettings tls = 4;
2018+
ProxyConnectionSettings proxy = 5;
20052019
}
20062020
```
20072021

@@ -2034,6 +2048,12 @@ Status: [Development]
20342048

20352049
Optional telemetry specific TLS settings.
20362050

2051+
##### TelemetryConnectionSettings.proxy
2052+
2053+
Status: [Development]
2054+
2055+
Optional telemetry specific proxy settings.
2056+
20372057
#### OtherConnectionSettings
20382058

20392059
The OtherConnectionSettings message is a collection of fields which comprise an
@@ -2064,6 +2084,7 @@ message OtherConnectionSettings {
20642084
TLSCertificate certificate = 3;
20652085
map<string, string> other_settings = 4;
20662086
TLSConnectionSettings tls = 5;
2087+
ProxyConnectionSettings proxy = 6;
20672088
}
20682089
```
20692090

@@ -2099,6 +2120,12 @@ Status: [Development]
20992120

21002121
Optional connection specific TLS settings.
21012122

2123+
##### OtherConnectionSettings.proxy
2124+
2125+
Status: [Development]
2126+
2127+
Optional connection specific proxy settings.
2128+
21022129
#### TLSConnectionSettings Message
21032130

21042131
Status: [Development]
@@ -2119,6 +2146,38 @@ message TLSConnectionSettings {
21192146
}
21202147
```
21212148

2149+
#### ProxyConnectionSettings Message
2150+
2151+
Status: [Development]
2152+
2153+
The message carries optional proxy settings that are used to configure a
2154+
client's connection. If the Agent is able to validate the connection settings,
2155+
the Agent SHOULD forget any previous proxy settings. If this message is not
2156+
included, the client SHOULD use the agent's default proxy settings for the
2157+
connection.
2158+
2159+
If the proxy requires an mTLS certificate, or any TLS settings the Client
2160+
SHOULD use the associated connection's settings.
2161+
2162+
```protobuf
2163+
message ProxyConnectionSettings {
2164+
string destination_endpoint = 1;
2165+
Headers connect_headers = 2;
2166+
}
2167+
```
2168+
2169+
##### ProxyConnectionSettings.destination_endpoint
2170+
2171+
The destination_endpoint MUST be a non-empty URL, for example:
2172+
`https://example.com:8443` or `127.0.0.1:8443`
2173+
2174+
##### ProxyConnectionSettings.connect_headers
2175+
2176+
Option headers the Client should set for HTTP based proxies initial CONNECT
2177+
request. Other proxy types, such as SOCKS5 may ignore these headers.
2178+
For example:
2179+
key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l".
2180+
21222181
#### Headers Message
21232182

21242183
```protobuf

0 commit comments

Comments
 (0)