From 2d80e7ad49c8465efd53de8a9fe9de4bf4afd253 Mon Sep 17 00:00:00 2001 From: Johannes Gasser Date: Thu, 7 May 2026 10:05:24 +0200 Subject: [PATCH] fix build --- .dockerignore | 2 -- Dockerfile | 2 +- sanity.config.ts | 18 ++++++++++++++++++ src/sanity/schemas/theaterHomepage.ts | 1 - 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.dockerignore b/.dockerignore index 07a263f..f1a1f7b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,8 +2,6 @@ node_modules dist .astro public/admin -.env -.env.* .git .gitignore *.md diff --git a/Dockerfile b/Dockerfile index 5195aee..821da56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build: generates /dist (Astro static site + Sanity Studio SPA) -FROM node:24 AS builder +FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci diff --git a/sanity.config.ts b/sanity.config.ts index ef2d2b2..f097493 100644 --- a/sanity.config.ts +++ b/sanity.config.ts @@ -6,6 +6,24 @@ import { schemaTypes } from './src/sanity/schemas' export default defineConfig({ projectId: import.meta.env.PUBLIC_SANITY_PROJECT_ID, dataset: import.meta.env.PUBLIC_SANITY_DATASET ?? 'production', + document: { + // Filter document actions + actions: (prev, context) => { + // For singleton documents like site settings + if (context.schemaType === 'theaterHomepage') { + // Only allow publish action (equivalent to ["update", "publish"]) + return prev.filter(({action}) => action === 'publish') + } + return prev + }, + + // Prevent creating new documents of this type + newDocumentOptions: (prev, context) => { + return prev.filter( + (template) => template.templateId !== 'siteSettings' + ) + } + }, plugins: [ structureTool({ structure: (S) => diff --git a/src/sanity/schemas/theaterHomepage.ts b/src/sanity/schemas/theaterHomepage.ts index 3a37c65..66374ec 100644 --- a/src/sanity/schemas/theaterHomepage.ts +++ b/src/sanity/schemas/theaterHomepage.ts @@ -5,7 +5,6 @@ export const theaterHomepageSchema = defineType({ title: 'Theater Homepage', type: 'document', // Singleton: disable create/delete — only update and publish - __experimental_actions: ['update', 'publish'], fields: [ defineField({ name: 'title',