Caches

Prev Next

External caches may be defined and used with the orchestrator to enable high availability.

To define a Redis Cache

Orchestrator only supports Redis 6.0 or greater.

Go to Deployments, create or open an existing deployment, scroll to the Cache section and click Add.

Name

Defines how the cache is identified. The name is used when referencing the cache in OIDC or SAML provider settings.

Disable Prefix

Disable the feature-specific prefix typically prepended to cache keys. This should be enabled when using Service Extensions to read and write data in a cache where the data is not owned by the Orchestrator. When disabled (default), cache keys are prefixed with the feature namespace (e.g., /app/oidc:abc123). When enabled, keys are stored without the prefix (e.g., abc123).

Notice

Notice that when the prefix is disabled you must disable Encryption and the Hashing Keys.  This is required when reading data from a shared cache, since the data being written by the external system doesn't use the same key hashing or data encryption.

Using the Cache by a service extension

In a Service Extension get the cache by the Name you provided in the config and use the cache APIs for retrieving and setting data.  


// Get the cache by the name you set in the config (e.g., "shared-redis").
cache, err := api.Cache("", cache.WithName("shared-redis"))
if err != nil {
	logger.Error("se", "unable to retrieve cache", "error", err.Error())
	return nil, err
}
// Get the raw data from the cache using the unique key.
data, err := cache.GetBytes(context.Background(), "my-unique-key")
// At this point, you'll typically unmarshal the data to a struct using JSON or whatever encoding your external 
// system used when writing to the cache.


Redis

Address

A list of Redis host and port addresses in the format host:port (for example, localhost:6379 or redis1.example.com:6379). Multiple addresses can be entered to define cluster nodes.

Redis Cache Username

Optional. The username used to authenticate against Redis. The username must be created via an Access Control List (ACL) in Redis.

Cache Password

Optional. The password used to authenticate against Redis. The password must also be generated via an ACL in Redis.

CA Path

Optional. The file path to the Certificate Authority (CA) file. Use this when connecting to Redis instances that require self-signed certificates.


Encryption

Defines the keys used for encrypting and decrypting cache data. By default, encryption is enabled for all cache data.

Disable Encryption

When enabled, encryption for cache data is turned off. Use this only when connecting to a shared cache where encryption is handled externally.

Current Key

Defines the encryption key currently being used to encrypt cache data. Keys must be 32 bytes in hexadecimal format (for example, 44ff1207fcab4c621a3d8d52cd13b55041fa744c900af17a4c96c900a91542e).

Old Keys

Defines keys which were previously used in current, they allow non-current keys to still decrypt data from the cache which may have been encrypted while they were current.

Disable Hashing Keys

Enable to disable hashing the cache key. This can be useful for debugging.