gigafibre-fsm/scripts/migration/genieacs-export/ext/wifi.js
louispaulb 8ba73251f3 feat: full GenieACS config export (provisions, ext scripts, fleet data)
Complete backup of all GenieACS ACS configuration:
- 24 provision scripts (default, inform, bootstrap, firmware upgrades,
  per-model configs for HT803G, HT502, HT812, Deco, XX230v, XX430v, XX530v)
- 25 presets (trigger rules mapping events to provisions)
- 6 ext scripts (provisioning.js, wifi.js, voip.js — query MariaDB
  for per-device WiFi SSID/password and VoIP credentials)
- 12 firmware images catalogued (HT502, HG8245, HT803G-W/WS2, HT812, Deco)
- 7,550 device fleet snapshot (4,035 online, 53.4% online rate)
- GenieACS env config (MongoDB at 10.5.2.116, ext dir, JWT secret)

Fleet breakdown:
- Device2 (TP-Link Deco): 4,051 units (74% online) — bulk of fleet
- HT803G (Raisecom): 2,833 units (33% online) — legacy ONTs
- DISCOVERYSERVICE: 156 ghost entries (0% online)
- Grandstream phones: GXP2130/2160/1630, HT502/812

Key finding: ext scripts use MariaDB (10.5.14.21) for WiFi/VoIP
provisioning data (SSID, passwords, SIP credentials per serial).
This data must be migrated to ERPNext or a new provisioning DB
for Oktopus.

Custom fork: @genieacs/genieacs-targo v1.2.8-targo.3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 21:08:51 -04:00

18 lines
802 B
JavaScript

const mariadb = require('mariadb/callback');
//const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.100.80.100";
const MARIADB_HOST = process.env["GENIEACS_MARIADB_HOST"] || "10.5.14.21";
const MARIADB_USER = process.env["GENIEACS_MARIADB_USER"] || "genieacs";
const MARIADB_PASS = process.env["GENIEACS_MARIADB_PASS"] || "DnZHC3XezD7A8keEtaUocqPw";
const conn = mariadb.createConnection({host: MARIADB_HOST, user: MARIADB_USER, password: MARIADB_PASS});
function getWifi(args, callback) {
const serial = args[0];
conn.query(`select * from genieacs.wifi where serial = ?`, [serial], (err, res) => {
if (err) return callback(err);
callback(null, res.map(r => ({instance: r.instance, ssid: r.ssid, password: r.password, enable: r.enable})));
});
}
exports.getWifi = getWifi;