Workflows block: Power BI sink for streaming detection results
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- python
- Domain
- backend-api-design
Research direction
Start by reviewing the existing roboflow_core/webhook_sink@v1 contract and the sinks under inference/core/workflows/core_steps/sinks/. Then inspect loader.py and the external plugin's tests and demo. Done means the preferred core, plugin, or example placement is confirmed, with the documented sink contract, secret-safety behavior, cooldown paths, and unit and integration tests covered.
Written by the indexing model from the issue text.
Description
Hi! I'd like to contribute a Workflows sink block that pushes detection results to Power BI. It's listed as an example project for the Enterprise team, and I don't see an existing BI sink in inference/core/workflows/core_steps/sinks/ on main (the sinks there today are email, local_file, onvif_movement, roboflow/*, s3, slack, twilio, and webhook) — please correct me if I've missed one.
Proposed v1 — a power_bi_sink block that:
- takes a
predictionsinput (object detection / instance segmentation / keypoint) plus a Power BI streaming/push dataset URL, handled as a secret; - transforms detections into rows — one row per detection by default (
class_name,class_id,confidence,x,y,width,height,timestamp, optionalimage_id), with anaggregatemode that emits one row per class with a count; POSTs the rows to the push URL over HTTPS.
It would mirror the existing roboflow_core/webhook_sink@v1 contract — fire_and_forget, cooldown_seconds, disable_sink, and error_status / throttling_status / message outputs — so it composes in the UI like the other sinks. The push URL is treated as a secret end-to-end (marked private, never logged, and kept out of error messages, since connection errors otherwise embed the URL).
I'd scope Power BI first via the push-dataset URL (no OAuth / service principal — that's a much larger surface and unnecessary for v1). Tableau has no equivalent zero-auth push endpoint (it needs the Hyper API or Server REST publishing), so I'd treat Tableau as a separate follow-up.
Question before I open a PR: would you want this in core roboflow_core, or would you prefer it as an external plugin or an example?
I'm building it either way — I already have a working, tested external plugin version (mirrors the webhook sink, unit-tested including the secret-safety and cooldown paths, with a runnable local demo). I'd just rather match your preference before opening a core PR. If core is welcome, I'll add it under core_steps/sinks/, register it in loader.py, and include the unit + integration tests per the Workflows contribution checklist.
Thanks!
- Dominant language
- Python
- Stars
- 2.5k
- Forks
- 340
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 92
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 roboflow/inference
-
Allow Pillow 13 in inference-sdkMay be free again A pull request for this issue was closed without being merged. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
roboflow/inference#3335 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
roboflow/inference#3173 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
roboflow/inference#2993 · 2 comments ·
Maintainers usually reply within 1 day
-
Add context manager (__enter__ / __exit__) support to InferencePipelinePossibly taken @KushagraKanaujia claimed this 67 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
roboflow/inference#2744 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
roboflow/inference#1913 · 1 comment · 2 reactions ·
Maintainers usually reply within 1 day
All issues in roboflow/inference
Similar issues
-
area:core-platform effort:S priority:P3 risk:night-safe status:ready type:test
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
randomparity/kdive#3620 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
FinanceFlash/unvibecode#760 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
google-research/google-research#3470 ·
Maintainers usually reply within 21 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
mrvautin/ha-workouts#11 ·