fix(security): preserve tenant scope through service lookup - #380
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@opencode-agent review Perform an independent formal review of exact current head |
d439566
into
fix/tenant-id-query-boundary-after-342-20260811
Objective
Advance tenant-safe job reads after #361 by carrying authenticated tenant authority through the application-service lookup boundary. The service must not globally retrieve a job and filter ownership afterward when the repository exposes a storage-scoped tenant/id query.
Test-first state
This Draft starts intentionally RED at exact test-only head
aff4f013f60ea400818693f30d51ff92c227f344.TenantScopedConversionServiceLookupTestrequires the service-interface default to fail closed without invoking globalgetJob(UUID), and requiresDefaultDocumentConversionServiceto delegate directly toConversionJobRepository.findByTenantAndId(...)while rejecting absent tenant/job authority. Production does not exposegetJob(UUID, TenantContext)at this head, so test compilation is expected to fail at that exact boundary.Stack and scope
Base is #361 branch
fix/tenant-id-query-boundary-after-342-20260811exact head977492622bc1f26d09c3f5ebbb76461407063f8f, itself stacked on #342. This child adds only the application-service scoped lookup contract/implementation and focused tests. It does not modify controllers, admin deletion, artifact delivery, OIDC/credential work, durable persistence, or canonical docs.Acceptance
Observe exact-head RED -> smallest service contract/implementation -> exact-head Maven/coverage/Javadoc and emitted CI evidence. Keep Draft while #361/#342 remain open; after ancestors integrate, reconcile this unique delta onto the live protected base and regenerate base-sensitive checks/reviews. Independent write-authorized approval remains a separate protected-merge gate.