Environment
Every application needs some environment variables. In Angular world, this is usually managed by environment.ts
, environment.prod.ts
and so on. It is the same for ABP as well.
Current Environment
configuration holds sub config classes as follows:
export interface Environment {
apis: Apis;
application: Application;
oAuthConfig: AuthConfig;
production: boolean;
remoteEnv?: RemoteEnv;
}
Apis
export interface Apis {
[key: string]: ApiConfig;
default: ApiConfig;
}
export interface ApiConfig {
[key: string]: string;
rootNamespace?: string;
url: string;
}
Api config has to have a default config and it may have some additional ones for different modules. I.e. you may want to connect to different Apis for different modules.
Take a look at following example
{
// ...
"apis": {
"default": {
"url": "https://localhost:8080",
},
"AbpIdentity": {
"url": "https://localhost:9090",
}
},
// ...
}
When an api from AbpIdentity
is called, the request will be sent to "https://localhost:9090"
. Everything else will be sent to "https://localhost:8080"
rootNamespace
(new) : Root namespace of the related API. e.g. Acme.BookStore
Application
export interface Application {
name: string;
baseUrl?: string;
logoUrl?: string;
}
name
: Name of the backend Application. It is also used bylogo.component
iflogoUrl
is not provided.logoUrl
: Url of the application logo. It is used bylogo.component
baseUrl
: For detailed information
AuthConfig
For authentication, we use angular-oauth2-oidc. Please check their docs out
RemoteEnvironment
Some applications need to integrate an existing config into the environment
used throughout the application. Abp Framework supports this out of box.
To integrate an existing config json into the environment
, you need to set remoteEnv
export type customMergeFn = (
localEnv: Partial<Config.Environment>,
remoteEnv: any,
) => Config.Environment;
export interface RemoteEnv {
url: string;
mergeStrategy: 'deepmerge' | 'overwrite' | customMergeFn;
method?: string;
headers?: ABP.Dictionary<string>;
}
url
*: Required. The url to be used to retrieve environment configmergeStrategy
*: Required. Defines how the local and the remoteenvironment
json will be mergeddeepmerge
: Both local and remoteenvironment
json will be merged recursively. If both configs have same nested path, the remoteenvironment
will be prioritized.overwrite
: Remoteenvironment
will be used and local environment will be ignored.customMergeFn
: You can also provide your own merge function as shown in the example. It will take two parameters,localEnv: Partial<Config.Environment>
andremoteEnv
and it needs to return aConfig.Environment
object.
method
: HTTP method to be used when retrieving environment config. Default:GET
headers
: If extra headers are needed for the request, it can be set through this field.