30 Days Gen AI Risk Trial -Start Now
Skip to main content

Developer data protection

Protect company data in AI coding

Start by mapping how a developer’s task sends data to AI: typed prompts, selected code, repository context, terminal output and connected tools. Approve the data and account, choose controls for each path, then run a small synthetic pilot. A tool name or no-training statement alone does not establish that company data stays within your intended boundary.

For CISO and engineering leader

Aona field notesD01
Pilot decision
One task. Every data path.

Choose the workflow before choosing the control.

Synthetic planning examples. No installed-product tests or results are included.

01

Start with a real engineering task

Pick a task your team already wants to complete: explain a build failure, improve a public utility function or draft a test. Name the developer, approved client and repository owner. This turns “allow AI” into a decision that engineering and security can review together. A pilot covering one local editor does not automatically approve its command-line or cloud agent.

Record what the task needs and what it can do without. A stack trace may need an exception name and two frames, but no customer record. A code explanation may need a short function, but no internal configuration. Agree the minimum useful input before adding controls.

Source context: Cursor: Privacy and Data Governance · OpenAI: Agent approvals and security

02

Follow the information into context

A developer can intentionally paste a snippet while the client supplies additional context. Repository search, an attached file, a shell result or a connected service can introduce material that was absent from the original prompt. Ask where each read happens and which system receives the result.

Use the map below to identify a control owner. Employer permission governs disclosure. Client permissions govern access. Provider terms govern processing and retention. Endpoint controls may evaluate supported submissions. Each answers a different part of the buying question.

Follow the information into context
Source/inputClient/runtimeRecipient or boundary to identifyReview owner
Selected code or logBrowser or editorModel provider and retained transcriptData owner and endpoint security
File or terminal resultLocal agentContext sent by the selected clientDeveloper platform and client administrator
Connected service dataMCP or app toolService, tool result and model contextService owner and identity administrator
Repository cloneCloud agent environmentCloud disk, model provider and snapshotsCloud and repository owner

Source context: Cursor: Privacy and Data Governance · OpenAI: Agent approvals and security

03

Choose a control for the exposure

For restricted source files, start with access and context controls. For unnecessary identifiers in an otherwise useful log, minimise the input and evaluate the supported submission path. For an external connector, review its identity and permissions. Moving a task to a cloud agent introduces a separate execution environment rather than extending the laptop’s boundary.

Keep controls complementary. A no-training commitment does not authorize an employee to disclose proprietary code. A filesystem rule does not describe every connected service. A recorded AI event does not prove that a policy evaluated or blocked its content.

Permitted work
Specify data classes and approved accounts so developers know what they can use.
Restricted data
Identify both the source location and the path through which it could enter context.
Evidence
Define the observable result before choosing a test or interpreting an event.

Source context: Cursor: Privacy and Data Governance · OpenAI: Agent approvals and security

04

Build a small, useful pilot

The download contains a task-selection sheet, a data-path register and four obviously synthetic markers representing code, secrets, logs and repository context. They contain no customer information or working credentials. They help organise a test; they are not proof that a detector recognises a real data class.

For each selected path, write the policy you intend to exercise, its prerequisite and the expected employee experience. Ask the control owner whether the fixture can trigger that policy. Keep the observed result blank until a real test is performed. Record allowed, denied, approval requested or not evaluated, with the client version and evidence location.

Source context: Aona: AI security coverage

05

Approve the scope you can support

Close the pilot with a narrow decision: approved task, data classes, account, client, environment and responsible owner. An unexplained result is a reason to investigate that path, not a reason to label the whole product safe or unsafe. Link the detailed client tests when the team needs them.

Revisit the decision when developers add a CLI, change models, connect a service or move a repository into a remote environment. Keep a useful permitted path available while resolving a restricted one. That makes the outcome an operational agreement rather than a policy document nobody can follow.

Put it into practice

Developer data-path pilot pack

Select one task, assign its control owners and record a scoped pilot decision.

Synthetic planning examples. No installed-product tests or results are included.

Developer data-path pilot pack
Input sourceClient/runtimeRecipient and retained copy to review
Synthetic codeSelected editor or CLIModel destination and transcript
Fake secret markerSupported test input pathControl boundary before submission
Synthetic test tracePaste or file uploadProvider request and retained history
Repository markerContext or file-reading toolTool result and downstream context

Work through your review

Use the checks to organise the evidence you need. Save your selections in Word, then add your notes and evidence. Your selections stay in this tab until you download them.

0 of 3 reviewed

Examples and review material

Read the detail here, or keep the PDF, editable Word document and spreadsheets together.

Download complete pack (ZIP)
Developer data-path pilotRead

