open-consul/agent/rpc/middleware/rate_limit_mappings.go

145 lines
6.6 KiB
Go

package middleware
import "github.com/hashicorp/consul/agent/consul/rate"
// Maps each net/rpc endpoint to a read or write operation type
// for rate limiting purposes. Please be sure to update this list
// if a net/rpc endpoint is removed.
var rpcRateLimitSpecs = map[string]rate.OperationType{
"ACL.AuthMethodDelete": rate.OperationTypeWrite,
"ACL.AuthMethodList": rate.OperationTypeRead,
"ACL.AuthMethodRead": rate.OperationTypeRead,
"ACL.AuthMethodSet": rate.OperationTypeWrite,
"ACL.Authorize": rate.OperationTypeRead,
"ACL.BindingRuleDelete": rate.OperationTypeWrite,
"ACL.BindingRuleList": rate.OperationTypeRead,
"ACL.BindingRuleRead": rate.OperationTypeRead,
"ACL.BindingRuleSet": rate.OperationTypeWrite,
"ACL.BootstrapTokens": rate.OperationTypeRead,
"ACL.Login": rate.OperationTypeWrite,
"ACL.Logout": rate.OperationTypeWrite,
"ACL.PolicyBatchRead": rate.OperationTypeRead,
"ACL.PolicyDelete": rate.OperationTypeWrite,
"ACL.PolicyList": rate.OperationTypeRead,
"ACL.PolicyRead": rate.OperationTypeRead,
"ACL.PolicyResolve": rate.OperationTypeRead,
"ACL.PolicySet": rate.OperationTypeWrite,
"ACL.ReplicationStatus": rate.OperationTypeRead,
"ACL.RoleBatchRead": rate.OperationTypeRead,
"ACL.RoleDelete": rate.OperationTypeWrite,
"ACL.RoleList": rate.OperationTypeRead,
"ACL.RoleRead": rate.OperationTypeRead,
"ACL.RoleResolve": rate.OperationTypeRead,
"ACL.RoleSet": rate.OperationTypeWrite,
"ACL.TokenBatchRead": rate.OperationTypeRead,
"ACL.TokenClone": rate.OperationTypeRead,
"ACL.TokenDelete": rate.OperationTypeWrite,
"ACL.TokenList": rate.OperationTypeRead,
"ACL.TokenRead": rate.OperationTypeRead,
"ACL.TokenSet": rate.OperationTypeWrite,
"AutoConfig.InitialConfiguration": rate.OperationTypeRead,
"AutoEncrypt.Sign": rate.OperationTypeWrite,
"Catalog.Deregister": rate.OperationTypeWrite,
"Catalog.GatewayServices": rate.OperationTypeRead,
"Catalog.ListDatacenters": rate.OperationTypeRead,
"Catalog.ListNodes": rate.OperationTypeRead,
"Catalog.ListServices": rate.OperationTypeRead,
"Catalog.NodeServiceList": rate.OperationTypeRead,
"Catalog.NodeServices": rate.OperationTypeRead,
"Catalog.Register": rate.OperationTypeWrite,
"Catalog.ServiceList": rate.OperationTypeRead,
"Catalog.ServiceNodes": rate.OperationTypeRead,
"Catalog.VirtualIPForService": rate.OperationTypeRead,
"ConfigEntry.Apply": rate.OperationTypeWrite,
"ConfigEntry.Delete": rate.OperationTypeWrite,
"ConfigEntry.Get": rate.OperationTypeRead,
"ConfigEntry.List": rate.OperationTypeRead,
"ConfigEntry.ListAll": rate.OperationTypeRead,
"ConfigEntry.ResolveServiceConfig": rate.OperationTypeRead,
"ConnectCA.ConfigurationGet": rate.OperationTypeRead,
"ConnectCA.ConfigurationSet": rate.OperationTypeWrite,
"ConnectCA.Roots": rate.OperationTypeRead,
"ConnectCA.Sign": rate.OperationTypeWrite,
"ConnectCA.SignIntermediate": rate.OperationTypeWrite,
"Coordinate.ListDatacenters": rate.OperationTypeRead,
"Coordinate.ListNodes": rate.OperationTypeRead,
"Coordinate.Node": rate.OperationTypeRead,
"Coordinate.Update": rate.OperationTypeWrite,
"DiscoveryChain.Get": rate.OperationTypeRead,
"FederationState.Apply": rate.OperationTypeWrite,
"FederationState.Delete": rate.OperationTypeWrite,
"FederationState.Get": rate.OperationTypeRead,
"FederationState.List": rate.OperationTypeRead,
"FederationState.ListMeshGateways": rate.OperationTypeRead,
"Health.ChecksInState": rate.OperationTypeRead,
"Health.NodeChecks": rate.OperationTypeRead,
"Health.ServiceChecks": rate.OperationTypeRead,
"Health.ServiceNodes": rate.OperationTypeRead,
"Intention.Apply": rate.OperationTypeWrite,
"Intention.Check": rate.OperationTypeRead,
"Intention.Get": rate.OperationTypeRead,
"Intention.List": rate.OperationTypeRead,
"Intention.Match": rate.OperationTypeRead,
"Internal.CatalogOverview": rate.OperationTypeRead,
"Internal.EventFire": rate.OperationTypeWrite,
"Internal.ExportedPeeredServices": rate.OperationTypeRead,
"Internal.ExportedServicesForPeer": rate.OperationTypeRead,
"Internal.GatewayIntentions": rate.OperationTypeRead,
"Internal.GatewayServiceDump": rate.OperationTypeRead,
"Internal.IntentionUpstreams": rate.OperationTypeRead,
"Internal.IntentionUpstreamsDestination": rate.OperationTypeRead,
"Internal.KeyringOperation": rate.OperationTypeRead,
"Internal.NodeDump": rate.OperationTypeRead,
"Internal.NodeInfo": rate.OperationTypeRead,
"Internal.PeeredUpstreams": rate.OperationTypeRead,
"Internal.ServiceDump": rate.OperationTypeRead,
"Internal.ServiceGateways": rate.OperationTypeRead,
"Internal.ServiceTopology": rate.OperationTypeRead,
"KVS.Apply": rate.OperationTypeWrite,
"KVS.Get": rate.OperationTypeRead,
"KVS.List": rate.OperationTypeRead,
"KVS.ListKeys": rate.OperationTypeRead,
"Operator.AutopilotGetConfiguration": rate.OperationTypeExempt,
"Operator.AutopilotSetConfiguration": rate.OperationTypeExempt,
"Operator.AutopilotState": rate.OperationTypeExempt,
"Operator.RaftGetConfiguration": rate.OperationTypeExempt,
"Operator.RaftRemovePeerByAddress": rate.OperationTypeExempt,
"Operator.RaftRemovePeerByID": rate.OperationTypeExempt,
"Operator.ServerHealth": rate.OperationTypeExempt,
"PreparedQuery.Apply": rate.OperationTypeWrite,
"PreparedQuery.Execute": rate.OperationTypeRead,
"PreparedQuery.ExecuteRemote": rate.OperationTypeRead,
"PreparedQuery.Explain": rate.OperationTypeRead,
"PreparedQuery.Get": rate.OperationTypeRead,
"PreparedQuery.List": rate.OperationTypeRead,
"Session.Apply": rate.OperationTypeWrite,
"Session.Check": rate.OperationTypeRead,
"Session.Get": rate.OperationTypeRead,
"Session.List": rate.OperationTypeRead,
"Session.NodeSessions": rate.OperationTypeRead,
"Session.Renew": rate.OperationTypeWrite,
"Status.Leader": rate.OperationTypeExempt,
"Status.Peers": rate.OperationTypeExempt,
"Status.Ping": rate.OperationTypeExempt,
"Status.RaftStats": rate.OperationTypeExempt,
"Txn.Apply": rate.OperationTypeWrite,
"Txn.Read": rate.OperationTypeRead,
}