Skip to content

Storage

PIP AI uses a single Supabase Storage bucket for all file uploads.

Bucket Configuration

SettingValue
Namepip-ai-docs
VisibilityPrivate
Max File Size100MB

Folder Structure

pip-ai-docs/
├── specs/{brand_name}/{spec_upload_id}/{filename}
├── pips/{project_id}/{document_id}/{filename}
├── floor-plans/{project_id}/{floor_plan_id}/{filename}
├── floor-plans/{project_id}/{floor_plan_id}/rendered.png
├── floor-plans/{project_id}/{floor_plan_id}/thumbnail.png
├── document-builder/{project_id}/{filename}
└── ai-renders/{project_id}/{job_id}/{variant_id}.png

Allowed MIME Types

  • application/pdf
  • image/png
  • image/jpeg
  • image/jpg
  • image/svg+xml
  • application/octet-stream

Storage Policies

ActionAdminUser (own project)
View specsYesNo
Upload specsYesNo
View project filesYesYes
Upload to projectYesYes
AI render outputYes (via service role)Read only

Accessing Files

Always use signed URLs for file access:

typescript
const { data } = await supabase.storage
  .from('pip-ai-docs')
  .createSignedUrl(storagePath, 3600) // 1 hour expiry

WARNING

Never expose raw storage paths to clients. Always generate signed URLs server-side or via the Supabase client.

Built with VitePress