All values are synthetic. Use an isolated test repository and an approved test account. No file runs commands, contacts a service or configures a product.

  1. Choose one task in the “Pilot decision” section.
  2. Complete the client and owner fields in data-path-register.csv.
  3. Select only the relevant labels from synthetic-pilot-markers.json. They are not real credentials and may not trigger a data classifier. Agree a supported test rule or representative safe fixture with its owner.
  4. If you manually test an approved AI client, use only these synthetic inputs. Record what actually happened and preserve the exact scope.
  5. Route deeper client-specific questions to the linked guides; do not broaden the pilot by adding new accounts or connectors.
Guide and source references

Canonical guide: https://aona.ai/solutions/ai-data-security-for-developers/ Source review: 2026-09-21

  • Cursor: Privacy and Data Governance: https://cursor.com/docs/enterprise/privacy-and-data-governance
  • OpenAI: Agent approvals and security: https://learn.chatgpt.com/docs/agent-approvals-security
  • Aona: AI security coverage: https://aona.ai/resources/ai-security-coverage/
Data path registerRead
Detailed example records
TaskInput sourceInput pathData ownerClient and versionExecution locationRecipient or destinationRetained copy to reviewControl boundaryIntended controlExpected outcomeObserved outcomeEvidence
Explain a synthetic test failuretoy test tracepasted logASSIGNRECORDRECORDRECORDclient and provider historyDEFINESELECTDEFINEUNTESTED
Explain a synthetic functiontoy functionselected codeASSIGNRECORDRECORDRECORDclient and provider historyDEFINESELECTDEFINEUNTESTED
Find a synthetic markerfixture folderrepository contextASSIGNRECORDRECORDRECORDtool result and downstream contextDEFINESELECTDEFINEUNTESTED
Review a connected responseapproved synthetic service dataapproved tool onlyASSIGNRECORDRECORDRECORDservice log and model transcriptDEFINESELECTDEFINEUNTESTED
Synthetic pilot markersRead

Notice: Synthetic labels only. No credential, customer record or test result.

Code: def synthetic_total(values): return sum(values)

Secret: NOT_A_CREDENTIAL_D01_CANARY

Log: SYNTHETIC_D01_TEST_TRACE File test_total.py, line 6: synthetic_total(None) File example.py, line 2: return sum(values) TypeError: NoneType object is not iterable Expected test behaviour: return 0 for an empty input; decide separately whether None is valid.

Context: SYNTHETIC_D01_CONTEXT_MARKER

Pilot decisionRead

Task: ____________________ Business purpose: ____________________ Permitted inputs: ____________________ Restricted inputs: ____________________ Account, client/version and OS: ____________________ Local, remote or cloud execution: ____________________ Expected control and prerequisite: ____________________ Observed result: UNTESTED Evidence location: ____________________ Decision: NOT YET REVIEWED Owner and review date: ____________________ Recheck triggers: new client, model, connector, repository location or policy.

Before you proceed

Keep these distinctions clear

Approving a brand
Approve a task and client configuration. The same brand can expose editor, CLI and cloud paths.
Calling a marker a DLP result
A fake label tests access only unless a suitable policy trigger has been established.

Apply it to employee AI use

Bring your actual data path.

Aona secures employees’ AI use on supported, installed endpoint paths.

Native controls vary by provider, release and input path. Agent inspection is limited rollout; this pack does not imply agentless cloud protection.

Bring the completed data-path register and one synthetic task to a scoped developer data-protection demo.

Review your use case

FAQ

Questions for this decision

Should we ban every AI coding assistant until the pilot ends?
Use your organisation’s risk decision. A useful pilot defines permitted low-risk work and holds back restricted inputs until their paths are understood. This guide does not decide whether a particular employer can disclose its code.
Does no training mean the code stays on the laptop?
No. Training, transmission and retention are separate questions. Review the selected provider, client, model and account terms, including connected services and cloud environments.
Can we reuse one result for every developer?
Only where the relevant configuration and task are equivalent. Record differences in account, OS, client version, execution location and policy. Test a changed path before extending the decision.
Does this pack prove Aona protects our coding client?
No. It is an unexecuted planning asset. Confirm the installed Aona release and supported path, agree an appropriate synthetic test, then record the employee experience and event evidence.

Evidence behind the guide

Sources and scope

Prepared by Aona. Sources checked 2026-09-21. The cited material supports the specific points below; it does not certify a product or your use case.

  1. Cursor: Privacy and Data Governance

    Distinguishes local-client data requests, provider handling and cloud-agent environments.

    vendor · checked 2026-09-21
  2. OpenAI: Agent approvals and security

    Separates sandbox, approval and network controls for local and cloud use.

    vendor · checked 2026-09-21
  3. Aona: AI security coverage

    Current public distinction between supported endpoint policy paths and limited-rollout agent inspection.

    vendor · checked 2026-09-21