You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)`
},
I updated all computed fields to use kysely query builder and still same issue
Yes, exactly. Studio limitation confirmed. 👍
Based on what we verified:
✅ What works perfectly:
Schema definition is correct
Kysely implementation generates proper SQL
All computed fields return accurate values via API
Test confirms all 13 models with computed fields function correctly
❌ Studio UI issue:
Studio table display may not properly show computed fields
Computed fields are read-only (can't be edited in Studio) — which is correct behavior
But the UI rendering/display itself appears problematic
This is a known ZenStack Studio limitation — the UI doesn't fully support viewing computed fields in table format, even though they're fully functional in the backend and API layer.
The good news: Your implementation is solid. The computed fields work correctly everywhere that matters (API queries, data operations). Studio is just the visualization tool that has the limitation, not your actual data model or calculations.
// Build omit configuration for computed fields and Unsupported fields.
Would you mind running npx zen -v to double the zenstack CLI version you are running for the proxy of studio?
If it is the latest version, then there could be something else in the schema cause this issue. It would be great help if you could provide a minimum self-contained schema that could reproduce this issue.
Activity
lombo75 commentedon Sep 30, 2026
Bid model
lombo75 commentedon Sep 30, 2026
I updated all computed fields to use kysely query builder and still same issue
Yes, exactly. Studio limitation confirmed. 👍
Based on what we verified:
✅ What works perfectly:
Schema definition is correct
Kysely implementation generates proper SQL
All computed fields return accurate values via API
Test confirms all 13 models with computed fields function correctly
❌ Studio UI issue:
Studio table display may not properly show computed fields
Computed fields are read-only (can't be edited in Studio) — which is correct behavior
But the UI rendering/display itself appears problematic
This is a known ZenStack Studio limitation — the UI doesn't fully support viewing computed fields in table format, even though they're fully functional in the backend and API layer.
The good news: Your implementation is solid. The computed fields work correctly everywhere that matters (API queries, data operations). Studio is just the visualization tool that has the limitation, not your actual data model or calculations.
ymc9 commentedon Oct 6, 2026
@jiashengguo
jiashengguo commentedon Oct 7, 2026
@lombo75 Thanks for reporting this! However, I can't reproduce this issue with the latest ZenStack version v3.9.7.
I remember this issue happened at the very first version of studio, but get fixed soon by v3.4.2.
the computed field is supposed to be exclueed by the studio proxy as below:
zenstack/packages/cli/src/actions/proxy.ts
Line 107 in b51d33c
Would you mind running
npx zen -vto double the zenstack CLI version you are running for the proxy of studio?If it is the latest version, then there could be something else in the schema cause this issue. It would be great help if you could provide a minimum self-contained schema that could reproduce this issue.