← Back

Security Policy

Effective date: 1 January 2026 · Last updated: 7 May 2026

1. Our Commitment

LilliMad is committed to maintaining the security and integrity of your data. This policy describes the technical and organisational measures we take to protect the platform and the information entrusted to us by our customers.

To report a security concern, contact: [email protected]

2. Authentication & Access Control

Passwords

All passwords are hashed using bcrypt before storage. Plain-text passwords are never written to disk, logs, or transmitted in responses. Password reset flows use short-lived, single-use tokens.

Session Tokens

Sessions are maintained via HttpOnly, SameSite=Lax cookies (access_token for org sessions; platform_token for platform administration). Tokens are signed JWTs with configurable expiry. Tokens are validated server-side on every authenticated request.

Role-Based Access Control

Within each organisation, users are assigned roles (Owner, Admin, Member) that control which actions and data they can access. Platform administration is wholly separate from org access — a platform session cannot be used to enter the org application without explicit approval from an org owner.

Support Access

Platform support staff can only enter an organisation's workspace after submitting a formal access request that is explicitly approved by an organisation owner. All such access is time-limited (maximum 24 hours), logged, and visible to org owners in the Settings page. Approved sessions use the same authentication mechanism as standard org users with no additional privileges.

3. Data Security

Encryption in Transit

All traffic between clients and LilliMad servers is encrypted using TLS 1.2 or higher. Plain HTTP connections are redirected to HTTPS. Internal service-to-service communication within the hosted infrastructure is also encrypted.

Encryption at Rest

Database volumes and object storage (MinIO) are stored on encrypted block storage. File attachments and uploads are stored with server-side encryption enabled.

Data Isolation

Each organisation's data is isolated at the application layer through mandatory organisation-scoped query filtering. API routes enforce organisation membership on every request; cross-organisation data access is not possible through the standard API.

4. Infrastructure

The LilliMad platform runs on servers located within the United Kingdom or European Economic Area. Our infrastructure is deployed using container-based architecture with network-level isolation between services. Database and file storage services are not directly accessible from the public internet.

Regular automated backups are taken of all database and file storage. Backups are encrypted and stored in a separate location from primary data.

5. Application Security

  • All user-supplied input is validated and sanitised before processing
  • SQL queries use parameterised statements via SQLAlchemy ORM — no raw string interpolation
  • File uploads are type-checked and stored with randomised keys; original filenames are never used as storage paths
  • API responses include appropriate security headers (X-Content-Type-Options, X-Frame-Options, Referrer-Policy)
  • Authenticated pages are served with Cache-Control: no-store to prevent browser caching of sensitive content
  • CORS is configured to only accept requests from permitted origins

6. Logging & Monitoring

Server-side request logs (IP address, timestamp, HTTP method, endpoint, response status) are retained for security monitoring and incident investigation. Logs do not contain request bodies, passwords, or session token values. Logs are retained for a minimum of 90 days.

We monitor for anomalous access patterns including repeated authentication failures, unusual API usage volumes, and access from unexpected locations.

7. Vulnerability Disclosure

We welcome responsible disclosure of security vulnerabilities. If you discover a security issue, please contact us at [email protected] before publishing or sharing details publicly. We commit to:

  • Acknowledge your report within 5 business days
  • Investigate and remediate confirmed vulnerabilities promptly
  • Not pursue legal action against researchers acting in good faith

Please include steps to reproduce, the potential impact, and any proof-of-concept where safe to do so.

8. Incident Response

In the event of a confirmed data breach or security incident affecting your organisation's data, we will notify affected organisation owners within 72 hours of becoming aware of the incident, in accordance with UK GDPR and EU GDPR obligations. Notifications will include the nature of the incident, the categories of data affected, and steps taken or planned to address it.

9. Changes to This Policy

We may update this policy periodically. Material changes will be communicated to organisation owners by email or in-app notice at least 14 days before they take effect. The "Last updated" date at the top of this page reflects the most recent revision.

10. Contact

Michael Etherington
LilliMad
[email protected]

© 2026 Michael Etherington. All rights reserved.← Privacy Policy