JS: Initial models-as-data implementation #7171
Draft
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.
Initial implementation of models-as-data. Please use the backlinked issue for high-level discussion of the format itself.
The implementation is split in three files:
Shared.qll
is intended to be shared between languages (some day; currently only works for JS)Impl.qll
is intended to contain the langauge-specific details.ModelsAsData.qll
is the public interface from the rest of the librarySome predicates from
Shared.qll
must be usable fromImpl.qll
, but should not be public in the library, soModelsAsData.qll
acts as a gatekeeper toward the public API.The API exposes two modules:
ModelInput
is used for contributing modelsModelInput::SinkModelCsv
to add new sinksModelOutput
is used for accessing interpreted models in terms of API nodesModelOutput::getASinkNode("sql-injection")
to get SQL injection sinksIn this PR I have ported Sequelize and Spanner, as initial validation.
Evaluation from a slightly earlier version.
getSourceType()
returned a different string for those source, not because they were truly new)The text was updated successfully, but these errors were encountered: