Repository navigation
feat(data-quality): activate W65 lifecycle API - #261
Conversation
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review Please review exact head |
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
|
@codex review Please review corrective exact head |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
|
@codex review Please review corrective exact head |
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
|
@codex review Please review final security-corrective exact head |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 408caaf3ac
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
Signed-off-by: Ammar Heidari <ammar@arad-itc.org>
|
@codex review Please review final P1-corrective exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2e4f30496b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| page.Truncated, | ||
| page.NextPolicyId, |
There was a problem hiding this comment.
Hide unauthorized policy IDs in pagination cursors
When a truncated raw page ends with an unauthorized policy, page.NextPolicyId still contains that hidden policy's ID even though the policy was removed from visible. For example, with maxResults=1 and a hidden first policy followed by another record, the response has no items but exposes the hidden ID as its continuation cursor, contradicting the intended authorization-filtered response boundary. Use an opaque server-owned cursor or otherwise avoid serializing an unauthorized policy identifier.
Useful? React with 👍 / 👎.
| page.Points | ||
| .Select( | ||
| DataQualityEvidenceData.From) | ||
| .ToArray(), |
There was a problem hiding this comment.
Authorize every returned evidence topic
When a policy is moved from topic A to topic B, QueryEvidenceAsync still returns historical points for all policy versions, and each point preserves its own topic name. Fresh evidence in this head is that the new check authorizes only the current policy snapshot's topic B, while this mapping serializes old topic-A points without a per-point TopicRead check; a reader allowed for B but denied A can therefore retrieve A's name and aggregate evidence. Filter or reject points by their actual topic and audit any resulting denial.
Useful? React with 👍 / 👎.
| var updated = | ||
| await store.SetPolicyStateAsync( | ||
| policyId, | ||
| request.State, | ||
| request.ExpectedRevision, |
There was a problem hiding this comment.
Bind topic authorization to the CAS revision
If request.ExpectedRevision is greater than the fetched snapshot's revision, a concurrent replacement can move the policy to an unauthorized topic and reach that expected revision between the topic check and this CAS. The state update then succeeds and returns the concurrent revision's complete definition, leaking the unauthorized topic and mutating it without authorization; the replacement route has the same future-revision race. Require the supplied revision to equal the snapshot that was authorized, or perform authorization against the definition atomically selected by the CAS.
Useful? React with 👍 / 👎.
Authority
W65 / #214 Slices 1–4C are protected-main admitted through PR #254. The remaining scope is API/UI closeout.
API activation slice
Kafdeck:DataQualityruntime configuration, disabled by default;ManagementEnabled=trueand OIDC;DataQualityRead/DataQualityManageauthorization actions;Safety
Refs #214 #209.