mirror of https://github.com/abpframework/abp.git
3 changed files with 106 additions and 3 deletions
@ -0,0 +1,99 @@ |
|||
# Environment |
|||
|
|||
Current `Environment` Configuration holds sub config classes. |
|||
|
|||
```typescript |
|||
export interface Environment { |
|||
apis: Apis; |
|||
application: Application; |
|||
hmr?: boolean; |
|||
localization?: { defaultResourceName?: string }; |
|||
oAuthConfig: AuthConfig; |
|||
production: boolean; |
|||
remoteEnv?: RemoteEnv; |
|||
} |
|||
``` |
|||
|
|||
## Apis |
|||
|
|||
```typescript |
|||
export interface Apis { |
|||
[key: string]: ApiConfig; |
|||
default: ApiConfig; |
|||
} |
|||
|
|||
export interface ApiConfig { |
|||
[key: string]: 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 example |
|||
|
|||
```json |
|||
{ |
|||
... |
|||
"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"` |
|||
|
|||
## Application |
|||
|
|||
```typescript |
|||
export interface Application { |
|||
name: string; |
|||
baseUrl?: string; |
|||
logoUrl?: string; |
|||
} |
|||
``` |
|||
|
|||
* `name`: Name of the backend Application. It is also used by `logo.component` if `logoUrl` is not provided. |
|||
* `logoUrl`: Url of application logo. It is used by `logo.component` |
|||
* `baseUrl`: [For detailed information](./Multi-Tenancy.md#domain-tenant-resolver) |
|||
|
|||
## Localization |
|||
|
|||
You can read about `Localization` [here in detail](./Localization.md) |
|||
|
|||
## OAuthConfig |
|||
|
|||
..... |
|||
|
|||
## RemoteEnvironment |
|||
|
|||
To integrate an existing config json into environment, you need to set `remoteEnv` |
|||
|
|||
```typescript |
|||
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 config |
|||
* `mergeStrategy`: Defines how local and remote environment json will be merged |
|||
* `deepmerge`: Both local and remote environment json will be merged recursively. If both config has same nested path, remote environment will be prioritized. |
|||
* `overwrite`: Remote environment 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>` and `remoteEnv` and it needs to return a `Config.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. |
|||
Loading…
Reference in new issue