Skip to content

feat(powerbi): add Power BI actions - #8538

Open
BillLeoutsakosvl346 wants to merge 10 commits into
stagingfrom
feat/powerbi-actions
Open

BillLeoutsakosvl346 wants to merge 10 commits into
stagingfrom
feat/powerbi-actions

Conversation

@BillLeoutsakosvl346

@BillLeoutsakosvl346 BillLeoutsakosvl346 commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add eight Power BI actions for workspace/report/model discovery, DAX queries, standard refresh requests, and refresh history, with delegated Microsoft OAuth and three cascading selectors.
  • Add the supplied icon, operation-specific UI and typed outputs, seven templates, and generated documentation/catalog/API artifacts. Power BI documentation is fully generated from block/tool source without manual-content sections.
  • Use standard workflow failure handling with no executor/runtime changes. DAX errors fail the action even with HTTP 200; direct tool responses retain partial rows, while workflow error branches expose the standard error output. Document this limitation and keep refresh acceptance asynchronous.
  • Live Power BI testing deferred.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Other: ___________

Testing

  • 708 focused and existing unit tests across 61 files; all 11 Power BI real-infrastructure tests with disposable PostgreSQL/Redis.
  • Revised failure-output cases demonstrated two intended failures before rollback, then passed with standard execution behavior. Existing direct-tool tests retain partial rows, typed errors, dynamic columns, and falsy values.
  • 28 authenticated running Next application checks using provider transport fixtures, plus persisted execution-state verification for unhandled failure and a real error-port Function handler.
  • Actual browser verification covers all eight operations, selectors/manual IDs, advanced fields, output tags, and light/dark rendering.
  • Independent integration/selector/memory audit and scoped test-review/cleanup completed with zero critical or warning findings.
  • App/docs/deployment-config/CLI type checks, lint, all 54 repository audits, block-registry validation, generator drift checks, docs-manifest verification, and whitespace checks passed.
  • Regenerated the full graph baseline. Independent comparison with fresh staging confirms each of the 35 affected graphs adds only the Power BI block module; broader measurement changes are verified upstream catch-up.

Latest documentation update: deleting and regenerating the Power BI page and running generation again both produced byte-for-byte identical output. All eight catalog action descriptions are populated, the overview uses plain text, and the DAX action explicitly documents the effective 10 MiB limit. Generated changes are limited to Power BI descriptions/catalog entries, and implementation code is unchanged. Reran 34 Power BI/selector tests, four workspace type checks, lint, all 54 audits, block-registry validation, generator/manifest checks, and whitespace checks. The broader unit, infrastructure, running-app, browser, and independent-audit results above are from the preceding runtime revision. Greptile and cubic reviewed the final documentation revision at 5/5 with zero unresolved threads. All five applicable CI jobs passed, including the app build, lint/tests, both PostgreSQL integration modes, and real HTTP end-to-end checks. The PR remains unmerged.

Fixture validation does not verify real Entra consent, licensing/tenant settings, issued token audience, provider DNS/TLS, or actual refresh behavior. Remaining live checks: OAuth connection/refresh, workspace access, DAX with Read/Build permission and Execute Queries enabled, and one refresh/history cycle.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

Screenshots/Videos

Redacted local browser evidence and JSON/HTTP/execution reports retained outside Git. No live provider resources were created.

@vercel

vercel Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs Ready Ready Preview Oct 2, 2026 2:09am UTC

Request Review

@greptile-apps

greptile-apps Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Medium risk] Adds Power BI integration with new actions and OAuth provider.

The PR appears safe to merge based on the changes reviewed.

Summary

The PR adds eight Power BI actions with delegated Microsoft OAuth, resource selectors, typed outputs, and generated documentation. The changes since the previous review restore the DAX catalog description and replace Markdown in the plain-text integration overview.

Reviews (7) · Last reviewed commit: "fix(powerbi): keep generated catalog des..."

Comment thread apps/sim/tools/powerbi/powerbi.integration.ts Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 54 files

Confidence score: 4/5

  • In powerbi.ts, missing headers can produce null values even though the outputs are declared as strings, which can leave workflow consumers with values that don't match the block schema. Mark both outputs nullable.
  • In provider-fixture.ts, resolving api.powerbi.com to routable 8.8.8.8 lets requests that bypass the patched adapters reach a public IP instead of the loopback fixture. Use a fail-closed, non-routable resolution.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/sim/blocks/blocks/powerbi.ts">

<violation number="1" location="apps/sim/blocks/blocks/powerbi.ts:418">
P2: `requestId` and `location` can be `null` when Power BI omits their headers, but these block outputs declare plain strings. Extend the block output metadata to mark both fields nullable so workflow consumers do not assume they always receive strings.

(Based on your team's feedback about nullable always-present outputs.)</violation>
</file>

<file name="apps/sim/tools/powerbi/__fixtures__/provider-fixture.ts">

<violation number="1" location="apps/sim/tools/powerbi/__fixtures__/provider-fixture.ts:237">
P3: Resolving `api.powerbi.com` to `8.8.8.8` (Google, routable) is fail-open despite the fail-closed comment: the patched `https.request`/`fetch` redirect this host to the loopback fixture, but any code path that resolves the host through the patched `dns.lookup` and then connects without going through those two patched boundaries would reach the real network. Point the fixture at a non-routable TEST-NET address (e.g., `192.0.2.1`) so an accidental leak fails instead of egressing.</violation>
</file>

Tip: instead of fixing issues one by one fix them all with cubic

Re-trigger cubic

Comment thread apps/sim/executor/execution/block-executor.ts Outdated
Comment thread apps/sim/executor/handlers/generic/generic-handler.ts Outdated
Comment thread apps/sim/tools/powerbi/get-dataset.ts
Comment thread apps/sim/tools/powerbi/types.ts Outdated
Comment thread apps/sim/tools/powerbi/execute-query.ts Outdated
Comment thread apps/sim/tools/powerbi/get-report.ts
Comment thread apps/sim/lib/selectors/manifest.ts Outdated
Comment thread apps/sim/blocks/blocks/powerbi.ts
Comment thread apps/sim/lib/oauth/utils.ts
Comment thread apps/sim/tools/powerbi/__fixtures__/provider-fixture.ts Outdated
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 58 files

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread apps/sim/executor/execution/block-executor.ts Outdated
Comment thread apps/sim/tools/powerbi/__fixtures__/provider-fixture.ts Outdated
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 58 files

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread apps/sim/tools/powerbi/__fixtures__/provider-fixture.ts
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 51 files

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread apps/sim/tools/powerbi/execute-query.ts
Comment thread scripts/check-tool-registry-boundary.baseline.json Outdated
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 51 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.

Re-trigger cubic

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

Comment thread apps/sim/tools/powerbi/execute-query.ts Outdated
Comment thread apps/sim/blocks/blocks/powerbi.ts Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 51 files

You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.

Fix all with cubic | Re-trigger cubic

Comment thread apps/sim/tools/powerbi/execute-query.ts Outdated
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 51 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.

Re-trigger cubic

This branch was successfully deployed

1 active deployment
Preview — 64a9fb4a Deployed Oct 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant