Appendix A: Common application properties

Various properties can be specified inside your application.properties file, inside your application.yml file, or as command line switches. This appendix provides a list of common Spring Cloud GCP properties and references to the underlying classes that consume them.

Property contributions can come from additional jar files on your classpath, so you should not consider this an exhaustive list. Also, you can define your own properties.
Name Default Description

spring.cloud.gcp.bigquery.credentials.encoded-key

spring.cloud.gcp.bigquery.credentials.location

spring.cloud.gcp.bigquery.credentials.scopes

spring.cloud.gcp.bigquery.dataset-name

Name of the BigQuery dataset to use.

spring.cloud.gcp.bigquery.enabled

true

Auto-configure Google Cloud BigQuery components.

spring.cloud.gcp.bigquery.project-id

Overrides the GCP project ID specified in the Core module to use for BigQuery.

spring.cloud.gcp.config.credentials.encoded-key

spring.cloud.gcp.config.credentials.location

spring.cloud.gcp.config.credentials.scopes

spring.cloud.gcp.config.enabled

true

Auto-configure Google Cloud Runtime components.

spring.cloud.gcp.config.name

Name of the application.

spring.cloud.gcp.config.profile

Comma-delimited string of profiles under which the app is running. Gets its default value from the {@code spring.profiles.active} property, falling back on the {@code spring.profiles.default} property.

spring.cloud.gcp.config.project-id

Overrides the GCP project ID specified in the Core module.

spring.cloud.gcp.config.timeout-millis

60000

Timeout for Google Runtime Configuration API calls.

spring.cloud.gcp.core.enabled

true

Auto-configure Google Cloud Core components.

spring.cloud.gcp.credentials.encoded-key

spring.cloud.gcp.credentials.location

spring.cloud.gcp.credentials.scopes

spring.cloud.gcp.datastore.credentials.encoded-key

spring.cloud.gcp.datastore.credentials.location

spring.cloud.gcp.datastore.credentials.scopes

spring.cloud.gcp.datastore.emulator.consistency

0.9

Consistency to use creating the Datastore server instance. Default: {@code 0.9}

spring.cloud.gcp.datastore.emulator.enabled

false

If enabled the Datastore client will connect to an local datastore emulator.

spring.cloud.gcp.datastore.emulator.port

8081

Is the datastore emulator port. Default: {@code 8081}

spring.cloud.gcp.datastore.enabled

true

Auto-configure Google Cloud Datastore components.

spring.cloud.gcp.datastore.host

The host and port of a Datastore emulator as the following example: localhost:8081.

spring.cloud.gcp.datastore.namespace

spring.cloud.gcp.datastore.project-id

spring.cloud.gcp.firestore.credentials.encoded-key

spring.cloud.gcp.firestore.credentials.location

spring.cloud.gcp.firestore.credentials.scopes

spring.cloud.gcp.firestore.emulator.enabled

false

Enables autoconfiguration to use the Firestore emulator.

spring.cloud.gcp.firestore.enabled

true

Auto-configure Google Cloud Firestore components.

spring.cloud.gcp.firestore.host-port

firestore.googleapis.com:443

The host and port of the Firestore emulator service; can be overridden to specify an emulator.

spring.cloud.gcp.firestore.project-id

spring.cloud.gcp.logging.enabled

true

Auto-configure Google Cloud Stackdriver logging for Spring MVC.

spring.cloud.gcp.metrics.credentials.encoded-key

spring.cloud.gcp.metrics.credentials.location

spring.cloud.gcp.metrics.credentials.scopes

spring.cloud.gcp.metrics.enabled

true

Auto-configure Google Cloud Monitoring for Micrometer.

spring.cloud.gcp.metrics.project-id

Overrides the GCP project ID specified in the Core module.

spring.cloud.gcp.project-id

GCP project ID where services are running.

spring.cloud.gcp.pubsub.credentials.encoded-key

spring.cloud.gcp.pubsub.credentials.location

spring.cloud.gcp.pubsub.credentials.scopes

spring.cloud.gcp.pubsub.emulator-host

