152 lines
7.4 KiB
TypeScript
152 lines
7.4 KiB
TypeScript
/**
|
|
* Copyright since 2025 Mifos Initiative
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
// `.env.ts` is generated by the `npm run env` command
|
|
import env from './.env';
|
|
|
|
// The `window['env']` object is loaded in the `index.html` file
|
|
const loadedEnv = window['env'] || {};
|
|
const base = loadedEnv['fineractApiUrl'];
|
|
const provider = loadedEnv['apiProvider'];
|
|
|
|
export const environment = {
|
|
production: true,
|
|
version: env.mifos_x.version,
|
|
hash: env.mifos_x.hash,
|
|
// For connecting to server running elsewhere update the tenant identifier
|
|
fineractPlatformTenantId: loadedEnv['fineractPlatformTenantId'] || 'default',
|
|
fineractPlatformTenantIds: loadedEnv['fineractPlatformTenantIds'] || 'default',
|
|
// For connecting to others servers running elsewhere update the base API URL
|
|
baseApiUrls:
|
|
loadedEnv['fineractApiUrls'] || 'https://demo.mifos.community,https://localhost:8443,' + window.location.origin,
|
|
// For connecting to server running elsewhere set the base API URL
|
|
baseApiUrl:
|
|
loadedEnv['fineractApiUrl'] ||
|
|
(loadedEnv['fineractApiUrls']?.length > 0 ? loadedEnv['fineractApiUrls'].split(',')[0] : window.location.origin),
|
|
oauthServerUrl: loadedEnv['oauthServerUrl'] ?? (base && provider ? `${base}${provider}` : ''),
|
|
allowServerSwitch: loadedEnv.allowServerSwitch || 'true',
|
|
apiProvider: loadedEnv['apiProvider'] || '/fineract-provider/api',
|
|
apiVersion: loadedEnv['apiVersion'] || '/v1',
|
|
apiActuator: loadedEnv.apiActuator || '/fineract-provider',
|
|
serverUrl: '',
|
|
oauth: {
|
|
enabled: loadedEnv.oauthServerEnabled === true,
|
|
serverUrl: loadedEnv.oauthServerUrl || '',
|
|
logoutUrl: loadedEnv.oauthServerLogoutUrl || '',
|
|
appId: loadedEnv.oauthAppId || '',
|
|
authorizeUrl: loadedEnv.oauthAuthorizeUrl || '',
|
|
tokenUrl: loadedEnv.oauthTokenUrl || '',
|
|
redirectUri: loadedEnv.oauthRedirectUri || '',
|
|
scope: loadedEnv.oauthScope || ''
|
|
},
|
|
/** Feature flag for Remember Me functionality */
|
|
enableRememberMe: false,
|
|
warningDialog: {
|
|
title: 'Warning',
|
|
content:
|
|
'This system is for authorized use only. Unauthorized access will result in possible legal action. By accessing this system, you acknowledge that you are authorized to do so and that all data stored and processed here is confidential.',
|
|
buttonText: 'Close'
|
|
},
|
|
defaultLanguage: loadedEnv['defaultLanguage'] || 'en-US',
|
|
supportedLanguages:
|
|
loadedEnv['supportedLanguages'] || 'cs-CS,de-DE,en-US,es-MX,fr-FR,it-IT,ko-KO,lt-LT,lv-LV,ne-NE,pt-PT,sw-SW',
|
|
defaultFormatDate: loadedEnv['defaultFormatDate'] || '',
|
|
defaultFormatDatetime: loadedEnv['defaultFormatDatetime'] || '',
|
|
preloadClients: loadedEnv['preloadClients'] || true,
|
|
|
|
defaultCharDelimiter: loadedEnv['defaultCharDelimiter'] || ',',
|
|
|
|
displayBackEndInfo: loadedEnv['displayBackEndInfo'] || 'true',
|
|
displayTenantSelector: loadedEnv['displayTenantSelector'] || 'true',
|
|
/** Production mode - when true, shows minimal hero with only branding at bottom */
|
|
productionMode: loadedEnv['productionMode'] === 'true' || loadedEnv['productionMode'] === true || false,
|
|
tenantLogoUrl: loadedEnv['tenantLogoUrl'] || 'assets/images/cbsnexora-logo.png',
|
|
tenantLogoUrlDark: loadedEnv['tenantLogoUrlDark'] || 'assets/images/cbsnexora-logo.png',
|
|
documentationBaseUrl: loadedEnv['documentationBaseUrl'] || 'https://mifosforge.jira.com/wiki',
|
|
// Time in seconds, default 60 seconds
|
|
waitTimeForNotifications: loadedEnv['waitTimeForNotifications'] || 60,
|
|
// Time in seconds, default 30 seconds
|
|
waitTimeForCOBCatchUp: loadedEnv['waitTimeForCOBCatchUp'] || 30,
|
|
session: {
|
|
timeout: {
|
|
idleTimeout: loadedEnv['sessionIdleTimeout'] || 540000, // 9 minutes
|
|
warningCountdown: 60 // 60 seconds warning countdown
|
|
}
|
|
},
|
|
httpCacheEnabled: loadedEnv.httpCacheEnabled || false,
|
|
|
|
mifosInterbankTransfersApiUrl: loadedEnv['mifosInterbankTransfersApiUrl'] || 'https://apis.mifos.community',
|
|
mifosInterbankTransfersApiProvider: loadedEnv['mifosInterbankTransfersApiProvider'] || '/vnext1',
|
|
mifosInterbankTransfersApiVersion: loadedEnv['mifosInterbankTransfersApiVersion'] || '/v1.0',
|
|
mifosInterbankTransfersEnabled:
|
|
loadedEnv['mifosInterbankTransfersEnabled'] !== 'false' && loadedEnv['mifosInterbankTransfersEnabled'] !== false,
|
|
|
|
/** Remittance Module Integration */
|
|
mifosRemittanceApiUrl: loadedEnv['mifosRemittanceApiClientUrl'] || '',
|
|
mifosRemittanceApiProvider: loadedEnv['mifosRemittanceApiProvider'] || '',
|
|
mifosRemittanceApiVersion: loadedEnv['mifosRemittanceApiVersion'] || '',
|
|
mifosRemittanceEnabled:
|
|
loadedEnv['mifosRemittanceEnabled'] !== 'false' && loadedEnv['mifosRemittanceEnabled'] !== false,
|
|
mifosRemittanceApiHeader: loadedEnv['mifosRemittanceApiClientHeader'] || '',
|
|
mifosRemittanceApiKey: loadedEnv['mifosRemittanceApiClientKey'] || '',
|
|
|
|
minPasswordLength: loadedEnv['minPasswordLength'] || 12,
|
|
|
|
/** External National ID System integration */
|
|
enableExternalNationalIdSystem:
|
|
loadedEnv['enableExternalNationalIdSystem'] === 'true' ||
|
|
loadedEnv['enableExternalNationalIdSystem'] === true ||
|
|
false,
|
|
externalNationalIdSystemUrl: loadedEnv['externalNationalIdSystemUrl'] || '',
|
|
externalNationalIdSystemApiHeader: loadedEnv['externalNationalIdSystemApiHeader'] || '',
|
|
externalNationalIdSystemApiKey: loadedEnv['externalNationalIdSystemApiKey'] || '',
|
|
externalNationalIdRegex: loadedEnv['externalNationalIdRegex'] || '',
|
|
|
|
/**
|
|
* Hide client data information (mask client names with *)
|
|
* Set via MIFOS_COMPLIANCE_HIDE_CLIENT_DATA env var
|
|
*/
|
|
complianceHideClientData:
|
|
loadedEnv['complianceHideClientData'] === 'true' || loadedEnv['complianceHideClientData'] === true || false,
|
|
|
|
/**
|
|
* Enable Role-Based Access Control (RBAC) for menus and buttons
|
|
* When enabled, menus/buttons visibility is controlled by user permissions
|
|
* When disabled (default), shows all menus/buttons for backward compatibility
|
|
* Set via MIFOS_PRODUCTION_MODE_ENABLE_RBAC env var
|
|
*/
|
|
productionModeEnableRBAC:
|
|
loadedEnv['productionModeEnableRBAC'] === 'true' || loadedEnv['productionModeEnableRBAC'] === true || false,
|
|
|
|
/** OpenProject Integration (via Fineract backend) */
|
|
openProjectEnabled: loadedEnv['openProjectEnabled'] === 'true' || loadedEnv['openProjectEnabled'] === true || false,
|
|
|
|
/** CFCFRMS (Cyber Fraud Complaint) Integration */
|
|
cfcfrmsApiUrl: loadedEnv['cfcfrmsApiUrl'] || '',
|
|
|
|
/** Apache Superset Analytics Integration */
|
|
supersetEnabled: loadedEnv['supersetEnabled'] === 'true' || loadedEnv['supersetEnabled'] === true || false,
|
|
supersetUrl: loadedEnv['supersetUrl'] || '',
|
|
supersetDashboardId: loadedEnv['supersetDashboardId'] || '',
|
|
|
|
OIDC: {
|
|
// Support legacy FINERACT_PLUGIN_OIDC_* variable names for backward compatibility
|
|
oidcServerEnabled:
|
|
loadedEnv['oidcServerEnabled'] === true ||
|
|
loadedEnv['oidcServerEnabled'] === 'true' ||
|
|
loadedEnv['FINERACT_PLUGIN_OIDC_ENABLED'] === 'true',
|
|
oidcBaseUrl: loadedEnv['oidcBaseUrl'] || loadedEnv['FINERACT_PLUGIN_OIDC_BASE_URL'] || '',
|
|
oidcClientId: loadedEnv['oidcClientId'] || loadedEnv['FINERACT_PLUGIN_OIDC_CLIENT_ID'] || '',
|
|
oidcApiUrl: loadedEnv['oidcApiUrl'] || loadedEnv['FINERACT_PLUGIN_OIDC_API_URL'] || '',
|
|
oidcFrontUrl: loadedEnv['oidcFrontUrl'] || loadedEnv['FINERACT_PLUGIN_OIDC_FRONTEND_URL'] || ''
|
|
}
|
|
};
|
|
|
|
// Server URL
|
|
environment.serverUrl = `${environment.baseApiUrl}${environment.apiProvider}${environment.apiVersion}`;
|