-
Notifications
You must be signed in to change notification settings - Fork 158
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
Implement RDMS backend (postgres/mysql/sqlite) #910
Implement RDMS backend (postgres/mysql/sqlite) #910
Conversation
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Thanks, @ivanvanderbyl! We never knew about this. This could be a game changer for backend resolver implementation work. |
Nice!!!! This is super awesome!!! Looking forward to diving deeper into this! Let us know if you'd like to spend time to run through anything that you have questions on! |
This is amazing! Thank you for starting this! |
@lumjjb one area that isn't so clear is the schema, I'm inferring a lot of this from reading the inmem and neo4j implementations. Do you have a design document for this? Another area to discuss is how Ent can optimally work with packages(pkgSpec: { type: "deb" }) {
type
namespaces {
namespace
}
} The backing Ent query should look like: records,err := client.Package.Query().
Where(package.TypeEQ(typ)).
WithNamespaces().
All(ctx) Key to this is knowing that the user asked for namespaces and only eagerly querying that edge when asked. The current Backend API I believe makes this possible? Ensuring we don't create an N+1 query problem, which is quite easy to do with gqlgen 🦶🏻 🔫 A larger design decision would be to have Ent generate all this glue code between Ent and gqlgen if you don't mind the interface coupling (https://entgo.io/docs/tutorial-todo-gql-field-collection) |
Yea if I understand it right. The software trees like packages, etc. all have this behavior.
I do personally like being able to manually have control over this since, I do envision that some graphql APIs could be tricky to optimize with ent generated code. With current APIs it looks like a nice fit, but I think we would add some more "analytics" type queries which may make things a bit tricky.
hmm, have you looked at some of these docs by any chance? If it still isn't clear maybe we can have a call and answer some questions and then add to the docs to make things clearer! |
+1 Via the graphQL preloads, we can get the query fields that the user requested and optimize based on that. We did something similar in the neo4j implementation. |
Yes, we have a |
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
👍🏻 for preloads. Thanks for pointing me to the docs, hadn't dug deep enough to find them yet. Big help! I've added the software tree packages and a tests. I've also configured this to do an upsert so that you can call ingest multiple times without duplicating each tree node. I think this is starting to take shape. |
Maybe it's out of scope for this PR but I would suggest to evaluate testcontainers. |
Interesting. I like the idea! |
So if @ivanvanderbyl is more confident with GH Services, for this PR, it's fine to add them in order to have the Postresql instance to run tests with. Then, later on, I can work on adding Testcontainers support to guac tests for Ent and maybe also for ArangoDB to have consistency across development and testing with different backends. |
Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
…Node Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Enhance 'Node' and add 'Nodes' endpoints
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.com>
Signed-off-by: mrizzi <mrizzi@redhat.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.
Lets merge this into main and continue there for the finishing touches.
* Init Artifact and Ent backend Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Configure backend Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Change ID type to Int Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Correct model transform for ID Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement BuilderNode Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix transaction implementation to actually use tx Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add package (node) schema Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add PackageNamespace schema Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add PackageName schema Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add PackageVersions Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Document how to generate ent nodes Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add test suite helper for working with sql tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add IngestPackage and tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Generate Ent nodes for Package, NS, Names, and Versions Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add upsert support for software tree Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Ensure only two versions were inserted Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Order tree asc Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Cleanup Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implementing unique versions (WIP) Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Configure postgres in docker Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Make ent backend configurable Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add Packages query Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement preloads for Packages Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Ent isOccurrence progress WIP. Signed-off-by: Jeff Mendoza <jlm@jlm.name> * Improve build performance in Docker Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Enable global IDs Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Incorporate Jeff's work Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Adds Index annotation, but we probably need something different Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Move to helpers Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Bridge networking so we can poke at the db from host Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Migrate to backend package to separate generated files Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Finish IsOccurrence ingest. Also fix Package ingest to only return the ingested package. Signed-off-by: Jeff Mendoza <jlm@jlm.name> * Added IsDependency ingest and query to ent backend. Signed-off-by: Jeff Mendoza <jlm@jlm.name> * Refactor backend into separate package, adds Source, and tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Use new ent backend package Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Cache build step Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Ignore some files for docker Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Integrate Jeff's work Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add cleanup command to delete all generated ent code Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename IsDependency to Dependency Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename IsOccurrence to Occurrence Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename ent.IsOccurrence Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Improve cleanup logic Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Experimenting Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add tests for IsDependency Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Make tests easier to read Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Cleanup tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Update readme on how to run tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add note about tx Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Try jeff's impl of ingest occurrence Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add func to ignore empty slices in cmp Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Filter dep tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Attempting to get tests passing Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement custom predicates for json qualifiers Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Change PackageVersion schema so that we can query qualifiers Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement version qualfier queries Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Remove debug statement Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Test no qualifiers Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Small refactoring Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Optimise pkgName query Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Refactor Occurrences to use Subject edge Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Simplify package version query Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Cleanup Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add more tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Integrate more of Jeff's work Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * IngestOccurrence with OccurrenceSubject Signed-off-by: mrizzi <mrizzi@redhat.com> * Improve some package queries Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fixing more tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Remove OccurrenceSubject and get one test to pass Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Make all Occurrence tests pass Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename PackageNode to PackageType Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename Source to SourceType Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Improve package queries Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix test Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Cleanup package transforms Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix our happy path test Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Import more of Jeff's work Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Expose Errorf as a global that we can replace later Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Always query empty package version Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Tighter constraints on versions Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * IngestHasSbom implementation Signed-off-by: mrizzi <mrizzi@redhat.com> * Add batch ingest for Artifacts Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add IngestPackages Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Stub IngestOccurrences Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add HasSBOM tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement FindSoftware Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Limit results in search set Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename SBOM to BillOfMaterials and add SLSAAttestation Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename BuilderNode to Builder now that Ent supports it Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename some nodes Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Use global IDs on tests so that we break any hard coded deps Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix dependency tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement HasSBOM and fix all tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Mod tidy Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement GHSA Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement CVEs Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement OSV and refatcor advisory upserts Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Change dependency type to enum in pg Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add note to readme Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement IsVulnerability Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Slightly reduce number of fields selected Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * WIP Implementing CertifyVuln Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename Vulnerability to CertifyVuln Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implements CertifyVuln and IngestVulnerability + Tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement HashEqual Ingest and Query Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Improve Package tests and API Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Stub SLSA Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implementing PkgEqual (WIP) Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add SLSA Ingest Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement HasSLSA and IngestSLSA Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Make artifact query consistent Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix SLSA ingest tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add IngestMaterials Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add IngestDependencies Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add Sources query and sources tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement HasSourceAt Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement CertifyBad and IngestCertifyBad + tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement CertifyGood and IngestCertifyGood Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implementing Node interface Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fixing PkgEquals design and tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Small cleanup for consistency Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Ensure arm compilation doesn't complain Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Improve the consistency of package queries and transactions Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Improve code reuse around package queries Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Possibly break everything Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Remove Annotations from Ent SBOM schema Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Run generators Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix my merge mistakes Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename ents Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix certify bad query Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix dependency tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add correct behaviour for match only empty Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add ent/contrib gql support Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Fix pkgversion tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Generate ent code with GQL Support enabled Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Schema version of pkgequal that has a & b branches instead of M2M, reverted Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add ptrWithDefault helper Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * More package tree tests Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add IngestSources Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Update qualifiers match helper Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * More gql code gen for ent Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * All implemented features passing Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Implement Scorecards Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Disable 32bit builds since they have issues with int() Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * package: added pkgSpec entities filtering Signed-off-by: mrizzi <mrizzi@redhat.com> * vulnerability: added CertifyVulnSpec entities filtering Signed-off-by: mrizzi <mrizzi@redhat.com> * Cleanup Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Use no-op for upserts Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Update .gitignore Co-authored-by: Mihai Maruseac <mihai.maruseac@gmail.com> * Add neptude backend to validation Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Cleanup Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Tidy Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Rename SecurityAdvisory to Vulnerability Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Update package spec Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Mark ent as experimental Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Update vuln nodes Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Refactoring backend so that vulns work Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Comment out vuln and dep code that needs to be updated Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Enable go arm arch again Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Use inmem backend by default Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Add CertifyVEXStatement and IngestVEXStatement Signed-off-by: mrizzi <mrizzi@redhat.com> * CertifyVex snake_case fields Signed-off-by: mrizzi <mrizzi@redhat.com> * IngestVEXStatement: managed DB insert conflict with Ignore() Signed-off-by: mrizzi <mrizzi@redhat.com> * Comment out Vex Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> * Enhance 'Node' and add 'Nodes' endpoints Signed-off-by: mrizzi <mrizzi@redhat.com> * Node: Added SourceType, Builder, SecurityAdvisory and refactored TestNode Signed-off-by: mrizzi <mrizzi@redhat.com> * Restricted some queries and proposed new tests approach Signed-off-by: mrizzi <mrizzi@redhat.com> * Refactored SecurityAdvisory to VulnerabilityType Signed-off-by: mrizzi <mrizzi@redhat.com> * Completed test refactoring Signed-off-by: mrizzi <mrizzi@redhat.com> * Fix Static Analysis Signed-off-by: mrizzi <mrizzi@redhat.com> * Fix Lint checks Signed-off-by: mrizzi <mrizzi@redhat.com> * Fix Static Analysis - copyright notice Signed-off-by: mrizzi <mrizzi@redhat.com> * Enable postgres GH service Signed-off-by: mrizzi <mrizzi@redhat.com> * Fix Unit tests: TestEntBackendSuite/TestCertifyBad/HappyPath Signed-off-by: mrizzi <mrizzi@redhat.com> * Scorecards: fix source namespace query Signed-off-by: mrizzi <mrizzi@redhat.com> * Commented TestVulnerability: endpoint commented Signed-off-by: mrizzi <mrizzi@redhat.com> * Test suite util Signed-off-by: mrizzi <mrizzi@redhat.com> * CI for integration tests: enable postgres GH service Signed-off-by: mrizzi <mrizzi@redhat.com> --------- Signed-off-by: Ivan Vanderbyl <ivanvanderbyl@gmail.com> Signed-off-by: Jeff Mendoza <jlm@jlm.name> Signed-off-by: mrizzi <mrizzi@redhat.com> Co-authored-by: Jeff Mendoza <jlm@jlm.name> Co-authored-by: mrizzi <mrizzi@redhat.com> Co-authored-by: Mihai Maruseac <mihai.maruseac@gmail.com> Signed-off-by: m-brophy <mbrophy@redhat.com>
Description of the PR
(WIP) Implements a backend using Ent that supports common RDMS such as Postgres, MySQL, Sqlite. Tested only with Postgres at the moment.
PR Checklist
-s
flag togit commit
.make generate
has been runcollectsub
protobuf has been changed,make proto
has been runTo implement:
Note to reviewers: A large chunk of this is code generated using Ent, which results in a large change surface. You'll notice that most ent code is identical for each node type, so you can skim it easily. The actual
Backend
implementation is inpkg/assembler/backends/ent/backend
with the generated code in the parent directory.