Code Monkey home page Code Monkey logo

policy-agnostic-jagger's People

Contributors

skrulcik avatar

Stargazers

 avatar

Watchers

 avatar

policy-agnostic-jagger's Issues

Redistribute annotation values more effectively

  • Dependencies should be associated with the predicate, rather than the field (in case we use the same label to protect multiple fields in the future)
  • Ideally default values could be static variables, rather than inner classes. The best way to do this is probably add yet another annotation to tie to labels, then just verify that the static variable is of the correct type.

Deal with `@Raw` qualifiers

Only one qualifier can be applied at a time in Dagger, which is an issue if we are constantly using the @Raw qualifier. We would like to be able to qualify things like @Doctor User user and @Patient User user but cannot with the @Raw specification.

Creating a workaround, whether it be a module-based system or generated @Raw_Doctor annotations, is necessary before Jagger can be effectively used in applications.

Improve error-reporting during annotation processing

  • Add messages for any validation checks (including those in the PolicyRule builder)
  • Store a the processing environment as an instance variable in the validation class, and directly report results to the processing environment as an error (still return false)

Instance-level restrictions

Field restriction is fine in most cases, but it there are cases when rather than anonymizing fields, the record should just be invisible. A motivating example I'm working with right now is a medical record search. If permissions for the medical record don't exist, it should not show up in search.

Such a record wouldn't show up in search as-is because all of the fields would be re-written as "REDACTED" (or some other constant). It is tedious for the programmer and wasteful at runtime if the only way to redact an entire object is to individually redact every field.

Fix warnings caused my repeated processing rounds

Annotation processing rounds are naturally repeated. This natural repetition, along with the persistence of the ProcessingStep instances between rounds means that any fields holding processing information from one round will be carried over to the next. This triggers some warnings I have in place for the policy rule collection step that are supposed to warn against re-used labels.

I should either clear instance variables between rounds, or purposefully track what repetitions I expect in future rounds.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.