Skip to content

File Path Templates

File path templates control how files are organized in your S3 bucket. A single template determines the S3 key structure — used for both saving and reading files.

Where to Configure

LevelWhereApplies to
WorkspaceAdmin > Workspace Settings > StorageAll files in the workspace (default)
ViewSpread > View PropertiesAll files in that view
ColumnSpread > Column PropertiesFiles in that specific column

Resolution Hierarchy

The most specific template wins:

  1. Column-level template (if set)
  2. View-level template (if set)
  3. Workspace-level template (if set)
  4. Defaultfiles/${fileId}.${ext}

Available Variables

VariableDescriptionExample
${fileId}Generated file UUIDf9e8d7c6-1234-5678-abcd-ef0123456789
${fileName}Original file nameimage.png
${baseName}File name without extensionimage
${ext}File extension (without dot)png
${workspace.uuid}Workspace UUIDa1b2c3d4-...
${workspace.slug}Workspace slugacme-corp
${view.uuid}View UUIDe5f6a7b8-...
${view.slug}View slugclients
${column.uuid}Column UUIDc9d0e1f2-...
${column.name}Column field nameavatar
${value}The current cell's raw valueinvoice.pdf
${row.column_name}Value from another column in the same row42
${row.column_name:fallback}Column value with a default if nullus-east

Row variables (${row.*} and ${value}) resolve from the row data when reading files. At upload time, ${fileId}, ${fileName}, ${baseName}, ${ext}, and the workspace/view/column variables are available.

Examples

${view.slug}/${column.name}/${fileId}.${ext}
→ clients/avatar/f9e8d7c6-1234-5678-abcd-ef0123456789.png

uploads/${workspace.slug}/${fileName}
→ uploads/acme-corp/image.png

clients/${row.client_id}/${value}
→ clients/42/headshot.jpg

invoices/${row.region:default}/${row.invoice_number}.pdf
→ invoices/eu-west/INV-2026-001.pdf
→ invoices/default/INV-2026-001.pdf  (when region is null)

Tips

  • Include ${fileId} to guarantee unique file names and avoid overwrites.
  • Use ${view.slug} and ${column.name} to organize files by view and column.
  • Use ${row.column_name} to build paths from your existing data — useful when your S3 bucket already has a folder structure based on record values.
  • The ${row.column_name:fallback} syntax provides a default value when a column is null, preventing broken paths.
  • Security: path traversal (..) and absolute paths (/) are automatically blocked.

SchemaStack Documentation