UNPKG

dtp-tripwire-agent

Version:

A service for protecting your node against malicious attacks and scans.

76 lines (67 loc) 2.02 kB
// src/config/env.ts // Copyright (C) 2025 DTP Technologies, LLC // All Rights Reserved import "dotenv/config"; import assert from "node:assert"; import path, { dirname } from "node:path"; import fs from "node:fs"; import { fileURLToPath } from "node:url"; const __dirname = dirname(fileURLToPath(import.meta.url)); // jshint ignore:line assert( process.env.TRIPWIRE_API_CLIENT_ID, "TRIPWIRE_API_CLIENT_ID is not defined" ); assert( process.env.TRIPWIRE_API_CLIENT_SECRET, "TRIPWIRE_API_CLIENT_SECRET is not defined" ); assert( process.env.TRIPWIRE_N8N_AUTH_TOKEN, "TRIPWIRE_N8N_AUTH_TOKEN is not defined" ); assert( process.env.TRIPWIRE_N8N_EVENT_URL, "TRIPWIRE_N8N_EVENT_URL is not defined" ); assert( process.env.TRIPWIRE_N8N_ERROR_URL, "TRIPWIRE_N8N_ERROR_URL is not defined" ); import PackageJson from "../../package.json"; async function readJsonFile<T>(path: string): Promise<T> { const file = await fs.promises.readFile(path); return JSON.parse(file.toString("utf-8")) as T; } export const ROOT_DIR = path.resolve(__dirname, "..", ".."); export const SRC_DIR = path.resolve(__dirname, ".."); export default { NODE_ENV: process.env.NODE_ENV, root: ROOT_DIR, src: SRC_DIR, pkg: await readJsonFile<typeof PackageJson>( path.join(ROOT_DIR, "package.json") ), api: { url: process.env.TRIPWIRE_API_URL || "https://tripwire.digitaltelepresence.com/api/v1", clientId: process.env.TRIPWIRE_API_CLIENT_ID, clientSecret: process.env.TRIPWIRE_API_CLIENT_SECRET, }, cache: { path: path.join(ROOT_DIR, ".cache"), }, n8n: { authToken: process.env.TRIPWIRE_N8N_AUTH_TOKEN, eventUrl: process.env.TRIPWIRE_N8N_EVENT_URL, errorUrl: process.env.TRIPWIRE_N8N_ERROR_URL, }, log: { enabled: process.env.TRIPWIRE_LOG === "enabled", levels: { debug: process.env.TRIPWIRE_LOG_DEBUG === "enabled", info: process.env.TRIPWIRE_LOG_INFO === "enabled", warn: process.env.TRIPWIRE_LOG_WARN === "enabled", }, }, };