#!/usr/bin/env -S node -r esm -r ts-node/register/transpile-only import { MongoClient } from "mongodb"; import { get } from "../lib/config"; const configData = { "auth.simple.users.admin.password": "'admin'", "auth.simple.users.admin.roles": "'admin'", "auth.simple.users.view.password": "'view'", "auth.simple.users.view.roles": "'view'", "permissions.admin.0.devices.access": "3", "permissions.admin.0.devices.validate.pass": "true", "permissions.admin.0.faults.access": "3", "permissions.admin.0.faults.validate.pass": "true", "permissions.admin.0.files.access": "3", "permissions.admin.0.files.validate.pass": "true", "permissions.admin.0.presets.access": "3", "permissions.admin.0.presets.validate.pass": "true", "permissions.admin.0.provisions.access": "3", "permissions.admin.0.provisions.validate.pass": "true", "permissions.admin.0.config.access": "3", "permissions.admin.0.config.validate.pass": "true", "permissions.admin.0.virtualParameters.access": "3", "permissions.admin.0.virtualParameters.validate.pass": "true", "permissions.view.0.devices.access": "2", "permissions.view.0.faults.access": "2", "permissions.view.0.files.access": "2", "permissions.view.0.presets.access": "2", "permissions.view.0.config.access": "2", "permissions.view.0.provisions.access": "2", "permissions.view.0.virtualParameters.access": "2", "ui.device.0.type": "'tags'", "ui.device.1.type": "'ping'", "ui.device.2.parameters.0.components.0.type": "'parameter'", "ui.device.2.parameters.0.components.1.chart": "'online'", "ui.device.2.parameters.0.components.1.type": "'overview-dot'", "ui.device.2.parameters.0.components.2.parameters.0": "InternetGatewayDevice.DeviceInfo.HardwareVersion", "ui.device.2.parameters.0.components.2.parameters.1": "InternetGatewayDevice.DeviceInfo.SoftwareVersion", "ui.device.2.parameters.0.components.2.parameters.2": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.MACAddress", "ui.device.2.parameters.0.components.2.parameters.3": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress", "ui.device.2.parameters.0.components.2.parameters.4": "InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID", "ui.device.2.parameters.0.components.2.parameters.5": "InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.KeyPassphrase", "ui.device.2.parameters.0.components.2.parameters.6": "InternetGatewayDevice.LANDevice.1.Hosts.Host", "ui.device.2.parameters.0.components.2.type": "'summon-button'", "ui.device.2.parameters.0.element": "'span.inform'", "ui.device.2.parameters.0.label": "'Last inform'", "ui.device.2.parameters.0.parameter": "DATE_STRING(Events.Inform)", "ui.device.2.parameters.0.type": "'container'", "ui.device.2.parameters.1.label": "'Serial number'", "ui.device.2.parameters.1.parameter": "InternetGatewayDevice.DeviceInfo.SerialNumber", "ui.device.2.parameters.10.label": "'WLAN passphrase'", "ui.device.2.parameters.10.parameter": "InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.KeyPassphrase", "ui.device.2.parameters.2.label": "'Product class'", "ui.device.2.parameters.2.parameter": "InternetGatewayDevice.DeviceInfo.ProductClass", "ui.device.2.parameters.3.label": "'OUI'", "ui.device.2.parameters.3.parameter": "InternetGatewayDevice.DeviceInfo.ManufacturerOUI", "ui.device.2.parameters.4.label": "'Manufacturer'", "ui.device.2.parameters.4.parameter": "InternetGatewayDevice.DeviceInfo.Manufacturer", "ui.device.2.parameters.5.label": "'Hardware version'", "ui.device.2.parameters.5.parameter": "InternetGatewayDevice.DeviceInfo.HardwareVersion", "ui.device.2.parameters.6.label": "'Software version'", "ui.device.2.parameters.6.parameter": "InternetGatewayDevice.DeviceInfo.SoftwareVersion", "ui.device.2.parameters.7.label": "'MAC'", "ui.device.2.parameters.7.parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.MACAddress", "ui.device.2.parameters.8.label": "'IP'", "ui.device.2.parameters.8.parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress", "ui.device.2.parameters.9.label": "'WLAN SSID'", "ui.device.2.parameters.9.parameter": "InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID", "ui.device.2.type": "'parameter-list'", "ui.device.3.childParameters.0.label": "'Host name'", "ui.device.3.childParameters.0.parameter": "HostName", "ui.device.3.childParameters.1.label": "'IP address'", "ui.device.3.childParameters.1.parameter": "IPAddress", "ui.device.3.childParameters.2.label": "'MAC address'", "ui.device.3.childParameters.2.parameter": "MACAddress", "ui.device.3.label": "'WLAN hosts'", "ui.device.3.parameter": "InternetGatewayDevice.LANDevice.1.Hosts.Host", "ui.device.3.type": "'parameter-table'", "ui.device.4.components.0.components.0": "'Faults'", "ui.device.4.components.0.element": "'h3'", "ui.device.4.components.0.type": "'container'", "ui.device.4.components.1.type": "'device-faults'", "ui.device.4.element": "'div'", "ui.device.4.type": "'container'", "ui.device.5.components.0.components.0": "'All parameters'", "ui.device.5.components.0.element": "'h3'", "ui.device.5.components.0.type": "'container'", "ui.device.5.components.1.type": "'all-parameters'", "ui.device.5.element": "'div.container-full-width'", "ui.device.5.type": "'container'", "ui.device.6.type": "'device-actions'", "ui.filters.0.label": "'Serial number'", "ui.filters.0.parameter": "DeviceID.SerialNumber", "ui.filters.0.type": "'string'", "ui.filters.1.label": "'Product class'", "ui.filters.1.parameter": "DeviceID.ProductClass", "ui.filters.1.type": "'string'", "ui.filters.2.label": "'Tag'", "ui.filters.2.parameter": "tag", "ui.filters.2.type": "'string'", "ui.index.0.components.0.type": "'parameter'", "ui.index.0.label": "'Serial number'", "ui.index.0.parameter": "DeviceID.SerialNumber", "ui.index.0.type": "'device-link'", "ui.index.1.label": "'Product class'", "ui.index.1.parameter": "DeviceID.ProductClass", "ui.index.2.label": "'Software version'", "ui.index.2.parameter": "InternetGatewayDevice.DeviceInfo.SoftwareVersion", "ui.index.3.label": "'IP'", "ui.index.3.parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress", "ui.index.4.label": "'SSID'", "ui.index.4.parameter": "InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID", "ui.index.5.components.0.type": "'parameter'", "ui.index.5.components.1.chart": "'online'", "ui.index.5.components.1.type": "'overview-dot'", "ui.index.5.element": "'span.inform'", "ui.index.5.label": "'Last inform'", "ui.index.5.parameter": "DATE_STRING(Events.Inform)", "ui.index.5.type": "'container'", "ui.index.6.label": "'Tags'", "ui.index.6.parameter": "Tags", "ui.index.6.type": "'tags'", "ui.index.6.unsortable": "true", "ui.index.6.writable": "false", "ui.overview.charts.online.label": "'Online status'", "ui.overview.charts.online.slices.1_onlineNow.color": "'#31a354'", "ui.overview.charts.online.slices.1_onlineNow.filter": "Events.Inform > NOW() - 5 * 60 * 1000", "ui.overview.charts.online.slices.1_onlineNow.label": "'Online now'", "ui.overview.charts.online.slices.2_past24.color": "'#addd8e'", "ui.overview.charts.online.slices.2_past24.filter": "Events.Inform > (NOW() - 5 * 60 * 1000) - (24 * 60 * 60 * 1000) AND Events.Inform < (NOW() - 5 * 60 * 1000)", "ui.overview.charts.online.slices.2_past24.label": "'Past 24 hours'", "ui.overview.charts.online.slices.3_others.color": "'#f7fcb9'", "ui.overview.charts.online.slices.3_others.filter": "Events.Inform < (NOW() - 5 * 60 * 1000) - (24 * 60 * 60 * 1000)", "ui.overview.charts.online.slices.3_others.label": "'Others'", "ui.overview.groups.online.charts.0": "'online'", "ui.overview.groups.online.label": "''", "ui.pageSize": "10" }; async function run(): Promise { const client = await MongoClient.connect(get("MONGODB_CONNECTION_URL"), { useNewUrlParser: true }); const collection = client.db().collection("config"); await collection.deleteMany({}); const objs = Object.entries(configData).map(c => ({ _id: c[0], value: c[1] })); await collection.insertMany(objs); client.close(); } run();