App Configuration Naming Strategy
Background
A single Azure App Configuration instance is used by multiple Fluxx and Documents AI (Docs AI) services. Several configuration keys were introduced when services were isolated. As additional services were added, the same key names began appearing across multiple applications.
User Story: 750200 - SPIKE: App Config Analysis
Applications
Docs AI
- web-api-documents-ai
- db-documents-ai
- web-documents-ai
Fluxx
- fluxx-registration
- fluxx-file-intake
- fluxx-postal
- fluxx-sql-server
- fluxx-extractor
- fluxx-statuscheck
Key Name Conflicts
Observed conflict patterns:
- Generic key names reused across multiple services
- Identical key names spanning multiple products
- Inconsistent prefixes for related settings
Examples:
- APPLICATION_PORT
- SQL_SERVER
- SQL_PORT
- SQL_DATABASE
- DEBUG_PORT
Naming Strategy
Required Pattern
Rules
- Keys include a product prefix
- Service context is included for service-specific settings
- Generic, unqualified key names are avoided
Examples
- FLUXX_POSTAL_APPLICATION_PORT
- FLUXX_FILE_INTAKE_DEBUG_PORT
- DOCAI_WEBAPI_SQL_PORT
- DOCAI_DB_SQL_PASSWORD
Configuration Key Inventory
Docs AI - web-api-documents-ai
- DEBUG_PORT
- LOG_LEVEL
- NODE_ENV
- DOCAI_AZURE_AD_CLIENT_ID
- DOCAI_AZURE_AD_TENANT
- DOCAI_AZURE_APP_CONFIG_ENDPOINT
- DOCAI_AZURE_FR_ENDPOINT
- DOCAI_AZURE_FR_KEY
- DOCAI_AZURE_OPENAI_API_VERSION
- DOCAI_AZURE_OPENAI_DEPLOYMENT_ID
- DOCAI_AZURE_OPENAI_ENDPOINT
- DOCAI_AZURE_OPENAI_API_KEY
- DOCAI_AZURE_STORAGE_CONNECTION_STRING
- DOCAI_AZURE_STORAGE_CONNECTION_STRING_DOCAI
- DOCAI_FLUXX_UPLOAD_ENDPOINT_URL
- DOCAI_SQL_DATABASE
- DOCAI_SQL_HOST
- DOCAI_SQL_IS_MANAGED_IDENTITY_USED
- DOCAI_SQL_PORT
- DOCAI_SQL_USERNAME
- DOCAI_SQL_PASSWORD
- DOCAI_WEBAPI_PORT
- NPM_TOKEN
Docs AI - db-documents-ai
- SQL_SERVER
- SQL_PORT
- SQL_DATABASE
- SQL_USERNAME
- SQL_PASSWORD
- SQL_WAIT_INTERVAL
Docs AI - web-documents-ai
- REACT_APP_AZURE_AD_CLIENT_ID
- REACT_APP_AZURE_AD_AUTHORITY
- REACT_APP_API_URL
- AZURITE_PORT
Fluxx - fluxx-registration
- AZURE_APP_CONFIG_ENDPOINT
- AZURE_STORAGE_CONNECTION_STRING
- AZURE_SERVICE_BUS_CONNECTION_STRING_OR_NAMESPACE
- ACCEPT_EULA
- SERVICE_BUS_EMULATOR_CONFIG
- SQL_SERVER
- SQL_PORT
- SQL_DATABASE
- SQL_USERNAME
- SQL_PASSWORD
- SQL_WAIT_INTERVAL
- SQL_IS_MANAGED_IDENTITY_USED
- SQL_IS_STRICT_TLS_REQUIRED
- TOPIC_UPDATED_REGISTRATION
- APPLICATION_PORT
- DEBUG_PORT
Fluxx - fluxx-file-intake
- AZURE_STORAGE_CONNECTION_STRING
- AZURE_SERVICE_BUS_CONNECTION_STRING
- ACCEPT_EULA
- SQL_SERVER
- SQL_PORT
- SQL_DATABASE
- SQL_USERNAME
- SQL_PASSWORD
- SQL_WAIT_INTERVAL
- SQL_IS_MANAGED_IDENTITY_USED
- SQL_IS_STRICT_TLS_REQUIRED
- IS_AZURITE
- REGISTRATION_BASE_URL
- TOPIC_SUBMITTED_FILE
- TOPIC_VALIDATED_FILE
- TOPIC_ACCEPTED_FILE
- TOPIC_PROBLEM
- SUBSCRIPTION_SUBMITTED_FILE
- SUBSCRIPTION_VALIDATED_FILE
- APPLICATION_PORT
- DEBUG_PORT
Fluxx - fluxx-postal
- APPLICATION_PORT
- AZURE_APP_CONFIG_ENDPOINT
- AZURE_SERVICE_BUS_CONNECTION_STRING_OR_NAMESPACE
- SUBSCRIPTION_TO_RETRY
- SUBSCRIPTION_TO_SEND
- TOPIC_TO_RETRY
- TOPIC_TO_SEND
- DEBUG_PORT
Fluxx - fluxx-sql-server
- MSSQL_SA_PASSWORD
Fluxx - fluxx-extractor
- AZURE_APP_CONFIG_ENDPOINT
- AZURE_STORAGE_CONNECTION_STRING
- AZURE_SERVICE_BUS_CONNECTION_STRING
- AZURE_KEY_VAULT_URL
- AZURE_CLIENT_ID
- ACCEPT_EULA
- SERVICE_BUS_EMULATOR_CONFIG
- SQL_SERVER
- SQL_PORT
- SQL_DATABASE
- SQL_USERNAME
- SQL_PASSWORD
- SQL_WAIT_INTERVAL
- SQL_IS_MANAGED_IDENTITY_USED
- SQL_IS_STRICT_TLS_REQUIRED
- IS_AZURITE
- TOPIC_ACCEPTED_FILE
- TOPIC_JOB_STATUS
- SUBSCRIPTION_EXTRACTOR_ACCEPTED_FILE
- TOPIC_EXTRACTED_RESULT
- APPLICATION_PORT
- DEBUG_PORT
- REGISTRATION_BASE_URL
- MAX_POLLING_ATTEMPTS
- POLL_INTERVAL_MS
- POLL_CYCLE_INTERVAL_MS
- BATCH_SIZE
- LOCK_DURATION_MS
- MAX_POLL_DURATION_MS
Fluxx - fluxx-statuscheck
- AZURE_STORAGE_CONNECTION_STRING
- AZURE_SERVICE_BUS_CONNECTION_STRING_OR_NAMESPACE
- ACCEPT_EULA
- SERVICE_BUS_EMULATOR_CONFIG
- SQL_SERVER
- SQL_PORT
- SQL_DATABASE
- SQL_USERNAME
- SQL_PASSWORD
- SQL_WAIT_INTERVAL
- SQL_IS_MANAGED_IDENTITY_USED
- SQL_IS_STRICT_TLS_REQUIRED
- TOPIC_VALIDATED_FILE
- SUBSCRIPTION_STATUS_VALIDATED_FILE
- TOPIC_ACCEPTED_FILE
- SUBSCRIPTION_STATUS_ACCEPTED_FILE
- TOPIC_PROBLEM
- SUBSCRIPTION_STATUS_PROBLEM_FILE
- APPLICATION_PORT
- DEBUG_PORT