Home Reference Source

src/models/config.schema.js

import joi from 'joi';

/**
 * Configuration schema
 * @type {import('joi').Schema}
 * @property {Object} db - Database configuration
 * @property {string} db.url - Database URL
 * @property {string} db.authToken - Database authentication token
 * @property {Object} sentry - Sentry configuration
 * @property {string} sentry.dsn - Sentry DSN
 * @property {number} sentry.tracesSampleRate - Sentry traces sample rate
 * @property {string} sentry.env - Sentry environment
 */
export const configSchema = joi.object({
    app: joi.object({
        name: joi.string().optional(),
        version: joi.string().optional(),
    }),
    db: joi.object({
        url: joi.string().required(),
        authToken: joi.string().required(),
    }),
    sentry: joi.object({
        dsn: joi.string().required(),
        tracesSampleRate: joi.number().required(),
        env: joi.string().required(),
    }),
}).required();