feat: support select/omit projections on populates#1628
Open
luislobo wants to merge 1 commit intobalderdashy:masterfrom
Open
feat: support select/omit projections on populates#1628luislobo wants to merge 1 commit intobalderdashy:masterfrom
luislobo wants to merge 1 commit intobalderdashy:masterfrom
Conversation
## Summary - capture original populate subcriteria in help-find and apply select/omit filters after unserializing populated records so adapters that ignore projections still return trimmed data - allow singular populate subcriteria to specify select/omit in forge-stage-two-query with strong validation (arrays only, known/non-collection attributes, preserved child PK, schema:false restrictions) - add comprehensive regression tests for valid projections and every E_INVALID_POPULATES branch, adapted from sailscastshq/waterline@414c9275 ## Testing - npm test
Contributor
Author
|
Resolves balderdashy/sails#4667 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
Waterline already supports / on top-level criteria, but populated singular associations silently ignored those directives. Adapters that don’t implement column-level projections returned fully hydrated child rows, so API users had no reliable way to trim sensitive attributes out of populated associations.
The validation code also rejected otherwise reasonable populate subcriteria, making it impossible to express / even if we applied them ourselves.
This change brings singular populates up to parity with top-level projections, keeps adapters honest, and documents the exact set of error cases developers should expect when they misuse the feature.
How
Testing