TimelyDataflow / TimelyDataflow/differential-dataflow

Conditionally return object if related to subject via pattern

Open
#315 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.