✓ GDPR
DPA available · EU SCCs
✓ CCPA
45-day request handling
SOC 2 — planned
Not certified · controls built
99.5% target
Production uptime
🛡️
No inbound firewall ports required.
The on-prem agent polls your license server locally and pushes data out over HTTPS — your perimeter firewall doesn't need a new inbound rule, and your security team doesn't need to approve one.

What we will never do

Security pages describe controls. Controls change. These do not — they are the reason the controls exist, and we will write every one of them into your contract.

We will never take money from a software vendor.

No referral fees, no partner programme, no marketplace revenue share, no sponsored placement, no paid certification, no reseller margin on products we evaluate for you. An auditor paid by the audited is not an auditor. Ask every other vendor in this category the same question, and ask for it in writing.

We will never sell, rent, or share your data.

Not to software vendors, not to resellers, not to data brokers, not to anyone. This includes "anonymised" and "aggregated" forms — at the granularity of an enterprise licence estate, an organisation with an unusual configuration is identifiable to anyone who knows the market, and the vendor knows the market better than anyone. If we ever build pooled benchmarks, participation will be opt-in, every contributor will be a beneficiary, and the data will only ever move toward buyers.

We will never measure individual people.

No per-engineer productivity scores, no utilisation rankings, no "who is idle" report naming a person. Licence usage disaggregated to a named individual is employee monitoring whatever the intent. Customers ask for this and some would pay for it. The answer is no.

We will never make it hard to leave.

Complete CSV export of everything, documented schema, no "export is an enterprise feature". Cancel in the app — no retention call, no support ticket, the same number of clicks as signing up. Your export access survives a billing dispute; we do not hold your evidence hostage over an invoice.

We will never invent a number, or sell you anything with fear.

No "savings identified" counter for money nobody saved. Realised savings are labelled realised and trace to an executed action; opportunities are labelled opportunities. And we will not run the audit-terror sales motion this industry is known for. If you have genuine exposure we will tell you once, plainly, with the evidence, and let you decide.

We will never help a vendor build a case against you.

If a software vendor subpoenas us we will notify you wherever we are legally permitted to, and we will resist. More usefully: we hold as little as the product can function on, so there is little to hand over. Note that a computed compliance position is a record of what you knew and when — talk to your counsel about what you want retained, and we will configure retention to match.

1. What data we receive

Category Examples Source
Account dataName, work email, company nameSign-up form
License usageDaily seat counts, peak concurrency, denials, usernamesSmart Upload, OAuth, on-prem agent
Contract metadataVendor names, renewal dates, costs, contract PDFsYou enter / upload
TelemetryPage views, funnel events, error stacks — first-party only, stored in our own database. No Google Analytics, no Sentry, no third-party tag of any kind.Automatic
What we do NOT receive: your source code, project files, models, message content (Slack/Teams), email bodies, calendar events, files outside license-daemon output. The OAuth scopes we request are read-only and limited to concurrent-license / activity reporting.
A note on usernames. Your license daemon emits the user who holds each checkout, so the agent can see them. We aggregate to teams and products, and we never build individual scoring — but the identifiers do reach us today. If your works council, CSE, or privacy office requires it, we will pseudonymise at the agent so the identifiers never leave your network. Ask, and it is configured before you send us anything.

2. Architecture

The shape of the system is itself a security decision. The most reliable way to protect data is not to hold it.

  • On-prem agent — a ~200-line Python script using only the standard library. It runs inside your network, polls your FlexLM / RLM / Sentinel daemon every 5 minutes, and pushes summary records out over HTTPS. It opens no inbound port, accepts no commands, and has no remote-execution path. Your firewall needs no new inbound rule. Ask us for the source and have your security team read all of it.
  • Outbound only — every connection is initiated from inside your perimeter. We never connect in.
  • Read-only by construction — the agent runs the license daemon's status command. It cannot check out, release, or reserve a license, and it cannot change your license server's configuration.
  • Per-tenant isolation — every database query is scoped by org_id. There is no cross-organisation query path in the application.
  • Three ways in, all of them yours to choose — the agent, read-only OAuth for SaaS seats, or a file you upload. You are never required to grant OAuth to use the product; the engineering path needs no credentials of yours at all.

