Skip to content

feat(oracle-epm): add guarded foundation - #7469

Open
BillLeoutsakosvl346 wants to merge 18 commits into
stagingfrom
feat/oracle-epm-foundation
Open

feat(oracle-epm): add guarded foundation#7469
BillLeoutsakosvl346 wants to merge 18 commits into
stagingfrom
feat/oracle-epm-foundation

Conversation

@BillLeoutsakosvl346

@BillLeoutsakosvl346 BillLeoutsakosvl346 commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add the Oracle EPM integration-user credential with locally minted Basic authentication bound to one environment
  • Add guarded child-owned route, endpoint, returned-link, polling, and bounded file primitives without a product integration
  • Keep shared runtime behavior unchanged outside the additive credential descriptor and minter registrations

Type of Change

  • New feature

Testing

  • Targeted Vitest suites (18 files, 217 tests)
  • Root type-check and lint
  • Block-registry audit, all repository audits, and docs-manifest check

Deferred Platform Work

  • Generic credential resolution does not enforce that a selected credential matches the tool's registered service; address this in a separate platform-security PR before the first EPM child
  • Client-credential reconnect may read and decrypt stored credentials while looking for dataCenter on providers that do not declare it; address this in a separate orchestration cleanup PR

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)

@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Sep 4, 2026 11:47pm UTC

Request Review

@gitguardian

gitguardian Bot commented Sep 4, 2026

Copy link
Copy Markdown

️✅ There are no secrets present in this pull request anymore.

If these secrets were true positive and are still valid, we highly recommend you to revoke them.
While these secrets were previously flagged, we no longer have a reference to the
specific commits where they were detected. Once a secret has been leaked into a git
repository, you should consider it compromised, even if it was deleted immediately.
Find here more information about risks.


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@greptile-apps

greptile-apps Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds a guarded Oracle EPM foundation without exposing a product integration.

  • Registers an environment-bound Oracle EPM integration-user credential and locally generates Basic authentication.
  • Adds validated route, endpoint, returned-link, polling, HTTP-client, error, and bounded file primitives.
  • Serializes download cleanup around multipart completion and presigned-link generation.
  • Enforces polling deadlines even when a child read does not settle cooperatively.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/sim/lib/internal/oracle-epm/files.server.ts Adds authorized, size-bounded file streaming and serialized multipart cleanup; the previously reported completion race is addressed.
apps/sim/lib/internal/oracle-epm/jobs.ts Adds bounded polling with combined cancellation and deadline enforcement; the previously reported non-settling-reader overrun is addressed.
apps/sim/lib/internal/oracle-epm/client.server.ts Implements the guarded Oracle EPM request boundary over validated endpoint declarations and destinations.
apps/sim/lib/internal/oracle-epm/endpoint.ts Defines validated and frozen route, endpoint, query, header, retry, and response contracts.
apps/sim/lib/credentials/client-credential-accounts/minters/oracle-epm.ts Locally generates bounded Basic-auth credentials and binds them to a normalized Oracle EPM environment.
apps/sim/lib/credentials/client-credential-accounts/descriptors.ts Registers the Oracle EPM integration-user credential descriptor and required fields.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Credential[Oracle EPM integration-user credential] --> Minter[Local Basic-auth minter]
  Minter --> Destination[Normalized environment destination]
  Child[Future child-owned integration] --> Endpoint[Branded route and endpoint declaration]
  Endpoint --> Client[Guarded Oracle EPM client]
  Client --> Destination
  Client --> Links[Validated returned links]
  Client --> Files[Bounded file primitives]
  Client --> Polling[Deadline-bound job polling]
Loading

Reviews (14): Last reviewed commit: "fix(oracle-epm): reject raw backslashes ..." | Re-trigger Greptile

Comment thread apps/sim/lib/internal/oracle-epm/files.server.ts
Comment thread apps/sim/lib/internal/oracle-epm/jobs.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 33 files

Re-trigger cubic

Comment thread apps/sim/lib/oauth/token-resolution.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/endpoint.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/destination.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/jobs.ts
Comment thread apps/sim/lib/internal/oracle-epm/files.server.ts
Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts Outdated
Comment thread apps/sim/lib/credentials/orchestration/index.test.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 Sep 4, 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

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 4, 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 34 files

Re-trigger cubic

Comment thread apps/sim/lib/oauth/token-resolution.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/files.server.ts
Comment thread apps/sim/lib/internal/oracle-epm/destination.ts
Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts
Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts
Comment thread apps/sim/lib/internal/oracle-epm/client.server.test.ts Outdated
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 4, 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 34 files

Fix all with cubic | Re-trigger cubic

Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review this PR

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 4, 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 34 files

Fix all with cubic | Re-trigger cubic

Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cubic
@greptile

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@cubic
@greptile

@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.

1 issue found across 26 files

Confidence score: 4/5

  • In apps/sim/lib/internal/oracle-epm/endpoint.ts, validatePath rejects valid non-BMP literals such as 😀 because the surrogate-range check matches both halves, preventing them from being encoded; update the validation to reject only malformed UTF-16 pairs.
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/internal/oracle-epm/endpoint.ts">

<violation number="1" location="apps/sim/lib/internal/oracle-epm/endpoint.ts:57">
P2: When a child declares a valid non-BMP literal such as `😀`, `validatePath` rejects it because the surrogate-range branch matches both halves. Reject only malformed UTF-16 pairs so valid literals remain encodable.</violation>
</file>

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/lib/internal/oracle-epm/client.server.ts
Comment thread apps/sim/lib/internal/oracle-epm/client.server.ts Outdated
Comment thread apps/sim/lib/internal/oracle-epm/endpoint.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 Sep 4, 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 26 files

Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.

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/lib/internal/oracle-epm/client.server.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 Sep 4, 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 26 files

Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.

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/lib/internal/oracle-epm/client.server.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 Sep 4, 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 26 files

Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.

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/lib/internal/oracle-epm/client.server.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 Sep 4, 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 26 files

Confidence score: 5/5

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

Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.

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

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