-
Notifications
You must be signed in to change notification settings - Fork 17
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
Support Building Binary for Auth Logic Compiler Built from C++ Implementation #638
Comments
For this to work with Oak's use-cases we need this binary to support a CLI similar to the one the rust binary had. You can download a release of that binary here -- the binary is called Here is the help provided by the binary from the CLI:
|
Internally, for this to work we'll also need a top level function that takes the input and output file paths, calls the parser on the input file to generate the AST and then calls the compiler passes on the right order to generate the souffle file and the results of running the queries on the souffle file. The rust implementation code for doing this is:
(Maybe the C++ implementation already has this, but I thought I would leave references just in case). |
Actually, since the rust implementation has a ton of tests and we will have done all of the work to port this, it would be great if we could take the tests from the rust implementation here and port them into the C++ version. Those tests run on input authorization logic files here, and it should be possible to run the tests on those same test input files. Some of those tests were also written to ensure compatibility with transparent release, so this will help make sure we are not missing something in the new implementation. |
OK the "minimum requirements" for making the migration easy are actually less strict than exactly the CLI we had before. We need the CLI to have all of the following on the command line:
We don't need:
As long as we have those minimum requirements, I can go and make some small tweaks on the transparent release side for any adjustments that needed to be made to the CLI. *(this is probably a hacky interface for testing queries, and this means the C++ implementation would be inheriting some tech debt from the old rust version. We should re-think this interface but probably not right now) |
For outputting queries, this is how the rust implmentation generates an output CSV:here |
For the queries directory all the rust version did was run the souffle program and pass the queries output directory to souffle's -D option. Here is where the rust version did this as a reference:
|
PiperOrigin-RevId: 475932707
PiperOrigin-RevId: 475932707
PiperOrigin-RevId: 475932707
PiperOrigin-RevId: 475932707
PiperOrigin-RevId: 475932707
PiperOrigin-RevId: 475932707
PiperOrigin-RevId: 475932707
This was fixed a while ago |
No description provided.
The text was updated successfully, but these errors were encountered: