Most teams read the NDA once, sign it, and file it. Then they open a blank architecture diagram and draw as if the two documents have nothing to say to each other. On an applied-research engagement with a major operator in Oman, they were the same document. We signed a mutual NDA six weeks before the technical proposal, and by the time we drew the first system diagram, the storage clause had already made most of the decisions. It did not describe a preference. It described a machine.
One sentence did most of the work, paraphrased from the mutual agreement dated 16 July 2020. Confidential information was to be stored only on local computers or devices at the registered office, and, in the agreement's own words, "not stored on a remote server of any kind." It had to be reachable on the local network but not from the internet. Devices had to be password-protected and locked in a cabinet when idle. The disclosing party kept the right to inspect the premises physically on one month's notice, and to demand the return of all confidential material and a signed certificate that copies had been destroyed. Read those terms as a person, and they are a promise of care. Read them as an engineer, and they are a specification with a build order.
The clause deletes options before you draw anything
The trick to seeing an NDA as architecture is to read each clause as a constraint that removes choices, not one that adds requirements. "No remote server of any kind" is the load-bearing phrase. It does not say "prefer on-prem" or "encrypt in transit." It removes, in a single stroke, every managed cloud data store, every hosted notebook that keeps state, every SaaS labelling tool that uploads your images, and every training job that ships data to a rented GPU. Whatever you build next sits downstream of that deletion. You are no longer choosing an architecture; you are enumerating the small set of designs that survive the clause.
That reframing matters because negotiating the clause away was never on the table. This was active data from a producing field, held by an operator whose obligations run to a national regulator. The confidentiality terms were not a formality to be redlined down. They were the price of the data, and the data was the project. The honest engineering move was to accept the constraint as fixed and let it propagate. The tracer below walks the five clauses that shaped delivery and the five infrastructure decisions each one forced.
From "no remote server" to a private DataOps server
The storage clause removed managed cloud storage, so the dataset needed a home we owned and ran ourselves. That home was a private Seafile DataOps server sitting on a 1TB network backbone with 4TB of redundant SSD. The point is not that Seafile is special; the point is what the clause forbade. A managed object store would have put the confidential images on a remote server by definition, which is exactly the thing the sentence names. A self-hosted, LAN-reachable file server is the smallest artefact that satisfies "stored only on local devices" while still letting a team of engineers share one copy of the data. The clause did not ask for that server. It made every other option non-compliant.
The access half of the clause, LAN-visible but not internet-facing, then reached into the compute. If the data cannot leave the local network, the GPUs that read it cannot either. No cloud training job keeps the data on the LAN, so training ran on machines that shared the network with the data server: a stack of 1080Ti cards at 8GB per machine early on, stepping up to a DGX A100 as the models grew. The compute tier was an economic decision, but the location of the compute was set the moment the data was pinned to the local network.
Inspection rights force a bounded estate
The physical-inspection clause is the one teams overlook, and it has the most quietly demanding architectural consequence. If the disclosing party can walk in on one month's notice and inspect where their data lives, then the estate that holds their data has to be something you can point to and account for completely. A sprawl of half-remembered cloud projects, personal drives, and forgotten scratch buckets is not inspectable. It is not even fully knowable to the team that made it.
So the experiment scaffolding, the load balancers, the test harnesses, the throwaway environments, went into Digital Ocean VPC "Build&Tear" labs kept clean of confidential data. The confidential material stayed on the local, inspectable estate; the disposable engineering ran in isolated VPCs that could be built and torn down without touching a real image. That separation is what makes the one-month-notice clause survivable: it gives the inspection a small, listable perimeter to verify instead of an open-ended question about where the data might have leaked.
Custody and return reach all the way to deployment
Two clauses shaped the far end of the pipeline, where the model meets the client. The custody clause, password-locked and cabinet-secured hardware, meant we could not hand over a model that phoned home or ran somewhere we controlled. Custody follows the software. So the served model shipped as a Docker container that ran in-network inside the client's own closed platform. Inference happens where the data already sits under lock, and nothing is copied outward. The deployment topology is a direct read of the custody terms.
The return-and-certify-destruction clause closed the loop. An obligation to return everything and certify that copies were destroyed is unenforceable on infrastructure you do not fully control, because you cannot certify the destruction of data on a multi-tenant platform whose deletion guarantees are somebody else's. That clause quietly rules out shared tenancy for anything touching confidential material. Every store and lab in the confidential path was single-tenant and teardown-ready, so that when the demand came, destruction could be executed and certified end to end rather than merely asserted.
The general rule, and the compression to a companion piece
Sitting under all of this is a broader question: why confidential subsurface AI tends to end up on-premises at all, and how the cloud-versus-on-prem-versus-hybrid tradeoff shakes out for an operator. We have written that survey separately, and it covers the economics and the deployment blueprint in full; this piece does not re-derive it. The narrower claim here is about mechanism, not preference. The stack was not chosen because on-prem is philosophically better. It was chosen because a specific sentence removed the remote-server option, and once that option is gone, the private data server, the on-network GPUs, the isolated labs, the in-network container, and the single-tenant tenancy are close to the only design that clears every remaining clause.
For an AI vendor negotiating oil-and-gas data terms, the practical takeaway is to read the confidentiality section as your first architecture review, before anyone opens a diagramming tool. Find the phrase that deletes options, usually a storage or hosting clause, and trace it forward. If the terms say the data cannot sit on a remote server, do not cost out a cloud pipeline and hope to negotiate an exception. Cost out the pipeline the clause allows. The NDA is not the paperwork you do before the architecture. On this engagement it was the architecture, written in the language of obligations instead of boxes and arrows.
Limitations
The clause-to-decision mapping in the tracer is our reconstruction of how the confidentiality terms shaped delivery, not a clause of the agreement itself; the NDA specifies obligations, not an architecture. The clause language and the downstream stack are both sourced, from the mutual NDA of 16 July 2020 and from the engagement archive, but the one-to-one causal lines are the argument we are making about them. The engagement described here involved a single operator, a single dataset, and a single jurisdiction, so the specific hardware and vendors are illustrative of one compliant design rather than the only one. A different NDA, with a different deletion, would force a different stack; the transferable part is the method of reading, not the parts list.




