Files
genieacs/tools/configure-ui
T
Zaid Abdulla 1e41c72d60 Convert backend code to ES modules
Bundling code now with Rollup for its flat bundling and tree shaking
support. Front end code still goes through Webpack for browser support.
2019-02-04 23:47:54 -08:00

176 lines
8.1 KiB
JavaScript
Executable File

#!/usr/bin/env -S node -r esm
"use strict";
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.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.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() {
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();