This post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 2 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2023 Wave 2.
The sixteenth of the new functionality in the Development section is Use SecretText type to protect credentials and sensitive textual values from being revealed.
With an increasing amount of integrations to external systems, it’s not uncommon in AL code to work with secrets such as credentials and other sensitive textual values. Given the need to protect these from being revealed through debugging, the latter has often been blocked through resource exposure policies, at the cost of easy troubleshooting. To support enabling debugging, while protecting credentials and other sensitive textual values from being revealed, Microsoft are introducing a new SecretText type for variables. In addition, some of the common scenarios in the system app will get support for passing in SecretText parameters for credentials—for example, the HttpClient and Isolated Storage types.
Enabled for: Admins, makers, marketers, or analysts, automatically
Public Preview: Aug 2023
General Availability: Oct 2023
Feature Details
A new type, SecretText, has been added to protect credentials and other sensitive textual values from being revealed through debugging. The declaration syntax will be similar to the Text data type, with the sole difference that it won’t support constraints on the length.
SecretText will be usable as a:
- Variable value
- Return value
- Parameter value
Its use will be limited to carrying, for example, credentials from the point of creation to the destination method. The destination method must accept a SecretText value.
Any text type will be assignable to the SecretText type as long as it can be converted to the Text type. The SecretText type encapsulates a Text type. If a Code or other text type is to be stored, it’ll be converted into the Text type. A Dotnet string type will also be convertible to SecretText. However, a constant or other types won’t be assignable to a SecretText type.
For exceptional cases where it must be used as a text, a built-in Unwrap method will be supported. This will only be usable when the project scope is on-premises. Given on-premises only, it will be allowed outside of boundaries of a procedure marked as NonDebuggable, but it will result in a warning, and can thus also be blocked through the use of a ruleset for specific projects.
Initially, events won’t support SecretText parameters; however, triggers will. The latter scenario is to support the case of control add-ins like the OAuth control add-in to return the credentials in a secure container.
In the system app, HttpClient will get support for passing SecretText parameters—for example, for credentials.
In the following example, the return value and parameter will not be debuggable:
New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 2 |
Change Modification Limits for Triggering Flows and Bulk Updates |
Support Business Events in Business Central Connector for Power Automate |
Enable Specific Virtual Tables When You Connect to Dataverse |
Get Control Over How to View Power BI Embedded Content |
Availability Overview Helps You Calculate Quantities in Your Warehouse |
Configure The Right Level of Handling For Different Warehouse Operations |
Do financial Consolidations Across Environments in Multicompany Setups |
Edit in Excel on Item Journals and Warehouse Worksheets |
Get More Productive While Approving Time Sheets |
Get More Productive While Entering Time Sheets |
Include Approvals for Intercompany General Journals in Your Workflows |
Make Intercompany Transactions Across Business Central Environments |
Suggest the Next Step For Sales and Production Orders |
Sync Document and Posting Dates for Sales and Purchases |
Troubleshoot Shopify Integration Issues |
Usability Improves for Warehouse, Inventory, and Tracking |
Use Directed Pick and Put-away Suggestions in Basic Warehouse Configurations |
Use General Ledger Allocations to Distribute Costs and Revenue More Efficiently |
Complete Bank Account Reconciliation Faster With Copilot |
Get Marketing Text Suggestions with Copilot |
New Design for Report Language and Region Settings |
Advance Payment and a Posting Preview of Tax Documents – Czechia |
Direct Transfer – Czechia |
E-submission of VAT Return in Denmark |
Iceland Localization App – Delocalization |
Intercompany Posting Cues to the Accountant Role Center – Czechia |
New Intrastat – Czechia |
Registration and Notification Functionality for Denmark |
E-invoicing with NemHandel in Denmark |
Supporting More Countries and Regions |
Open Visual Studio Code From Web Client to Investigate or Troubleshoot Extensions |
Turn Off Data Analysis Mode on Pages and Queries |
Turn Off Indexes as a Partner |
Use the Built-in Rich Text Editor to Enter Data |
Assign More Granular Administration Rights |
Improved Update Release Processes |
Cancel Cloud Migration Replication Runs |
Digital Vouchers |
E-documents Core as a Global Solution |
Large Companies to Report Payment Times |
Modify Texts on the Welcome Banner and Skip Banner Intro State |
Set Initial Role Before First Sign-in for a Better First-Run Experience |
Enhancements to Excel Add-in |
Analyze, Group, and Pivot Data on Queries Using Multiple Tabs |
Discover Report and Data Analysis Content Easily |
Get Power BI Reports for Reporting and Data Analysis on Finance, Sales, and Inventory |
Data Loads Faster in the Server |
Faster Application Scenarios |
Pages Load Faster in Client |
Performance Gain Reducing Locks in the Database |
Add Existing Table Fields to Optimize Your Pages |
Get to Data Search From Anywhere in Business Central |
Distinguish Browser Tabs When Multitasking |
Share Readable Deep Links to Pages and Records |
Manage User Expectations with Selection Context-Based Actions |
Peek at Summarized Data From Editable Fields |
Search for Pages and Data in the Mobile App |
Use Actions to Navigate or Fix Errors From Inline Validation Dialog |
Updates to the Release Plan |
Power Pages Support via Business Central Virtual Tables on Dataverse |
Synchronize More Fields in Your Integration with Dataverse and Dynamics 365 Sales |
Consolidated Power Automate Flow Creation from Business Central Templates |
Get List of Companies Using Business Central Connector in Power Automate |
Simplified Power Automate Approval Flow Experience |
Create Power Automate Flows that Dynamically Support Different Companies |
Business Central Virtual Tables Fully Supported on Microsoft Dataverse |
Relate Native and Virtual Tables to Expose More Business Central Data in Dataverse |
Include Only Open Entries on Customer Statements |
Adjust Exchange Rates Easily, Replace the Built-in Batch Job |
More Control Over General Journal Approvals |
Use Different General Ledger Accounts for Payables, Receivables |
Add More Columns to Pages for Better Insight |
Availability Overview Helps You Calculate Quantities in Your Warehouse |
Block Item Variants |
Identify and Track Items Easier with Item References |
Improved Processes for Inventory Counts and Adjustments |
Navigate Easier Between Order, Receipt, and Invoice Documents |
Print and Scan Barcodes |
Receive More Items Than Ordered by Using Inventory Put-away Documents |
Generate a Customer Statement Only With Open Entries |
Responsibility Centers Are Supported for Advance Payments in Czechia |
Easier Management of System Application Permissions |
Get the AL Language Extension in Prerelease Versions on Visual Studio Code Marketplace |
Find All References Now Works on Triggers, System Methods, and Trigger Events |
Get Inlay Hints in Source Editor for AL Method Parameters and Return Types |
Get Inlay Hints in Source Editor for AL Method Parameters and Return Types |
Hover Over Label Variable to See Text String Value |
Set New Output Folder Setting for Storing App Files at AL Project Build |
Choose Between More Sampling Intervals for Snapshot and In-client Profiling |
Get IntelliSense for Adding Variables in Visual Studio Code AL Debugger Console |
Get Smarter Method Signature Recommendations in IntelliSense |
Set the Default Folder Location for New AL Projects |
Track Source and Build Metadata on Extensions |
Use SecretText Type to Protect Credentials and Sensitive Textual Values From Being Revealed |
Document Your Extensions With the ALDoc Tool for Partners |
Segment AL Code and Reduce Naming Conflicts with Namespaces |
Show List of Keys While Working on AL Code |
Use the AL Language Extension for Linux in Preview |
Provide Queries for Users to do Ad Hoc Data Analysis Across Tables |
Add a New FieldGroup to an Existing Table |
Add Teaching Tooltips on Queries and Report Request Pages |
Get Syntax Highlighting for AL in Azure DevOps |
Sell Business Central Apps Through AppSource |
AppSource ISV Publishers Can Preview Their AppSource Apps With Select Customers |
Extend General Ledger Posting Aggregations |
Define multi-worksheet datasets for Excel reports |
Include or Exclude Tables From Cloud Migration |
Delete Data from Uninstalled Extensions as an Admin |
Automatically Update AppSource Apps With Minor Updates |
Transfer Environments Between Microsoft Entra Tenants |
Control Partner Access Per Environment |
Use Drop Shipments for Triangular Intrastat Trade |
Start Faster with Refreshed and Enhanced Setup Data |
VAT Posting in General Ledger Setup |
Demo Tool and Data for Service Scenarios |
Analyze, Group, and Pivot Data on Lists |
Share a Data Analysis With a Co-worker |
Synchronize Multiple Business Central Companies With the Same Dataverse Environment |
New Operational Limits on Scheduled Tasks and Web Requests Improve Throughput |
Service-to-Service Apps and Device License Users Can Schedule Tasks |
Mark Fields as Read-only When Customizing UI |
Scan barcodes with Business Central mobile app for iOS and Android |
Access Worksheet Pages From Mobile Phones |
Use Virtual Tables to Expose More Business Central Data in Dataverse |
Reverse a Customer and Vendor Ledger Entry with a Realized Gain or Loss Entry |
Use General Ledger Account Revaluation for More Accurate Financial Statements |
Use Standard Terminology for Project Management |
Use Currencies When Posting Employee Transactions |
Chat with Copilot |
Improved Data Upgrade Troubleshooting for Dynamics GP Migration |
Retain Permissions When Enabling Cloud Migration |
Detect Invalid Cloud Migration Configurations with Proactive Warnings |
Multiple VAT Numbers per Customer |
If there is a topic which fits the typical ones of this site, which you would like to see me write about, please use the form, below, to submit your idea.