<commit_before>title: http4k blog: Add typesafe 12-factor configuration to http4k apps with Environments.
description: An overview of how to configure http4k applications using the http4k-cloudnative module

# Add typesafe 12-factor configuration to http4k apps with Environments.

##### [@daviddenton](http://github.com/daviddenton) 

### Intro
This post covers the various concerns around configuring HTTP apps, and introduces the recommended method for safely 
addressing these when deploying [http4k](https://http4k.org) applications into cloud-native environments using the 
Kotlin type system.

### Concerns when configuring applications
One of the tenets of operating applications according to the principles of [12-factor](https://12factor.net/) applications, 
and especially in containerised cloud-native apps, is to inject all app configuration through the use of environmental 
variables. Additionally, when using more restrictive settings (such as utilising JVM security manager policies or through 
the use of container images which don't provide an OS baseline) it may not be possible to read files from disk, which 
reinforces this approach.
<commit_msg>tweak to post<commit_after>title: http4k blog: Add typesafe 12-factor configuration to http4k apps with Environments.
description: An overview of how to configure http4k applications using the http4k-cloudnative module

# Add typesafe 12-factor configuration to http4k apps with Environments.

##### [@daviddenton](http://github.com/daviddenton) 

### Intro
This post covers the various concerns around configuring HTTP apps, and introduces the recommended method for safely 
addressing these when deploying [http4k](https://http4k.org) applications into cloud-native environments using the 
Kotlin type system.

### Concerns when configuring applications
One of the tenets of operating applications according to the principles of [12-factor](https://12factor.net/), 
and especially in containerised cloud-native apps, is to inject all app configuration through the use of environmental 
variables. Additionally, when using more restrictive settings (such as utilising JVM security manager policies or through 
the use of container images which don't provide an OS baseline) it may not be possible to read files from disk, which 
reinforces this approach.

{'fraction_non_alphanumeric': 0.055053763440860215, 'fraction_numerical': 0.012903225806451613, 'mean_word_length': 5.425414364640884, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1076010', 'n_tokens_mistral': 591, 'n_tokens_neox': 542, 'n_words': 287}