When Building 4 Becomes Building 7: Versioning Location Metadata Before It Versions You
Photo: Tdorante10, CC BY-SA 4.0, via Wikimedia Commons
On a Tuesday morning in October, a facilities manager at a mid-sized logistics company in Columbus updates the corporate space-management system. Warehouse Building 4, long the anchor point for a dozen geofenced access policies, has been consolidated with the adjacent structure and renamed Building 7. The change is accurate. The change is approved. The change is, from a security standpoint, a quiet catastrophe.
Within hours, badge rules scoped to Building 4 stop matching anything. A geofence drawn around the old footprint now covers a parking lot. Delivery drivers with credentials tied to a nonexistent building are denied at the gate, while a contractor badge scoped to a suite number that no longer exists continues to work — because the access-control database never learned about the rename. Nobody filed an incident. Nothing crashed. The system simply drifted.
This is the terraforming problem, and it is far more common than most engineering teams admit.
Why Location Identifiers Rot
Software engineers are familiar with the fragility of identifiers. We learned, sometimes painfully, not to reference records by name. Yet physical and hybrid infrastructure — buildings, suites, docks, data-center racks, even cloud regions — get referenced by human-readable labels constantly, because that's how facilities systems, lease documents, and badge software export their data.
The labels change for reasons that are entirely legitimate:
- Corporate restructuring. After a merger, the Dallas campus becomes the North Dallas Operations Center. Every policy keyed to the old name is now orphaned.
- Renumbering and consolidation. Suites get subdivided. Buildings get merged. The USPS rewrites a ZIP code boundary.
- Vendor migration. A mapping API provider deprecates a place ID or changes its geocoding schema, and stored coordinates silently resolve to a different parcel.
- Cloud deprecation. A region like
us-east-2may be stable, but edge locations, availability zone names, and internal data-center codes are not — and hybrid access policies frequently span both physical and virtual locations.
In each case, one system of record updates while three others do not. The access-control database, the mapping layer, and the facilities management platform each hold a slightly different version of reality. Access policies, which are only as good as their references, start firing against ghosts.
The Silent Failure Mode
What makes naming drift dangerous is precisely that it produces no errors. A policy scoped to "Building 4" doesn't fail loudly when Building 4 disappears — it fails vacuously. Depending on how the rules are evaluated, the result is either over-restriction (legitimate workers locked out, an operations problem) or over-permission (a legacy rule evaluated against a stale default, a security problem).
The second case deserves particular attention. Many access systems include fallback behavior: if a location reference can't be resolved, the policy may be evaluated against a parent scope, a site-wide rule, or a permissive default. Drift plus fallback equals accidental privilege escalation, discovered only during an audit — or after one.
Treat Location Metadata as Versioned Infrastructure
The remedy is conceptual before it is technical: stop treating location names as static labels and start treating them as versioned artifacts with explicit lifecycle. Concretely:
1. Use stable internal IDs, never display names, as policy keys. Every building, suite, dock, and zone should carry an immutable identifier minted by your own system. Human-readable names live alongside as mutable metadata. When facilities renames a building, only the metadata changes; every policy continues to resolve correctly.
2. Version location records, not just the data. When an identifier does change meaning — a renumbering, a footprint change — record it as a new version with an effective date. Policies can then be evaluated against the location schema that was current when they were written, and auditors can reconstruct what any policy meant at any point in time.
3. Reconcile on a schedule, not on an incident. Nightly jobs should diff the facilities system, the mapping API's geocoding results, and the access-control database, flagging any reference that resolves to nothing or to something unexpected. Think of it as terraform plan for your physical estate: a preview of the drift before it becomes the deployed reality.
4. Make deprecation explicit. Cloud providers publish deprecation notices for regions and APIs. Your internal locations deserve the same courtesy. A location should move through states — active, deprecated, retired — with policies required to migrate before the final state, and a hard block on creating new rules against retired identifiers.
5. Map changes to mapping. When a building's footprint changes, redraw the geofence as part of the same change request. Geofences should reference a versioned polygon asset, not a freehand set of coordinates pasted into a policy field.
A Modest Proposal for the Reconciliation Run
Teams looking for a starting point can implement a weekly reconciliation report with three checks: references that no longer resolve, references whose resolved geometry or address has shifted beyond a tolerance threshold, and policies whose scope has become empty due to drift. Route the report to whoever owns the facilities data — not just engineering. The gap between the two teams is usually where the drift lives.
None of this is glamorous. It is bookkeeping with security consequences, which is exactly why it gets neglected. But the organizations that treat their location metadata with the same rigor as their database schemas discover something useful: access policies stop being brittle, audits stop being archaeological digs, and a facilities rename becomes what it should have been all along — a Tuesday morning change, not an incident.
The map and the territory will never agree perfectly. Your job is to make sure they disagree on the record.