Every actor — human or agent — passes through the same layers of access control. From the menu they see, to the tabs they can open, to the fields they can read or edit, to every API and MCP route they hit. All data filtering happens on the server, so the answer to “can this employee see this?” is the same whether they ask through the UI, the API, or their agent.
A request from a logged-in user clicking a button — or an agent calling an MCP tool — passes through the same checks, in the same order, top to bottom. Each layer can stop the request cold.
Every field on an employee record — system or custom — has independent view and edit permissions, per role. You don't grant access to the “employee record;” you grant access to the specific properties the role should see and the specific ones they should be able to write.
Annual independent audit. Report available on request behind a short form. Encryption in transit (TLS 1.3) and at rest (AES-256). Quarterly key rotation. Role-based access with audit on every permission change. Full audit log export to your SIEM.