Repository navigation
fix(audit): log many-to-many collection changes on summit, sponsor and venue rooms and add coverage guard - #671
Open
romanetar wants to merge 5 commits into
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
|
📘 OpenAPI / Swagger preview ➡️ https://OpenStackweb.github.io/summit-api/openapi/pr-671/ This page is automatically updated on each push to this PR. |
The four excluded_categories_for_* collections and registration_companies now report added and removed ids through SummitAuditLogFormatter instead of being dropped (ADR-004).
members now reports added and removed ids through SponsorAuditLogFormatter instead of being dropped (ADR-004).
attributes now reports added and removed ids through SummitBookableVenueRoomAuditLogFormatter instead of being dropped (ADR-004).
…y events Fails when an entity configured in config/audit_log.php owns a many-to-many collection and one of its formatters (default strategy or any route-scoped strategies[] entry) does not handle EVENT_COLLECTION_MANYTOMANY_UPDATE / DELETE. No allowlist. Run against the formatters on main it reports 19 offenders; with the formatters in this stack it reports none.
Extends the 'Current entities with M2M audit support' list and replaces the paragraph saying other configured entities still drop the events with a description of ManyToManyAuditCoverageTest.
romanetar
force-pushed
the
fix/audit-m2m-summit-sponsor-venue
branch
from
November 10, 2026 13:10
edf71fb to
d0af19d
Compare
|
📘 OpenAPI / Swagger preview ➡️ https://OpenStackweb.github.io/summit-api/openapi/pr-671/ This page is automatically updated on each push to this PR. |
1 similar comment
|
📘 OpenAPI / Swagger preview ➡️ https://OpenStackweb.github.io/summit-api/openapi/pr-671/ This page is automatically updated on each push to this PR. |
romanetar
marked this pull request as ready for review
November 10, 2026 13:15
This branch has not been deployed
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.
ref: https://app.clickup.com/t/9014802374/86bc72z5c
Summary
Part of a stack of 5 PRs that make every configured audit formatter handle many-to-many collection changes (ADR-004). Without a case for
EVENT_COLLECTION_MANYTOMANY_UPDATE/DELETE, a configured formatter returns null andAuditLogOtlpStrategydrops the entry, so attaching or detaching items left no audit trail.Covers: Summit (the four excluded_categories_* collections and registration_companies), Sponsor (members) and SummitBookableVenueRoom (attributes).
It also adds
tests/Unit/Audit/ManyToManyAuditCoverageTest.php, which fails when a configured entity owns a many-to-many collection whose formatter does not handle the events (no allowlist). Onmainit lists the 19 offenders; on this branch it reports 0. ADR-004 now lists every entity with M2M audit support, no longer says other configured entities drop the events, and its "Adding M2M audit to a new entity" steps point to the sharedAbstractAuditLogFormatter::formatManyToManyCollectionChange()added in #667 instead of per-formatter private methods.One commit per formatter, each with its tests under
tests/OpenTelemetry/Formatters/(update with added and removed ids, delete with preloadeddeleted_ids, and null when there is no diff).Stack
Review in order; each PR is green on its own. The coverage guard test and the ADR-004 update land in the last PR (#671).
🤖 Generated with Claude Code