bcquality/microsoft/knowledge/security/protect-sensitive-data-in-temporary-tables.good.al
Jesper Schulz-Wedde bfda67a95a
Promote security knowledge from community to Microsoft layer (#49)
* Promote security knowledge from community to Microsoft layer

Pure git-mv relocation of the SECURITY domain from the community layer to the Microsoft layer. No content changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review feedback on security knowledge promotion

- do-not-grant-rights-beyond-a-users-entitlement.md: drop the See sample
  reference to a .good.al file that does not exist
- Remove the 'Contributions welcome' boilerplate line from
  compose-permission-sets, prefer-oauth2, and protect-sensitive-data
- protect-sensitive-data-in-temporary-tables: remove the pointless
  DeleteAll on the locally scoped temp buffer in the good sample and
  reword Best Practice to note local buffers are cleaned up automatically
- Drop guard-bulk-operations-with-istemporary from the promotion; it
  stays in the community layer pending a decision on whether it is security

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Remove Contributions welcome boilerplate from do-not-grant article for consistency

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-14 11:23:57 +02:00

29 lines
858 B
AL

codeunit 50100 "Customer Temp Processor"
{
procedure BuildScopedCustomerBuffer(CustomerNoFilter: Text): Boolean
var
Customer: Record Customer;
TempCustomer: Record Customer temporary;
begin
// Validate the caller's permission before copying sensitive rows.
if not Customer.ReadPermission() then
exit(false);
Customer.SetFilter("No.", CustomerNoFilter);
if not Customer.FindSet() then
exit(true);
repeat
TempCustomer := Customer;
TempCustomer.Insert();
until Customer.Next() = 0;
ProcessCustomerBuffer(TempCustomer);
exit(true);
end;
local procedure ProcessCustomerBuffer(var TempCustomer: Record Customer temporary)
begin
// Use the buffer in-place; do not persist values elsewhere.
end;
}