--- layout: "docs" page_title: "Configuration Entry Kind: Service Defaults" sidebar_current: "docs-agent-cfg_entries-service_defaults" description: |- The service-defaults config entry kind controls default global values for a service, such as its protocol. --- # Service Defaults The `service-defaults` config entry kind controls default global values for a service, such as its protocol. ## Sample Config Entries Set the default protocol for a service to HTTP: ```hcl Kind = "service-defaults" Name = "web" Protocol = "http" ``` ## Available Fields - `Kind` - Must be set to `service-defaults` - `Name` `(string: )` - Set to the name of the service being configured. - `Protocol` `(string: "tcp")` - Sets the protocol of the service. This is used by Connect proxies for things like observability features and to unlock usage of the [`service-splitter` (beta)](/docs/agent/config-entries/service-splitter.html) and [`service-router` (beta)](/docs/agent/config-entries/service-router.html) config entries for a service. - `MeshGateway` (beta) `(MeshGatewayConfig: )` - Controls the default [mesh gateway configuration](/docs/connect/mesh_gateway.html#connect-proxy-configuration) for this service. - `Mode` `(string: "")` - One of `none`, `local`, or `remote`. - `ExternalSNI` (beta) `(string: "")` - This is an optional setting that allows for the TLS [SNI](https://en.wikipedia.org/wiki/Server_Name_Indication) value to be changed to a non-connect value when federating with an external system. ## ACLs Configuration entries may be protected by [ACLs](https://learn.hashicorp.com/consul/security-networking/production-acls). Reading a `service-defaults` config entry requires `service:read` on itself. Creating, updating, or deleting a `service-defaults` config entry requires `service:write` on itself.