Access File Authorizer Connections

Prev Next

The Access File Authorizer (AFA) requires credentials to connect to external components such as databases, Redis, and other services used during authorization flows and job processing.

AFA integrates with the PlainID Secret Management (SM) service. This enables credentials to be configured using secret references while preserving the standard environment-variable configuration pattern used across PlainID services.

In the following examples, configuration snippets show environment variables as defined in the default config.yaml. These environment variables can contain Secret Management references using the standard syntax.

Refer to Installing and Configuring the Access File Authorizer for more information about the Authorizer and how you can use the SM syntax.

Secret Management Configuration

The Access File Authorizer integrates with the PlainID Secret Management (SM) service to resolve secret references at runtime.

To enable this integration, configure the secretManager section in the Authorizer config.yaml:

secretManager:
  useInConfiguration: ${SECRET_MANAGER_ENABLED:true}
  apiClient:
    url: ${SECRET_MANAGER_URL}
    timeout: ${SECRET_MANAGER_TIMEOUT:40s}
  cacheManager:
    ttl: ${SECRET_MANAGER_CACHE_TTL:1h}
  returnEmptyValueOnError: 
  ${SECRET_MANAGER_RETURN_EMPTY_VALUE_ON_ERROR:true}
  retryTimeoutOnError: ${SECRET_MANAGER_RETRY_TIMEOUT_ON_ERROR:30s}
  

Parameters

Parameter Description
useInConfiguration Enables resolving Secret Management references in configuration values
apiClient.url Secret Management service endpoint. The Secret Management Service used by the Authorizer. This URL should be exposed in the Secret Management instance, which is deployed as part of the PAA.
apiClient.timeout Timeout for Secret Management API calls
returnEmptyValueOnError Returns empty values if secret resolution fails instead of failing execution
retryTimeoutOnError Time to wait before retrying failed secret retrieval
cacheManager.ttl Cache duration for resolved secrets. The secret is refreshed after sending a request to the Secret Management service.

Note: The Secret Management Service must be deployed as part of the PAA and accessible for secret resolution to function correctly.

Secret Reference Syntax

Secrets are referenced using the Secret Management syntax:

{{store=<storeID>,key=<secretName>,refreshInterval=<interval>}}

Parameters

Parameter Description
store The ID defined in the Secret Management service configuration.
key The secret key name to retrieve from the store.
refreshInterval Optional refresh interval for retrieving updates from the store. Supported units are seconds (s), minutes (m), hours (h), and days (d).

Example environment variable configuration:

DB_PASS={{store=AZURE_KEY_VAULT_STORE,key=db-password}}

Redis Configuration

The Authorizer uses Redis as part of its job scheduler. Redis configuration can utilize the secret key syntax to securely retrieve credentials.

redis:
  host: ${REDIS_HOST:localhost}
  port: ${REDIS_PORT:6379}
  username: ${REDIS_USER:}
  password: ${REDIS_PASS}
  db: ${REDIS_DB:0}
  ssl: ${REDIS_SSL_ENABLED:false}

Example:

REDIS_PASS={{store=AZURE_KEY_VAULT_STORE,key=redis-password}}

Operational Database Configuration

The Authorizer connects to an operational database as part of its runtime processing. The database username and password support configuration via Secret Management.

db:
  username: ${DB_USER}
  password: ${DB_PASS}

Example:

DB_USER={{store=AZURE_KEY_VAULT_STORE,key=db-username}}
DB_PASS={{store=AZURE_KEY_VAULT_STORE,key=db-password}}

Data Source Database Credentials

Datasource definitions used by the Authorizer support secret-based configuration for database credentials.

datasources:
  ds1:
    username: ${DS1_DB_USER}
    password: ${DS1_DB_PASS}

Example:

DS1_DB_USER={{store=AZURE_KEY_VAULT_STORE,key=ds1-db-user}}
DS1_DB_PASS={{store=AZURE_KEY_VAULT_STORE,key=ds1-db-password}}

PDP Client Credentials

The Authorizer uses PDP client credentials when interacting with PDP runtime service. These credentials support configuration via Secret Management.

clientId: ${FLOW1_PDP_RUNTIME_PARAMETERS_CLIENT_ID}
clientSecret: ${FLOW1_PDP_RUNTIME_PARAMETERS_CLIENT_SECRET}

Example:

FLOW1_PDP_RUNTIME_PARAMETERS_CLIENT_ID={{store=AZURE_KEY_VAULT_STORE,key=pdp-client-id}}
FLOW1_PDP_RUNTIME_PARAMETERS_CLIENT_SECRET={{store=AZURE_KEY_VAULT_STORE,key=pdp-client-secret}}

Webhook Headers

The Authorizer supports webhook integrations. HTTP header values defined for webhooks support Secret Management, including authorization headers.

webhooks:
  copyFileWebhook:
    method: "POST"
    headers:
      - name: Content-Type
        values: ["application/json"]
      - name: Authorization
        values: ["{{store=AZURE_KEY_VAULT_STORE,key=afarclone}}"]

RClone Authorization

When the Authorizer is configured to use RClone, the authorization header supports secret-based configuration.

Authorization: basic {{store=AZURE_KEY_VAULT_STORE,key=rclone-basic-auth}}

Error Logging

If secret keys are configured and the Secret Management service is not available, AFA prints relevant error logs to assist with monitoring and troubleshooting.


AccessFile (AFA) supports Secret Management for credentials used by Redis, operational databases, datasource databases, PDP client configuration, webhook headers, and RClone authorization.

© 2026 PlainID LTD. All rights reserved.