Documentation
¶
Overview ¶
Package ipc takes care of the IPC artifacts lifecycle (creation, loading, deletion of auth_token, IPC certificate, IPC key). It also provides helpers to use them in the agent (TLS configuration, HTTP client, etc.).
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Component ¶
type Component interface {
// GetAuthToken returns the session token
GetAuthToken() string
// GetTLSClientConfig returns a copy of the TLS configuration for HTTPS clients
GetTLSClientConfig() *tls.Config
// GetTLSServerConfig returns a copy of the TLS configuration for HTTPS servers
GetTLSServerConfig() *tls.Config
// HTTPMiddleware returns a middleware that verifies the auth_token in incoming HTTP requests
HTTPMiddleware(next http.Handler) http.Handler
// GetClient returns an HTTP client that verifies the certificate of the server and includes the auth_token in outgoing requests
GetClient() HTTPClient
}
Component is the component type.
type Endpoint ¶
type Endpoint interface {
// DoGet sends a GET request to the pre-configured endpoint path.
DoGet(options ...RequestOption) ([]byte, error)
}
Endpoint represents a specific endpoint of an IPC server, allowing pre-configured requests.
type HTTPClient ¶
type HTTPClient interface {
// Do sends an HTTP request, handling IPC authentication and TLS, and returns the response body.
// It wraps the standard http.Client.Do method.
Do(req *http.Request, opts ...RequestOption) (resp []byte, err error)
// Get sends a GET request, handling IPC authentication and TLS, and returns the response body.
// It wraps the standard http.Client.Get method.
Get(url string, opts ...RequestOption) (resp []byte, err error)
// Head sends a HEAD request, handling IPC authentication and TLS, and returns the response.
// It wraps the standard http.Client.Head method.
Head(url string, opts ...RequestOption) (resp []byte, err error)
// Post sends a POST request with the given body and content type, handling IPC authentication and TLS,
// and returns the response body.
// It wraps the standard http.Client.Post method.
Post(url string, contentType string, body io.Reader, opts ...RequestOption) (resp []byte, err error)
// PostChunk sends a POST request with a chunked body, handling IPC authentication and TLS.
// The provided callback function is called for each chunk received in the response.
// It wraps the standard http.Client.Post method.
PostChunk(url string, contentType string, body io.Reader, onChunk func([]byte), opts ...RequestOption) (err error)
// PostForm sends a POST request with form data, handling IPC authentication and TLS,
// and returns the response body.
// It wraps the standard http.Client.PostForm method.
PostForm(url string, data url.Values, opts ...RequestOption) (resp []byte, err error)
// NewIPCEndpoint creates a new IPC endpoint client for the specified path.
// This allows making requests to a specific endpoint path without repeatedly specifying it.
NewIPCEndpoint(endpointPath string) (Endpoint, error)
}
HTTPClient is a HTTP client that abstracts communications between Agent processes. It handles TLS configuration and authentication token management for inter-process communication.
type RequestOption ¶
type RequestOption func(req *RequestParams)
RequestOption allows to specify custom behavior for requests
Click to show internal directories.
Click to hide internal directories.