Python: Azure Functions samples each hand-roll an orchestration status endpoint
Maintainers usually reply within 3 days
@Epsilon006 is already working on this.
Since Sep 9, 2026.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
Research direction
Compare the status endpoints in orchestration samples 04 through 07 with _is_owned_orchestration in _app.py, and inspect the existing add_agent registration idiom. Decide the default response contract and how custom endpoints remain possible, then implement the shared building block and scoped registration, migrate the samples, and keep one customized example. Done means status lookups are ownership-scoped and the samples no longer duplicate the standard endpoint shape.
Written by the indexing model from the issue text.
Description
The four orchestration samples (04 to 07) each define their own GET .../status/{instanceId} endpoint. They are near identical, roughly 40 lines each plus a duplicated _build_status_url, and the shapes have already drifted. 04 returns four fields, 05 and 06 add timestamps, 07 adds custom status and failure details instead.
Two problems with that.
None of them scope the lookup by orchestration name. The durable client resolves instance IDs across the whole task hub, so handing one of these endpoints an ID from a different orchestration returns that orchestration's status. AgentFunctionApp already guards this for workflow endpoints, see _is_owned_orchestration in _app.py. The samples are demonstrating the unsafe shape and people copy samples.
The response contract also lives in four places with nothing keeping them in sync.
Rough proposal, two tiers so custom endpoints stay possible.
A building block that turns an OrchestrationState into the response dict, so anyone writing their own endpoint gets the shape and the PascalCase runtime status without hand rolling it.
A convenience registration on the app that wires up a scoped endpoint, following the existing add_agent idiom.
app.add_orchestration_status_route("single_agent_orchestration", route="singleagent/status/{instanceId}")
That would do the ownership check internally so callers cannot forget it. Samples move to the one liner, except one that keeps the hand written endpoint to show how to customise the response.
Worth deciding what the default response contains, since the current four disagree. My instinct is to leave input out, echoing the caller's payload back on a status URL is the field most likely to expose something unwanted.
If this lands, the runtime_status_name export added in #72 may not need to stay public.
- Dominant language
- Python
- Stars
- 19
- Forks
- 11
- Avg merge
- 5d 17h
- Merged PRs (30d)
- 15
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing 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.
More from microsoft/agent-framework-durable-extension
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
microsoft/agent-framework-durable-extension#87 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
microsoft/agent-framework-durable-extension#75 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 3/5 1-2 days Newbie friendliness 62/100
microsoft/agent-framework-durable-extension#143 ·
Maintainers usually reply within 3 days
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
microsoft/agent-framework-durable-extension#122 ·
Maintainers usually reply within 3 days
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
microsoft/agent-framework-durable-extension#106 ·
Maintainers usually reply within 3 days
All issues in microsoft/agent-framework-durable-extension
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
[Device Support Request] HOBEIAN ZG-204ZL (Tuya PIR motion sensor with illuminance)Possibly taken @lenucksi claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
zigpy/zha-device-handlers#5493 ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
drevendev/BeautifulRepo#42 ·
Maintainers usually reply within 1 day
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
writerslogic/holographic-memory#93 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
antoine-tena/kiln#47 ·
Maintainers usually reply within 1 day