feat(eloqua): add Oracle Eloqua integration - #7424
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
@cubic-dev-ai review this PR |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
Greptile SummaryThe PR adds a complete Oracle Eloqua integration with credential-bound pod discovery, OAuth token resolution, application and bulk operations, selectors, workflow configuration, documentation, catalog registration, and deployment capability metadata.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| apps/sim/lib/auth/connectors/providers.ts | Adds Eloqua OAuth configuration and persists the validated pod marker through the generic OAuth token scope. |
| apps/sim/lib/oauth/eloqua.ts | Implements Eloqua identity discovery, pod validation, marker serialization, and token exchange helpers. |
| apps/sim/lib/oauth/token-resolution.ts | Restores the credential-bound Eloqua instance URL from stored OAuth scope during execution. |
| apps/sim/lib/selectors/server/providers/eloqua.ts | Resolves selector tokens and validated pod metadata against the same authorized account ID and fails closed when unavailable. |
| apps/sim/blocks/blocks/eloqua.ts | Defines the Eloqua workflow block, operation-specific inputs, parameter normalization, outputs, templates, and skills. |
| apps/sim/tools/eloqua/factories.ts | Provides shared construction and execution behavior for the new Eloqua application and bulk API tools. |
Sequence Diagram
sequenceDiagram
participant User
participant OAuth as Eloqua OAuth
participant Account as Stored OAuth account
participant Selector as Eloqua selector
participant API as Eloqua pod API
User->>OAuth: Connect Eloqua account
OAuth->>API: Discover identity and pod
OAuth->>Account: Persist token and validated pod marker
User->>Selector: Open credential-backed selector
Selector->>Account: Resolve authorized account and scope
Selector->>Account: Resolve access token for same account ID
Selector->>API: Request options from validated pod
API-->>Selector: Return bounded results
Reviews (6): Last reviewed commit: "test(eloqua): harden selector hydration" | Re-trigger Greptile
|
@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 review this PR |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
2 issues found across 64 files
Confidence score: 3/5
apps/sim/lib/selectors/server/providers/eloqua.tscan return a valid but different provider ID from the detail response, causing hydration to associate data with the wrong selector; validateparsed.data.id === idand preserve the requestedid.apps/sim/lib/selectors/server/providers/eloqua.test.tsdoes not verify caller cancellation, leaving abort-handling regressions undetected; make the mocked fetch wait for its signal, abort after execution starts, and assert rejection.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/sim/lib/selectors/server/providers/eloqua.test.ts">
<violation number="1" location="apps/sim/lib/selectors/server/providers/eloqua.test.ts:206">
P2: This test does not exercise caller cancellation despite claiming to forward it. Make the mocked fetch wait for its received signal to abort, abort the controller after execution starts, and assert the selector rejects with `AbortError`.</violation>
</file>
<file name="apps/sim/lib/selectors/server/providers/eloqua.ts">
<violation number="1" location="apps/sim/lib/selectors/server/providers/eloqua.ts:173">
P2: When the detail response contains a valid but different `id`, this returns that provider ID instead of the requested selector ID. Validate `parsed.data.id === id` and preserve `id` in the result so detail hydration cannot change the value used by the tool.
(Based on your team's feedback about preserving requested numeric selector IDs.)</violation>
</file>
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
|
@cubic-dev-ai review this PR |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
No issues found across 64 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
Summary
Type of Change
Testing
bun run lintbun run --cwd apps/sim type-checkChecklist