diff --git a/build/test/server.go b/build/test/server.go index 125f4532ae..ffb40349d5 100644 --- a/build/test/server.go +++ b/build/test/server.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package test is for integration testing. package test import ( diff --git a/cmd/client/command/common.go b/cmd/client/command/common.go index 65a5a0d8c0..49f6346c46 100644 --- a/cmd/client/command/common.go +++ b/cmd/client/command/common.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package command implements commands of Easegress client. package command import ( diff --git a/cmd/client/main.go b/cmd/client/main.go index 404ceeb312..cc7d512a55 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package main is the entry point of Easegress client. package main import ( diff --git a/cmd/server/main.go b/cmd/server/main.go index 8d62b6ceee..c41ab5d6d5 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package main is the entry point of Easegress server. package main import ( diff --git a/example/backend-service/echo/echo.go b/example/backend-service/echo/echo.go index e7ccaecd2a..12f837b5a8 100644 --- a/example/backend-service/echo/echo.go +++ b/example/backend-service/echo/echo.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package main is the entry point of the simple echo server. package main import ( diff --git a/example/backend-service/mirror/mirror.go b/example/backend-service/mirror/mirror.go index ed4263c4ea..366c5aadba 100644 --- a/example/backend-service/mirror/mirror.go +++ b/example/backend-service/mirror/mirror.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package main is the entry point of the simple mirror server. package main import ( diff --git a/example/backend-service/remote/remote.go b/example/backend-service/remote/remote.go index 987b2889c5..0fa89b71c6 100644 --- a/example/backend-service/remote/remote.go +++ b/example/backend-service/remote/remote.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package main is the entry point of the simple Easegress remote server. package main import ( diff --git a/pkg/api/api.go b/pkg/api/api.go index 479d75ea69..dfd0f22269 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package api implements the HTTP API of Easegress. package api import ( diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index c70507744d..2321386445 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package cluster provides the cluster management. package cluster import ( diff --git a/pkg/cluster/clustertest/cluster.go b/pkg/cluster/clustertest/cluster.go index 3707042b27..441906b9d3 100644 --- a/pkg/cluster/clustertest/cluster.go +++ b/pkg/cluster/clustertest/cluster.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package clustertest provides a mocked cluster for testing. package clustertest import ( @@ -124,6 +125,7 @@ func (mc *MockedCluster) Put(key, value string) error { return nil } +// PutUnderTimeout implements interface function PutUnderTimeout func (mc *MockedCluster) PutUnderTimeout(key, value string, timeout time.Duration) error { if mc.MockedPutUnderTimeout != nil { return mc.MockedPutUnderTimeout(key, value, timeout) diff --git a/pkg/cluster/customdata/customdata.go b/pkg/cluster/customdata/customdata.go index c053988439..8217f6f2b4 100644 --- a/pkg/cluster/customdata/customdata.go +++ b/pkg/cluster/customdata/customdata.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package customdata provides a way to store custom data in Easegress cluster. package customdata import ( diff --git a/pkg/common/utils.go b/pkg/common/utils.go index a8d78b121a..5d0cb24edc 100644 --- a/pkg/common/utils.go +++ b/pkg/common/utils.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package common provides several common utilities for other packages. package common import ( diff --git a/pkg/context/context.go b/pkg/context/context.go index b689c84559..16c56fe16e 100644 --- a/pkg/context/context.go +++ b/pkg/context/context.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package context provides the context for traffic handlers. package context import ( diff --git a/pkg/context/contexttest/contexttest.go b/pkg/context/contexttest/contexttest.go index 6c00f6a1a5..81157e6122 100644 --- a/pkg/context/contexttest/contexttest.go +++ b/pkg/context/contexttest/contexttest.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package contexttest provides utilities for testing context. package contexttest import "github.com/megaease/easegress/pkg/context" diff --git a/pkg/env/env.go b/pkg/env/env.go index 6209fcb24e..f19ef3590b 100644 --- a/pkg/env/env.go +++ b/pkg/env/env.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package env provides functions for environment variables. package env import ( diff --git a/pkg/filters/builder/builder.go b/pkg/filters/builder/builder.go index 393babccc2..f2b8a8191b 100644 --- a/pkg/filters/builder/builder.go +++ b/pkg/filters/builder/builder.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package builder implements builder filters. package builder import ( diff --git a/pkg/filters/builder/requestadaptor.go b/pkg/filters/builder/requestadaptor.go index 6cfc6af19b..f4c00d2999 100644 --- a/pkg/filters/builder/requestadaptor.go +++ b/pkg/filters/builder/requestadaptor.go @@ -150,6 +150,7 @@ type ( Sign *SignerSpec `json:"sign,omitempty" jsonschema:"omitempty"` } + // RequestAdaptorTemplate is the template of the request adaptor. RequestAdaptorTemplate struct { Host string `json:"host" jsonschema:"omitempty"` Method string `json:"method" jsonschema:"omitempty,format=httpmethod"` diff --git a/pkg/filters/builder/responseadaptor.go b/pkg/filters/builder/responseadaptor.go index a1f6b9bd57..362e9ff0f4 100644 --- a/pkg/filters/builder/responseadaptor.go +++ b/pkg/filters/builder/responseadaptor.go @@ -74,6 +74,7 @@ type ( Decompress string `json:"decompress" jsonschema:"omitempty"` } + // ResponseAdaptorTemplate is the template of ResponseAdaptor. ResponseAdaptorTemplate struct { Header *httpheader.AdaptSpec `json:"header" jsonschema:"omitempty"` Body string `json:"body" jsonschema:"omitempty"` diff --git a/pkg/filters/certextractor/certextractor.go b/pkg/filters/certextractor/certextractor.go index aca1f19677..914b7eecaf 100644 --- a/pkg/filters/certextractor/certextractor.go +++ b/pkg/filters/certextractor/certextractor.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package certextractor implements a filter to extract given field from TLS. package certextractor import ( diff --git a/pkg/filters/connectcontrol/connectcontrol.go b/pkg/filters/connectcontrol/connectcontrol.go index b36f7e2cd7..5619c87916 100644 --- a/pkg/filters/connectcontrol/connectcontrol.go +++ b/pkg/filters/connectcontrol/connectcontrol.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package connectcontrol implements filter for controlling connections of MQTT clients package connectcontrol import ( diff --git a/pkg/filters/corsadaptor/corsadaptor.go b/pkg/filters/corsadaptor/corsadaptor.go index 1c0e40f661..9ee3300bbb 100644 --- a/pkg/filters/corsadaptor/corsadaptor.go +++ b/pkg/filters/corsadaptor/corsadaptor.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package corsadaptor implements a filter that adapts CORS stuff. package corsadaptor import ( diff --git a/pkg/filters/fallback/fallback.go b/pkg/filters/fallback/fallback.go index 19801b2e66..d455ea2341 100644 --- a/pkg/filters/fallback/fallback.go +++ b/pkg/filters/fallback/fallback.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package fallback implements the fallback filter. package fallback import ( diff --git a/pkg/filters/filters.go b/pkg/filters/filters.go index cb7f7281e6..ed8bb42261 100644 --- a/pkg/filters/filters.go +++ b/pkg/filters/filters.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package filters implements common functionality of filters. package filters import ( diff --git a/pkg/filters/headerlookup/headerlookup.go b/pkg/filters/headerlookup/headerlookup.go index 45ef853c20..0cf78d1108 100644 --- a/pkg/filters/headerlookup/headerlookup.go +++ b/pkg/filters/headerlookup/headerlookup.go @@ -15,6 +15,8 @@ * limitations under the License. */ +// Package headerlookup implements a filter that enriches request headers +// per request, looking up values from etcd. package headerlookup import ( diff --git a/pkg/filters/headertojson/headertojson.go b/pkg/filters/headertojson/headertojson.go index 03362bdf9b..d1fc76e497 100644 --- a/pkg/filters/headertojson/headertojson.go +++ b/pkg/filters/headertojson/headertojson.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package headertojson implements a filter to convert HTTP request header to json. package headertojson import ( diff --git a/pkg/filters/kafka/kafka.go b/pkg/filters/kafka/kafka.go index 1d0665d174..7ad23f1b18 100644 --- a/pkg/filters/kafka/kafka.go +++ b/pkg/filters/kafka/kafka.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package kafka implements a kafka proxy for MQTT requests. package kafka import ( @@ -36,7 +37,7 @@ const ( var kind = &filters.Kind{ Name: Kind, - Description: "Kafka is a backend of MQTTProxy", + Description: "Kafka is a kafka proxy for MQTT requests", Results: []string{resultGetDataFailed}, DefaultSpec: func() filters.Spec { return &Spec{} @@ -51,7 +52,7 @@ func init() { } type ( - // Kafka is kafka backend for MQTT proxy + // Kafka is a kafka proxy for MQTT requests. Kafka struct { spec *Spec producer sarama.AsyncProducer diff --git a/pkg/filters/kafka/kafka_test.go b/pkg/filters/kafka/kafka_test.go index 9fbfa32407..4dd2fbf821 100644 --- a/pkg/filters/kafka/kafka_test.go +++ b/pkg/filters/kafka/kafka_test.go @@ -63,11 +63,11 @@ func (m *mockAsyncProducer) AbortTxn() error { return nil } -func (m *mockAsyncProducer) AddOffsetsToTxn(offsets map[string][]*sarama.PartitionOffsetMetadata, groupId string) error { +func (m *mockAsyncProducer) AddOffsetsToTxn(offsets map[string][]*sarama.PartitionOffsetMetadata, groupID string) error { return nil } -func (m *mockAsyncProducer) AddMessageToTxn(msg *sarama.ConsumerMessage, groupId string, metadata *string) error { +func (m *mockAsyncProducer) AddMessageToTxn(msg *sarama.ConsumerMessage, groupID string, metadata *string) error { return nil } diff --git a/pkg/filters/kafkabackend/kafka.go b/pkg/filters/kafkabackend/kafka.go index 1de1c4bcb0..ec0080df84 100644 --- a/pkg/filters/kafkabackend/kafka.go +++ b/pkg/filters/kafkabackend/kafka.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package kafka implements a kafka proxy for HTTP requests. package kafka import ( @@ -38,7 +39,7 @@ const ( var kind = &filters.Kind{ Name: Kind, - Description: "Kafka is a backend of MQTTProxy", + Description: "Kafka is a kafka proxy for HTTP requests", Results: []string{resultParseErr}, DefaultSpec: func() filters.Spec { return &Spec{} @@ -53,7 +54,7 @@ func init() { } type ( - // Kafka is kafka backend for MQTT proxy + // Kafka is a kafka proxy for HTTP requests. Kafka struct { spec *Spec producer sarama.AsyncProducer diff --git a/pkg/filters/kafkabackend/kafka_test.go b/pkg/filters/kafkabackend/kafka_test.go index d793b66096..9faa5a6779 100644 --- a/pkg/filters/kafkabackend/kafka_test.go +++ b/pkg/filters/kafkabackend/kafka_test.go @@ -59,11 +59,11 @@ func (m *mockAsyncProducer) AbortTxn() error { return nil } -func (m *mockAsyncProducer) AddOffsetsToTxn(offsets map[string][]*sarama.PartitionOffsetMetadata, groupId string) error { +func (m *mockAsyncProducer) AddOffsetsToTxn(offsets map[string][]*sarama.PartitionOffsetMetadata, groupID string) error { return nil } -func (m *mockAsyncProducer) AddMessageToTxn(msg *sarama.ConsumerMessage, groupId string, metadata *string) error { +func (m *mockAsyncProducer) AddMessageToTxn(msg *sarama.ConsumerMessage, groupID string, metadata *string) error { return nil } diff --git a/pkg/filters/meshadaptor/meshadaptor.go b/pkg/filters/meshadaptor/meshadaptor.go index 528f278ca8..28509b4517 100644 --- a/pkg/filters/meshadaptor/meshadaptor.go +++ b/pkg/filters/meshadaptor/meshadaptor.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package meshadaptor provides MeshAdaptor filter. package meshadaptor import ( diff --git a/pkg/filters/mock/mock.go b/pkg/filters/mock/mock.go index cda7177a73..76c4b328c4 100644 --- a/pkg/filters/mock/mock.go +++ b/pkg/filters/mock/mock.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package mock provides Mock filter. package mock import ( diff --git a/pkg/filters/mqttclientauth/mqttauth.go b/pkg/filters/mqttclientauth/mqttauth.go index da1d4b56ca..2a0515f5b9 100644 --- a/pkg/filters/mqttclientauth/mqttauth.go +++ b/pkg/filters/mqttclientauth/mqttauth.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package mqttclientauth implements authentication for MQTT clients. package mqttclientauth import ( diff --git a/pkg/filters/oidcadaptor/oidcadaptor.go b/pkg/filters/oidcadaptor/oidcadaptor.go index 3025631479..40d5c48e77 100644 --- a/pkg/filters/oidcadaptor/oidcadaptor.go +++ b/pkg/filters/oidcadaptor/oidcadaptor.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package oidcadaptor implements OpenID Connect authorization. package oidcadaptor import ( @@ -67,6 +68,7 @@ type store interface { get(key string) string } +// OIDCAdaptor is the filter for OpenID Connect authorization. type OIDCAdaptor struct { spec *Spec store @@ -82,12 +84,13 @@ type OIDCAdaptor struct { jwks *keyfunc.JWKS } +// Spec defines the spec of OIDCAdaptor. type Spec struct { filters.BaseSpec `yaml:",inline"` CookieName string `json:"cookieName"` - ClientId string `json:"clientId" jsonschema:"required"` + ClientID string `json:"clientId" jsonschema:"required"` ClientSecret string `json:"clientSecret" jsonschema:"required"` Discovery string `json:"discovery"` @@ -107,10 +110,10 @@ type oidcConfig struct { TokenEndpoint string `json:"token_endpoint"` UserInfoEndpoint string `json:"userinfo_endpoint"` RevocationEndpoint string `json:"revocation_endpoint"` - JwksUri string `json:"jwks_uri"` + JwksURI string `json:"jwks_uri"` ResponseTypesSupported []string `json:"response_types_supported"` SubjectTypesSupported []string `json:"subject_types_supported"` - IdTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported"` + IDTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported"` ScopesSupported []string `json:"scopes_supported"` TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported"` ClaimsSupported []string `json:"claims_supported"` @@ -123,25 +126,29 @@ type oidcIDToken struct { TokenType string `json:"token_type"` RefreshToken string `json:"refresh_token"` ExpiresIn int `json:"expires_in"` - IdToken string `json:"id_token"` + IDToken string `json:"id_token"` } func init() { filters.Register(kind) } +// Name returns the name of the OIDCAdaptor filter instance. func (o *OIDCAdaptor) Name() string { return o.spec.Name() } +// Spec returns the spec used by the OIDCAdaptor instance. func (o *OIDCAdaptor) Spec() filters.Spec { return o.spec } +// Kind returns the kind of filter. func (o *OIDCAdaptor) Kind() *filters.Kind { return kind } +// Init initializes the filter. func (o *OIDCAdaptor) Init() { // delegate store interface operation to itself for testing o.store = o @@ -164,11 +171,13 @@ func (o *OIDCAdaptor) Init() { o.redirectPath = parsed.Path } +// Inherit inherits previous generation of the filter instance. func (o *OIDCAdaptor) Inherit(previousGeneration filters.Filter) { o.Init() previousGeneration.Close() } +// Handle handles the request. func (o *OIDCAdaptor) Handle(ctx *context.Context) (result string) { req := ctx.GetInputRequest().(*httpprot.Request) var rw *httpprot.Response @@ -192,16 +201,18 @@ func (o *OIDCAdaptor) Handle(ctx *context.Context) (result string) { if req.Path() == o.redirectPath { return o.handleOIDCCallback(ctx) } - authorizeUrl := o.buildAuthorizeURL(req) + authorizeURL := o.buildAuthorizeURL(req) rw.SetStatusCode(http.StatusFound) - rw.Header().Set("Location", authorizeUrl) + rw.Header().Set("Location", authorizeURL) return resultFiltered } +// Status returns the status of the filter instance. func (o *OIDCAdaptor) Status() interface{} { return nil } +// Close closes the filter instance. func (o *OIDCAdaptor) Close() { } @@ -222,7 +233,7 @@ func (o *OIDCAdaptor) initDiscoveryOIDCConf() { logger.Errorf("parse jwksRefreshInterval[%s] duration error: %s", o.jwksRefreshInterval, err) } } - jwks, err := keyfunc.Get(oidcConf.JwksUri, keyfunc.Options{ + jwks, err := keyfunc.Get(oidcConf.JwksURI, keyfunc.Options{ Client: httpCli, RefreshInterval: interval, }) @@ -251,17 +262,17 @@ func (o *OIDCAdaptor) handleOIDCCallback(ctx *context.Context) string { req.Header().Set("X-Access-Token", oidcToken.AccessToken) } } - reqUrl := o.store.get(clusterCacheKey("request_url", state)) - req.Header().Set("X-Origin-Request-URL", reqUrl) + reqURL := o.store.get(clusterCacheKey("request_url", state)) + req.Header().Set("X-Origin-Request-URL", reqURL) userInfo := map[string]any{} - if len(oidcToken.IdToken) > 0 { - parseToken, err := o.validateIDToken(oidcToken.IdToken) + if len(oidcToken.IDToken) > 0 { + parseToken, err := o.validateIDToken(oidcToken.IDToken) if err != nil { return filterResp(rw, http.StatusUnauthorized, "invalid oidc id token") } if o.setIDTokenHeader { - req.Header().Set("X-ID-Token", oidcToken.IdToken) + req.Header().Set("X-ID-Token", oidcToken.IDToken) } if claims, ok := parseToken.Claims.(jwt.MapClaims); ok { userInfo = claims @@ -285,7 +296,7 @@ func (o *OIDCAdaptor) handleOIDCCallback(ctx *context.Context) string { func (o *OIDCAdaptor) fetchOIDCToken(authCode string, state string, spec *Spec, err error, rw *httpprot.Response, req *httpprot.Request) (*oidcIDToken, error) { // client_secret_post || client_secret_basic tokenFormData := url.Values{ - "client_id": {o.spec.ClientId}, + "client_id": {o.spec.ClientID}, "client_secret": {o.spec.ClientSecret}, "code": {authCode}, "grant_type": {"authorization_code"}, @@ -295,7 +306,7 @@ func (o *OIDCAdaptor) fetchOIDCToken(authCode string, state string, spec *Spec, // https://openid.net/specs/openid-connect-core-1_0.html#TokenRequest tokenReq, _ := http.NewRequest(http.MethodPost, o.oidcConfig.TokenEndpoint, strings.NewReader(tokenFormData.Encode())) tokenReq.Header.Set("Content-Type", "application/x-www-form-urlencoded") - authBasic := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", spec.ClientId, spec.ClientSecret))) + authBasic := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", spec.ClientID, spec.ClientSecret))) tokenReq.Header.Set("Authorization", "Basic "+authBasic) tokenReq.Header.Set("Accept", "application/json") @@ -360,40 +371,40 @@ func (o *OIDCAdaptor) validateCodeAndState(code, state string) error { func (o *OIDCAdaptor) buildAuthorizeURL(req *httpprot.Request) string { // https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint - var authUrlBuilder strings.Builder - authUrlBuilder.WriteString(o.oidcConfig.AuthorizationEndpoint) - authUrlBuilder.WriteString("?client_id=" + o.spec.ClientId) + var authURLBuilder strings.Builder + authURLBuilder.WriteString(o.oidcConfig.AuthorizationEndpoint) + authURLBuilder.WriteString("?client_id=" + o.spec.ClientID) state := strings.ReplaceAll(uuid.New().String(), "-", "") // state is recommended - authUrlBuilder.WriteString("&state=" + state) + authURLBuilder.WriteString("&state=" + state) // End-user may spend some time doing login stuff, so we use a 10-minute timeout err := o.store.put(clusterCacheKey("state", state), "1", 10*time.Minute) if err != nil { logger.Errorf("put oidc state error: %s", err) } - var reqUrl string + var reqURL string args := req.URL().RawQuery if args != "" { - reqUrl = fmt.Sprintf("%s://%s%s?%s", req.Scheme(), req.Host(), req.Path(), args) + reqURL = fmt.Sprintf("%s://%s%s?%s", req.Scheme(), req.Host(), req.Path(), args) } else { - reqUrl = fmt.Sprintf("%s://%s%s", req.Scheme(), req.Host(), req.Path()) + reqURL = fmt.Sprintf("%s://%s%s", req.Scheme(), req.Host(), req.Path()) } - err = o.store.put(clusterCacheKey("request_url", state), reqUrl, 10*time.Minute) + err = o.store.put(clusterCacheKey("request_url", state), reqURL, 10*time.Minute) if err != nil { logger.Errorf("put origin request url error: %s", err) } // nonce is optional nonce := strings.ReplaceAll(uuid.New().String(), "-", "") - authUrlBuilder.WriteString("&nonce=" + nonce) - authUrlBuilder.WriteString("&response_type=code") - authUrlBuilder.WriteString("&scope=") + authURLBuilder.WriteString("&nonce=" + nonce) + authURLBuilder.WriteString("&response_type=code") + authURLBuilder.WriteString("&scope=") if len(o.oidcConfig.ScopesSupported) > 0 { - authUrlBuilder.WriteString(strings.Join(o.oidcConfig.ScopesSupported, "+")) + authURLBuilder.WriteString(strings.Join(o.oidcConfig.ScopesSupported, "+")) } else { - authUrlBuilder.WriteString("user") + authURLBuilder.WriteString("user") } - authUrlBuilder.WriteString("&redirect_uri=" + url.QueryEscape(o.spec.RedirectURI)) - return authUrlBuilder.String() + authURLBuilder.WriteString("&redirect_uri=" + url.QueryEscape(o.spec.RedirectURI)) + return authURLBuilder.String() } func clusterCacheKey(tag string, val string) string { diff --git a/pkg/filters/opafilter/opafilter.go b/pkg/filters/opafilter/opafilter.go index 64f6d51ae9..34cf551a96 100644 --- a/pkg/filters/opafilter/opafilter.go +++ b/pkg/filters/opafilter/opafilter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package opafilter implements OpenPolicyAgent function. package opafilter import ( @@ -60,12 +61,14 @@ var kind = &filters.Kind{ }, } +// OPAFilter is the filter for OpenPolicyAgent. type OPAFilter struct { spec *Spec includedHeadersParsed []string `yaml:"includedHeadersParsed"` regoQuery *rego.PreparedEvalQuery } +// Spec is the spec of the OPAFilter. type Spec struct { filters.BaseSpec `yaml:",inline"` DefaultStatus int `yaml:"defaultStatus"` @@ -78,18 +81,22 @@ func init() { filters.Register(kind) } +// Name returns the name of the OPAFilter filter instance. func (o *OPAFilter) Name() string { return o.spec.Name() } +// Spec returns the spec of the OPAFilter filter instance. func (o *OPAFilter) Spec() filters.Spec { return o.spec } +// Kind returns the kind of the OPAFilter filter instance. func (o *OPAFilter) Kind() *filters.Kind { return kind } +// Init initialize the filter instance. func (o *OPAFilter) Init() { o.includedHeadersParsed = strings.Split(o.spec.IncludedHeaders, ",") if o.spec.DefaultStatus == 0 { @@ -117,11 +124,13 @@ func (o *OPAFilter) Init() { } } +// Inherit inherits previous generation of filter instance. func (o *OPAFilter) Inherit(previousGeneration filters.Filter) { o.Init() previousGeneration.Close() } +// Handle handles the request. func (o *OPAFilter) Handle(ctx *context.Context) (result string) { req := ctx.GetInputRequest().(*httpprot.Request) var rw *httpprot.Response @@ -132,10 +141,12 @@ func (o *OPAFilter) Handle(ctx *context.Context) (result string) { return o.evalRequest(req, rw) } +// Status returns the status of the filter instance. func (o *OPAFilter) Status() interface{} { return nil } +// Close closes the filter instance. func (o *OPAFilter) Close() { } diff --git a/pkg/filters/proxies/grpcproxy/loadbalance.go b/pkg/filters/proxies/grpcproxy/loadbalance.go index b8915c8b67..a5656a978c 100644 --- a/pkg/filters/proxies/grpcproxy/loadbalance.go +++ b/pkg/filters/proxies/grpcproxy/loadbalance.go @@ -79,5 +79,5 @@ func (f *forwardLoadBalancer) ReturnServer(s *Server, req protocols.Request, res } // Close closes the load balancer. -func (lb *forwardLoadBalancer) Close() { +func (f *forwardLoadBalancer) Close() { } diff --git a/pkg/filters/proxies/grpcproxy/proxy.go b/pkg/filters/proxies/grpcproxy/proxy.go index 0c7e419ede..b2d72c94e1 100644 --- a/pkg/filters/proxies/grpcproxy/proxy.go +++ b/pkg/filters/proxies/grpcproxy/proxy.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package grpcproxy provides the proxy filter of gRPC. package grpcproxy import ( @@ -84,11 +85,16 @@ type ( } // Server is the backend server. - Server = proxies.Server - RequestMatcher = proxies.RequestMatcher - LoadBalancer = proxies.LoadBalancer - LoadBalanceSpec = proxies.LoadBalanceSpec - BaseServerPool = proxies.ServerPoolBase + Server = proxies.Server + // RequestMatcher is the interface of a request matcher + RequestMatcher = proxies.RequestMatcher + // LoadBalancer is the interface of a load balancer. + LoadBalancer = proxies.LoadBalancer + // LoadBalanceSpec is the spec of a load balancer. + LoadBalanceSpec = proxies.LoadBalanceSpec + // BaseServerPool is the base of a server pool. + BaseServerPool = proxies.ServerPoolBase + // BaseServerPoolSpec is the spec of BaseServerPool. BaseServerPoolSpec = proxies.ServerPoolBaseSpec ) diff --git a/pkg/filters/proxies/httpproxy/proxy.go b/pkg/filters/proxies/httpproxy/proxy.go index fb662fb361..19add5812e 100644 --- a/pkg/filters/proxies/httpproxy/proxy.go +++ b/pkg/filters/proxies/httpproxy/proxy.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package httpproxy provides the Proxy of HTTP. package httpproxy import ( @@ -129,11 +130,16 @@ type ( } // Server is the backend server. - Server = proxies.Server - RequestMatcher = proxies.RequestMatcher - LoadBalancer = proxies.LoadBalancer - LoadBalanceSpec = proxies.LoadBalanceSpec - BaseServerPool = proxies.ServerPoolBase + Server = proxies.Server + // RequestMatcher is the interface of a request matcher + RequestMatcher = proxies.RequestMatcher + // LoadBalancer is the interface of a load balancer. + LoadBalancer = proxies.LoadBalancer + // LoadBalanceSpec is the spec of a load balancer. + LoadBalanceSpec = proxies.LoadBalanceSpec + // BaseServerPool is the base of a server pool. + BaseServerPool = proxies.ServerPoolBase + // BaseServerPoolSpec is the spec of BaseServerPool. BaseServerPoolSpec = proxies.ServerPoolBaseSpec ) diff --git a/pkg/filters/proxies/serverpool.go b/pkg/filters/proxies/serverpool.go index 0e41cf1893..05abed5234 100644 --- a/pkg/filters/proxies/serverpool.go +++ b/pkg/filters/proxies/serverpool.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package proxies provides the common interface and implementation of proxies. package proxies import ( diff --git a/pkg/filters/ratelimiter/ratelimiter.go b/pkg/filters/ratelimiter/ratelimiter.go index 5381d6f730..92b3893a48 100644 --- a/pkg/filters/ratelimiter/ratelimiter.go +++ b/pkg/filters/ratelimiter/ratelimiter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package ratelimiter implements a rate limiter. package ratelimiter import ( diff --git a/pkg/filters/redirector/redirector.go b/pkg/filters/redirector/redirector.go index ce4a1de355..6e0692687f 100644 --- a/pkg/filters/redirector/redirector.go +++ b/pkg/filters/redirector/redirector.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package redirector implements a filter to handle HTTP redirects. package redirector import ( @@ -87,6 +88,7 @@ type ( } ) +// Validate validates the spec. func (s *Spec) Validate() error { if _, ok := statusCodeMap[s.StatusCode]; !ok { return errors.New("invalid status code of Redirector, support 300, 301, 302, 303, 304, 307, 308") diff --git a/pkg/filters/remotefilter/remotefilter.go b/pkg/filters/remotefilter/remotefilter.go index 43135a780b..328136a7e3 100644 --- a/pkg/filters/remotefilter/remotefilter.go +++ b/pkg/filters/remotefilter/remotefilter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package remotefilter implements the RemoteFilter filter to invokes remote apis. package remotefilter import ( diff --git a/pkg/filters/topicmapper/topicmapper.go b/pkg/filters/topicmapper/topicmapper.go index 6e0400a055..572dbc4e96 100644 --- a/pkg/filters/topicmapper/topicmapper.go +++ b/pkg/filters/topicmapper/topicmapper.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package topicmapper maps MQTT topic to Kafka topics and key-value headers package topicmapper import ( diff --git a/pkg/filters/validator/validator.go b/pkg/filters/validator/validator.go index 7d10a40914..ab142a98e1 100644 --- a/pkg/filters/validator/validator.go +++ b/pkg/filters/validator/validator.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package validator provides Validator filter to validates HTTP requests. package validator import ( diff --git a/pkg/filters/wasmhost/doc.go b/pkg/filters/wasmhost/doc.go index 58f492ae1a..07122cfcf0 100644 --- a/pkg/filters/wasmhost/doc.go +++ b/pkg/filters/wasmhost/doc.go @@ -15,4 +15,5 @@ * limitations under the License. */ +// Package wasmhost implements a host environment for WebAssembly. package wasmhost diff --git a/pkg/graceupdate/graceupdate.go b/pkg/graceupdate/graceupdate.go index 09048235e1..a54fe9b0a3 100644 --- a/pkg/graceupdate/graceupdate.go +++ b/pkg/graceupdate/graceupdate.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package graceupdate provides graceful update for easegress. package graceupdate import ( diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index 51cdd1c467..a73284a872 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -15,16 +15,18 @@ * limitations under the License. */ +// Package logger provides logger for Easegress. package logger import ( - "github.com/go-logr/zapr" - "go.opentelemetry.io/otel" "io" "os" "path/filepath" "time" + "github.com/go-logr/zapr" + "go.opentelemetry.io/otel" + "go.uber.org/zap" "go.uber.org/zap/zapcore" diff --git a/pkg/object/autocertmanager/autocertmanager.go b/pkg/object/autocertmanager/autocertmanager.go index ba6151535b..bf6bfea009 100644 --- a/pkg/object/autocertmanager/autocertmanager.go +++ b/pkg/object/autocertmanager/autocertmanager.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package autocertmanager provides AutoCertManager to manage certificates automatically. package autocertmanager import ( diff --git a/pkg/object/consulserviceregistry/consulserviceregistry.go b/pkg/object/consulserviceregistry/consulserviceregistry.go index 44b2a83825..1bd8d1493a 100644 --- a/pkg/object/consulserviceregistry/consulserviceregistry.go +++ b/pkg/object/consulserviceregistry/consulserviceregistry.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package consulserviceregistry provides ConsulServiceRegistry. package consulserviceregistry import ( diff --git a/pkg/object/easemonitormetrics/easemonitormetrics.go b/pkg/object/easemonitormetrics/easemonitormetrics.go index 45b8d2136f..2f5663e44f 100644 --- a/pkg/object/easemonitormetrics/easemonitormetrics.go +++ b/pkg/object/easemonitormetrics/easemonitormetrics.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package easemonitormetrics provides EaseMonitorMetrics. package easemonitormetrics import ( diff --git a/pkg/object/etcdserviceregistry/etcdserviceregistry.go b/pkg/object/etcdserviceregistry/etcdserviceregistry.go index 06b419b56f..dff9504511 100644 --- a/pkg/object/etcdserviceregistry/etcdserviceregistry.go +++ b/pkg/object/etcdserviceregistry/etcdserviceregistry.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package eserviceregistry provides EtcdServiceRegistry. package eserviceregistry import ( diff --git a/pkg/object/eurekaserviceregistry/eurekaserviceregistry.go b/pkg/object/eurekaserviceregistry/eurekaserviceregistry.go index de2c3dbf5e..e8afcd1ef1 100644 --- a/pkg/object/eurekaserviceregistry/eurekaserviceregistry.go +++ b/pkg/object/eurekaserviceregistry/eurekaserviceregistry.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package eurekaserviceregistry provides EurekaServiceRegistry. package eurekaserviceregistry import ( diff --git a/pkg/object/function/faascontroller.go b/pkg/object/function/faascontroller.go index 21aa94dbf3..bf97d484c0 100644 --- a/pkg/object/function/faascontroller.go +++ b/pkg/object/function/faascontroller.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package function provides FaasController. package function import ( diff --git a/pkg/object/function/provider/provider.go b/pkg/object/function/provider/provider.go index cba06c018a..1cdee3c171 100644 --- a/pkg/object/function/provider/provider.go +++ b/pkg/object/function/provider/provider.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package provider defines and implements FaasProvider interface. package provider import ( diff --git a/pkg/object/function/spec/fsm.go b/pkg/object/function/spec/fsm.go index 715e3a6163..d563df5837 100644 --- a/pkg/object/function/spec/fsm.go +++ b/pkg/object/function/spec/fsm.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package spec provides the spec for FaaS. package spec import ( diff --git a/pkg/object/function/storage/storage.go b/pkg/object/function/storage/storage.go index dc667fd2db..02591b73ae 100644 --- a/pkg/object/function/storage/storage.go +++ b/pkg/object/function/storage/storage.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package storage provides the storage for FaaS. package storage import ( diff --git a/pkg/object/function/worker/worker.go b/pkg/object/function/worker/worker.go index 98a79b002f..547cbea15d 100644 --- a/pkg/object/function/worker/worker.go +++ b/pkg/object/function/worker/worker.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package worker provides the worker for FaaSController. package worker import ( diff --git a/pkg/object/globalfilter/globalfilter.go b/pkg/object/globalfilter/globalfilter.go index d7d4b6a99c..aee0effd58 100644 --- a/pkg/object/globalfilter/globalfilter.go +++ b/pkg/object/globalfilter/globalfilter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package globalfilter provides GlobalFilter. package globalfilter import ( diff --git a/pkg/object/grpcserver/grpcserver.go b/pkg/object/grpcserver/grpcserver.go index 5f0a0f3dbb..5562d7e2fd 100644 --- a/pkg/object/grpcserver/grpcserver.go +++ b/pkg/object/grpcserver/grpcserver.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package grpcserver implements the GRPCServer. package grpcserver import ( diff --git a/pkg/object/httpserver/httpserver.go b/pkg/object/httpserver/httpserver.go index 0bf087b4f8..1651e42aec 100644 --- a/pkg/object/httpserver/httpserver.go +++ b/pkg/object/httpserver/httpserver.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package httpserver implements the HTTPServer. package httpserver import ( diff --git a/pkg/object/httpserver/routers/ordered/router.go b/pkg/object/httpserver/routers/ordered/router.go index 51ef70b628..04f5e349bf 100644 --- a/pkg/object/httpserver/routers/ordered/router.go +++ b/pkg/object/httpserver/routers/ordered/router.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package ordered provides the router implementation of ordered routing policy. package ordered import ( diff --git a/pkg/object/httpserver/routers/radixtree/router.go b/pkg/object/httpserver/routers/radixtree/router.go index fe317e9de9..c882bbc55b 100644 --- a/pkg/object/httpserver/routers/radixtree/router.go +++ b/pkg/object/httpserver/routers/radixtree/router.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package radixtree provides the router implementation of radix tree routing policy. package radixtree import ( diff --git a/pkg/object/httpserver/routers/routers.go b/pkg/object/httpserver/routers/routers.go index 1fb7c529be..d91376e5c9 100644 --- a/pkg/object/httpserver/routers/routers.go +++ b/pkg/object/httpserver/routers/routers.go @@ -15,6 +15,8 @@ * limitations under the License. */ +// Package routers provides the router interface and the implementation of +// different routing policies. package routers import ( diff --git a/pkg/object/ingresscontroller/ingresscontroller.go b/pkg/object/ingresscontroller/ingresscontroller.go index 1d416c7988..34def5cb4a 100644 --- a/pkg/object/ingresscontroller/ingresscontroller.go +++ b/pkg/object/ingresscontroller/ingresscontroller.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package ingresscontroller implements a K8s ingress controller. package ingresscontroller import ( diff --git a/pkg/object/meshcontroller/api/api.go b/pkg/object/meshcontroller/api/api.go index 27788fcc57..32f6b8e255 100644 --- a/pkg/object/meshcontroller/api/api.go +++ b/pkg/object/meshcontroller/api/api.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package api provides the API for mesh controller. package api import ( diff --git a/pkg/object/meshcontroller/certmanager/certmanager.go b/pkg/object/meshcontroller/certmanager/certmanager.go index 235d4c1b88..cfd7564bb2 100644 --- a/pkg/object/meshcontroller/certmanager/certmanager.go +++ b/pkg/object/meshcontroller/certmanager/certmanager.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package certmanager provides the cert manager for mesh controller. package certmanager import ( diff --git a/pkg/object/meshcontroller/informer/informer.go b/pkg/object/meshcontroller/informer/informer.go index c08c9b166d..ae8d624b56 100644 --- a/pkg/object/meshcontroller/informer/informer.go +++ b/pkg/object/meshcontroller/informer/informer.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package informer provides the informer for mesh controller. package informer import ( diff --git a/pkg/object/meshcontroller/ingresscontroller/ingresscontroller.go b/pkg/object/meshcontroller/ingresscontroller/ingresscontroller.go index b025655441..b70f1b8e0b 100644 --- a/pkg/object/meshcontroller/ingresscontroller/ingresscontroller.go +++ b/pkg/object/meshcontroller/ingresscontroller/ingresscontroller.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package ingresscontroller implements the ingress controller for service mesh. package ingresscontroller import ( diff --git a/pkg/object/meshcontroller/label/label.go b/pkg/object/meshcontroller/label/label.go index 693076ba0d..11da5615a4 100644 --- a/pkg/object/meshcontroller/label/label.go +++ b/pkg/object/meshcontroller/label/label.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package label defines labels. package label const ( diff --git a/pkg/object/meshcontroller/layout/layout.go b/pkg/object/meshcontroller/layout/layout.go index c7f159bc3b..02ee08fd2b 100644 --- a/pkg/object/meshcontroller/layout/layout.go +++ b/pkg/object/meshcontroller/layout/layout.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package layout defines the layout of the data in etcd. package layout import ( diff --git a/pkg/object/meshcontroller/master/master.go b/pkg/object/meshcontroller/master/master.go index dff6ee22f9..c7af28ed7f 100644 --- a/pkg/object/meshcontroller/master/master.go +++ b/pkg/object/meshcontroller/master/master.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package master provides master role of Easegress for mesh control plane. package master import ( diff --git a/pkg/object/meshcontroller/meshcontroller.go b/pkg/object/meshcontroller/meshcontroller.go index 3df1e56068..1df7ed3db0 100644 --- a/pkg/object/meshcontroller/meshcontroller.go +++ b/pkg/object/meshcontroller/meshcontroller.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package meshcontroller provides the service mesh controller. package meshcontroller import ( diff --git a/pkg/object/meshcontroller/registrycenter/registrycenter.go b/pkg/object/meshcontroller/registrycenter/registrycenter.go index c90c960af1..e5f4c17ee9 100644 --- a/pkg/object/meshcontroller/registrycenter/registrycenter.go +++ b/pkg/object/meshcontroller/registrycenter/registrycenter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package registrycenter provides registry center server. package registrycenter import ( diff --git a/pkg/object/meshcontroller/service/service.go b/pkg/object/meshcontroller/service/service.go index 9d91cf33eb..ab9031f7cb 100644 --- a/pkg/object/meshcontroller/service/service.go +++ b/pkg/object/meshcontroller/service/service.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package service provides business layer between mesh and store. package service import ( diff --git a/pkg/object/meshcontroller/spec/spec.go b/pkg/object/meshcontroller/spec/spec.go index ff8c4c93ef..1656456d28 100644 --- a/pkg/object/meshcontroller/spec/spec.go +++ b/pkg/object/meshcontroller/spec/spec.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package spec defines the spec for various objects in mesh. package spec import ( diff --git a/pkg/object/meshcontroller/storage/storage.go b/pkg/object/meshcontroller/storage/storage.go index 66e19072d9..dba46d9158 100644 --- a/pkg/object/meshcontroller/storage/storage.go +++ b/pkg/object/meshcontroller/storage/storage.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package storage provides the storage APIs. package storage import ( diff --git a/pkg/object/meshcontroller/worker/worker.go b/pkg/object/meshcontroller/worker/worker.go index 6e3ffe9673..5a7b824ed0 100644 --- a/pkg/object/meshcontroller/worker/worker.go +++ b/pkg/object/meshcontroller/worker/worker.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package worker provides the worker for mesh controller. package worker import ( diff --git a/pkg/object/mqttproxy/mqttproxy.go b/pkg/object/mqttproxy/mqttproxy.go index 22a323712f..67ea50d3a4 100644 --- a/pkg/object/mqttproxy/mqttproxy.go +++ b/pkg/object/mqttproxy/mqttproxy.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package mqttproxy implements the MQTTProxy. package mqttproxy import ( diff --git a/pkg/object/mqttproxy/topicmgr.go b/pkg/object/mqttproxy/topicmgr.go index ddf6868f19..f73b44cccb 100644 --- a/pkg/object/mqttproxy/topicmgr.go +++ b/pkg/object/mqttproxy/topicmgr.go @@ -25,6 +25,7 @@ import ( lru "github.com/hashicorp/golang-lru" ) +// TopicManager is the interface of a topic manager. type TopicManager interface { subscribe(topics []string, qoss []byte, clientID string) error unsubscribe(topics []string, clientID string) error diff --git a/pkg/object/nacosserviceregistry/nacosserviceregistry.go b/pkg/object/nacosserviceregistry/nacosserviceregistry.go index bcbda9e1a5..1b6e3db34f 100644 --- a/pkg/object/nacosserviceregistry/nacosserviceregistry.go +++ b/pkg/object/nacosserviceregistry/nacosserviceregistry.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package nacosserviceregistry provides the NacosServiceRegistry. package nacosserviceregistry import ( diff --git a/pkg/object/pipeline/pipeline.go b/pkg/object/pipeline/pipeline.go index 75c227eee2..5d901f87e4 100644 --- a/pkg/object/pipeline/pipeline.go +++ b/pkg/object/pipeline/pipeline.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package pipeline provides the pipeline of Easegress. package pipeline import ( diff --git a/pkg/object/rawconfigtrafficcontroller/rawconfigtrafficcontroller.go b/pkg/object/rawconfigtrafficcontroller/rawconfigtrafficcontroller.go index 8e1037dfad..e013370393 100644 --- a/pkg/object/rawconfigtrafficcontroller/rawconfigtrafficcontroller.go +++ b/pkg/object/rawconfigtrafficcontroller/rawconfigtrafficcontroller.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package rawconfigtrafficcontroller implements the RawConfigTrafficController. package rawconfigtrafficcontroller import ( diff --git a/pkg/object/serviceregistry/serviceregistry.go b/pkg/object/serviceregistry/serviceregistry.go index 94d56ea634..8e617ed46b 100644 --- a/pkg/object/serviceregistry/serviceregistry.go +++ b/pkg/object/serviceregistry/serviceregistry.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package serviceregistry provides the service registry. package serviceregistry import ( diff --git a/pkg/object/statussynccontroller/statussynccontroller.go b/pkg/object/statussynccontroller/statussynccontroller.go index 7202672d24..b9b0431863 100644 --- a/pkg/object/statussynccontroller/statussynccontroller.go +++ b/pkg/object/statussynccontroller/statussynccontroller.go @@ -14,6 +14,7 @@ * limitations under the License. */ +// Package statussynccontroller implements the StatusSyncController. package statussynccontroller import ( diff --git a/pkg/object/trafficcontroller/trafficcontroller.go b/pkg/object/trafficcontroller/trafficcontroller.go index 6c1ed6720b..685b605571 100644 --- a/pkg/object/trafficcontroller/trafficcontroller.go +++ b/pkg/object/trafficcontroller/trafficcontroller.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package trafficcontroller implements the TrafficController. package trafficcontroller import ( diff --git a/pkg/object/zookeeperserviceregistry/zookeeperserviceregistry.go b/pkg/object/zookeeperserviceregistry/zookeeperserviceregistry.go index 7332facbaa..9c765e1888 100644 --- a/pkg/object/zookeeperserviceregistry/zookeeperserviceregistry.go +++ b/pkg/object/zookeeperserviceregistry/zookeeperserviceregistry.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package zookeeperserviceregistry implements the ZookeeperServiceRegistry. package zookeeperserviceregistry import ( diff --git a/pkg/option/option.go b/pkg/option/option.go index 3f7941f477..dd61ecb7a6 100644 --- a/pkg/option/option.go +++ b/pkg/option/option.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package option implements the start-up options. package option import ( diff --git a/pkg/pidfile/pidfile.go b/pkg/pidfile/pidfile.go index c9432b7f4a..f042702a1e 100644 --- a/pkg/pidfile/pidfile.go +++ b/pkg/pidfile/pidfile.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package pidfile provides pidfile related functions. package pidfile import ( diff --git a/pkg/profile/profile.go b/pkg/profile/profile.go index 88274502a8..61a606e80d 100644 --- a/pkg/profile/profile.go +++ b/pkg/profile/profile.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package profile provides profile related functions. package profile import ( diff --git a/pkg/protocols/grpcprot/fake.go b/pkg/protocols/grpcprot/fake.go index 644186a176..0978a25f73 100644 --- a/pkg/protocols/grpcprot/fake.go +++ b/pkg/protocols/grpcprot/fake.go @@ -19,18 +19,22 @@ package grpcprot import ( "context" + "google.golang.org/grpc" ) +// FakeServerStream is a fake grpc.ServerStream for testing. type FakeServerStream struct { grpc.ServerStream ctx context.Context } +// NewFakeServerStream returns a new FakeServerStream. func NewFakeServerStream(ctx context.Context) *FakeServerStream { return &FakeServerStream{ctx: ctx} } +// Context returns the context of the stream. func (f *FakeServerStream) Context() context.Context { return f.ctx } diff --git a/pkg/protocols/grpcprot/grpc.go b/pkg/protocols/grpcprot/grpc.go index bfe9280b42..658f1e1075 100644 --- a/pkg/protocols/grpcprot/grpc.go +++ b/pkg/protocols/grpcprot/grpc.go @@ -15,10 +15,12 @@ * limitations under the License. */ +// Package grpcprot implements the grpc protocol. package grpcprot import ( "fmt" + "github.com/megaease/easegress/pkg/protocols" "google.golang.org/grpc" ) @@ -29,30 +31,36 @@ type Protocol struct { var _ protocols.Protocol = (*Protocol)(nil) +// CreateRequest creates a Request. func (p *Protocol) CreateRequest(req interface{}) (protocols.Request, error) { - if r, ok := req.(grpc.ServerStream); ok { + r, ok := req.(grpc.ServerStream) + if ok { return NewRequestWithServerStream(r), nil - } else { - return nil, fmt.Errorf("input param's type should be grpc.ServerStream") } + return nil, fmt.Errorf("input param's type should be grpc.ServerStream") } +// CreateResponse creates a Response. func (p *Protocol) CreateResponse(resp interface{}) (protocols.Response, error) { return NewResponse(), nil } +// NewRequestInfo creates a RequestInfo. func (p *Protocol) NewRequestInfo() interface{} { panic("implement me") } +// BuildRequest builds a Request from request info. func (p *Protocol) BuildRequest(reqInfo interface{}) (protocols.Request, error) { panic("implement me") } +// NewResponseInfo creates a ResponseInfo. func (p *Protocol) NewResponseInfo() interface{} { panic("implement me") } +// BuildResponse builds a Response from response info. func (p *Protocol) BuildResponse(respInfo interface{}) (protocols.Response, error) { panic("implement me") } diff --git a/pkg/protocols/grpcprot/header.go b/pkg/protocols/grpcprot/header.go index 9ca6a65426..ca3739c522 100644 --- a/pkg/protocols/grpcprot/header.go +++ b/pkg/protocols/grpcprot/header.go @@ -33,26 +33,31 @@ type ( Trailer = Header ) +// NewHeader returns a new Header func NewHeader(md metadata.MD) *Header { return &Header{ md: md.Copy(), } } +// NewTrailer returns a new Trailer func NewTrailer(md metadata.MD) *Trailer { return &Trailer{ md: md.Copy(), } } +// GetMD returns the metadata.MD func (h *Header) GetMD() metadata.MD { return h.md.Copy() } +// RawAdd adds the key, value pair to the header. func (h *Header) RawAdd(key string, values ...string) { h.md.Append(key, values...) } +// Add adds the key, value pair to the header. func (h *Header) Add(key string, value interface{}) { switch value.(type) { case string: @@ -64,10 +69,12 @@ func (h *Header) Add(key string, value interface{}) { } } +// RawSet sets the header entries associated with key to the given value. func (h *Header) RawSet(key string, values ...string) { h.md.Set(key, values...) } +// Set sets the header entries associated with key to the given value. func (h *Header) Set(key string, value interface{}) { switch value.(type) { case string: @@ -79,14 +86,17 @@ func (h *Header) Set(key string, value interface{}) { } } +// RawGet gets the values associated with the given key. func (h *Header) RawGet(key string) []string { return h.md.Get(key) } +// Get gets the values associated with the given key. func (h *Header) Get(key string) interface{} { return h.md.Get(key) } +// Del deletes the values associated with key. func (h *Header) Del(key string) { h.md.Delete(key) } @@ -118,6 +128,7 @@ func (h *Header) Walk(fn func(key string, value interface{}) bool) { } } +// Clone returns a copy of the header. func (h *Header) Clone() protocols.Header { return &Header{ md: h.md.Copy(), diff --git a/pkg/protocols/grpcprot/request.go b/pkg/protocols/grpcprot/request.go index af5746299b..5c3b4b88a0 100644 --- a/pkg/protocols/grpcprot/request.go +++ b/pkg/protocols/grpcprot/request.go @@ -60,6 +60,7 @@ type ( ) const ( + // Authority is the key of authority in grpc metadata Authority = ":authority" ) @@ -109,6 +110,7 @@ func NewRequestWithContext(ctx context.Context) *Request { return r } +// Network returns the network type of the address. func (a *Addr) Network() string { if a != nil { // Per the documentation on net/http.Request.RemoteAddr, if this is @@ -125,6 +127,7 @@ func (a *Addr) Network() string { return "" } +// String implements the Stringer interface. func (a *Addr) String() string { return a.addr } func (a *Addr) setAddr(addr string) { @@ -247,6 +250,7 @@ func (r *Request) RealIP() string { return ip } +// SetRealIP set the client ip of the request. func (r *Request) SetRealIP(ip string) { r.realIP = "" if strings.ContainsRune(r.peer.Addr.String(), ':') { @@ -262,6 +266,7 @@ func (r *Request) SourceHost() string { return r.peer.Addr.(*Addr).String() } +// SetSourceHost set the source host of the request. func (r *Request) SetSourceHost(sourceHost string) { r.peer.Addr.(*Addr).setAddr(sourceHost) } @@ -272,6 +277,7 @@ func (r *Request) Host() string { return r.header.GetFirst(Authority) } +// SetHost set the host of the request. func (r *Request) SetHost(host string) { r.header.Set(Authority, host) } diff --git a/pkg/protocols/grpcprot/response.go b/pkg/protocols/grpcprot/response.go index 38bd59e42e..4c53efc9ed 100644 --- a/pkg/protocols/grpcprot/response.go +++ b/pkg/protocols/grpcprot/response.go @@ -18,11 +18,12 @@ package grpcprot import ( + "io" + "github.com/megaease/easegress/pkg/protocols" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" - "io" ) // Response wrapper status.Status @@ -38,6 +39,7 @@ var ( _ protocols.Response = (*Response)(nil) ) +// NewResponse returns a new Response. func NewResponse() *Response { return &Response{ Status: nil, @@ -46,22 +48,27 @@ func NewResponse() *Response { } } +// SetTrailer sets the trailer of the response. func (r *Response) SetTrailer(trailer *Trailer) { r.trailer.md = trailer.md } +// Trailer returns the trailer of the response. func (r *Response) Trailer() protocols.Trailer { return r.trailer } +// RawTrailer returns the trailer of the response. func (r *Response) RawTrailer() *Trailer { return r.trailer } +// GetStatus returns the status of the response. func (r *Response) GetStatus() *status.Status { return r.Status } +// SetStatus sets the status of the response. func (r *Response) SetStatus(s *status.Status) { if s == nil { r.Status = status.New(codes.OK, "OK") @@ -70,6 +77,7 @@ func (r *Response) SetStatus(s *status.Status) { r.Status = s } +// StatusCode returns the status code of the response. func (r *Response) StatusCode() int { if r.Status == nil { return int(codes.OK) @@ -77,10 +85,12 @@ func (r *Response) StatusCode() int { return int(r.Status.Code()) } +// SetHeader sets the header of the response. func (r *Response) SetHeader(header *Header) { r.header.md = header.md } +// Header returns the header of the response. func (r *Response) Header() protocols.Header { return r.header } @@ -90,30 +100,37 @@ func (r *Response) RawHeader() *Header { return r.header } +// IsStream returns true if the response is a stream. func (r *Response) IsStream() bool { return true } +// SetPayload sets the payload of the response. func (r *Response) SetPayload(payload interface{}) { panic("implement me") } +// GetPayload returns the payload of the response. func (r *Response) GetPayload() io.Reader { panic("implement me") } +// RawPayload returns the payload of the response. func (r *Response) RawPayload() []byte { panic("implement me") } +// PayloadSize returns the size of the payload. func (r *Response) PayloadSize() int64 { panic("implement me") } +// ToBuilderResponse wraps the response and returns the wrapper, the +// return value can be used in the template of the Builder filters. func (r *Response) ToBuilderResponse(name string) interface{} { panic("implement me") } +// Close closes the response. func (r *Response) Close() { - } diff --git a/pkg/protocols/httpprot/http.go b/pkg/protocols/httpprot/http.go index 4c3868b1c5..21be73e534 100644 --- a/pkg/protocols/httpprot/http.go +++ b/pkg/protocols/httpprot/http.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package httpprot implements the HTTP protocol. package httpprot import ( diff --git a/pkg/protocols/httpprot/httpheader/httpheader.go b/pkg/protocols/httpprot/httpheader/httpheader.go index fb03688818..140d7d0613 100644 --- a/pkg/protocols/httpprot/httpheader/httpheader.go +++ b/pkg/protocols/httpprot/httpheader/httpheader.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package httpheader provides HTTP Header related functions. package httpheader import ( diff --git a/pkg/protocols/httpprot/httpstat/httpstat.go b/pkg/protocols/httpprot/httpstat/httpstat.go index 126d8f36a7..066e1e6417 100644 --- a/pkg/protocols/httpprot/httpstat/httpstat.go +++ b/pkg/protocols/httpprot/httpstat/httpstat.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package httpstat implements the statistics tool for HTTP traffic. package httpstat import ( diff --git a/pkg/protocols/httpprot/response.go b/pkg/protocols/httpprot/response.go index 99b66e12d3..7be79b53b0 100644 --- a/pkg/protocols/httpprot/response.go +++ b/pkg/protocols/httpprot/response.go @@ -71,6 +71,7 @@ func (r *Response) IsStream() bool { return r.stream != nil } +// Trailer returns the trailer of the response in type protocols.Trailer. func (r *Response) Trailer() protocols.Trailer { return newHeader(r.Std().Trailer) } diff --git a/pkg/protocols/mqttprot/mqtt.go b/pkg/protocols/mqttprot/mqtt.go index e647fd7610..4001c1cf1f 100644 --- a/pkg/protocols/mqttprot/mqtt.go +++ b/pkg/protocols/mqttprot/mqtt.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package mqttprot implements the MQTT protocol. package mqttprot import "github.com/megaease/easegress/pkg/protocols" diff --git a/pkg/protocols/mqttprot/response.go b/pkg/protocols/mqttprot/response.go index bd4cff56e9..c73494a8ac 100644 --- a/pkg/protocols/mqttprot/response.go +++ b/pkg/protocols/mqttprot/response.go @@ -45,6 +45,7 @@ func (r *Response) IsStream() bool { return false } +// Trailer returns the trailer of the response. func (r *Response) Trailer() protocols.Trailer { panic("implement me") } diff --git a/pkg/protocols/protocols.go b/pkg/protocols/protocols.go index 642120920e..3b9560ab30 100644 --- a/pkg/protocols/protocols.go +++ b/pkg/protocols/protocols.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package protocols defines the common interface of protocols used in Easegress. package protocols import ( @@ -135,6 +136,7 @@ type Header interface { Clone() Header } +// Trailer is the trailers of a request or response. type Trailer = Header // Protocol is the interface of a protocol. diff --git a/pkg/registry/registry.go b/pkg/registry/registry.go index e3b6bcc14d..7fca686c1e 100644 --- a/pkg/registry/registry.go +++ b/pkg/registry/registry.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package registry is the registry of filters and objects in Easegress. package registry import ( @@ -61,6 +62,7 @@ import ( _ "github.com/megaease/easegress/pkg/object/trafficcontroller" _ "github.com/megaease/easegress/pkg/object/zookeeperserviceregistry" + // Routers _ "github.com/megaease/easegress/pkg/object/httpserver/routers/ordered" _ "github.com/megaease/easegress/pkg/object/httpserver/routers/radixtree" ) diff --git a/pkg/resilience/resilience.go b/pkg/resilience/resilience.go index 991a8977f6..a742e6814a 100644 --- a/pkg/resilience/resilience.go +++ b/pkg/resilience/resilience.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package resilience implements the resilience policies. package resilience import ( diff --git a/pkg/supervisor/supervisor.go b/pkg/supervisor/supervisor.go index 56ab1b7898..1ebc890a3e 100644 --- a/pkg/supervisor/supervisor.go +++ b/pkg/supervisor/supervisor.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package supervisor implements the supervisor of all objects. package supervisor import ( diff --git a/pkg/tracing/tracing.go b/pkg/tracing/tracing.go index fae5e85eb7..2aee152a64 100644 --- a/pkg/tracing/tracing.go +++ b/pkg/tracing/tracing.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package tracing implements the tracing. package tracing import ( diff --git a/pkg/util/circuitbreaker/circuitbreaker.go b/pkg/util/circuitbreaker/circuitbreaker.go index cde849391e..d04965033b 100644 --- a/pkg/util/circuitbreaker/circuitbreaker.go +++ b/pkg/util/circuitbreaker/circuitbreaker.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package circuitbreaker implements the circuit breaker logic. package circuitbreaker import ( diff --git a/pkg/util/codecounter/codecounter.go b/pkg/util/codecounter/codecounter.go index c73fb35f80..bdd5d7012b 100644 --- a/pkg/util/codecounter/codecounter.go +++ b/pkg/util/codecounter/codecounter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package codecounter provides a goroutine unsafe HTTP status code counter. package codecounter import "sync/atomic" diff --git a/pkg/util/codectool/codectool.go b/pkg/util/codectool/codectool.go index 39c147f2cf..4d6bedbfe6 100644 --- a/pkg/util/codectool/codectool.go +++ b/pkg/util/codectool/codectool.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package codectool provides some codec tools for JSON and YAML marshaling. package codectool import ( diff --git a/pkg/util/dynamicobject/dynamicobject.go b/pkg/util/dynamicobject/dynamicobject.go index c3e5727e40..16deb82dbd 100644 --- a/pkg/util/dynamicobject/dynamicobject.go +++ b/pkg/util/dynamicobject/dynamicobject.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package dynamicobject provides a dynamic object. package dynamicobject // DynamicObject defines a dynamic object which is a map of string to diff --git a/pkg/util/easemonitor/easemonitor.go b/pkg/util/easemonitor/easemonitor.go index 512230a30a..a17cb700c1 100644 --- a/pkg/util/easemonitor/easemonitor.go +++ b/pkg/util/easemonitor/easemonitor.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package easemonitor provides the common fields and interfaces for EaseMonitor metrics. package easemonitor import ( diff --git a/pkg/util/fasttime/fasttime.go b/pkg/util/fasttime/fasttime.go index 043719f64f..f46536434d 100644 --- a/pkg/util/fasttime/fasttime.go +++ b/pkg/util/fasttime/fasttime.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package fasttime provides fast time.Now() and time.Since() and time.Format(). package fasttime import ( diff --git a/pkg/util/filterwriter/filterwriter.go b/pkg/util/filterwriter/filterwriter.go index ec05b87b8b..91352e8e61 100644 --- a/pkg/util/filterwriter/filterwriter.go +++ b/pkg/util/filterwriter/filterwriter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package filterwriter provides a filter writer. package filterwriter import ( diff --git a/pkg/util/ipfilter/ipfilter.go b/pkg/util/ipfilter/ipfilter.go index 4cb18b52dd..d35644ec12 100644 --- a/pkg/util/ipfilter/ipfilter.go +++ b/pkg/util/ipfilter/ipfilter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package ipfilter provides IPFilter. package ipfilter import ( diff --git a/pkg/util/jmxtool/common.go b/pkg/util/jmxtool/common.go index 068a7d7d3f..18d81400eb 100644 --- a/pkg/util/jmxtool/common.go +++ b/pkg/util/jmxtool/common.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package jmxtool provides some tools for jmx package jmxtool import ( diff --git a/pkg/util/k8s/k8s.go b/pkg/util/k8s/k8s.go index 4500bab9fc..8c7dccef8f 100644 --- a/pkg/util/k8s/k8s.go +++ b/pkg/util/k8s/k8s.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package k8s provides kubernetes utilities. package k8s import ( diff --git a/pkg/util/limitlistener/limitlistener.go b/pkg/util/limitlistener/limitlistener.go index b91aad1c6e..d003239759 100644 --- a/pkg/util/limitlistener/limitlistener.go +++ b/pkg/util/limitlistener/limitlistener.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package limitlistener provides a Listener that accepts at most n simultaneous. package limitlistener import ( diff --git a/pkg/util/pathadaptor/pathadaptor.go b/pkg/util/pathadaptor/pathadaptor.go index 1a55950550..66c11e4b51 100644 --- a/pkg/util/pathadaptor/pathadaptor.go +++ b/pkg/util/pathadaptor/pathadaptor.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package pathadaptor provides a path adaptor. package pathadaptor import ( diff --git a/pkg/util/prometheushelper/helper.go b/pkg/util/prometheushelper/helper.go index d96cc1b9cb..1a22b16ec1 100644 --- a/pkg/util/prometheushelper/helper.go +++ b/pkg/util/prometheushelper/helper.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package prometheushelper provides helper functions for prometheus. package prometheushelper import ( diff --git a/pkg/util/ratelimiter/ratelimiter.go b/pkg/util/ratelimiter/ratelimiter.go index 2650c72da0..71d7d488a6 100644 --- a/pkg/util/ratelimiter/ratelimiter.go +++ b/pkg/util/ratelimiter/ratelimiter.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package ratelimiter provides a rate limiter package ratelimiter import ( diff --git a/pkg/util/readers/readerat.go b/pkg/util/readers/readerat.go index 798d95d1db..b6af28b63b 100644 --- a/pkg/util/readers/readerat.go +++ b/pkg/util/readers/readerat.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package readers provides several readers. package readers import ( diff --git a/pkg/util/sampler/sampler.go b/pkg/util/sampler/sampler.go index 47289d39b6..d80fde2c42 100644 --- a/pkg/util/sampler/sampler.go +++ b/pkg/util/sampler/sampler.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package sampler provides utilities for sampling. package sampler import ( diff --git a/pkg/util/sem/semaphore.go b/pkg/util/sem/semaphore.go index 5e1a9f989f..a70eca4c12 100644 --- a/pkg/util/sem/semaphore.go +++ b/pkg/util/sem/semaphore.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package sem provides a semaphore with a max capacity. package sem import ( diff --git a/pkg/util/signer/signer.go b/pkg/util/signer/signer.go index 96261c6e87..cb502806f6 100644 --- a/pkg/util/signer/signer.go +++ b/pkg/util/signer/signer.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package signer provides a signer for HTTP requests. package signer import ( diff --git a/pkg/util/stringtool/stringtool.go b/pkg/util/stringtool/stringtool.go index 5ea60d506e..e0ec90b332 100644 --- a/pkg/util/stringtool/stringtool.go +++ b/pkg/util/stringtool/stringtool.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package stringtool provides string utilities. package stringtool import ( @@ -127,6 +128,7 @@ func (sm *StringMatcher) Validate() error { return fmt.Errorf("all patterns are empty") } +// Init initializes the StringMatcher. func (sm *StringMatcher) Init() { if sm.RegEx != "" { sm.re = regexp.MustCompile(sm.RegEx) diff --git a/pkg/util/timetool/distributedtimer.go b/pkg/util/timetool/distributedtimer.go index 753959d897..f77d5e0b99 100644 --- a/pkg/util/timetool/distributedtimer.go +++ b/pkg/util/timetool/distributedtimer.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package timetool provides time utilities. package timetool import ( diff --git a/pkg/util/urlclusteranalyzer/urlclusteranalyzer.go b/pkg/util/urlclusteranalyzer/urlclusteranalyzer.go index 5186dd9a1e..e81975fd0c 100644 --- a/pkg/util/urlclusteranalyzer/urlclusteranalyzer.go +++ b/pkg/util/urlclusteranalyzer/urlclusteranalyzer.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package urlclusteranalyzer provides url cluster analyzer. package urlclusteranalyzer import ( diff --git a/pkg/util/urlrule/urlrule.go b/pkg/util/urlrule/urlrule.go index 310c3880e5..8aee11dc5a 100644 --- a/pkg/util/urlrule/urlrule.go +++ b/pkg/util/urlrule/urlrule.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package urlrule impelments match rule for HTTP requests. package urlrule import ( diff --git a/pkg/v/v.go b/pkg/v/v.go index 47c991dfd4..60a5aa87c3 100644 --- a/pkg/v/v.go +++ b/pkg/v/v.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package v implements the common validation logic of Easegress. package v import ( diff --git a/pkg/version/version.go b/pkg/version/version.go index b7b4b2ac7c..87e4680016 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -15,6 +15,7 @@ * limitations under the License. */ +// Package version defines the version of Easegress. package version import "fmt"