Secure vs. Unsecure vs. Environment Variables. Configuration in Dataverse: What’s the Real Difference?
In Microsoft Dataverse plugin development, Secure Configuration and Unsecure Configuration are optional parameters provided at the time of plugin registration. These parameters are used to pass configuration data into a plugin without hardcoding values into the codebase. Secure Configuration is specifically designed for sensitive information such as API keys, secrets, or credentials. It is encrypted and can only be viewed or edited by users with system administrator privileges, making it a secure way to store confidential data. On the other hand, Unsecure Configuration is intended for non-sensitive settings such as feature toggles, flags, or environment names (like "Dev" or "Prod"). This data is stored in plain text and is visible to users who have access to register plugins. Both configurations are passed into the plugin constructor as string parameters, allowing the plugin logic to use them during execution. By separating sensitive and non-sensitive data in this way, developers can enhance the maintainability, flexibility, and security of their plugin implementations.
- A plain text string that you provide when you register a plugin step in the Plugin Registration Tool (PRT).
- Visible to all users who have access to the plugin registration.
- Stored in plain text in Dataverse.
- Store non-sensitive configuration values, like default messages, thresholds, or entity names.
- A string that stores sensitive information like API keys, connection strings, or secrets.
- Only accessible to users with the System Administrator or Plugin Registration privilege.
- Stored encrypted in Dataverse.
- Store credentials or sensitive tokens required for plugin execution.
- Use Secure Configuration for anything sensitive to protect secrets and comply with least privilege principles.
- Configuration can be updated without redeploying the plugin assembly.
- Keep logic in the plugin and environment-specific details in configuration.
- Combine Secure (for secrets) and Unsecure (for general info) for flexibility.
- Secure Configuration: Store the API key.
- Unsecure Configuration: Store the API endpoint URL.
public class AccountCreatePlugin : IPlugin{private readonly string _secureConfig;private readonly string _unsecureConfig;public AccountCreatePlugin(string unsecureConfig, string secureConfig){_unsecureConfig = unsecureConfig;_secureConfig = secureConfig;}public void Execute(IServiceProvider serviceProvider){// Example usagestring apiEndpoint = _unsecureConfig;string apiKey = _secureConfig;// Plugin logic here}}
- Centralized and solution-aware.
- Easily configurable via Power Platform admin or solution layers.
- Can be combined with Azure Key Vault for secrets.
Published on:
Learn moreRelated posts
Power Platform Environment Deep Dive (Part 1)
Today, in the business enterpriese world, Power Platform enables organization to build application, automate workflow, analyze data crea...
Book Review : Life 3.0 by Max Tegmark
This is the third book I’ve read this year, and even though I’m still in the early chapters, it already feels like my favorite read of the yea...
Dataverse Views Demystified: Making Data Work for You
In Microsoft Dataverse, users do not always see all the data stored in a table. What they can view depends on their security permissions, role...
Decode & Fix : Shared App host initialization has timed out in Microsoft Power Apps
Issue :While working with apps in the Microsoft Power Platform, we encountered a critical issue where the application failed to load pro...
Dataverse Integration Patterns: Sync vs Async vs Event-driven (Real Use Cases)
As organizations start using Microsoft Power Platform, Microsoft Dataverse is no longer just a place to store data—it becomes a key part of ho...
Book Review : Don't Believe Everything You Think by Joseph Nguyen
My second book of this year is "Don’t Believe Everything You Think" by Joseph Nguyen. This book was recommended by a friend who strongly belie...
Book Review : Scary Smart by Mo Gawdat
The first book I read in 2026 was Scary Smart by Mo Gawdat, the former Chief Business Officer at Google.In today’s world, Artificial Intellige...
Managing Temporary User Access in Dataverse with Access Teams
Access Teams let you give people access to one specific record, not the whole table.Access Teams in Microsoft Dataverse are a powerful way to ...
Plugin Trace Logs in Dataverse Explained: Debug Smarter, Not Harder
Plugin Trace Logs in Dataverse are a built-in logging mechanism that help developers understand what happens inside a plugin while it is runni...