Adding RPST bootstrap method to the common auth module - #410
Conversation
dustin-sale
left a comment
There was a problem hiding this comment.
Review by @dustin-sale via Codex.
Requested changes
src/common/oracle_mcp_common/auth.py:566— [P1] Regenerate the time-derived security context for every RPT acquisition.src/common/oracle_mcp_common/auth.py:549— [P1] Resolve default endpoints using the region's OCI realm.src/common/oracle_mcp_common/auth.py:74— [P1] Prevent the RCI HMAC key from appearing in representations.src/oci-api-mcp-server/pyproject.toml:15— [P1] Add the OCI API server release version and changelog update.src/oci-cloud-mcp-server/pyproject.toml:15— [P1] Add the OCI Cloud server release version and changelog update.src/oci-database-mcp-server/pyproject.toml:15— [P1] Add and synchronize the Database server release version and changelog update.
Additional review notes
- [P2] Preserve the RPv2.1.2 tenancy ID in
AuthContext. - [P2] Add a deterministic cryptographic and refresh regression test.
- [P2] Update repository guidance to the common 0.2 compatibility window.
Validation
make lint,make test project=common, the fullmake test, all four lock checks, and all four requestedmake installchecks passed.- The full suite completed with 2,199 passed, one skipped, and 91% combined coverage.
See the inline comments in this review for evidence, impact, and suggested remediation.
|
Addressed the PR comments by @dustin-sale , the server now:
|
dustin-sale
left a comment
There was a problem hiding this comment.
Review by @dustin-sale via Codex.
Requested changes
src/common/oracle_mcp_common/auth.py:578— [P1] Regenerate the proof for SDK retry attempts.
Additional review notes
src/common/README.md:96— [P2] Document and lock down RCI secret handling.src/common/oracle_mcp_common/tests/test_auth.py:602— [P2] Exercise timestamp validation independently.src/common/README.md— [P2] Update the common dependency example.src/common/README.md:99— [P2] Describe realm-aware endpoint defaults.
Validation
- Lint and the full repository suite passed: 2,259 passed, 1 skipped, with 91% combined coverage.
- Lock checks and
make installpassed for common 0.2.0 and the updated API, Cloud, and Database server versions.
See the inline comments in this review for evidence, impact, and suggested remediation.
Addressed and pushed the new review feedback i: |
dustin-sale
left a comment
There was a problem hiding this comment.
Review by @dustin-sale via Codex.
Requested changes
src/common/oracle_mcp_common/auth.py:570— [P1] Install the retry hook before the initial exchange.
Additional review notes
src/common/oracle_mcp_common/auth.py:580— [P2] Fail closed if the SDK retry hook cannot be installed.src/common/pyproject.toml:3— [P2] Synchronize the common package's exported version.
Validation
make lint,make test project=common, and the fullmake testsuite passed; 2,264 tests passed, 1 was skipped, and combined coverage was 91%.- Lockfile checks and
make installpassed for common, API, Cloud, and Database. All GitHub checks are green.
See the inline comments in this review for evidence, impact, and suggested remediation.
|
Implemented @dustin-sale's requested changes. |
There was a problem hiding this comment.
Review by @dustin-sale via Codex.
Requested changes
No blocking changes requested.
Additional review notes
None.
Validation
make lint,make test project=common, and the fullmake testsuite passed; 2,265 tests passed, 1 was skipped, and combined coverage was 91%.- Lockfile checks, affected package installations, runtime version synchronization, and OCI SDK compatibility probes passed. All GitHub checks are green.
No inline comments.
This will need additional reviews from @gebhardtr and @robander
Description
Adds
resource_principal_v212authentication support tooracle-mcp-commonfor the Database-service resource-principal token exchange.The common auth module previously supported the OCI SDK’s standard resource-principal environment flow, but did not accept the PR’s RCI/T0 bootstrap inputs or generate the required security context. The new mode uses the OCI SDK’s
EphemeralResourcePrincipalV21Signerfor token retrieval, exchange, and refresh, while common auth validates and supplies the required configuration.Also:
int.from_bytes.oracle-mcp-commonfrom0.1.0to0.2.0.>=0.2.0,<0.3.0.Fixes #
Dependencies required:
oci>=2.179.0(already required; providesEphemeralResourcePrincipalV21Signer)oracle-mcp-common>=0.2.0,<0.3.0Type of change
How Has This Been Tested?
make test project=commonmake lintTest Configuration:
Checklist: