Skip to content

Latest commit

 

History

History
15 lines (15 loc) · 1.59 KB

TODOs.md

File metadata and controls

15 lines (15 loc) · 1.59 KB

(in no particular order)

  • not allowed to mix operators within a given level
  • write robust parser tests
  • look through policy api again -- there are new primitives (e.g., more fine-grained everywhere happens before) we can support
  • error messages should include which line caused the problem; this would require AST to store bullet information. Would also need to do another pass over the tree to collect parent bullets (e.g., 1A).
  • Arbitrary filters on clause intros--instead of "For each a... if a flows to b," allow "For each a that flows to b"
  • Allow joining clauses and relations in any order. Right now all of the clauses must come first. It's semantically equivalent, so not an expressivity problem, but the parser should support equivalent expressions. I also think this would simplify some of the parsing logic.
  • Shouldn't need separate templates for the negation cases--e.g., flows to and does not flow to should be able to use a single template with an additional layer of indirection to add the ! beforehand
  • Plume policy -- should be able to say that there is a retrieval and there is a deletes on the same level (for efficiency)
  • better error messages in the outputted policies (should leverage Diagnostics library instead of just one assert error at the end)
  • cargo new for the policy and write a template Cargo.toml for it as well
  • rust format the outputted policies (or at least fix the heinous spacing)
  • stricter bullet parsing (can't have duplicates or out of order)
  • consider adding support for only via within a clause
  • revisit definitions scope handling: not sure this is the best way of doing it