> For the complete documentation index, see [llms.txt](https://docs.scaleconnect.com.au/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scaleconnect.com.au/scaleconnect-docs/trust-centre/data-security.md).

# Data Security

ScaleConnect uses a multi-layered security architecture to protect your data and your clients' data — from authentication and encryption to infrastructure, API security, and third-party vetting.

For a plain-language overview of what data we collect and how it's handled, see [Data & Privacy](https://github.com/scaleapp-au/scaleconnect-docs/blob/main/trust-centre/data-and-privacy.md).

***

## Authentication and Access Control

ScaleConnect uses a multi-layered authentication system to ensure only authorised users can access the platform and its data.

### Authentication providers

The platform supports multiple authentication providers to accommodate different deployment contexts:

| Provider          | Usage                                                               |
| ----------------- | ------------------------------------------------------------------- |
| **Supabase Auth** | Primary authentication for broker and client accounts               |
| **Clerk**         | Admin and team management authentication (backend and ScaleInsight) |
| **Firebase**      | Legacy authentication for ScaleApp mobile clients                   |

All providers enforce email verification and support password-based and social login flows.

### Role-based access control

Every authenticated user is assigned a role that determines what they can access:

| Role            | Access scope                                                         |
| --------------- | -------------------------------------------------------------------- |
| **user**        | Own profile and strategy data only (ScaleApp clients)                |
| **broker**      | All clients connected to their practice, plus team data              |
| **admin**       | Full practice management — team members, billing, integrations       |
| **ai\_service** | Internal service role for ScaleAI operations — no direct user access |

Access is verified on every API request. A broker cannot access another broker's clients, and a client cannot see another client's data, even if they share the same broker.

### Session management

Sessions are managed via secure cookies with the following properties:

* Session tokens are rotated on each authentication event
* Logging out invalidates the session server-side
* Cookies are scoped to the ScaleConnect domain

{% hint style="info" %}
If you're seeing repeated "Authentication required" prompts, your session may have expired. Sign in again to refresh it. See [FAQs](https://github.com/scaleapp-au/scaleconnect-docs/blob/main/trust-centre/product-docs/scaleconnect-docs/help-centre/faqs.md) for troubleshooting.
{% endhint %}

***

## Encryption and Transport

All data in transit between your browser, ScaleConnect's servers, and third-party services is encrypted using TLS (Transport Layer Security).

| Layer                      | Protection                                                                   |
| -------------------------- | ---------------------------------------------------------------------------- |
| **Browser → Server**       | HTTPS enforced on all endpoints via AWS EKS ingress                          |
| **Server → Database**      | TLS-encrypted connections to PostgreSQL on Supabase                          |
| **Server → Third parties** | TLS/HTTPS for all outbound API calls (OpenAI, Stripe, PropTrack, etc.)       |
| **Webhook verification**   | Stripe webhooks are verified using signature validation to prevent tampering |

Production environments do not accept unencrypted HTTP connections. All HTTP requests are redirected to HTTPS.

***

## Infrastructure

ScaleConnect's backend runs on managed Kubernetes infrastructure with the following stack:

| Component              | Provider              | Details                                           |
| ---------------------- | --------------------- | ------------------------------------------------- |
| **Compute**            | AWS EKS               | Kubernetes cluster in ap-southeast-2 (Sydney)     |
| **Database**           | Supabase (PostgreSQL) | Managed PostgreSQL with automated backups         |
| **CI/CD**              | GitHub Actions        | Automated build, test, and deploy pipelines       |
| **Container registry** | AWS ECR               | Private container image storage                   |
| **DNS & CDN**          | AWS                   | Domain routing and edge caching for static assets |

### Deployment process

All code changes go through a pull request workflow with:

1. Automated linting and test suites via GitHub Actions
2. Peer review by at least one team member
3. Automated deployment to staging for verification
4. Production deployment after staging approval

No manual changes are made directly to production infrastructure.

***

## Data Residency

ScaleConnect's primary data residency is in **Australia**.

| Resource                       | Region                  |
| ------------------------------ | ----------------------- |
| Application servers (AWS EKS)  | ap-southeast-2 (Sydney) |
| Database (Supabase PostgreSQL) | ap-southeast-2 (Sydney) |
| Backups                        | ap-southeast-2 (Sydney) |

### Third-party data processing locations

Some third-party services process data outside Australia. These services receive only the minimum data required for their function.

| Provider            | Data location         | What they receive                           |
| ------------------- | --------------------- | ------------------------------------------- |
| **OpenAI**          | United States         | AI chat messages, context summaries         |
| **Stripe**          | United States         | Email, subscription details, payment tokens |
| **Sentry**          | United States         | Error stack traces, session metadata        |
| **Pylon**           | United States         | Support messages, user email                |
| **SendGrid**        | United States         | Recipient email, email content              |
| **PropTrack**       | Australia             | Property addresses                          |
| **Google Calendar** | Google Cloud (global) | Meeting titles, times, attendee emails      |

For detailed information on what data each provider receives, see [Data & Privacy](https://github.com/scaleapp-au/scaleconnect-docs/blob/main/trust-centre/data-and-privacy.md).

***

## API Security

ScaleConnect's backend API enforces multiple layers of input and request validation.

### Input validation

All user-submitted data is validated server-side using a whitelist approach. Only expected fields, types, and formats are accepted. Unexpected fields are rejected, and payloads exceeding size limits are blocked.

### Webhook verification

Inbound webhooks from Stripe are verified using **signature validation**. Each webhook request includes a cryptographic signature generated with a shared secret — the server recomputes the signature and rejects any request that doesn't match.

### CORS policy

Cross-Origin Resource Sharing (CORS) is configured to control which domains can make requests to the API.

***

## Third-Party Security

ScaleConnect integrates with third-party services that maintain their own security certifications and compliance standards.

| Provider      | Security standards             | What they handle                                            |
| ------------- | ------------------------------ | ----------------------------------------------------------- |
| **Stripe**    | PCI DSS Level 1, SOC 2 Type II | Payment processing — ScaleConnect never stores card numbers |
| **Supabase**  | SOC 2 Type II                  | Database hosting, authentication, backups                   |
| **OpenAI**    | SOC 2 Type II                  | AI chat processing — data not used for model training       |
| **PropTrack** | Australian data residency      | Property data enrichment                                    |
| **Sentry**    | SOC 2 Type II                  | Error monitoring                                            |
| **Pylon**     | SOC 2 Type II                  | Customer support                                            |
| **Google**    | ISO 27001, SOC 2               | Calendar sync, video meetings                               |

{% hint style="info" %}
ScaleConnect uses OpenAI's zero-data-retention API configuration. Chat messages are processed and discarded — they are not stored by OpenAI or used for training.
{% endhint %}

***

## Incident Response

ScaleConnect uses **Sentry** for real-time error monitoring and alerting across all production services.

### How it works

* All unhandled errors and exceptions are captured automatically and sent to Sentry with full stack traces and session context.
* Critical errors trigger immediate alerts to the engineering team via Slack and email.
* Error trends and regressions are reviewed as part of each release cycle.
* Post-incident reviews are conducted for any issue that affects data integrity or platform availability.

### Reporting a security concern

If you discover a potential security vulnerability or data breach, contact the ScaleConnect team immediately via the support widget or email. We take all reports seriously and will respond within 24 hours.

{% hint style="info" %}
For general troubleshooting (authentication issues, save errors, missing data), see [FAQs](https://github.com/scaleapp-au/scaleconnect-docs/blob/main/trust-centre/product-docs/scaleconnect-docs/help-centre/faqs.md). For data handling questions, see [Data & Privacy](https://github.com/scaleapp-au/scaleconnect-docs/blob/main/trust-centre/data-and-privacy.md).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.scaleconnect.com.au/scaleconnect-docs/trust-centre/data-security.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
