Documentation
¶
Index ¶
- Constants
- func AddTracingWithGlobalTransport()
- func GetHTTPTransport(opts ...TransportOption) http.RoundTripper
- func GetInternalCertPair() (tls.Certificate, error)
- func GetInternalTLSConfig() (*tls.Config, error)
- func InternalEnableVerifyClientCert() bool
- func InternalTLSEnabled() bool
- func NewServerTLSConfig() *tls.Config
- func NewTransport(opts ...func(*http.Transport)) http.RoundTripper
- func ValidateCACertificate(caCert string) error
- func WithCustomCACert(caCert string) func(*http.Transport)
- func WithInsecureSkipVerify(skipVerify bool) func(*http.Transport)
- func WithInternalTLSConfig() func(*http.Transport)
- type Client
- func (c *Client) Delete(url string) error
- func (c *Client) Do(req *http.Request) (*http.Response, error)
- func (c *Client) Get(url string, v ...any) error
- func (c *Client) GetAndIteratePagination(endpoint string, v any) error
- func (c *Client) GetClient() *http.Client
- func (c *Client) Head(url string) error
- func (c *Client) Post(url string, v ...any) error
- func (c *Client) Put(url string, v ...any) error
- type Error
- type TransportConfig
- type TransportOption
Constants ¶
const ( // InsecureTransport used to get the insecure http Transport InsecureTransport = iota // SecureTransport used to get the external secure http Transport SecureTransport )
Variables ¶
This section is empty.
Functions ¶
func AddTracingWithGlobalTransport ¶
func AddTracingWithGlobalTransport()
func GetHTTPTransport ¶
func GetHTTPTransport(opts ...TransportOption) http.RoundTripper
GetHTTPTransport returns HttpTransport based on insecure configuration and CA certificate.
Priority:
- Custom CA certificate (if provided) - creates a new transport with custom CA
- Insecure mode (if enabled) - returns shared transport that skips TLS verification
- Default - returns shared transport that uses system CA pool
Backward Compatibility: Existing Harbor installations that rely on system-level CA trust stores will continue to work after upgrade. The custom CA certificate feature is optional, and when no custom CA is provided, the system CA pool is used (option 3 above).
func GetInternalCertPair ¶
func GetInternalCertPair() (tls.Certificate, error)
GetInternalCertPair used to get internal cert and key pair from environment
func GetInternalTLSConfig ¶
GetInternalTLSConfig return a tls.Config for internal https communicate
func InternalEnableVerifyClientCert ¶
func InternalEnableVerifyClientCert() bool
InternalEnableVerifyClientCert returns true if mTLS enabled
func InternalTLSEnabled ¶
func InternalTLSEnabled() bool
InternalTLSEnabled returns true if internal TLS enabled
func NewServerTLSConfig ¶
NewServerTLSConfig returns a modern tls config, refer to https://blog.cloudflare.com/exposing-go-on-the-internet/
func NewTransport ¶
func NewTransport(opts ...func(*http.Transport)) http.RoundTripper
NewTransport returns a new http.Transport with the specified options
func ValidateCACertificate ¶
ValidateCACertificate validates whether the provided CA certificate string contains at least one valid PEM-encoded x509 certificate.
func WithCustomCACert ¶
WithCustomCACert returns a TransportOption that configures custom CA certificates (supports chains) The custom CA certificates are appended to the system CA pool, so both system CAs and custom CAs are trusted.
func WithInsecureSkipVerify ¶
WithInsecureSkipVerify returns a TransportOption that configures the transport to skip verification of the server's certificate
func WithInternalTLSConfig ¶
WithInternalTLSConfig returns a TransportOption that configures the transport to use the internal TLS configuration
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a util for common HTTP operations, such Get, Head, Post, Put and Delete. Use Do instead if those methods can not meet your requirement
func NewClient ¶
NewClient creates an instance of Client. Use net/http.Client as the default value if c is nil. Modifiers modify the request before sending it.
func (*Client) GetAndIteratePagination ¶
GetAndIteratePagination iterates the pagination header and returns all resources The parameter "v" must be a pointer to a slice
type TransportConfig ¶
TransportConfig is the configuration for http transport
type TransportOption ¶
type TransportOption func(*TransportConfig)
TransportOption is the option for http transport
func WithCACert ¶
func WithCACert(caCert string) TransportOption
WithCACert returns a TransportOption that configures custom CA certificate
func WithInsecure ¶
func WithInsecure(skipVerify bool) TransportOption
WithInsecure returns a TransportOption that configures the transport to skip verification of the server's certificate