The host and port of the local running emulator. If provided, this will setup the client to connect against a running pub/sub emulator.

spring.cloud.gcp.pubsub.enabled

true

Auto-configure Google Cloud Pub/Sub components.

spring.cloud.gcp.pubsub.keep-alive-interval-minutes

5

How often to ping the server to keep the channel alive.

spring.cloud.gcp.pubsub.project-id

Overrides the GCP project ID specified in the Core module.

spring.cloud.gcp.pubsub.publisher.batching.delay-threshold-seconds

The delay threshold to use for batching. After this amount of time has elapsed (counting from the first element added), the elements will be wrapped up in a batch and sent.

spring.cloud.gcp.pubsub.publisher.batching.element-count-threshold

The element count threshold to use for batching.

spring.cloud.gcp.pubsub.publisher.batching.enabled

Enables batching if true.

spring.cloud.gcp.pubsub.publisher.batching.flow-control.limit-exceeded-behavior

The behavior when the specified limits are exceeded.

spring.cloud.gcp.pubsub.publisher.batching.flow-control.max-outstanding-element-count

Maximum number of outstanding elements to keep in memory before enforcing flow control.

spring.cloud.gcp.pubsub.publisher.batching.flow-control.max-outstanding-request-bytes

Maximum number of outstanding bytes to keep in memory before enforcing flow control.

spring.cloud.gcp.pubsub.publisher.batching.request-byte-threshold

The request byte threshold to use for batching.

spring.cloud.gcp.pubsub.publisher.executor-threads

4

Number of threads used by every publisher.

spring.cloud.gcp.pubsub.publisher.retry.initial-retry-delay-seconds

InitialRetryDelay controls the delay before the first retry. Subsequent retries will use this value adjusted according to the RetryDelayMultiplier.

spring.cloud.gcp.pubsub.publisher.retry.initial-rpc-timeout-seconds

InitialRpcTimeout controls the timeout for the initial RPC. Subsequent calls will use this value adjusted according to the RpcTimeoutMultiplier.

spring.cloud.gcp.pubsub.publisher.retry.jittered

Jitter determines if the delay time should be randomized.

spring.cloud.gcp.pubsub.publisher.retry.max-attempts

MaxAttempts defines the maximum number of attempts to perform. If this value is greater than 0, and the number of attempts reaches this limit, the logic will give up retrying even if the total retry time is still lower than TotalTimeout.

spring.cloud.gcp.pubsub.publisher.retry.max-retry-delay-seconds

MaxRetryDelay puts a limit on the value of the retry delay, so that the RetryDelayMultiplier can’t increase the retry delay higher than this amount.

spring.cloud.gcp.pubsub.publisher.retry.max-rpc-timeout-seconds

MaxRpcTimeout puts a limit on the value of the RPC timeout, so that the RpcTimeoutMultiplier can’t increase the RPC timeout higher than this amount.

spring.cloud.gcp.pubsub.publisher.retry.retry-delay-multiplier

RetryDelayMultiplier controls the change in retry delay. The retry delay of the previous call is multiplied by the RetryDelayMultiplier to calculate the retry delay for the next call.

spring.cloud.gcp.pubsub.publisher.retry.rpc-timeout-multiplier

RpcTimeoutMultiplier controls the change in RPC timeout. The timeout of the previous call is multiplied by the RpcTimeoutMultiplier to calculate the timeout for the next call.

spring.cloud.gcp.pubsub.publisher.retry.total-timeout-seconds

TotalTimeout has ultimate control over how long the logic should keep trying the remote call until it gives up completely. The higher the total timeout, the more retries can be attempted.

spring.cloud.gcp.pubsub.reactive.enabled

true

Auto-configure Google Cloud Pub/Sub Reactive components.

spring.cloud.gcp.pubsub.subscriber.executor-threads

4

Number of threads used by every subscriber.

spring.cloud.gcp.pubsub.subscriber.flow-control.limit-exceeded-behavior

The behavior when the specified limits are exceeded.

