Skip to content

Application Variable Inventory

Brandon Cruz edited this page Jan 30, 2024 · 8 revisions

BFD-3029 Application Variables Inventory

Pseudocode Definitions

In order to represent the values of every application's environment variables and parameters, a form of pseudocode is used to define them. The table below defines some "methods" or "functions" that some variables/parameters use.

Operation Example Description
REF(app, other_var_name) REF(Server, LOGS_DIR) = '<value of Server's LOGS_DIR in table>' Replace with the value of the corresponding variable from the table
SSM(ssm_param_name) SSM('/bfd/${env()}/...') = '<value of SSM parameter>' Replace with the value of the correspodning SSM parameter
env() "bfd-${env()}..." Replace with any BFD SDLC environment
pipeline_type() "/bfd/${env()}/pipeline/${pipeline_type()}/..." Replace with either "rda" or "ccw" depending on which Pipeline this is relevant for
rds_writer_endpoint() "jdbc:postgresql://${rds_writer_endpoint()}:..." Replace with the result of the ops/terraform/services/pipeline/scripts/rds-cluster-config.sh script for any environment
bfd_repo_root() "bfd_repo_root()/apps/..." Replace with the full path of the BFD repo root on the BFD application host
int(str) int("1") = 1 Replace with the integer value of the string
default(nullable_val, default) default(<value that isn't defined in all envs>, "default") Replace the first value with the default if it would not be defined given some constraint (environment, for example)
basename(path) basename('/etc/asdf/foo.txt') = 'foo.txt' Replace with the base name of provided path. See Ansible's basename filter
dirname(path) dirname('/etc/asdf/foo.txt') = '/etc/asdf' Replace with the directory name of provided path
ansible_processor_vcpus() ansible_processor_vcpus() * 10 Replace with the number of CPU cores of the BFD Application host. See Ansible documentation or this SO answer
ansible_memtotal_mb() ansible_memtotal_mb * 0.8 Replace with the amount of RAM in MB of the BFD Application host. See Ansible documentation

Variables Not Covered By Inventory

The applications contain some configuration settings that are not currently being used in our cloud environments. These variables could either retain their existing names or have their names modified to fit the new pattern. This table proposes new SSM parameter names for these variables so that they can be added to the IaC at a later date.

Application New SSM Parameter Old Environment Variable or Property Comments
Pipeline ccw/job/allowed_data_set_type DATA_SET_TYPE_ALLOWED
Pipeline hicn_hash/cache_size HICN_HASH_CACHE_SIZE
Pipeline ccw/job/interval_seconds CCW_RIF_JOB_INTERVAL_SECONDS
Pipeline rda/grpc/inprocess_server/name RDA_GRPC_INPROC_SERVER_NAME
Pipeline rda/grpc/seconds_before_connection_drop RDA_GRPC_SECONDS_BEFORE_CONNECTION_DROP
Pipeline rda/job/error_limit RDA_JOB_ERROR_LIMIT
Pipeline rda/job/error_expire_days RDA_JOB_ERROR_EXPIRE_DAYS
Pipeline rda/grpc/inprocess_server/interval_seconds RDA_GRPC_INPROC_SERVER_INTERVAL_SECONDS
Pipeline rda/grpc/inprocess_server/random/seed RDA_GRPC_INPROC_SERVER_RANDOM_SEED
Pipeline rda/grpc/inprocess_server/random/max_claims RDA_GRPC_INPROC_SERVER_RANDOM_MAX_CLAIMS
Pipeline micrometer_cw/jmx_enabled MICROMETER_JMX_ENABLED
Migrator none FLYWAY_SCRIPT_LOCATION Only useful in tests.
Server none bfdServer.include.fake.drug.code
Server none bfdServer.include.fake.org.name
Server none bfdServer.pac.enabled
Server none bfdServer.pac.oldMbiHash.enabled
Server none bfdServer.executorService.threads
Server host BFD_HOST

Internal Application Mapping Of SSM Paths

SMS parameters are accessed using a path consisting of a sequence of node names separated by slash characters. BFD's layered configuration module requires that all settings are also available to the application in two alternative formats:

  • As java properties with names consisting of node names separated by periods instead of slashes.
  • As POSIX environment variables with names consisting only of uppercase letters and underscores.

Since SSM parameter paths are incompatible with both of these formats the layered configuration provides code to translate the plain SSM parameter names into appropriate java property or POSIX environment variable names.

  • When looking for a parameter in the application's system properties it adds a prefix of bfd. to the SSM parameter path. The prefix ensures that short paths do not conflict with other properties. For example, a value for the SSM parameter path ccw/job/enabled can also be provided to the application using a system property named bfd.ccw.job.enabled.
  • When looking for a parameter in the application's environment variables it replaces . with _, converts all letters to upper case, and adds a prefix of BFD_. The prefix ensures that short paths (e.g. host or port) do not conflict with other environment variables. For example, a value for the SSM parameter ccw/job/enabled can also be provided to the application using an environment variable named BFD_CCW_JOB_ENABLED.

The run scripts in apps/utils/scripts uses environment variables when localstack is not running.

Variables/Parameters Inventory

Values are defined using pseudocode that roughly resembles Terraform/Python. For example, values enclosed in quotes are strings, true/false represent booleans, numerals are ints, etc. String templating is represented by the ${...} syntax, and inline conditionals are represented by if <CONDITION> then <VALUE> else ....

"True value" represents the fully resolved value of each variable/parameter, assuming that Ansible, Terraform, and other templating was executed.

Certain values must continue to be present upon JVM start up as either properties or environment variables because logback is unable to pull their values from SSM:

  • bfdServer.logs.dir: Must be defined as a java property on the command line.
  • BFD_ENV_NAME: Must be defined as an environment variable.

Note that, unless otherwise indicated, the value of the New SSM Parameter represents the leaf of the standard SSM parameter format (/bfd/${env}/${sensitivity}/${service}/${leaf}). The fully-qualifed SSM parameter path for each value can be inferred from the value's intrinsic sensitivity and the application it is used by.

Application What consumes this? New SSM Parameter Environment Variable/Parameter True Value Usage File Path Line Number Language Comments
Server Application port BFD_PORT SSM('/bfd/${env()}/sensitive/server/data_server_appserver_https_port') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 4 Ansible Templated Shell
Server Application paths/files/keystore BFD_KEYSTORE "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/bluebutton-appserver-keystore.pfx" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 5 Ansible Templated Shell This is referring to a path, not the actual keystore. The actual keystore is generated as part of Ansible Launch tasks from base 64 encoded data in SSM, and in EKS will be generated as part of deployment and passed as a k8s secret.
Server Application paths/files/truststore BFD_TRUSTSTORE "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/bluebutton-appserver-truststore.pfx" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 6 Ansible Templated Shell This is referring to a path, not the actual truststore. The actual truststore is generated as part of Ansible Launch tasks from client certs in SSM, and in EKS will be generated as part of deployment and passed as a k8s secret.
Server Application paths/files/war BFD_WAR ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 7 Ansible Templated Shell
Server Application paths/dirs/logs LOGS_DIR "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 11 Ansible Templated Shell
Server Application db/url DB_URL SSM('/bfd/${env()}/sensitive/server/data_server_db_url') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 12 Ansible Templated Shell
Server Application db/username DB_USERNAME SSM('/bfd/${env()}/sensitive/server/data_server_db_username') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 13 Ansible Templated Shell
Server Application db/password DB_PASSWORD SSM('/bfd/${env()}/sensitive/server/data_server_db_password') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 14 Ansible Templated Shell
Server Application db/max_connections DB_CONNECTIONS_MAX ansible_processor_vcpus() * 10 ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 15 Ansible Templated Shell
Server Application db/auth_type -DbfdServer.db.authType currently undefined Ansible Templated Shell Always undefined for now. Possible values are JDBC or RDS.
Server Application pac/enabled BFD_PAC_ENABLED SSM('/bfd/${env()}/nonsensitive/server/pac_resources_enabled') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 16 Ansible Templated Shell
Server Application pac/claim_source_types BFD_PAC_CLAIM_SOURCE_TYPES SSM('/bfd/${env()}/nonsensitive/server/pac_claim_source_types') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 17 Ansible Templated Shell
Server Application new_relic/host NEW_RELIC_HOST "gov-collector.newrelic.com" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 21 Ansible Templated Shell
Server Launcher new_relic/agent/license_key NEW_RELIC_LICENSE_KEY SSM('/bfd/${env()}/nonsensitive/server/data_server_new_relic_license_key') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 22 Ansible Templated Shell
Server Launcher new_relic/log_path NEW_RELIC_LOG_FILE_PATH "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 23 Ansible Templated Shell
Server Launcher new_relic/high_security_enabled NEW_RELIC_HIGH_SECURITY false ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 24 Ansible Templated Shell
Server Launcher new_relic/extensions_dir NEW_RELIC_EXTENSIONS_DIR "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/newrelic/extensions/" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 25 Ansible Templated Shell
Server Launcher N/A NEW_RELIC_PROXY_HOST Undefined ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 27 Ansible Templated Shell
Server Launcher N/A NEW_RELIC_PROXY_PORT Undefined ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 30 Ansible Templated Shell
Server Launcher new_relic/app_name NEW_RELIC_APP_NAME "BFD Server (${SSM('/bfd/${env()}/nonsensitive/common/env_name_std')})" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 33 Ansible Templated Shell Has a duplicate variable definition on line 47 in bfd-server.sh.j2 with the same "true value"
Server Launcher new_relic/env NEW_RELIC_ENVIRONMENT SSM('/bfd/${env()}/nonsensitive/common/env_name_std') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 36 Ansible Templated Shell Value from Terraform template; see ops/terraform/services/server/modules/bfd_server_asg/templates/fhir_server.tpl:40
Server Application new_relic/metrics/license_key NEW_RELIC_METRIC_KEY SSM('/bfd/${env()}/sensitive/server/data_server_new_relic_metric_key') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 44 Ansible Templated Shell
Server Application new_relic/metrics/host NEW_RELIC_METRIC_HOST SSM('/bfd/${env()}/nonsensitive/server/data_server_new_relic_metric_host') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 51 Ansible Templated Shell
Server Application new_relic/metrics/path NEW_RELIC_METRIC_PATH SSM('/bfd/${env()}/nonsensitive/server/data_server_new_relic_metric_path') ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 55 Ansible Templated Shell
Server Application new_relic/metrics/period NEW_RELIC_METRIC_PERIOD Undefined ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 59 Ansible Templated Shell
Server Launcher healthcheck/request_timeout_seconds STARTUP_TESTING_REQ_TIMEOUT 15 ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 65 Ansible Templated Shell Is not used by the application. Used by startup script to to ensure BFD Server app is started and for lifecycle actions
Server Launcher healthcheck/request_backoff_seconds STARTUP_TESTING_REQ_BACKOFF_TIMEOUT 1 ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 66 Ansible Templated Shell Is not used by the application. Used by startup script to to ensure BFD Server app is started and for lifecycle actions
Server Launcher healthcheck/testing_bene_id STARTUP_TESTING_BENE_ID -88888888888888 ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 67 Ansible Templated Shell Is not used by the application. Used by startup script to to ensure BFD Server app is started and for lifecycle actions
Server Launcher healthcheck/launch_lifecycle_hook LAUNCH_LIFECYCLE_HOOK "bfd-${env()}-fhir-on-launch" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 71 Ansible Templated Shell Is not used by the application. Used by startup script to to ensure BFD Server app is started and for lifecycle actions
Server Launcher N/A JVM_ARGS "-Xms${(ansible_memtotal_mb() * 0.80) - 2048}m -Xmx${(ansible_memtotal_mb() * 0.80) - 2048}m -XX:MaxMetaspaceSize=2048m -XX:MaxMetaspaceSize=2048m -Xlog:gc*:"${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/gc.log:time,level,tags -XX:+PreserveFramePointer" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 184 Ansible Templated Shell See ops/terraform/services/server/modules/bfd_server_asg/templates/fhir_server.tpl:37
Server Launcher paths/files/launcher_script BFD Server Script Path on Host ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 187 Ansible Templated Shell Not a real variable or parameter, but is included here for completeness
Server Launcher paths/files/new_relic_agent_jar -javaagent "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/newrelic/newrelic.jar" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 188 Ansible Templated Shell Parameter passed to JVM
Server Launcher N/A (redundant) -DbfdServer.logs.dir REF(Server, LOGS_DIR) ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 190 Ansible Templated Shell Parameter passed to JVM
Server Application N/A (redundant) -DbfdServer.db.url REF(Server, DB_URL) ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 191 Ansible Templated Shell Parameter passed to JVM
Server Application N/A (redundant) -DbfdServer.db.username REF(Server, DB_USERNAME) ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 192 Ansible Templated Shell Parameter passed to JVM
Server Application N/A (redundant) -DbfdServer.db.password REF(Server, DB_PASSWORD) ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 193 Ansible Templated Shell Parameter passed to JVM
Server Application N/A (redundant) -DbfdServer.db.connections.max REF(Server, DB_CONNECTIONS_MAX) ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 194 Ansible Templated Shell Parameter passed to JVM
Server Application N/A (redundant) -DbfdServer.pac.enabled REF(Server, BFD_PAC_ENABLED) ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 195 Ansible Templated Shell Parameter passed to JVM
Server Application N/A (redundant) -DbfdServer.pac.claimSourceTypes REF(Server, BFD_PAC_CLAIM_SOURCE_TYPES) ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 196 Ansible Templated Shell Parameter passed to JVM
Server Launcher paths/dirs/tmp -Djava.io.tmpdir "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/tmp" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 197 Ansible Templated Shell Parameter passed to JVM
Server Launcher jboss/logging_provider -Dorg.jboss.logging.provider "slf4j" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 198 Ansible Templated Shell Parameter passed to JVM
Server Launcher paths/files/launcher_log BFD Server Script Log Redirection Path "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/bluebutton-server-app-log.json" ops/ansible/roles/bfd-server/templates/bfd-server.sh.j2 199 Ansible Templated Shell Not a real variable or parameter, but is included here for completeness
Server Launcher N/A (generated at startup) bfdServerLauncherJar "${dirname('${bfd_repo_root()}/apps/bfd-server/bfd-server-launcher/src/main/assembly/bin/bfd-server-launcher.sh')}/bfd-server-launcher-*.jar" apps/bfd-server/bfd-server-launcher/src/main/assembly/bin/bfd-server-launcher.sh 4 Bash Shell Part of launcher script
Server Launcher N/A (generated at startup) classpath "${REF(Server, bfdServerLauncherJar)}:${dirname('${bfd_repo_root()}/apps/bfd-server/bfd-server-launcher/src/main/assembly/bin/bfd-server-launcher.sh')}/lib/*" apps/bfd-server/bfd-server-launcher/src/main/assembly/bin/bfd-server-launcher.sh 5 Bash Shell Part of launcher script
Server Launcher java/app_main_class mainClass "gov.cms.bfd.server.launcher.DataServerLauncherApp" apps/bfd-server/bfd-server-launcher/src/main/assembly/bin/bfd-server-launcher.sh 6 Bash Shell Part of launcher script
Server Launcher systemd/working_dir WorkingDirectory SSM('/bfd/${env()}/nonsensitive/server/data_server_dir') ops/ansible/roles/bfd-server/templates/bluebutton-appserver.service.j2 7 Ansible Templated INI/Config Part of systemd service definition template
Server Launcher systemd/exec_start ExecStart "${SSM('/bfd/${env()}/nonsensitive/server/data_server_dir')}/bfd-server.sh" ops/ansible/roles/bfd-server/templates/bluebutton-appserver.service.j2 8 Ansible Templated INI/Config Part of systemd service definition template
Server Launcher systemd/user User "bfd" ops/ansible/roles/bfd-server/templates/bluebutton-appserver.service.j2 9 Ansible Templated INI/Config Part of systemd service definition template. Is not defined in SSM, instead defined as part of Ansible defaults for bfd-server role at ops/ansible/roles/bfd-server/defaults/main.yml:13
Pipeline Application ccw/job/enabled CCW_RIF_JOB_ENABLED SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_ccw_rif_job_enabled') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 3 Ansible Templated Shell
Pipeline Application ccw/s3_bucket_name S3_BUCKET_NAME SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_s3_bucket') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 4 Ansible Templated Shell
Pipeline Application hicn_hash/iterations HICN_HASH_ITERATIONS SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_hicn_hash_iterations') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 5 Ansible Templated Shell
Pipeline Application hicn_hash/pepper HICN_HASH_PEPPER SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_hicn_hash_pepper') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 6 Ansible Templated Shell
Pipeline Application db/url DATABASE_URL "jdbc:postgresql://${rds_writer_endpoint()}:5432/fhirdb?logServerErrorDetail=false" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 7 Ansible Templated Shell Technically, the ?logServerErrorDetail=false suffix is controlled by a variable, but it's left unset by default
Pipeline Application db/username DATABASE_USERNAME SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_db_username') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 8 Ansible Templated Shell
Pipeline Application db/password DATABASE_PASSWORD SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_db_password') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 9 Ansible Templated Shell
Pipeline Application db/max_connections DATABASE_MAX_POOL_SIZE Undefined Ansible Templated Shell Is not defined in SSM, in Ansible role defaults or anywhere else. Logic in pipeline service script defaults it to double the maximum number of CCW loader threads.
Pipeline Application db/auth_type DATABASE_AUTH_TYPE currently undefined Ansible Templated Shell Always undefined for now. Possible values are JDBC or RDS.
Pipeline Application loader_thread_count LOADER_THREADS ansible_processor_vcpus() * int(SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/rif_thread_multiple')) ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 11 Ansible Templated Shell
Pipeline Application ccw/job/batch_size RIF_JOB_BATCH_SIZE SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/rif_job_batch_size') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 12 Ansible Templated Shell rif_job_batch_size is undefined in SSM for rda-type Pipelines, so for rda Pipelines this value defaults to 7 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application ccw/job/queue_size_multiple RIF_JOB_QUEUE_SIZE_MULTIPLE SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/rif_job_queue_size_multiple') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 13 Ansible Templated Shell rif_job_queue_size_multiple is undefined in SSM for rda-type Pipelines, so for rda Pipelines this value defaults to 5 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application ccw/job/claims/loader_thread_count LOADER_THREADS_CLAIMS ansible_processor_vcpus() * int(SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/rif_thread_multiple_claims')) ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 14 Ansible Templated Shell rif_thread_multiple_claims is undefined in SSM for rda-type Pipelines, so for rda Pipelines this value defaults to 25 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application ccw/job/claims/batch_size RIF_JOB_BATCH_SIZE_CLAIMS SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/rif_job_batch_size_claims') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 15 Ansible Templated Shell rif_job_batch_size_claims is undefined in SSM for rda-type Pipelines, so for rda Pipelines this value defaults to 100 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application ccw/job/claims/queue_size_multiple RIF_JOB_QUEUE_SIZE_MULTIPLE_CLAIMS SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/rif_job_queue_size_multiple_claims') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 16 Ansible Templated Shell rif_job_queue_size_multiple_claims is undefined in SSM for rda-type Pipelines, so for rda Pipelines this value defaults to 10 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application ccw/idempotency_enabled IDEMPOTENCY_REQUIRED SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_idempotency_required') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 18 Ansible Templated Shell data_pipeline_idempotency_required is undefined in SSM for rda-type Pipelines, so for rda Pipelines this value defaults to true from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application micrometer_cw/enabled MICROMETER_CW_ENABLED SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_micrometer_cw_enabled') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 22 Ansible Templated Shell
Pipeline Application micrometer_cw/namespace MICROMETER_CW_NAMESPACE SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_micrometer_cw_namespace') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 23 Ansible Templated Shell
Pipeline Application micrometer_cw/interval MICROMETER_CW_INTERVAL "default(SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_micrometer_cw_namespace'), 'PT1M')" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 24 Ansible Templated Shell Corresponding SSM parameter should never be undefined, but default() is added for parity with actual value in script
Pipeline Application new_relic/metrics/host NEW_RELIC_METRIC_HOST SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_new_relic_metric_host') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 31 Ansible Templated Shell
Pipeline Application new_relic/metrics/path NEW_RELIC_METRIC_PATH SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_new_relic_metric_path') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 32 Ansible Templated Shell
Pipeline Application ??? new_relic/app_name NEW_RELIC_APP_NAME "BFD Pipeline ${if pipeline_type() == 'rda' then '${pipeline_type()}' else ''} (${SSM('/bfd/${env()}/nonsensitive/common/env_name_std')})" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 34 Ansible Templated Shell See data_pipeline_new_relic_app_name definition in ops/terraform/services/pipeline/user-data.sh.tftpl:41 for more context
Pipeline Application new_relic/metrics/license_key NEW_RELIC_METRIC_KEY SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_new_relic_metric_key') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 39 Ansible Templated Shell
Pipeline Application rda/job/enabled RDA_JOB_ENABLED SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_job_enabled') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 44 Ansible Templated Shell
Pipeline Application rda/job/interval_seconds RDA_JOB_INTERVAL_SECONDS SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_job_interval_seconds') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 45 Ansible Templated Shell data_pipeline_rda_job_interval_seconds is undefined in SSM for ccw-type Pipelines, so for ccw Pipelines this value defaults to 300 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application rda/job/batch_size RDA_JOB_BATCH_SIZE SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_job_batch_size') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 46 Ansible Templated Shell data_pipeline_rda_job_batch_size is undefined in SSM for ccw-type Pipelines, so for ccw Pipelines this value defaults to 20 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application rda/job/write_thread_count RDA_JOB_WRITE_THREADS SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_job_write_threads') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 47 Ansible Templated Shell data_pipeline_rda_job_write_threads is undefined in SSM for ccw-type Pipelines, so for ccw Pipelines this value defaults to 1 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application rda/job/process_dlq RDA_JOB_PROCESS_DLQ SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_process_dlq') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 49 Ansible Templated Shell data_pipeline_rda_process_dlq is undefined in SSM for ccw-type Pipelines, and does not have a corresponding default. This is guarded against in the Pipeline's service script, though
Pipeline Application N/A RDA_JOB_RDA_VERSION Undefined ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 52 Ansible Templated Shell
Pipeline Application rda/job/starting_fiss_seq_num RDA_JOB_STARTING_FISS_SEQ_NUM SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_job_starting_fiss_seq_num') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 55 Ansible Templated Shell data_pipeline_rda_job_starting_fiss_seq_num is undefined in SSM for ccw-type Pipelines, and does not have a corresponding default. This is guarded against in the Pipeline's service script, though
Pipeline Application rda/job/starting_mcs_seq_num RDA_JOB_STARTING_MCS_SEQ_NUM SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_job_starting_mcs_seq_num') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 58 Ansible Templated Shell data_pipeline_rda_job_starting_mcs_seq_num is undefined in SSM for ccw-type Pipelines, and does not have a corresponding default. This is guarded against in the Pipeline's service script, though
Pipeline Application rda/grpc/host RDA_GRPC_HOST SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_rda_grpc_host') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 60 Ansible Templated Shell
Pipeline Application rda/grpc/port RDA_GRPC_PORT SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_rda_grpc_port') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 61 Ansible Templated Shell
Pipeline Application rda/grpc/max_idle_seconds RDA_GRPC_MAX_IDLE_SECONDS SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_grpc_max_idle_seconds') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 62 Ansible Templated Shell data_pipeline_rda_grpc_max_idle_seconds is undefined in SSM for ccw-type Pipelines, so for ccw Pipelines this value defaults to 600 from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application rda/grpc/auth_token RDA_GRPC_AUTH_TOKEN SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_rda_grpc_auth_token') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 63 Ansible Templated Shell
Pipeline Application rda/grpc/server_type RDA_GRPC_SERVER_TYPE SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_grpc_server_type') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 64 Ansible Templated Shell data_pipeline_rda_grpc_server_type is undefined in SSM for ccw-type Pipelines, so for ccw Pipelines this value defaults to Remote from ops/ansible/roles/bfd-pipeline/defaults/main.yml
Pipeline Application rda/grpc/inprocess_server/mode RDA_GRPC_INPROC_SERVER_MODE SSM('/bfd/${env()}/pipeline/${pipeline_type()}/nonsensitive/data_pipeline_rda_grpc_inproc_server_mode') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 65 Ansible Templated Shell data_pipeline_rda_grpc_inproc_server_mode is undefined in SSM for ccw-type Pipelines, and the default in ops/ansible/roles/bfd-pipeline/defaults/main.yml is "" (empty string). Additionally, only prod-sbx has a value defined for this in SSM, "S3". However, a comment indicates the default (assuming no value) is "Random"
Pipeline Application rda/grpc/inprocess_server/s3/region RDA_GRPC_INPROC_SERVER_S3_REGION SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_rda_grpc_inproc_server_s3_region') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 66 Ansible Templated Shell data_pipeline_rda_grpc_inproc_server_s3_region is undefined in SSM for ccw-type Pipelines, and the default in ops/ansible/roles/bfd-pipeline/defaults/main.yml is "" (empty string). Additionally, only prod-sbx has a value defined for this in SSM. However, a comment indicates an absent value is valid
Pipeline Application rda/grpc/inprocess_server/s3/bucket RDA_GRPC_INPROC_SERVER_S3_BUCKET SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_rda_grpc_inproc_server_s3_bucket') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 67 Ansible Templated Shell data_pipeline_rda_grpc_inproc_server_s3_bucket is undefined in SSM for ccw-type Pipelines, and the default in ops/ansible/roles/bfd-pipeline/defaults/main.yml is "" (empty string). Additionally, only prod-sbx has a value defined for this in SSM. However, a comment indicates an absent value is valid
Pipeline Application rda/grpc/inprocess_server/s3/dir RDA_GRPC_INPROC_SERVER_S3_DIRECTORY SSM('/bfd/${env()}/pipeline/shared/sensitive/data_pipeline_rda_grpc_inproc_server_s3_directory') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 68 Ansible Templated Shell data_pipeline_rda_grpc_inproc_server_s3_directory is undefined in SSM for ccw-type Pipelines, and the default in ops/ansible/roles/bfd-pipeline/defaults/main.yml is "" (empty string). Additionally, only prod-sbx has a value defined for this in SSM. However, a comment indicates an absent value is valid
Pipeline JVM/Launcher env_name BFD_ENV_NAME SSM('/bfd/${env()}/nonsensitive/common/env_name_std') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 71 Ansible Templated Shell
Pipeline Launcher N/A JVM_ARGS "-Xms${(ansible_memtotal_mb() * 0.80) - 2048}m -Xmx{(ansible_memtotal_mb * 0.80) - 2048}m -XX:+PreserveFramePointer" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 78 Ansible Templated Shell Adapted from ops/terraform/services/pipeline/user-data.sh.tftpl:40
Pipeline Launcher paths/files/launcher_script BFD Pipeline Script Path on Host ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 80 Ansible Templated Shell Not a real variable or parameter, but is included here for completeness
Pipeline Launcher paths/dirs/tmp -Djava.io.tmpdir "${SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_dir')}/tmp" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 82 Ansible Templated Shell Adapted from extra_vars.json constructed at ops/terraform/services/pipeline/user-data.sh.tftpl:43
Pipeline Launcher java/jboss/logging_provider -Dorg.jboss.logging.provider "slf4j" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 82 Ansible Templated Shell
Pipeline Launcher paths/files/launcher_log BFD Pipeline Script Log Redirection Path "${SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_dir')}/bluebutton-data-pipeline.log" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline-service.sh.j2 83 Ansible Templated Shell Not a real variable or parameter, but is included here for completeness
Pipeline Launcher N/A (generated) bfdPipelineAppJar "${dirname('${bfd_repo_root()}/apps/bfd-pipeline/bfd-pipeline-app/src/main/assembly/bin/bfd-pipeline-app.sh')}/bfd-pipeline-app-*.jar" apps/bfd-pipeline/bfd-pipeline-app/src/main/assembly/bin/bfd-pipeline-app.sh 4 Bash Shell Part of launcher script
Pipeline Launcher N/A (generated) classpath "${REF(Pipeline, bfdPipelineAppJar)}:${dirname('${bfd_repo_root()}/apps/bfd-pipeline/bfd-pipeline-app/src/main/assembly/bin/bfd-pipeline-app.sh')}/lib/*" apps/bfd-pipeline/bfd-pipeline-app/src/main/assembly/bin/bfd-pipeline-app.sh 5 Bash Shell Part of launcher script
Pipeline Launcher java/app_main_class mainClass "gov.cms.bfd.pipeline.app.PipelineApplication" apps/bfd-pipeline/bfd-pipeline-app/src/main/assembly/bin/bfd-pipeline-app.sh 6 Bash Shell Part of launcher script
Pipeline Launcher systemd/working_dir WorkingDirectory SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_dir') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline.service.j2 7 Ansible Templated INI/Config Part of systemd service definition template
Pipeline Launcher systemd/exec_start ExecStart "${SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_dir')}/bfd-pipeline-service.sh" ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline.service.j2 8 Ansible Templated INI/Config Part of systemd service definition template
Pipeline Launcher systemd/user User SSM('/bfd/${env()}/pipeline/shared/nonsensitive/data_pipeline_user') ops/ansible/roles/bfd-pipeline/templates/bfd-pipeline.service.j2 9 Ansible Templated INI/Config Part of systemd service definition template
Migrator Application db/password DATABASE_PASSWORD SSM('/bfd/${env()}/sensitive/migrator/db_migrator_db_password') ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 3 Ansible Templated Shell
Migrator Application db/url DATABASE_URL jdbc:postgresql://${rds_writer_endpoint()}:5432/fhirdb ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 4 Ansible Templated Shell Defined in ops/terraform/services/migrator/user-data.tftpl:29. See also: ops/terraform/services/migrator/main.tf:102
Migrator Application db/username DATABASE_USERNAME SSM('/bfd/${env()}/sensitive/migrator/db_migrator_db_username') ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 5 Ansible Templated Shell
Migrator Application db/max_connections DATABASE_MAX_POOL_SIZE Undefined ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 12 Ansible Templated Shell Is not defined in SSM, in Ansible role defaults or anywhere else. Logic in Migrator service script defaults it to empty string, and a comment indicates that the application defaults to 1 when this environment var is undefined
Migrator Application db/auth_type DATABASE_AUTH_TYPE currently undefined Ansible Templated Shell Always undefined for now. Possible values are JDBC or RDS.
Migrator Application sqs/queue_name DB_MIGRATOR_SQS_QUEUE SSM('/bfd/${env()}/nonsensitive/migrator/sqs_queue_name') ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 14 Ansible Templated Shell There is some conditional logic that omits this environment variable if a Terraform variable, migrator_monitor_enabled, is false. However, it seems this flag is only ever false for the Ansible tests, and so this variable is essentially never omitted
Migrator Application new_relic/metrics/license_key NEW_RELIC_METRIC_KEY Undefined ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 17 Ansible Templated Shell
Migrator Application new_relic/metrics/host NEW_RELIC_METRIC_HOST Undefined ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 21 Ansible Templated Shell
Migrator Application new_relic/metrics/path NEW_RELIC_METRIC_PATH Undefined ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 25 Ansible Templated Shell
Migrator Application new_relic/metrics/period NEW_RELIC_METRIC_PERIOD Undefined ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 29 Ansible Templated Shell
Migrator Application ??? new_relic/app_name NEW_RELIC_APP_NAME Ansible Templated Shell Not currently being set for migrator although migrator supports using it.
Migrator Launcher ??? paths/dirs/logs LOGS_DIR SSM('/bfd/${env()}/nonsensitive/migrator/db_migrator_dir') ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 32 Ansible Templated Shell
Migrator Launcher paths/files/launcher_script BFD Migrator Script Path on Host ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 34 Ansible Templated Shell Not a real variable or parameter, but is included here for completeness
Migrator Application N/A (redundant) -DbfdDbMigrator.logs.dir REF(Migrator, LOGS_DIR) ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 35 Ansible Templated Shell
Migrator Launcher paths/dirs/tmp -Djava.io.tmpdir SSM('/bfd/${env()}/nonsensitive/migrator/db_migrator_tmp_dir') ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 36 Ansible Templated Shell
Migrator Launcher paths/files/launcher_log BFD Migrator Script Log Redirection Path "${SSM('/bfd/${env()}/nonsensitive/migrator/db_migrator_dir')}/migrator-log.json" ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator-service.sh.j2 37 Ansible Templated Shell
Migrator Launcher N/A (generated) bfdDBMigratorAppJar "${dirname('${bfd_repo_root()}/apps/bfd-db-migrator/src/main/assembly/bin/bfd-db-migrator.sh')}/bfd-db-migrator*.jar" apps/bfd-db-migrator/src/main/assembly/bin/bfd-db-migrator.sh 4 Bash Shell Part of launcher script
Migrator Launcher N/A (generated) classpath "${REF(Migrator, bfdDBMigratorAppJar)}:${dirname('${bfd_repo_root()}/apps/bfd-db-migrator/src/main/assembly/bin/bfd-db-migrator.sh')}/lib/*" apps/bfd-db-migrator/src/main/assembly/bin/bfd-db-migrator.sh 5 Bash Shell Part of launcher script
Migrator Launcher java/app_main_class mainClass "gov.cms.bfd.migrator.app.MigratorApp" apps/bfd-pipeline/bfd-pipeline-app/src/main/assembly/bin/bfd-pipeline-app.sh 6 Bash Shell Part of launcher script
Migrator Launcher systemd/working_dir WorkingDirectory SSM('/bfd/${env()}/nonsensitive/migrator/db_migrator_dir') ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator.service.j2 6 Ansible Templated INI/Config Part of systemd service definition template
Migrator Launcher systemd/exec_start ExecStart "${SSM('/bfd/${env()}/nonsensitive/migrator/db_migrator_dir')}/bfd-db-migrator-service.sh" ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator.service.j2 7 Ansible Templated INI/Config Part of systemd service definition template
Migrator Launcher systemd/user User "bb-migrator" ops/ansible/roles/bfd-db-migrator/templates/bfd-db-migrator.service.j2 8 Ansible Templated INI/Config Part of systemd service definition template. Value not in SSM, default is defined at ops/ansible/roles/bfd-db-migrator/defaults/main.yml:4
Clone this wiki locally