ProLens

Security

Read-only access, AES-256-GCM credentials, no admin backdoors, and SOC 2 in progress.

ProLens is built around a few hard rules. They are not policy. Every one is enforced in code.

Read-only by design

ProLens only reads from your PSA, CRM, and accounting systems. The adapter interface exposes fetchProjects, fetchInvoices, fetchTimeEntries, fetchPeople, fetchDeals, and fetchBookings. There are no corresponding create*, update*, or delete* methods anywhere in the codebase.

Your data is encrypted at rest

Your financial data, client names, team member information, and cost rates are encrypted at the field level using AES-256-GCM before they reach our database. Each tenant gets its own encryption key, generated the moment you connect your platform. A database backup or unauthorized access to our infrastructure would expose only encrypted text, not your actual data.

With Bring Your Own Key (BYOK) encryption, you can connect your own key from AWS KMS, Google Cloud KMS, or Azure Key Vault. When BYOK is enabled, ProLens never possesses your key. Revoke it, and your data becomes permanently unreadable.

ProLens syncs your data every 15 minutes and refreshes it with the latest from your platform. When you disconnect ProLens, all your data, encryption keys, and cache entries are permanently deleted.

Credentials encrypted

PSA credentials use AES-256-GCM envelope encryption: each row gets its own data encryption key (DEK), the DEK is wrapped with a master key (KEK), and the master key lives in the platform environment. The raw token is never echoed back through the UI and is decrypted only at the moment ProLens needs to make a request to your PSA. With BYOK enabled, even this credential encryption uses your own key, giving you full control over every encrypted value in ProLens.

Every access is logged

The Security audit log shows every read of your PSA data, by sync jobs, AI pipelines, cache rebuilds, and individual users, with a timestamp, the accessor (system / user / AI), the action, and the scope of data touched. Logs are retained for 90 days.

No admin backdoors

ProLens staff cannot access your tenant data without explicit, time-limited permission. The codebase has no "impersonate", "view as tenant", or "switch tenant" code paths. Even users with the PLATFORM_ADMIN role see only their own tenant's data, because tenant scope is resolved from the signed-in user's JWT at every database query. This is enforced architecturally, not by policy.

With Bring Your Own Key encryption enabled, even infrastructure access cannot decrypt your data. Your key never touches our systems, so there is no path, technical or human, for a ProLens employee to read your information.

AI never sees real names

Before any data leaves ProLens for AI analysis, client names, project names, and people names are replaced with opaque tokens. The AI sees structure (counts, dollars, ratios) but never actual names. Responses are deanonymized on the way back.

In transit

All connections to and from ProLens use HTTPS. TLS is terminated by Vercel at the edge. Connections from ProLens to your PSA are HTTPS as well.

SOC 2

SOC 2 Type I is in progress. The subprocessor list and architecture diagrams are at prolens.io/security.

Configuring access yourself

Signed-in administrators can review the audit log and adjust data visibility in Settings > Security Settings and Settings > Data Visibility.

On this page