---
id: change/bcquality/92
type: change
title: "#92 Correct security and privacy knowledge guidance"
summary: Security and privacy knowledge articles were corrected to align with current Business Central APIs and behavior, including fixes for SecretText HTTP guidance, error telemetry semantics, field data classification, and consent handling.
tier: official
language: en
tags:
  - fix
  - main
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:13:04.242Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: aca3986fd0702ed6829b71c8ef6645d87550ae70
evidence:
  - kind: code
    url: https://github.com/microsoft/BCQuality/pull/92
    title: "microsoft/BCQuality#92: Correct security and privacy knowledge guidance"
    date: "2026-07-14"
    commit: aca3986fd0702ed6829b71c8ef6645d87550ae70
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 92
repo: microsoft/BCQuality
source_id: bcquality-prs
url: https://github.com/microsoft/BCQuality/pull/92
kind: pr
base_branch: main
major: null
merged_at: "2026-07-14T09:25:03Z"
author: JesperSchulz
author_type: User
community_contribution: false
labels: []
change_class: code
change_kind: fix
behavior_change: false
breaking: false
files:
  count: 34
  additions: 192
  deletions: 153
  al: 34
apps: []
objects_touched: []
objects_unjoined:
  - path: microsoft/knowledge/privacy/avoid-strsubstno-prebuild-before-error.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/avoid-strsubstno-prebuild-before-error.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/error-direct-substitution-safe-for-telemetry.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/error-vs-message-telemetry-logging.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/getlasterrortext-customer-content-in-errors.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/getlasterrortext-customer-content-in-errors.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/getlasterrortext-customer-content-in-errors.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/privacy-notice-consent-for-external-data-transfer.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/privacy-notice-consent-for-external-data-transfer.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/privacy-notice-consent-for-external-data-transfer.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/register-integration-in-privacy-notice-registrations.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/register-integration-in-privacy-notice-registrations.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/table-level-data-classification-cascades.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/privacy/table-level-data-classification-cascades.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/isolatedstorage-access-must-be-local-or-internal.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/isolatedstorage-access-must-be-local-or-internal.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/isolatedstorage-datascope-module-vs-company.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/isolatedstorage-datascope-module-vs-company.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/isolatedstorage-datascope-module-vs-company.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/isolatedstorage-setencrypted-for-sensitive-values.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/isolatedstorage-setencrypted-for-sensitive-values.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/nondebuggable-required-when-unwrapping-secrettext.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/nondebuggable-required-when-unwrapping-secrettext.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/nondebuggable-required-when-unwrapping-secrettext.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secretstrsubstno-for-composing-secrets.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secretstrsubstno-for-composing-secrets.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secretstrsubstno-for-composing-secrets.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secrettext-for-credentials.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secrettext-for-credentials.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secrettext-with-httpclient.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secrettext-with-httpclient.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/secrettext-with-httpclient.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/validatetablerelation-false-on-user-input.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/security/validatetablerelation-false-on-user-input.md
    status: modified
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items: []
systems:
  - development
  - administration
quote: null
joined_against:
  major: null
  commit: null
---

# #92 Correct security and privacy knowledge guidance

> Security and privacy knowledge articles were corrected to align with current Business Central APIs and behavior, including fixes for SecretText HTTP guidance, error telemetry semantics, field data classification, and consent handling.

[Pull request](https://github.com/microsoft/BCQuality/pull/92) · merged into `main` on 2026-07-14 by JesperSchulz · 34 files (+192 -153), 34 AL · fix · tier official · reviewed (checked by Opus)

## What changed

- SecretText HTTP guidance now uses HttpRequestMessage.SetSecretRequestUri with HttpClient.Send instead of an API that does not exist
- Error telemetry guidance realigned with AA0231 and current RT0030 behavior for Label/TextConst versus dynamic first arguments
- Corrected field data classification, Privacy Notice registration and consent for custom integrations
- SecretText.Unwrap is described as on-premises only, and intentional ValidateTableRelation = false handling is clarified
- Fixed secret interpolation and gated BC 23/24 APIs accurately

## AL objects touched

- `microsoft/knowledge/privacy/avoid-strsubstno-prebuild-before-error.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/avoid-strsubstno-prebuild-before-error.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/error-direct-substitution-safe-for-telemetry.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/error-vs-message-telemetry-logging.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/getlasterrortext-customer-content-in-errors.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/getlasterrortext-customer-content-in-errors.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/getlasterrortext-customer-content-in-errors.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/privacy-notice-consent-for-external-data-transfer.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/privacy-notice-consent-for-external-data-transfer.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/privacy-notice-consent-for-external-data-transfer.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/register-integration-in-privacy-notice-registrations.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/register-integration-in-privacy-notice-registrations.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/table-level-data-classification-cascades.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/privacy/table-level-data-classification-cascades.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/isolatedstorage-access-must-be-local-or-internal.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/isolatedstorage-access-must-be-local-or-internal.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/isolatedstorage-datascope-module-vs-company.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/isolatedstorage-datascope-module-vs-company.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/isolatedstorage-datascope-module-vs-company.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/isolatedstorage-setencrypted-for-sensitive-values.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/isolatedstorage-setencrypted-for-sensitive-values.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/nondebuggable-required-when-unwrapping-secrettext.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/nondebuggable-required-when-unwrapping-secrettext.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/nondebuggable-required-when-unwrapping-secrettext.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secretstrsubstno-for-composing-secrets.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secretstrsubstno-for-composing-secrets.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secretstrsubstno-for-composing-secrets.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secrettext-for-credentials.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secrettext-for-credentials.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secrettext-with-httpclient.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secrettext-with-httpclient.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/secrettext-with-httpclient.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/validatetablerelation-false-on-user-input.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/security/validatetablerelation-false-on-user-input.md`: modified, not in the BC? snapshot

## Context

- Systems: development, administration

Source: metadata of a merged pull request in microsoft/BCQuality (bcquality): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).