2. Where your data lives

  • Application + database: Render.com, US Oregon region. Render is SOC 2 Type II attested.
  • Database: PostgreSQL managed by Render, encrypted at rest by default.
  • Customer-uploaded contract documents: stored as binary blobs in the same Postgres instance.
  • AI classification: file metadata + small content samples sent to Anthropic (Claude). Anthropic does not retain or train on your data.
  • No data leaves these providers. No third-party analytics, ad networks, or unmanaged servers.

3. Encryption

In transit
TLS 1.2+ everywhere
No plaintext fallback. HTTPS-only on every public endpoint, agent ↔ API channel included.
At rest
AES-256 on Postgres volume
Render-managed encryption keys. Application secrets stored in Render's environment vault, isolated from the database.
Passwords
bcrypt (cost factor 12)
Even our own engineering team cannot recover a plaintext password.
Agent API keys
SHA-256 hash storage
Plaintext shown once at creation. Stored only as hashes. Revocation is immediate.
OAuth tokens
Encrypted at rest with a dedicated key
If you connect a SaaS tool, the refresh token is the most sensitive thing we hold — so it is encrypted at the application layer before it reaches the database, under a key held separately from the database itself. A database dump alone does not yield a usable token. Disconnecting an integration destroys the token immediately. You can revoke us from your own identity provider at any time, without asking us.

4. Access controls

  • Authentication — email + password, JWT-based session tokens. TOTP MFA available today. SSO (SAML/OIDC) is on the roadmap, not shipped — see below.
  • Authorization — three roles: Owner, Admin, Viewer. Multi-tenant isolation by org_id on every database query.
  • Internal access — production access is held by the smallest number of operators the service can run with, under least privilege. There is no shared administrative account and no support back door. Every access is logged.
  • API keys — scoped to a single organization, revocable instantly.
  • Audit log — append-only. Every login, change, key event recorded. Owners and Admins can export to CSV.

5. Data processing & privacy

You are the controller. We are the processor. That is not a formality — it decides who gets to make decisions about your data, and the answer is you.

  • DPA with EU Standard Contractual Clauses — available on request, signable before you send us anything. Read it here.
  • Purpose limitation — your data is used to operate the service for you. It is not used to build products for anyone else, and it is not used to train models.
  • Retention — active for the term, then 30 days to export, then deleted from active systems within 30 days and from backups within 90 as they age out. Written confirmation of deletion on request.
  • Data subject requests — export, correction, and deletion are self-serve in the app. Where they are not, we handle them within 45 days.
  • Delete on demand — you do not have to wait for a term to end. Ask and we delete.
  • Sub-processor changes — at least 14 days' advance notice, always.

6. Responsible AI

LicensePulse uses a language model in two narrow places: classifying the columns of a file you upload, and answering questions about your own portfolio in the assistant. Here is exactly what that means.

  • What is sent — file metadata and small content samples for classification; your portfolio summary figures for the assistant. Never your contract PDFs in bulk, never raw daemon logs wholesale.
  • Who processes it — Anthropic, under a data-processing agreement. Your data is not retained by them and is not used to train models.
  • The model never decides anything on its own. It classifies and it summarises. Every figure it reports comes from your data in our database — it does not estimate, and it is not asked to.
  • Show your work — where the assistant states a number, you can open the underlying product and see the check-out records it came from. A number you cannot trace is a number you cannot defend in a negotiation, which makes it worse than no number.
  • It says when it does not know. We would rather return "the data does not cover that period" than a confident answer built on a gap.
  • No AI-driven decisions about people. The model is never used to evaluate, rank, or score an individual employee. See what we will never do.
  • You can turn it off. The assistant and AI classification can be disabled for your organisation; the rest of the product works without them.

