Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

manifest.js 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. const Confidence = require('@hapipal/confidence')
  2. const Schwifty = require('@hapipal/schwifty')
  3. const confs = {
  4. local: {
  5. db: process.env.DB_NAME,
  6. host: process.env.DB_HOST,
  7. port: process.env.DB_PORT,
  8. ssl: false,
  9. user: process.env.DB_USER,
  10. pw: process.env.DB_ROOT_PASSWORD,
  11. },
  12. prod: {
  13. db: process.env.PSCALE_DB_NAME,
  14. host: process.env.PSCALE_DB_HOST,
  15. port: process.env.PSCALE_DB_PORT,
  16. branch: process.env.PSCALE_DB_BRANCH,
  17. ssl: true,
  18. user: process.env.PSCALE_DB_USER,
  19. pw: process.env.PSCALE_DB_PASSWORD,
  20. },
  21. dbFlavor: process.env.DB_TYPE
  22. }
  23. const isProd = () => (process.env.USE_LOCAL_DB == 'true' ? 'local' : 'prod')
  24. const connection = {
  25. database: confs[isProd()].db,
  26. host: confs[isProd()].host,
  27. port: confs[isProd()].port,
  28. ssl: confs[isProd()].ssl,
  29. user: confs[isProd()].user,
  30. password: confs[isProd()].pw,
  31. }
  32. /** Glue manifest as a confidence store */
  33. module.exports = new Confidence.Store({
  34. server: {
  35. host: process.env.API_HOST,
  36. port: {
  37. $filter: 'NODE_ENV',
  38. $default: {
  39. $param: 'API_PORT',
  40. $coerce: 'number',
  41. $default: process.env.API_PORT,
  42. },
  43. test: { $value: undefined }, // Let the server find an open port
  44. },
  45. debug: {
  46. $filter: 'NODE_ENV',
  47. $default: {
  48. log: ['error', 'start'],
  49. request: ['error'],
  50. },
  51. production: {
  52. request: ['implementation'],
  53. },
  54. },
  55. },
  56. register: {
  57. plugins: [
  58. /** Main app */
  59. {
  60. plugin: '../lib',
  61. routes: {
  62. prefix: '/api',
  63. },
  64. options: {
  65. jwtKey: {
  66. $filter: 'NODE_ENV',
  67. $default: {
  68. $param: 'APP_SECRET',
  69. $default: 'app-secret',
  70. },
  71. // Use .env file in production
  72. production: {
  73. $param: 'APP_SECRET',
  74. },
  75. },
  76. },
  77. },
  78. /** Model and knex integration */
  79. {
  80. plugin: Schwifty,
  81. options: {
  82. $filter: 'NODE_ENV',
  83. $default: {},
  84. $base: {
  85. migrateOnStart: true,
  86. knex: {
  87. client: confs.dbFlavor,
  88. useNullAsDefault: true,
  89. connection,
  90. },
  91. },
  92. production: {
  93. migrateOnStart: false,
  94. },
  95. },
  96. },
  97. ],
  98. },
  99. })