205 lines
7.1 KiB
TypeScript
205 lines
7.1 KiB
TypeScript
/* tslint:disable:no-console */
|
|
import path from 'path';
|
|
import { ConnectionOptions } from 'typeorm';
|
|
import { RedisSessionCachePlugin, DefaultLogger, LogLevel, TypeOrmLogger, SystemConfig, DefaultJobQueuePlugin, Injector, RequestContext, EmailSettingsService } from '@phoenix/core';
|
|
import { AssetServerPlugin } from '@phoenix/asset-server-plugin';
|
|
import { ADMIN_API_PATH, API_PORT, API_SSL_PORT, SHOP_API_PATH, SUPER_ADMIN_USER_IDENTIFIER } from '@phoenix/common';
|
|
import { EmailPlugin, FileBasedTemplateLoader, defaultEmailHandlers } from '@phoenix/email-plugin';
|
|
//import { BonnAPIPlugin } from '../plugins/bonn-api-plugin/bonn-api-plugin.module';
|
|
// import { DefaultJobQueuePlugin } from '@phoenix/system_service';
|
|
|
|
/**
|
|
* Config settings used during development
|
|
*/
|
|
export const customConfig: SystemConfig = {
|
|
apiOptions: {
|
|
port: API_PORT,
|
|
// sslPort: API_SSL_PORT,
|
|
//sslCertPath: path.join(__dirname, '../secrets/certificate.crt'),
|
|
//sslKeyPath: path.join(__dirname, '../secrets/certificate.key'),
|
|
adminApiPath: ADMIN_API_PATH,
|
|
shopApiPath: SHOP_API_PATH,
|
|
cors: {
|
|
origin: true,
|
|
credentials: true,
|
|
},
|
|
},
|
|
authOptions: {
|
|
disableAuth: true,
|
|
sessionSecret: 'some-secret',
|
|
requireVerification: false,
|
|
tokenMethod: "bearer",
|
|
superadminCredentials: {
|
|
identifier: SUPER_ADMIN_USER_IDENTIFIER,
|
|
password: process.env.SUPER_ADMIN_USER_PASSWORD || 'superadmin'
|
|
}
|
|
},
|
|
dbConnectionOptions: {
|
|
// synchronize: true,
|
|
// logging: true,
|
|
logger: new TypeOrmLogger(),
|
|
...getDbConfig(),
|
|
// logging: ["error"]
|
|
},
|
|
// paymentOptions: {
|
|
// // paymentMethodHandlers: [examplePaymentHandler],
|
|
// },
|
|
customFields: {
|
|
Product: [
|
|
{
|
|
name: 'testo',
|
|
type: 'string',
|
|
}
|
|
],
|
|
DocumentLineItem: [
|
|
],
|
|
PostProductionDetail: [
|
|
],
|
|
},
|
|
searchableFields: {
|
|
processResource: [
|
|
"scanId"
|
|
]
|
|
},
|
|
logger: new DefaultLogger({ level: LogLevel.Debug }),
|
|
//importExportOptions: {
|
|
// importProductAssetsDir: path.join(__dirname, 'import', 'product-assets'),
|
|
//},
|
|
defaults: {
|
|
defaultTakeNumber: 100,
|
|
},
|
|
plugins: [
|
|
RedisSessionCachePlugin.init({
|
|
namespace: 'phx-session',
|
|
redisOptions: {
|
|
host: process.env.REDIS_HOST || 'redis',
|
|
port: process.env.REDIS_PORT ? parseInt(process.env.REDIS_PORT) : 6379,
|
|
db: process.env.REDIS_DB ? parseInt(process.env.REDIS_DB) : 0,
|
|
password: process.env.REDIS_PASSWORD || 'admin'
|
|
}
|
|
}),
|
|
AssetServerPlugin.init({
|
|
route: 'remote-assets',
|
|
assetUploadDir: path.join(__dirname, 'assets'),
|
|
port: 5002,
|
|
assetUrlPrefix: "\\remote-assets\\" // to make it relative for client
|
|
}),
|
|
DefaultJobQueuePlugin.init({}),
|
|
EmailPlugin.init({
|
|
sendRealEmails: true,
|
|
route: 'mailbox',
|
|
handlers: [...defaultEmailHandlers],
|
|
// Dynamic Email Templates
|
|
templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '..', '../email-plugin/templates')),
|
|
globalTemplateVars: {
|
|
verifyEmailAddressUrl: 'http://localhost:4201/verify',
|
|
passwordResetUrl: 'http://localhost:4201/reset-password',
|
|
changeEmailAddressUrl: 'http://localhost:4201/change-email-address',
|
|
},
|
|
transport: async (injector: Injector, ctx?: RequestContext) => {
|
|
let res = await injector.get(EmailSettingsService).getFallbackEmailSettings(ctx);
|
|
console.warn("SMTP Settings: ", res);
|
|
return {
|
|
name: res.smtpName,
|
|
host: res.smtpHost,
|
|
port: res.smtpPort,
|
|
auth: {
|
|
user: res.smtpUser,
|
|
pass: res.smtpPass,
|
|
},
|
|
secure: res.smtpSecure,
|
|
type: 'smtp',
|
|
tls: {
|
|
rejectUnauthorized: res.smtpTls
|
|
},
|
|
ignoreTLS: true
|
|
}
|
|
},
|
|
}),
|
|
// DefaultStoragePlaceRankPlugin.init({})
|
|
// new DefaultSearchPlugin(),
|
|
// new ElasticsearchPlugin({
|
|
// host: 'http://192.168.99.100',
|
|
// port: 9200,
|
|
// }),
|
|
// DocusignPlugin.init({
|
|
// devMode:true,
|
|
// handlers: defaultDocusignHandlers,
|
|
// assetDownloadDir: path.join(__dirname, 'docusign'),
|
|
// assetUploadDir: path.join(__dirname, 'docusign'),
|
|
// port: API_PORT,
|
|
// route: "docusign"
|
|
// }),
|
|
// new AdminUiPlugin({
|
|
// port: 5001,
|
|
// }),
|
|
],
|
|
// ApolloEngineApiKey: "service:Logic-Bits-2900:5w1aCP5YUtF-1ErRG0KNQw"
|
|
};
|
|
|
|
function getDbConfig(): ConnectionOptions {
|
|
const dbType = process.env.DB || 'postgres';
|
|
const dbHost = process.env.DB_HOST || 'localhost';
|
|
const dbPort = +process.env.DB_PORT || 5432;
|
|
|
|
const connectionPoolMax = process.env.CONNECTION_POOL_MAX ?? 20;
|
|
|
|
const dbUsername = process.env.DB_USERNAME || 'postgres';
|
|
const password = process.env.DB_PASSWORD || 'admin';
|
|
const database = process.env.DB_NAME || 'phoenix'
|
|
|
|
if (password == "admin")
|
|
console.warn("default postgres password is used!");
|
|
|
|
if (process.env.DB_HOST)
|
|
console.log(`using DB Host ${dbHost} from env`);
|
|
|
|
console.log(`using Database ${database}`);
|
|
console.log(`using User ${dbUsername}`);
|
|
|
|
switch (dbType) {
|
|
case 'postgres':
|
|
console.log('Using postgres connection at ' + dbHost);
|
|
return {
|
|
synchronize: true,
|
|
type: 'postgres',
|
|
//host: '127.0.0.1',
|
|
host: dbHost,
|
|
port: dbPort,
|
|
username: dbUsername,
|
|
password: password,
|
|
database: database,
|
|
// logging: "all",
|
|
extra: {
|
|
max: connectionPoolMax
|
|
}
|
|
};
|
|
case 'sqlite':
|
|
console.log('Using sqlite connection');
|
|
return {
|
|
type: 'sqlite',
|
|
database: path.join(__dirname, 'phoenix.sqlite'),
|
|
};
|
|
case 'sqljs':
|
|
console.log('Using sql.js connection');
|
|
return {
|
|
type: 'sqljs',
|
|
autoSave: true,
|
|
database: new Uint8Array([]),
|
|
location: path.join(__dirname, 'phoenix.sqlite'),
|
|
};
|
|
case 'mysql':
|
|
default:
|
|
console.log('Using mysql connection');
|
|
return {
|
|
synchronize: true,
|
|
type: 'mysql',
|
|
host: '192.168.99.100',
|
|
port: 3306,
|
|
username: 'root',
|
|
password: '',
|
|
database: 'phoenix-dev',
|
|
};
|
|
}
|
|
}
|