spring.cloud.gcp.pubsub.subscriber.flow-control.max-outstanding-element-count

Maximum number of outstanding elements to keep in memory before enforcing flow control.

spring.cloud.gcp.pubsub.subscriber.flow-control.max-outstanding-request-bytes

Maximum number of outstanding bytes to keep in memory before enforcing flow control.

spring.cloud.gcp.pubsub.subscriber.max-ack-extension-period

0

The optional max ack extension period in seconds for the subscriber factory.

spring.cloud.gcp.pubsub.subscriber.max-acknowledgement-threads

4

Number of threads used for batch acknowledgement.

spring.cloud.gcp.pubsub.subscriber.parallel-pull-count

The optional parallel pull count setting for the subscriber factory.

spring.cloud.gcp.pubsub.subscriber.pull-endpoint

The optional pull endpoint setting for the subscriber factory.

spring.cloud.gcp.pubsub.subscriber.retry.initial-retry-delay-seconds

InitialRetryDelay controls the delay before the first retry. Subsequent retries will use this value adjusted according to the RetryDelayMultiplier.

spring.cloud.gcp.pubsub.subscriber.retry.initial-rpc-timeout-seconds

InitialRpcTimeout controls the timeout for the initial RPC. Subsequent calls will use this value adjusted according to the RpcTimeoutMultiplier.

spring.cloud.gcp.pubsub.subscriber.retry.jittered

Jitter determines if the delay time should be randomized.

spring.cloud.gcp.pubsub.subscriber.retry.max-attempts

MaxAttempts defines the maximum number of attempts to perform. If this value is greater than 0, and the number of attempts reaches this limit, the logic will give up retrying even if the total retry time is still lower than TotalTimeout.

spring.cloud.gcp.pubsub.subscriber.retry.max-retry-delay-seconds

MaxRetryDelay puts a limit on the value of the retry delay, so that the RetryDelayMultiplier can’t increase the retry delay higher than this amount.

spring.cloud.gcp.pubsub.subscriber.retry.max-rpc-timeout-seconds

MaxRpcTimeout puts a limit on the value of the RPC timeout, so that the RpcTimeoutMultiplier can’t increase the RPC timeout higher than this amount.

spring.cloud.gcp.pubsub.subscriber.retry.retry-delay-multiplier

RetryDelayMultiplier controls the change in retry delay. The retry delay of the previous call is multiplied by the RetryDelayMultiplier to calculate the retry delay for the next call.

spring.cloud.gcp.pubsub.subscriber.retry.rpc-timeout-multiplier

RpcTimeoutMultiplier controls the change in RPC timeout. The timeout of the previous call is multiplied by the RpcTimeoutMultiplier to calculate the timeout for the next call.

spring.cloud.gcp.pubsub.subscriber.retry.total-timeout-seconds

TotalTimeout has ultimate control over how long the logic should keep trying the remote call until it gives up completely. The higher the total timeout, the more retries can be attempted.

spring.cloud.gcp.secretmanager.credentials.encoded-key

spring.cloud.gcp.secretmanager.credentials.location

spring.cloud.gcp.secretmanager.credentials.scopes

spring.cloud.gcp.secretmanager.enabled

true

Auto-configure GCP Secret Manager support components.

spring.cloud.gcp.secretmanager.project-id

Overrides the GCP Project ID specified in the Core module.

spring.cloud.gcp.security.firebase.project-id

Overrides the GCP project ID specified in the Core module.

spring.cloud.gcp.security.firebase.public-keys-endpoint

www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com

Link to Google’s public endpoint containing Firebase public keys.

spring.cloud.gcp.security.iap.algorithm

ES256

Encryption algorithm used to sign the JWK token.

spring.cloud.gcp.security.iap.audience

Non-dynamic audience string to validate.

spring.cloud.gcp.security.iap.enabled

true

Auto-configure Google Cloud IAP identity extraction components.

spring.cloud.gcp.security.iap.header

x-goog-iap-jwt-assertion

Header from which to extract the JWK key.

spring.cloud.gcp.security.iap.issuer