7. Sub-processors

A small, deliberately narrow set of vendors. Each is bound by a written data-processing contract.

Vendor Purpose Location
RenderApplication hosting + PostgresUSA
AnthropicAI classification of uploaded filesUSA
StripePayments (we never see card numbers)USA
CloudflareDDoS protection, DNS, WAFGlobal anycast
Microsoft / Salesforce / Atlassian / GitHub / Slack / GoogleOnly when you connect them via OAuthPer provider

We give customers at least 14 days' advance notice of any new sub-processor. Subscribe by emailing privacy@licensepulse.app.

8. Incident response

  • • Documented incident-response playbook with defined severity levels.
  • • Affected customers notified within 72 hours of confirmed discovery (GDPR-aligned, faster than CCPA's "without unreasonable delay").
  • • Notification: email to primary contact + in-app status banner.
  • • Post-mortem with root cause + remediation plan within 14 days.

Report a vulnerability: security@licensepulse.app. We respond within 5 business days and credit responsible disclosure publicly.

9. Backups & disaster recovery

Backups
Daily, 7-day retention
PITR
Within 24 hours
RTO
4 hours
RPO
24 hours

A backup is not a backup until you have watched the data come back. Restore drills run quarterly from launch — we do not claim a drill history we do not have.

10. Compliance posture

Standard Status Notes
GDPR✓ CompliantDPA available · EU SCCs incorporated
CCPA / CPRA✓ CompliantPrivacy Policy disclosures · 45-day request handling
SOC 2 Type 1PlannedNot certified. Controls built. Audit starts when a customer requires it.
ISO 27001Not pursuedWill pursue when an enterprise customer requires it
HIPAA / PCI / FedRAMPOut of scopeDo not upload PHI or payment-card data

11. Company & continuity

LicensePulse is a software company building measurement tools for engineering software licensing. Our contracting entity is named in the Terms of Service, the Privacy Policy, and the DPA — the documents your procurement team will actually sign. More about why we built this.

We are a small team, and we will not pretend otherwise in a security review. Concentration risk is a fair question to ask a company at our stage, so here is how we answer it:

  • You reach people who build the product. Support is not a tier that filters you away from the engineers. A bug reported on Tuesday is not queued behind a roadmap.
  • We do not run a 24/7 on-call rotation. If production breaks overnight in your timezone, it may be some hours before we respond. We would rather say that than sell a service level we cannot measure.
  • You are never trapped. Everything exports at any time, in a documented open format that works without us — your data, your usage history, your evidence packs. If we were to disappear tomorrow you would still walk into your renewal prepared. That is the real answer to the continuity question, and it is why the export commitment above is unconditional.
  • Escrow — for enterprise agreements we will arrange source and data escrow. Ask.

12. Security roadmap

What is shipped, what is not, and what we will do when asked. Nothing in the "planned" column is being sold as though it exists.

Capability Status Notes
Encryption in transit & at restShippedTLS 1.2+, AES-256, OAuth tokens encrypted at the application layer
TOTP multi-factor authShippedAvailable to every plan today
Append-only audit logShippedCSV export for Owners and Admins
Read-only on-prem agentShippedNo inbound ports; source available on request
DPA + EU SCCsShippedSignable before you send us data
Verified restore drillIn progressBackups and PITR configured; documented drill cadence begins at launch
Agent-side pseudonymisationIn progressAvailable on request today; becoming the default
Public status pagePlannedWe removed the badge that claimed one before it existed
SSO (SAML / OIDC)PlannedBuilt when a customer needs it — tell us and we will scope it
SOC 2 Type 1PlannedNot certified. Audit begins when a customer requires it
Penetration testPlannedNo third-party test has been performed. We will not imply one has
ISO 27001Not pursuedWill pursue if an enterprise customer requires it
HIPAA / PCI / FedRAMPOut of scopeDo not upload PHI or payment-card data

13. Reach us