Interface Server


  • public interface Server
    Configures the remote build cache node server.

    The specified values will take precedence over the values defined in the gradle-enterprise.xml.

    Since:
    1.6.5
    • Method Detail

      • getServerId

        String getServerId()
        Gets the remote build cache server ID.
        Returns:
        the remote build cache server ID
        Since:
        1.6.5
      • setServerId

        void setServerId​(String serverId)
        Sets the remote build cache server ID.

        Configuration via the gradle.cache.remote.serverId system property will always take precedence.

        Parameters:
        serverId - the remote build cache server ID
        Since:
        1.6.5
      • getUrl

        URI getUrl()
        Gets the remote build cache node URL.
        Returns:
        the remote build cache node URL
        Since:
        1.6.5
      • setUrl

        default void setUrl​(String url)
        Sets the remote build cache node URL.

        Configuration via the gradle.cache.remote.url system property will always take precedence.

        Parameters:
        url - the remote build cache node URL
        Since:
        1.10.3
      • setUrl

        void setUrl​(URI url)
        Sets the remote build cache node URL.

        Configuration via the gradle.cache.remote.url system property will always take precedence.

        Parameters:
        url - the remote build cache node URL
        Since:
        1.6.5
      • isAllowUntrusted

        boolean isAllowUntrusted()
        Gets whether it is allowed to communicate with the remote build cache node with an untrusted SSL certificate.
        Returns:
        true if it is allowed to communicate with the remote build cache node with an untrusted SSL certificate, false otherwise
        Since:
        1.6.5
      • setAllowUntrusted

        void setAllowUntrusted​(boolean allowUntrusted)
        Sets whether it is allowed to communicate with the remote build cache node with an untrusted SSL certificate.

        The default (built-in) remote build cache node uses SSL certificates that are trusted by default by standard modern Java environments. If you are using a different remote build cache node, it may use an untrusted certificate. This may be due to the use of an internally provisioned or self-signed certificate.

        In such a scenario, you can either configure the build JVM environment to trust the certificate, or call this method with true to disable verification of the remote build cache node identity.

        Allowing communication with untrusted servers keeps data encrypted during transmission, but makes it easy for a man-in-the-middle to impersonate the intended server and capture data.

        Setting this property to true is a convenient workaround during the initial evaluation, but it is a serious security issue and should not be used in production.

        This value has no effect if the remote build cache node URL is specified using the HTTP protocol (i.e. has SSL disabled).

        Configuration via the gradle.cache.remote.allowUntrustedServer system property will always take precedence.

        Parameters:
        allowUntrusted - whether to allow communication with a HTTPS server with an untrusted certificate
        Since:
        1.6.5
      • isAllowInsecureProtocol

        boolean isAllowInsecureProtocol()
        Gets whether it is allowed to communicate with the remote build cache node over an insecure HTTP connection.
        Returns:
        true if communication over an insecure HTTP connection is allowed, false otherwise
        Since:
        1.13
      • setAllowInsecureProtocol

        void setAllowInsecureProtocol​(boolean allowInsecureProtocol)
        Sets whether it is allowed to communicate with the remote build cache node over an insecure HTTP connection.

        For security purposes this intentionally requires a user to opt-in to using insecure protocols on case by case basis.

        Allowing communication over insecure protocols allows for a man-in-the-middle to impersonate the intended server, and gives an attacker the ability to serve malicious executable code onto the system.

        Setting this property to true is a convenient workaround during the initial evaluation, but it is a serious security issue and should not be used in production.

        Configuration via the gradle.cache.remote.allowInsecureProtocol system property will always take precedence.

        Parameters:
        allowInsecureProtocol - whether to allow communication over an insecure HTTP connection
        Since:
        1.13
      • isUseExpectContinue

        boolean isUseExpectContinue()
        Gets whether the client should use HTTP Expect-Continue when storing data on the server.
        Returns:
        true if the client uses HTTP Expect-Continue, false otherwise
        Since:
        1.12.3
      • setUseExpectContinue

        void setUseExpectContinue​(boolean useExpectContinue)
        Sets whether the client should use HTTP Expect-Continue when storing data on the server.

        Configuration via the gradle.cache.remote.useExpectContinue system property will always take precedence.

        Parameters:
        useExpectContinue - whether the client should use HTTP Expect-Continue
        Since:
        1.12.3
      • getCredentials

        Credentials getCredentials()
        Gets the credentials configuration.

        If not specified and an access key is available for the GradleEnterpriseApi.getServer() value, it will be used to authenticate with the build cache (regardless of the build cache server address set with setUrl(String) or setUrl(URI)).

        Returns:
        the credentials configuration
        Since:
        1.6.5