Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions proto/opamp.proto
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,10 @@ message OpAMPConnectionSettings {
// Optional connection specific TLS settings.
// Status: [Development]
TLSConnectionSettings tls = 5;

// Optional connection specific proxy settings.
// Status: [Development]
ProxyConnectionSettings proxy = 6;
}

// The TelemetryConnectionSettings message is a collection of fields which comprise an
Expand Down Expand Up @@ -357,6 +361,10 @@ message TelemetryConnectionSettings {
// Optional connection specific TLS settings.
// Status: [Development]
TLSConnectionSettings tls = 4;

// Optional connection specific proxy settings.
// Status: [Development]
ProxyConnectionSettings proxy = 5;
}

// The OtherConnectionSettings message is a collection of fields which comprise an
Expand Down Expand Up @@ -406,6 +414,10 @@ message OtherConnectionSettings {
// Optional connection specific TLS settings.
// Status: [Development]
TLSConnectionSettings tls = 5;

// Optional connection specific proxy settings.
// Status: [Development]
ProxyConnectionSettings proxy = 6;
}


Expand All @@ -432,6 +444,18 @@ message TLSConnectionSettings {
repeated string cipher_suites = 6;
}

// Status: [Development]
message ProxyConnectionSettings {
// A URL, host:port or some other destination specifier.
string url = 1;

// Optional headers to send to proxies during CONNECT requests.
// These headers can be ignored for non-HTTP based proxies.
// For example:
// key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l".
Headers connect_headers = 2;
}

// Status: [Beta]
message Headers {
repeated Header headers = 1;
Expand Down
59 changes: 59 additions & 0 deletions specification.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,18 +115,24 @@ Status: [Beta]
- [OpAMPConnectionSettings.certificate](#opampconnectionsettingscertificate)
- [OpAMPConnectionSettings.heartbeat_interval_seconds](#opampconnectionsettingsheartbeat_interval_seconds)
- [OpAMPConnectionSettings.tls](#opampconnectionsettingstls)
- [OpAMPConnectionSettings.proxy](#opampconnectionsettingsproxy)
+ [TelemetryConnectionSettings](#telemetryconnectionsettings)
- [TelemetryConnectionSettings.destination_endpoint](#telemetryconnectionsettingsdestination_endpoint)
- [TelemetryConnectionSettings.headers](#telemetryconnectionsettingsheaders)
- [TelemetryConnectionSettings.certificate](#telemetryconnectionsettingscertificate)
- [TelemetryConnectionSettings.tls](#telemetryconnectionsettingstls)
- [TelemetryConnectionSettings.proxy](#telemetryconnectionsettingsproxy)
+ [OtherConnectionSettings](#otherconnectionsettings)
- [OtherConnectionSettings.destination_endpoint](#otherconnectionsettingsdestination_endpoint)
- [OtherConnectionSettings.headers](#otherconnectionsettingsheaders)
- [OtherConnectionSettings.certificate](#otherconnectionsettingscertificate)
- [OtherConnectionSettings.other_settings](#otherconnectionsettingsother_settings)
- [OtherConnectionSettings.tls](#otherconnectionsettingstls)
- [OtherConnectionSettings.proxy](#otherconnectionsettingsproxy)
+ [TLSConnectionSettings Message](#tlsconnectionsettings-message)
+ [ProxyConnectionSettings Message](#proxyconnectionsettings-message)
- [ProxyConnectionSettings.url](#proxyconnectionsettingsurl)
- [ProxyConnectionSettings.connect_headers](#proxyconnectionsettingsconnect_headers)
+ [Headers Message](#headers-message)
+ [TLSCertificate Message](#tlscertificate-message)
- [TLSCertificate.cert](#tlscertificatecert)
Expand Down Expand Up @@ -1909,6 +1915,7 @@ message OpAMPConnectionSettings {
TLSCertificate certificate = 3;
uint64 heartbeat_interval_seconds = 4;
TLSConnectionSettings tls = 5;
ProxyConnectionSettings proxy = 6;
}
```

Expand Down Expand Up @@ -1990,6 +1997,12 @@ Status: [Development]

Optional OpAMP specific TLS settings.

##### OpAMPConnectionSettings.proxy

Status: [Development]

Optional OpAMP specific proxy settings.

#### TelemetryConnectionSettings

The TelemetryConnectionSettings message is a collection of fields which comprise an
Expand All @@ -2002,6 +2015,7 @@ message TelemetryConnectionSettings {
Headers headers = 2;
TLSCertificate certificate = 3;
TLSConnectionSettings tls = 4;
ProxyConnectionSettings proxy = 5;
}
```

Expand Down Expand Up @@ -2034,6 +2048,12 @@ Status: [Development]

Optional telemetry specific TLS settings.

##### TelemetryConnectionSettings.proxy

Status: [Development]

Optional telemetry specific proxy settings.

#### OtherConnectionSettings

The OtherConnectionSettings message is a collection of fields which comprise an
Expand Down Expand Up @@ -2064,6 +2084,7 @@ message OtherConnectionSettings {
TLSCertificate certificate = 3;
map<string, string> other_settings = 4;
TLSConnectionSettings tls = 5;
ProxyConnectionSettings proxy = 6;
}
```

Expand Down Expand Up @@ -2099,6 +2120,12 @@ Status: [Development]

Optional connection specific TLS settings.

##### OtherConnectionSettings.proxy

Status: [Development]

Optional connection specific proxy settings.

#### TLSConnectionSettings Message

Status: [Development]
Expand All @@ -2119,6 +2146,38 @@ message TLSConnectionSettings {
}
```

#### ProxyConnectionSettings Message

Status: [Development]

The message carries optional proxy settings that are used to configure a
client's connection. If the Agent is able to validate the connection settings,
the Agent SHOULD forget any previous proxy settings. If this message is not
included, client SHOULD assume the settings are unchanged and continue using
existing settings.

If the proxy requires an mTLS certificate, or any TLS settings the Client
SHOULD use the associated connection's settings.

```protobuf
message ProxyConnectionSettings {
string url = 1;
Headers connect_headers = 2;
}
```

##### ProxyConnectionSettings.url

The url MUST be non-empty, for example: `https://example.com:8443` or
`127.0.0.1:8443`.

##### ProxyConnectionSettings.connect_headers

Option headers the Client should set for HTTP based proxies initial CONNECT
request. Other proxy types, such as SOCKS5 may ignore these headers.
For example:
key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l".

#### Headers Message

```protobuf
Expand Down