Milana can store session recording data in a storage bucket that you own and control, rather than in Milana-managed storage. This gives you full control over data residency, retention policies, and access.Documentation Index
Fetch the complete documentation index at: https://docs.getmilana.ai/llms.txt
Use this file to discover all available pages before exploring further.
How data flows
Session data is sent from the user’s browser to Milana’s ingest service, where it is buffered temporarily in encrypted-at-rest storage. Once a session window closes, the raw events are written to your bucket and immediately deleted from Milana’s database. Milana then processes the data in your bucket through several stages — encoding, generating transcripts, and building indexes — and writes all results back to the same bucket. Once a session is completed, no session recording data persists on Milana-managed storage. The Milana web interface loads session replays directly from your bucket in the browser (by dynamically generating pre-signed URLs). This requires your bucket to have a CORS policy allowlisting our app domain.What stays in your bucket
- Raw session replays
- Encoded session replays
- Session transcripts
- User journey transcripts
What Milana stores
Milana stores the following end-user metadata and derived data:- Metadata: session metadata, user metadata, events, product-specific configuration, etc.
- Derived data: issues, user intent, taxonomies, summary statistics, indexes, etc.
Google Cloud Storage
Create a bucket
Create a GCS bucket with the following settings.us-east4 is strongly recommended for lowest latency.
| Setting | Value |
|---|---|
| Storage class | Standard |
| Autoclass | Enabled |
| Public access prevention | Enforced |
| Access control | Uniform (bucket-level) |
| Force destroy | Disabled |
- Terraform
- CLI
Grant Milana access
Grant the following Milana service accounts access to your bucket:- Storage Object User — allows Milana to read and write session data.
- Storage Object Viewer — allows Milana’s AI to read videos directly for transcription and analysis.
- Terraform
- CLI
Configure CORS for replay access
Milana’s session replay player loads replay event data in the Milana web app using short-lived browser access. For Google Cloud Storage, that requires a bucket CORS policy that allowshttps://app.getmilana.ai.
Without this CORS policy, session replay can fail to load in the browser.
If you used the Terraform configuration above, CORS is already included in the bucket resource.
- Terraform
- CLI
Include the following
cors block in your bucket resource:Amazon S3
Create a bucket
Create an S3 bucket with the following settings.us-east-1 is strongly recommended for lowest latency.
| Setting | Value |
|---|---|
| Region | us-east-1 (recommended) |
| Block all public access | Enabled |
| Bucket Versioning | Disabled (or per your policy) |
| Default encryption | SSE-S3 or SSE-KMS |
- Terraform
- CLI
Grant Milana access
Add a bucket policy that grants Milana’s service account read and write access. Replaceyour-company-milana-data with your bucket name.
- Terraform
- CLI
Configure CORS for replay access
Milana’s session replay player loads replay event data in the browser. For S3, that requires a CORS configuration that allowshttps://app.getmilana.ai.
- Terraform
- CLI