# Configuration Externalization

Record: `arch:configuration-externalization`
Kind: principle
Layer: [Resource Core](https://banes-lab.com/records/layer/resource-core.md)
Severity: mandatory
Scope: application, deployment, runtime
Canonical: https://banes-lab.com/ontology#arch-configuration-externalization

## Repair

- Refactored by: Move to Config, Add Validation
- Detected by: hardcoded URLs/secrets/paths
- Violated by: environment values hardcoded in code
- Measured by: externalized config coverage
- Enforced by: secret/config scans

## requires

- [Config Schema](https://banes-lab.com/records/lex/config-schema.md)
- [Secure Config Handling](https://banes-lab.com/records/lex/secure-config-handling.md)

## reinforces

- [Portability](https://banes-lab.com/records/arch/portability.md)
- [Environment Parity](https://banes-lab.com/records/arch/environment-parity.md)

## enables

- [Environment-Specific Deployment](https://banes-lab.com/records/lex/environment-specific-deployment.md)

## conflicts-with

- [Hardcoded Configuration](https://banes-lab.com/records/arch/hardcoded-configuration.md)

## tensions-with

- [Config Sprawl](https://banes-lab.com/records/lex/config-sprawl.md)

## tensions

- [Configuration Externalization Config Sprawl](https://banes-lab.com/records/tension/config-sprawl-configuration-externalization.md)

## referenced-by

- [Environment Parity](https://banes-lab.com/records/arch/environment-parity.md)
