dtp-tripwire-agent
Version:
A service for protecting your node against malicious attacks and scans.
76 lines (67 loc) • 2.02 kB
text/typescript
// 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",
},
},
};