cloud.google.com/iap

JWK issuer to verify.

spring.cloud.gcp.security.iap.registry

www.gstatic.com/iap/verify/public_key-jwk

Link to JWK public key registry.

spring.cloud.gcp.spanner.create-interleaved-table-ddl-on-delete-cascade

true

spring.cloud.gcp.spanner.credentials.encoded-key

spring.cloud.gcp.spanner.credentials.location

spring.cloud.gcp.spanner.credentials.scopes

spring.cloud.gcp.spanner.database

spring.cloud.gcp.spanner.emulator-host

localhost:9010

spring.cloud.gcp.spanner.emulator.enabled

false

Enables auto-configuration to use the Spanner emulator.

spring.cloud.gcp.spanner.enabled

true

Auto-configure Google Cloud Spanner components.

spring.cloud.gcp.spanner.fail-if-pool-exhausted

false

spring.cloud.gcp.spanner.instance-id

spring.cloud.gcp.spanner.keep-alive-interval-minutes

-1

spring.cloud.gcp.spanner.max-idle-sessions

-1

spring.cloud.gcp.spanner.max-sessions

-1

spring.cloud.gcp.spanner.min-sessions

-1

spring.cloud.gcp.spanner.num-rpc-channels

-1

spring.cloud.gcp.spanner.prefetch-chunks

-1

spring.cloud.gcp.spanner.project-id

spring.cloud.gcp.spanner.write-sessions-fraction

-1

spring.cloud.gcp.sql.credentials

Overrides the GCP OAuth2 credentials specified in the Core module.

spring.cloud.gcp.sql.database-name

Name of the database in the Cloud SQL instance.

spring.cloud.gcp.sql.enabled

true

Auto-configure Google Cloud SQL support components.

spring.cloud.gcp.sql.instance-connection-name

Cloud SQL instance connection name. [GCP_PROJECT_ID]:[INSTANCE_REGION]:[INSTANCE_NAME].

spring.cloud.gcp.sql.ip-types

A comma delimited list of preferred IP types for connecting to the Cloud SQL instance.

spring.cloud.gcp.storage.auto-create-files

spring.cloud.gcp.storage.credentials.encoded-key

spring.cloud.gcp.storage.credentials.location

spring.cloud.gcp.storage.credentials.scopes

spring.cloud.gcp.storage.enabled

true

Auto-configure Google Cloud Storage components.

spring.cloud.gcp.trace.authority

HTTP/2 authority the channel claims to be connecting to.

spring.cloud.gcp.trace.compression

Compression to use for the call.

spring.cloud.gcp.trace.credentials.encoded-key

spring.cloud.gcp.trace.credentials.location

spring.cloud.gcp.trace.credentials.scopes

spring.cloud.gcp.trace.deadline-ms

Call deadline.

spring.cloud.gcp.trace.enabled

true

Auto-configure Google Cloud Stackdriver tracing components.

spring.cloud.gcp.trace.max-inbound-size

Maximum size for an inbound message.

spring.cloud.gcp.trace.max-outbound-size

Maximum size for an outbound message.

spring.cloud.gcp.trace.message-timeout

1

Timeout in seconds before pending spans will be sent in batches to GCP Stackdriver Trace.

spring.cloud.gcp.trace.num-executor-threads

4

Number of threads to be used by the Trace executor.

spring.cloud.gcp.trace.project-id

Overrides the GCP project ID specified in the Core module.

spring.cloud.gcp.trace.wait-for-ready

Waits for the channel to be ready in case of a transient failure. Defaults to failing fast in that case.

spring.cloud.gcp.vision.credentials.encoded-key

spring.cloud.gcp.vision.credentials.location

spring.cloud.gcp.vision.credentials.scopes

spring.cloud.gcp.vision.enabled

true

Auto-configure Google Cloud Vision components.

spring.cloud.gcp.vision.executor-threads-count

1

Number of threads used to poll for the completion of Document OCR operations.

spring.cloud.gcp.vision.json-output-batch-size

20

Number of document pages to include in each JSON output file.