Socket
Socket
Sign inDemoInstall

node-firewalla

Package Overview
Dependencies
9
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    node-firewalla

Package to talk your firewalla box & API


Version published
Maintainers
1
Install size
74.4 MB
Created

Readme

Source

node-firewalla

Package to talk your firewalla box & API

If you want to get your firewalla token, or want to help reverse engineering firewalla, checkout firewalla-tools

If you like my work, give this repository a or consider Buying Me A Coffee ☕

Installation

npm install node-firewalla

Examples

import { SecureUtil, NetworkService, FWGroup, FWGroupApi, HostService } from 'node-firewalla'

// Import your public & private key (by file name)
SecureUtil.importKeyPair(publicKeyPath, privateKeyPath)

// Login & get firewalla box
let { groups } = await FWGroupApi.login()
let fwGroup = FWGroup.fromJson(groups[0])

// Send a ping message
let networkService = new NetworkService(fwGroup)
let pingResult = await networkService.ping()

// List all hosts connected to your firewalla
let hostService = new HostService(fwGroup)
let hosts = await hostService.getAll()

Authenticating

First time

To authenticate the first time with your firewalla box, use the create-etp-token script in firewalla-tools. This will generate a public & private key that you need to keep.

Other times

Now you simply have to use SecureUtil to import your keys.

import { SecureUtil } from 'node-firewalla'

// using a file name e.g. etp.public.pem
SecureUtil.importKeyPair(publicKeyPath, privateKeyPath)

// using a string e.g. "----BEGIN PUBLIC KEY---- ..."
SecureUtil.importKeyFromString(publicKeyPath, privateKeyPath)

Then to get your firewalla box(es) (a.k.a FWGroup), you will have to login first.

import { FWGroupApi, FWGroup } from 'node-firewalla'

let { groups } = await FWGroupApi.login()
let fwGroup = FWGroup.fromJson(groups[0], "192.168.1.1")

Currently this package doesn't fully support cloud communication, so you will still have to supply your box's IP like above.

Now you can use all the service classes to your hearts content :)

Services

To use a service, you first have to supply the FWGroup (box) to its constructor, e.g.

import { AlarmService } from 'node-firewalla'

// Ignore all current alarms
let alarmService = new AlarmService(fwGroup)
let pingResult = await alarmService.ignoreAll()

AlarmService

Manage alarms

.getAll

.getById

.getDetailsById

.ignoreAll

.ignoreById


BoxService

Manage your box

.shutdown

.shutdownCancel

.reboot

.upgrade


FeatureService

Manage features that your box uses

.enableFeature

.disableFeature


HostService

Manage hosts connected to your box

.getAll

.wakeHost


InitService

Get initial data of your box

.init

.liveStats (WIP)


NetworkService

Manage your firewalla network

.ping

.runSpeedTest

.getSpeedtestResults

.getMonthlyDataUsage

.getLast12MonthlyDataUsage

.getNetworkMonitorData

.getDataPlan

.getMyPublicKey

Keywords

FAQs

Last updated on 07 Dec 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc