Architecture Decision Record

ADR-0025: Zone Names Are Deployment Configuration, Not Protocol Enums

Status: Accepted · Date: 2026-03-06

Status: Accepted

Date: 2026-03-06

Context

BSFG facts cross boundaries between zones such as Enterprise, Cloud, IDMZ, PlantA, and PlantB. Those names are operationally important, but they are not universal constants. Different deployments may have different zone topologies, names, and trust layouts.

The architecture therefore needs to decide whether zone identity should be hard-coded into the protocol as enums or treated as deployment-specific configuration.

This decision affects:

Options Considered

Option Description Benefits Drawbacks
Fixed protocol enum Define zones as a closed enum such as external, internal, enterprise, plant_a, plant_b.

|

| | Implicit zone from connection only | Omit zone fields from the envelope and infer origin/destination solely from mTLS identity or network endpoint. |

|

| | String zone names validated against deployment policy (Selected) | Use envelope fields such as from_zone and to_zone as strings whose allowed values are deployment configuration, validated against authenticated peer identity. |

|

| | Hierarchical zone path model | Encode zones as structured paths such as enterprise/idmz/plantA/line3. |

|

|

Decision

BSFG treats zone names as deployment configuration, not protocol enums.

from_zone : string
to_zone   : string

Examples of valid deployment-specific zone names include:

Enterprise
Cloud
IDMZ
PlantA
PlantB
QC-Lab
Vendor

The envelope carries these as explicit metadata so that replay, diagnostics, and retained facts preserve boundary context.

However, zone strings are not self-authenticating. Implementations must validate that the authenticated peer is authorized to assert the declared origin zone and to target the declared destination zone.

Consequences

Benefits:

Tradeoffs: