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>
This commit is contained in:
Jesper Schulz-Wedde 2026-07-14 11:23:57 +02:00 committed by GitHub
parent 7a678d1aff
commit bfda67a95a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 1 additions and 12 deletions

View file

@ -1,32 +0,0 @@
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);
// Explicit cleanup on the normal exit path.
TempCustomer.DeleteAll();
exit(true);
end;
local procedure ProcessCustomerBuffer(var TempCustomer: Record Customer temporary)
begin
// Use the buffer in-place; do not persist values elsewhere.
end;
}