Triggering authenticated workflows
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- rust
Research direction
Start with the proposed Mermaid sequence: blueapi requests the Workflow Manager to start an analysis, while DataAPI stores raw and processed data. Identify the workflow-manager and authorization entry points needed to support authenticated triggering, scoped access, and shared visit/run IDs. Done means the described live and post-processing flows work with the stated permissions.
Written by the indexing model from the issue text.
Description
Assuming:
- There is a service called blueapi, which requires an authenticated request and creates "raw data"
- There is a process called analysis, which generically consumes "raw data" and creates "processed data"
- A user makes a request to blueapi to create "raw data" and knows they want a specific form of analysis to produce "processed data" either while blueapi is acting or afterwards.
- To leverage the workflow system, the user should not need to manually create the analysis instance
- The analysis instance should write data to the same visit as the raw data and request that spawned it
- The analysis should be authorized to read only the raw data that it requires
sequenceDiagram
actor Alice
Note left of Alice: my_scan uses my_analysis
Alice ->> +blueapi: run my_scan, visit=a1
Note over Alice,blueapi: scope read data visit=a1
Note over Alice,blueapi: scope write data visit=a1
Note over Alice,blueapi: scope run my_analysis visit=a1
participant raw as Raw Data Store<br>[via DataAPI]
blueapi ->> raw: StartDocument runid=a1-1
Note over blueapi,raw: AuthZ'd to write
participant manager as Workflow Manager
blueapi ->> manager: start my_analysis visit=a1 runid=a1-1
Note over blueapi,manager: AuthZ'd to run
create participant Analysis as my_analysis
manager ->> +Analysis: creates
Note over manager,Analysis: scope read data visit=a1
Note over manager,Analysis: scope write data visit=a1
opt Live Analysis
Analysis ->> raw: fetch data so far
raw ->> Analysis:
Note over Analysis,raw: AuthZ'd to read
Analysis ->> processed: processed data
Note over Analysis,processed: AuthZ'd to write
loop until scan over
blueapi ->> raw: Documents
Analysis -->> raw: poll for new data
Analysis ->> processed: processed data
end
blueapi ->> raw: StopDocument
Analysis -->> raw: poll for new data
Analysis ->> processed: processed data
end
opt Post Processing
blueapi ->> raw: Documents
blueapi ->> -raw: StopDocument
Analysis ->> raw: fetch all data
raw ->> Analysis:
Note over raw,Analysis: AuthZ'd to read
end
deactivate Analysis
participant processed as Processed Data Store<br>[via DataAPI]
destroy Analysis
Analysis ->> processed: processed data
Note over Analysis,processed: AuthZ'd to write
Alice ->> raw:
raw ->> Alice:
Note over Alice,raw: AuthZ'd to read
Alice ->> processed:
processed ->> Alice:
Note over Alice,processed: AuthZ'd to read
- Dominant language
- Rust
- Stars
- 7
- Forks
- 6
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 56
Contributor guide
No contributing guide indexed for this repository
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.
More from DiamondLightSource/workflows
-
workflows lint-config always fails on ClusterTriggerTemplate manifests ("found nothing to lint") Open
Difficulty 3/5 1-2 days Newbie friendliness 58/100
DiamondLightSource/workflows#1612 · 2 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
DiamondLightSource/workflows#1288 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
DiamondLightSource/workflows#587 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
DiamondLightSource/workflows#585 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
DiamondLightSource/workflows#551 ·
All issues in DiamondLightSource/workflows
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100