Starts in:
1 DAY
10 HRS
45 MIN
4 SEC
Starts in:
1 D
10 H
45 M
4 S

Application Configuration Endpoint

ABP provides a pre-built and standard endpoint that contains some useful information about the application/service. Here, is the list of some fundamental information at this endpoint:

  • Granted policies (permissions) for the current user.
  • Setting values for the current user.
  • Info about the current user (like id and user name).
  • Info about the current tenant (like id and name).
  • Time zone information for the current user and the clock type of the application.

If you have started with ABP's startup solution templates and using one of the official UI options, then all these are set up for you and you don't need to know these details. However, if you are building a UI application from scratch, you may want to know this endpoint.

HTTP API

If you navigate to the /api/abp/application-configuration URL of an ABP based web application or HTTP Service, you can access the configuration as a JSON object. This endpoint is useful to create the client of your application.

Script

For ASP.NET Core MVC (Razor Pages) applications, the same configuration values are also available on the JavaScript side. /Abp/ApplicationConfigurationScript is the URL of the script that is auto-generated based on the HTTP API above.

See the JavaScript API document for the ASP.NET Core UI.

Other UI types provide services native to the related platform. For example, see the Angular UI settings documentation to learn how to use the setting values exposes by this endpoint.

Extending the Endpoint

The application-configuration endpoint contains some useful information about the application, such as localization values, current user information, granted permissions, etc. Even most of the time these provided values are sufficient to use in your application to perform common requirements such as getting the logged-in user's ID or its granted permissions. You may still want to extend this endpoint and provide additional information for your application/service. At that point, you can use the IApplicationConfigurationContributor endpoint.

IApplicationConfigurationContributor

IApplicationConfigurationContributor is the interface that should be implemented to add additional information to the application-configuration endpoint.

Example: Setting the deployment version

using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
using Volo.Abp.Data;

namespace Acme.BookStore.Web
{
    public class MyApplicationConfigurationContributor : IApplicationConfigurationContributor
    {
        public Task ContributeAsync(ApplicationConfigurationContributorContext context)
        {
            //for simplicity, it's a static number, you can inject any service to this class and perform your logic...
            var deploymentVersion = "v1.0.0"; 

            //setting the deploymentVersion
            context.ApplicationConfiguration.SetProperty("deploymentVersion", deploymentVersion);

            return Task.CompletedTask;
        }
    }
}
  • IApplicationConfigurationContributor defines the ContributeAsync method to extend the application-configuration endpoint with the specified additional data.
  • You can inject services and perform any logic needed to extend the endpoint as you wish.

Application configuration contributors are automatically discovered by the ABP and executed as a part of the application configuration initialization process.

Contributors


Last updated: July 31, 2024 Edit this page on GitHub

Was this page helpful?

Please make a selection.

To help us improve, please share your reason for the negative feedback in the field below.

Please enter a note.

Thank you for your valuable feedback!

Please note that although we cannot respond to feedback, our team will use your comments to improve the experience.

In this document
Community Talks

What’s New with .NET 9 & ABP 9?

21 Nov, 17:00
Online
Watch the Event
Mastering ABP Framework Book
Mastering ABP Framework

This book will help you gain a complete understanding of the framework and modern web application development techniques.

Learn More