Adjust audit log tables - #10252
Conversation
|
Issue #646814 is not valid. Please make sure you link an issue that exists, is open and is approved. |
|
This change stops treating four Financial Report tables ("Financial Report User Filters", "Financial Report Export Log", "Fin. Rep. Package Export Log", "Financial Report Audit Log") as always-logged in Change Log Management, so customers or dependent customizations that rely on automatic audit entries for those tables will silently stop receiving new entries going forward. If that behavioral change is intended (e.g. avoiding recursive logging of log/export tables), it should be documented; otherwise these tables should remain in the always-logged list. Line mapping was unavailable, so this was posted as an issue comment. 👍 useful · ❤️ especially valuable · 👎 wrong - reply with why · AL review agent v1.32.4 |
|
This change removes "Financial Report Audit Log", "Financial Report Export Log", and "Fin. Rep. Package Export Log" from the always-logged table set in the OnAfterIsAlwaysLoggedTable subscriber. In Change Log Management, always-logged tables bypass normal Change Log activation/setup checks, so this turns tamper-evident logging for audit/export records into an optional administrator configuration instead of a guaranteed one. Because these tables are still modifiable/deletable per the codeunit's own permission grant (tabledata "Financial Report Audit Log" = ri) and related permission sets, a user with modify/delete rights on these tables could alter or delete audit-relevant history without guaranteed change-log evidence going forward. If the intent was to avoid redundant self-logging of the audit/export tables, confirm that decision explicitly (e.g., in the PR description) since it weakens tamper-evidence for compliance-sensitive log data; otherwise keep these tables in the always-logged list or add an equivalent mandatory tamper-evident logging mechanism. Agent judgement — not directly backed by a BCQuality knowledge article. Line mapping was unavailable, so this was posted as an issue comment. 👍 useful · ❤️ especially valuable · 👎 wrong - reply with why · AL review agent v1.32.4 |
## Summary - track the PR-head position at which each deleted line was removed - infer the nearest `LEFT` anchor when a hunk has no changed `RIGHT`-side line - preserve exact anchors, `RIGHT`-side preference, and hunk boundaries - add regression coverage matching the deletion-only shape from BCApps PR #10252 ## Reproduction CampAIR PR [microsoft/BCAppsCampAIRHack#216](microsoft/BCAppsCampAIRHack#216) deletes only `Relation.Insert();`. Engine v1.32.4 generated a legitimate finding but posted it as a [top-level issue comment](microsoft/BCAppsCampAIRHack#216 (comment)) with `Line mapping was unavailable`; the inline review comments API remained empty. The same behavior affected two findings on [microsoft/BCApps#10252](microsoft/BCApps#10252). [AB#646831](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/646831) Co-authored-by: wenjiefan <wenjiefan@microsoft.com> Copilot-Session: 045bef88-d7d4-4553-a681-d7d73cdb2285
Agentic PR Review - Round 1Recommendation: Accept with SuggestionsWhat this PR doesThis PR removes four tables from the always-logged set in the The change is coherent. The four table objects still exist; they are only dropped from the "always logged" change-log set, so this is a behavior change, not compile cleanup. Removing the two export-log tables and the audit-log table from change logging is reasonable, since they are high-volume log tables and change-logging the audit log itself is redundant - the codeunit still stamps the audit log through its own SuggestionsS1 - Add a regression test for the logged-table set Risk assessment and necessityRisk: Low to moderate. No posting, amount, or ledger logic is touched. The compatibility point is that changes to these four tables will no longer appear in Change Log Entries; a tenant that relied on change-log history for financial-report export or filter tables would lose that trail. This is a BaseApp change, so it applies to all tenants. The audit log keeps its own entries and retention policy, so its core function is unaffected. Necessity: The change is needed to stop change-logging log and per-user state tables that should not be audited, reducing Change Log noise and storage. The scope is narrow and targeted - only the always-logged list is edited.
|
Remove audit log tables
Fixes AB#646814