-
Notifications
You must be signed in to change notification settings - Fork 2
fix(fmodata): unquoted date values in OData filters + Database.from() mutation bug #116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(fmodata): unquoted date values in OData filters + Database.from() mutation bug #116
Conversation
… mutation bug Date/time/timestamp values are now emitted unquoted in OData $filter. Database.from() no longer mutates shared _useEntityIds state.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@proofkit/better-auth
@proofkit/cli
create-proofkit
@proofkit/fmdapi
@proofkit/fmodata
@proofkit/typegen
@proofkit/webviewer
commit: |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| // Get useEntityIds from database if available, otherwise default to false | ||
| this.databaseUseEntityIds = config.database?._getUseEntityIds ?? false; | ||
| // Use explicit useEntityIds if provided, otherwise fall back to database setting | ||
| this.databaseUseEntityIds = config.useEntityIds ?? config.database?._getUseEntityIds ?? false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Navigate loses per-table useEntityIds after mutation fix
Medium Severity
The navigate() method creates a new EntitySet without passing useEntityIds, so it always falls back to config.database?._getUseEntityIds (the original database default). Before this PR, from() mutated the shared _useEntityIds on the database, so navigate() would inherit the per-table override via the database getter. Now that the mutation is correctly removed, navigate() silently loses the resolved useEntityIds from the parent EntitySet. For example, db.from(tableWithEntityIds).navigate(otherTable) will revert to the database default instead of preserving the entity ID setting, potentially causing queries to use field names instead of entity IDs.



Date/time/timestamp values are now emitted unquoted in OData $filter.
Database.from() no longer mutates shared _useEntityIds state.
Note
Medium Risk
Touches query/filter string generation and entity-id routing behavior, which can subtly change request URLs/filters across consumers; changes are covered by new unit tests but could affect existing integrations relying on prior quoting/mutation behavior.
Overview
Fixes OData
$filterserialization so date/time/timestamp operands are emitted without single quotes by propagating afieldTypeontoColumnand using it inFilterExpression._operandToString.Fixes a state-leak bug where
Database.from()could mutate shared_useEntityIds; it now resolvesuseEntityIdsper call and passes it intoEntitySetexplicitly.Updates CI (
continuous-release.yml) to add a dedicatedbuildjob and makespublishdepend onlint,typecheck,test, andbuild, plus adds/updates tests covering unquoted date/timestamp filters.Written by Cursor Bugbot for commit 88aa52b. This will update automatically on new commits. Configure here.