- ABP Framework version: v5.3.0
- UI Type: Angular
- Database System: EF Core (PostgreSQL)
- Tiered (for MVC) or Auth Server Separated (for Angular): no
I've got some settings defined in appSettings.json in my HttpApi.Host project and I have also defined a SettingDefinitionProvider to make them visible to clients (I assume that's what I have to do from reading the Settings documentation).
The SettingsProvider can't find the settings by name, do I have to define them somewhere else as well?
  public class AzureSettingsProvider : SettingDefinitionProvider
    {
        public override void Define(ISettingDefinitionContext context)
        { 
            var clientId = context.GetOrNull("Azure.B2C.ClientId");
            clientId.IsVisibleToClients = true;
            var tenant = context.GetOrNull("Azure.B2C.Tenant");
            tenant.IsVisibleToClients = true; 
            var PasswordEndpoint = context.GetOrNull("Azure.B2C.PasswordEndpoint");
            PasswordEndpoint.IsVisibleToClients = true; 
            var PrimaryDomain = context.GetOrNull("Azure.B2C.PrimaryDomain");
            PrimaryDomain.IsVisibleToClients = true;
        }
    }
Using the ConfigStateService on my Angular client, it isn't getting the values, it always returns undefined.
import { ConfigStateService } from '@abp/ng.core';
constructor(private config: ConfigStateService,
              private router: Router,) {
    var endpoint = this.config.getOne('Azure.B2C.PasswordEndpoint');
    var tenant = this.config.getOne('Azure.B2C.Tenant');
    var domain = this.config.getOne('Azure.B2C.PrimaryDomain');
    var clientid = this.config.getOne('Azure.B2C.ClientId');
Doesn't matter if I use getOne or getSetting.
What's missing or what have I interpreted wrong?
I've tested this approach with 'Abp.Mailing.Smtp.Host' and the value appears so I don't know what's missing for the settings I've named myself.
9 Answer(s)
- 
    0Hi, Could you please share the full steps to reproduce? I will check it. 
- 
    0There's not much else to tell really. - Make a setting in appSettings.json for your HttpApi.Host project
- Make a SettingsDefinitionProvider and retrieve the setting so you can set it's field 'IsVisibleToClients' to true.
- Add ConfigStateService to a component in your Angular app.
- Use getSetting to get the value of the setting.
 This all worked with the pre-built ABP setting, 'Abp.Mailing.Smtp.Host' but not with one that I've defined. 
- 
    0I also tried adding a context.Add(new SettingDefinition("SomeSetting", "SomeValue") inside the AzureSettingsProvider.Define method to see if that would show up, still nothing in the Angular side. 
- 
    0Hi, I could not reproduce the problem. Here is how ABP defines settings you can check. https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSettingProvider.cs#L11 I will check if you can share a simple project with me via mail. shiwei.liang@volosoft.com 
- 
    0Did you do it in version 5.3.0? Did you define a new setting name, not a default part of the ABP framework? Did you do it in appSettings.json? 
- 
    0yes 
- 
    0Ok, created a new Acme.Bookstore solution from scratch and made the changes My provider looks like this: using Volo.Abp.Settings; namespace Acme.BookStore.Provider { public class SettingsProvider : SettingDefinitionProvider { public override void Define(ISettingDefinitionContext context) { var test = context.GetOrNull("Abp.Mailing.Smtp.Host"); test.IsVisibleToClients = true; } } }My appSettings.json like this: "Settings": { "Abp.Mailing.Smtp.Host": "127.0.0.1" }That one it finds, sets and shows in the UI. If I add anything else, even a ABP setting, it can't find the setting in the provider.  Is there something else I have to set up for a Setting other than just putting it in appSettings.json? 
- 
    0Hi, I could not reproduce the problem. Here is how ABP defines settings you can check. https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSettingProvider.cs#L11 I will check if you can share a simple project with me via mail. shiwei.liang@volosoft.com My sample HttpApi.Host project zipped is 37MB I don't think I can email that. 
- 
    0Ok got it working like this context.Add(new SettingDefinition("Volo.Abp.LeptonTheme.Style", isVisibleToClients: true)); 
 
                                