The short answer
Local reference edits live in the shot scene, not the source asset — so the real exposure risk is unreviewed overrides and bad paths, not artists silently rewriting shared files. Audit paths with referenceQuery, enforce a publish-only workflow for persistent changes backed by read-only source permissions, and never disable namespaces if you need cross-shot traceability.
Auditing reference paths
Paths alone don't prove confidentiality — a studio-internal path can still be world-readable — so treat this as a two-step check: resolve the paths, then review the ACLs on the directories they point to.
import maya.cmds as cmds
for ref in cmds.ls(references=True):
resolved = cmds.referenceQuery(ref, filename=True)
unresolved = cmds.referenceQuery(ref, filename=True, unresolvedName=True)
print(ref, resolved, unresolved)
Compare resolved paths against your approved asset-location list. Unresolved or remapped paths usually mean a misconfigured project workspace or missing path-mapping rules, and those are exactly the cases where a reference silently points somewhere unintended. Follow up with an actual permission review on the target directories — path hygiene and access control are separate problems.
Preventing unreviewed persistent edits
Maya itself does not gate reference edits, so enforcement has to come from pipeline controls. The standard governance pattern: artists keep local edits for shot-specific work, but anything meant to persist must be published back to the controlled source through review. Practical controls, in order of reliability:
- File-system permissions — the shared asset directory is read-only for artist accounts; only a publishing account can write. This is the strongest control because it doesn't depend on artist behavior or scripts.
- Save/publish callbacks — site-specific tooling that flags or blocks scenes containing edits to locked references. Effective but only as strong as your tooling.
- Locked reference nodes — reduces accidental edits but is easy to work around; treat as a speed bump, not a gate.
Before delivery or publish, open the Reference Editor's offline edits list to see exactly which attributes the shot overrides locally versus inherits from the source. That's the practical audit tool for "what did this shot actually change."
Namespaces and traceability
With namespaces enabled (Maya's default uses the file basename), every referenced node maps back to its source via cmds.referenceQuery(node, namespace=True), which is what makes cross-shot traceability reports possible. Disabling namespaces — or allowing clashing ones — destroys that mapping and invites node-name collisions.
Two important caveats: traceability breaks if artists import references (which bakes nodes into the scene) or flatten references before delivery. If your delivery pipeline flattens, run traceability reports before that step.
Verifying the setup
- Run the path audit above on a sample of shots and diff against approved locations.
- From an artist account, attempt to save over a source asset — it must fail if permissions are correct.
- Confirm every referenced node's namespace resolves back to its reference.
- Review the offline edits list on a delivered shot to confirm overrides are intentional.
Command availability and reference-editing behavior vary across Maya versions, so validate these steps against the version in production rather than assuming uniform support.