computed fields breaking studio
Los mantenedores suelen responder en 1 día
@jiashengguo ya está trabajando en esto.
Desde el 8/10/2026.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 27/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- nodejs, postgresql, typescript
- Área
- tooling
Línea de trabajo
The reporter's computed fields live in their computedFields.ts as a Kysely-style SQL resolver, and API queries work; only Studio's proxy runtime fails. Read where Studio constructs its proxy Prisma client and where the computed-fields plugin/handler is registered, then reproduce with the Bid, BidSubmission, Project and Opportunity models on PostgreSQL. Done means Studio resolves computed fields, or the limitation is documented with a test covering the proxy path.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description and expected behavior
Yes, this appears to be a ZenStack Studio limitation/bug.
Your computed fields work perfectly at the API level (we proved this), but Studio's proxy runtime doesn't have access to the SQL implementations in computedFields.ts, so it can't display them.
What's Working ✅
Computed field definitions in schema
SQL resolver implementations
API queries return correct values
Application runtime has everything it needs
What's Not Working ❌
Studio UI proxy - can't resolve computed fields
Studio tables for Bid, BidSubmission, Project, Opportunity models
Recommendation
Since the API works perfectly and that's what your app uses, this is safe to ignore for now. If you need to browse data with computed fields:
Use the test script: pnpm run test:computed-fields
Or query the API directly
Studio's lack of computed field display is a presentation issue, not a data issue
Consider reporting this to ZenStack if you haven't already - they should support computed fields in Studio.
Screenshots
Environment (please complete the following information):
- ZenStack version: [e.g., 3.9.7]
- Database type: Postgresql
- Node.js/Bun version: v26.8.2
- Package manager: pnpm
Additional context
I am writing computed fields like this as kysely doesnt work
// The baseTotalPrice is a computed field that calculates the total price of the bid based on the related estimates. It sums up the product of quantity and unitPrice for all EstimateLineItems associated with the bid, providing a dynamic calculation of the bid's total value. Returns 0 if no estimates exist.
baseTotalPrice: (_eb, { modelAlias }) => {
const bidIdRef = sql.ref(${modelAlias}.id)
return sql<number>`COALESCE((
SELECT COALESCE(SUM("EstimateLineItem"."quantity" * "EstimateLineItem"."unitPrice"), 0)
FROM "EstimateLineItem"
INNER JOIN "Estimate" ON "EstimateLineItem"."estimateId" = "Estimate"."id"
WHERE "Estimate"."bidId" = ${bidIdRef}
), 0)`
},
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.9k
- Forks
- 157
- Merge medio
- 2 d 46 min
- PR fusionados (30 d)
- 17
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de zenstackhq/zenstack
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
zenstackhq/zenstack#2873 ·
Los mantenedores suelen responder en 1 día
-
`@default` on a field of a `@map`-ed enum emits the enum name as the column defaultPosiblemente ocupada @jkugsiya la tomó hace 4 días. Abiertoruntime
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
zenstackhq/zenstack#2868 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
zenstackhq/zenstack#2694 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
zenstackhq/zenstack#2659 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
zenstackhq/zenstack#2542 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de zenstackhq/zenstack
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
chrisparsons83/flexspotff#215 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
vitest-dev/vitest#11633 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día