TimelyDataflow / TimelyDataflow/differential-dataflow
Conditionally return object if related to subject via pattern
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3k
- Forks
- 211
- Avg merge
- 10h 42m
- Merged PRs (30d)
- 34
Description
We often describe authorization rules in terms of graph traversals. Role-based access control and access control lists are not really suited for it
Example: Doctors who work on the care team for a patient or group of patients can view patient data including lab results, images, procedures, conditions etc
To describe all of these possible traversals specifically is impossible due to combinatorial explosion
Is it possible to express this sort of traversal with optional steps and branching steps:
Ex. ["Provider", "CareTeam", {"Group", None}, "Patient", {"Observation", "Condition", "Procedure", ...} ]
Could yield a vast array of possible traversals in one line of python itertools
Is it possible to conditionally execute dataflows if the flow-path from the requesting user to the requested data matches some generator of flow-paths?
That could make security rules a lot more expressive and a lot easier to maintain. Also could make this into a nice functional query language for databases.
What do you think?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by determining whether the proposed optional and branching traversals fit the project's dataflow model and how path matching would relate to authorization. Done would require a concrete, maintainable way to express these traversals and conditionally execute flows, with scope and validation criteria agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- databases, distributed-systems, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100