Security
You are about to give a piece of software your analytics, your CMS login and permission to change your website. These are the specific things it does about that.
- Tenant separation
- Every query is scoped to the organisations you belong to, at the database layer rather than in the interface. A request for something in another organisation returns 404 and not 403 — a 403 confirms the thing exists, and whether a competitor is a customer of ours is not ours to disclose.
- Credentials
- Google tokens, CMS logins, and your own AI provider keys are encrypted with AES-256-GCM before they are stored, under versioned keys so a key can be rotated without a migration. They are never returned by any API and never shown back to anyone, including us. Delete the connection and the stored credential is destroyed.
- The audit log cannot be edited
- Every change, approval, credential event and administrative action is appended to a hash-chained log. The database rejects updates and deletes to it outright, so a record cannot be altered afterwards — not by an administrator, not by us. Two consequences follow, and both are deliberate: a mistake is corrected by a second entry rather than a rewrite, and no secret may ever be written to it, so the log records credential field names, never values.
- Permissions are checked on the server
- Fourteen roles, granular permissions, and a check on every action at the point it happens. Nothing is authorised because a button was visible; hiding a control is a courtesy to the user, not a security measure, and the software treats it that way.
- Two platform roles, and what they do not reach
- Your organisation's roles govern your data. Our platform roles govern the platform — deployments, plans, system health. A platform role does not grant access to a customer's data, and there is no impersonation feature: we cannot sign in as you.
- Sign-in
- Passwords are hashed with bcrypt, sessions are short-lived JSON web tokens, and time-based two-factor authentication is available to every account and expected on any account with administrative rights.
- Client portal links
- An agency client portal has no account and no password: the link is the credential. It is shown once when created, it is read-only, it is scoped to one client's websites, and it can be revoked at any moment. Treat it as you would a password, issue one per client, and revoke it when the engagement ends.
- Your data leaving
- Export is available on every plan and stays available when an account is past due. We do not withhold data over a bill.
Reporting something
If you believe you have found a vulnerability, write to security@seogrowpilot.com with enough detail to reproduce it. We will not pursue anyone who reports a genuine finding in good faith and gives us a reasonable opportunity to fix it first.