feat(oracle-fusion): add SCM integration - #7439
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 read-only Oracle Fusion Cloud SCM integration built on the existing Oracle Fusion service-account and transport foundation.
Confidence Score: 5/5The PR appears safe to merge because no blocking failure remains in the available follow-up review scope. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| apps/sim/lib/internal/oracle-fusion-scm/operations.ts | Centralizes the 20 SCM operation definitions, bounded projections, parent-child paths, pagination handling, and opaque-key processing. |
| apps/sim/lib/internal/oracle-fusion-scm/schema.ts | Defines validation and typed response projections for SCM list and detail operations. |
| apps/sim/lib/internal/oracle-fusion-scm/execute-tool.ts | Connects registered SCM tool invocations to the shared Oracle Fusion credential and operation execution path. |
| apps/sim/lib/selectors/server/providers/oracle-fusion-scm.ts | Implements six paginated credential-bound selector providers for SCM resources. |
| apps/sim/blocks/blocks/oracle_fusion_scm.ts | Defines the Oracle Fusion SCM workflow block, credential input, operations, and selector-backed configuration. |
| apps/docs/content/docs/integrations/oracle_fusion_scm.mdx | Documents prerequisites, tenant-validation limitations, inputs, and outputs for all SCM actions. |
Sequence Diagram
sequenceDiagram
participant W as Workflow
participant T as SCM Tool
participant O as SCM Operation Layer
participant F as Oracle Fusion Foundation
participant A as Oracle Fusion SCM API
W->>T: Invoke list or detail tool
T->>O: Validate operation input
O->>F: Send bounded projected request
F->>A: Authenticated pinned-origin GET
A-->>F: SCM resource response
F-->>O: Validated JSON and self links
O-->>T: Typed projection and opaque keys
T-->>W: List page or detail object
Reviews (4): Last reviewed commit: "fix(oracle-fusion): isolate SCM operatio..." | Re-trigger Greptile
There was a problem hiding this comment.
All reported issues were addressed across 50 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 50 files
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.
4 issues found across 72 files
Confidence score: 3/5
integration-search-items.tscan emitconnect=oauthbefore availability hydrates for service-account-only integrations such as Oracle Fusion, causing the detail page to reject the search result — align the fallback with the eventual supported authentication type.get-blocks-metadata-tool.tsreturns Oracle SCM metadata outside the declared type, whiletransformBlockMetadatalacks a service-account branch; consumers can receive misleadingauthTypemetadata — add the service-account case and update the metadata type.schema.tstrims opaque Oracle keys before encoding requests, so keys with surrounding spaces resolve to a different resource and can break detail or child calls — preserve the original key while validating or rejecting whitespace.page.tsxtells users that direct-configuredauthType: 'none'integrations require no authentication, which misdescribes how those integrations are set up — explain that configuration happens directly in the block and clarify the remaining connection requirements.
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/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/integration-search-items.ts">
<violation number="1" location="apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/search-modal/integration-search-items.ts:18">
P2: When availability has not hydrated yet, this fallback emits `connect=oauth` for service-account-only entries such as Oracle Fusion. The detail page later rejects OAuth when availability arrives, so the search click does not open the service-account picker; derive the fallback from the entry’s auth type or defer adding the query parameter until availability is known.</violation>
</file>
<file name="apps/sim/lib/copilot/tools/server/blocks/get-blocks-metadata-tool.ts">
<violation number="1" location="apps/sim/lib/copilot/tools/server/blocks/get-blocks-metadata-tool.ts:632">
P2: When `get_blocks_metadata` processes Oracle SCM, this branch returns a value outside the declared metadata type, and `transformBlockMetadata` has no service-account branch. The result reports `authType: "Service Account"` without `requiredCredentials`, so Copilot receives no service-account credential descriptor; add the union member and corresponding transformation.</violation>
</file>
<file name="apps/sim/app/(landing)/integrations/(shell)/page.tsx">
<violation number="1" location="apps/sim/app/(landing)/integrations/(shell)/page.tsx:35">
P2: When the catalog includes direct-configured `authType: 'none'` integrations, this FAQ still tells users they need no authentication. Describe the remaining integrations as configured directly in the block, with connection details or no credentials as applicable.</violation>
</file>
<file name="apps/sim/lib/internal/oracle-fusion-scm/schema.ts">
<violation number="1" location="apps/sim/lib/internal/oracle-fusion-scm/schema.ts:680">
P2: When an Oracle-derived opaque key has leading or trailing spaces, this schema trims it before the request is encoded, so detail and child calls address a different resource. Preserve the key exactly while rejecting only blank values.</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.
All reported issues were addressed across 78 files
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 78 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
Depends on #7427
Type of Change
Testing
feat/oracle-fusion-foundationNo live Oracle tenant was available; required permissions, feature opt-ins, and the
MaintenanceFlagquarterly-release compatibility check are documented for tenant validation.Checklist
Screenshots/Videos
Not applicable; this adds integration/tool surfaces without a custom visual UI.