Address internal review on LA-RF-81 followup logging - #41
Merged
Conversation
H1/H3/M1/L5 : log-shape cleanup, drift-context dedup, casing CR-5 : plumb entity namespace/name through PatchConnectionClientsAsync CR-1 : non-429 -> ErrorApiException so the tier-1 catch fires V3 : broaden IsProgrammerBug (KeyNotFound, IndexOutOfRange, JsonSerialization) CR-4 : document HasPolicy(Update) caller contract No CRD shape changes; 42/42 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redact secrets in connection options drift log (key-aware denylist + RedactedOrFormat) - DriftField constructor guard rejects secret-shaped Before/AfterValue - Split LogAuth0ApiCall into LogAuth0Read / LogAuth0Write (compile-time mandatory DriftLogContext) - Restore ArgumentException to IsProgrammerBug now that the runtime guard is gone - Make CamelCaseJsonStringEnumConverter public (resolves visibility asymmetry) - Lock reconciliationType/changeType as camelCase string via new unit test - Drop connectionId from membership FieldPath; document AfterValue=null intent - Symmetric enum serialization on PatchConnectionClientsAsync failure log - Fix retry-budget comment regression (four attempts, not three) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
@rufus, please review this pull request. |
- Dispose first-attempt HttpRequestMessage on 401 retry - Rename ThrowFromHttpFailureAsync → ThrowFromHttpFailure ([DoesNotReturn] void) - Narrow IsSensitiveKey token rule; expand denylist (signing_key, client_assertion, certificate, pfx) - Clarify KubeConflictRetryDelaysMs comment phrasing Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reverts ~7 LOC of post-merge cleanup that's unrelated to RF-81: - V1TenantEntityController.cs: restore OverlayOperatorOwnedMetadata comment text (EventSource.reportingController footnote + labels-branch rationale). Behavior unchanged. - V1ClientControllerWireModels.cs:9: drop unrelated blank line. Category I (V1Controller _kube/_logger dedup) intentionally kept in the MR to avoid re-introducing 8 CS0108 hidden-member warnings; it ships as part of this MR rather than a Phase 3 follow-up. Plan: agent-vault/projects/auth0-operator/plans/2026-05-19__15-44-05 - auth0-operator - LA-RF-81-followup-logging - MR shrink-strip analysis.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reverts ~40 LOC of internal-review scope creep (category G(ii)) that adds KeyNotFoundException / IndexOutOfRangeException / JsonSerializationException to the programmer-bug allowlist. Their addition is a separate invariant from the High #3 review concern (restoring ArgumentException, which stays — that's G(i), locked to the Read/Write split contract). Pre-diff behavior is preserved: malformed Auth0 payloads continue to requeue rather than crash-loud. The expansion can ship as a standalone follow-up MR. - V1Controller.cs: remove the three exception types from IsProgrammerBug + trim their XML doc justifications. - V1ControllerRetryAndRequeueTests.cs: delete ReconcileAsync_Propagates_JsonSerializationException_AsProgrammerBug. Plan: agent-vault/projects/auth0-operator/plans/2026-05-19__15-44-05 - auth0-operator - LA-RF-81-followup-logging - MR shrink-strip analysis.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
orlandomuner
approved these changes
May 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Internal code-review follow-up on
LA-RF-81-followup-logging. Closes every Critical / High / Medium finding from the internal review.LogValueFormatter+RedactedOrFormatwrappers inGetDriftFieldDetails/ComputeDriftFields)DriftFieldconstructor guard rejects secret-shapedBeforeValue/AfterValueLogAuth0ApiCallintoLogAuth0Read/LogAuth0Write(non-nullableDriftLogContext— compile-time contract; runtimeArgumentNullExceptionremoved)ArgumentExceptiontoIsProgrammerBugallowlist now that the runtime guard is goneCamelCaseJsonStringEnumConvertermadepublic(making the enumsinternalhits CS0051 onprotected abstractsignatures)reconciliationType/changeTypeas camelCase strings, not numbersAfterValue=nullon first-reconcile synthesis (selective-update consumer readsFieldPathonly)connectionIdfrom membership driftFieldPath(bounded Datadog facet cardinality)PatchConnectionClientsAsyncfailure logKubeConflictRetryDelaysMscomment regression (four attempts, not three)Three remaining Low + three Suggestion items deferred per human review.
Test plan
dotnet build Alethic.Auth0.Operator.sln— 8 projects, 0 errors, 0 warningsdotnet test src/Alethic.Auth0.Operator.Tests/— 42 passed, 0 failed🤖 Generated with Claude Code