npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

un-cli

v0.0.85

Published

Command line interface for working with ArcGIS Utility Network Extension

Downloads

116

Readme

uncli

utility network javascript command line works on Windows and Linux

Download Node JS 13.5 or later

https://nodejs.org/en/

Open command prompt and run this command

npm install -g un-cli

Once installed here is how you connect

> uncli --portal https://utilitynetwork.esri.com/portal --service NapervilleElectric_SQLServer --user tester --password tester.108 --verify true

If this fails with a verification error it means you are using a self-signed certificate you can use use --verify false to disable verification but don't use this in production.


uncli> help

┌───────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                (index)                │                                                          Values                                                          │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│                 help                  │                                                   'Displays this help'                                                   │
│                version                │                                             'Displays the version of uncli'                                              │
│                  ls                   │                                                   'List all services'                                                    │
│                  def                  │                                          'Show the feature service definition'                                           │
│             def --layers              │                                            'List all layers in this service'                                             │
│              subnetworks              │                                                 'Lists all subnetworks'                                                  │
│          subnetworks --dirty          │                                              'Lists only dirty subnetworks'                                              │
│         subnetworks --deleted         │                                          'Lists dirty and deleted subnetworks'                                           │
│               evaluate                │                                                  'Evaluate in parallel'                                                  │
│    trace --subnetwork <subnetwork>    │                     'Traces input subnetwork and returns the time and number of elements returned .'                     │
│               topology                │                                              'Displays the topology status'                                              │
│          topology --disable           │                                                    'Disable topology'                                                    │
│           topology --enable           │                                                    'Enable topology'                                                     │
│          topology --validate          │                                            'Validate topology (full extent)'                                             │
│       update subnetworks --all        │                                       'Update all dirty subnetworks synchronously'                                       │
│     update subnetworks --deleted      │                                   'Update all deleted dirty subnetworks synchronously'                                   │
│   update subnetworks --all --async    │                                      'Update all dirty subnetworks asynchronously'                                       │
│  export subnetworks --all [--folder]  │                        'Export all subnetworks with ACK --folder where exported files are saved'                         │
│  export subnetworks --new [--folder]  │           "Export all subnetworks with ACK that haven't been exported --folder where exported files are saved"           │
│     export subnetworks --deleted      │                                   'Export all subnetworks with ACK that are deleted '                                    │
│           updateisconnected           │                                                'Run update is connected '                                                │
│               versions                │                               'List all versions available to the current logged in user.'                               │
│  reconcile --version <version name>   │                                       'Reconcile the input version synchronously'                                        │
│            reconcile --all            │                           'Reconcile all versions available to the current user synchronously'                           │
│        reconcile --all --async        │                          'Reconcile all versions available to the current user asynchronously'                           │
│                 count                 │                               'Lists the number of rows in all feature layers and tables.'                               │
│            count --system             │                                       'Lists the number of rows in system layers.'                                       │
│           connect --service           │                                            'Connects to the another service'                                             │
│       tracelogs --age <minutes>       │                    'Lists utility network trace summary logs for the last x minutes (requires admin)'                    │
│     validatelogs --age <minutes>      │                  'Lists utility network validate summary logs for the last x minutes (requires admin)'                   │
│ updatesubnetworkslog --age <minutes>  │             'Lists utility network update subnetworks summary logs for the last x minutes (requires admin)'              │
│        arlogs --age <minutes>         │                     'Lists attribute rules execution logs for the last x minutes  (requires admin)'                      │
│ arlogs --byrule [--minguid --maxguid] │ 'Lists attribute rules execution summary by rule (requires admin), --maxguid and --minguid show the GUID of the feature' │
│        topsql --age <minutes>         │                           'Lists all queries executed in the last x minutes  (requires admin)'                           │
│                whoami                 │                                              'Lists the current login info'                                              │
│                 clear                 │                                                   'Clears this screen'                                                   │
│                 quit                  │                                                   'Exit this program'                                                    │
└───────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Execute bulk of commands

Create a commands.txt file and type in the commands in that file command.txt

update subnetworks --all
export subnetworks --new

uncli --portal https://utilitynetwork.esri.com/portal --service NapervilleElectric_SQLServer --user tester --password tester.108 --file commands.txt --verify true

Server Log web parser

This tool also provides a way to parse server logs and view them for each utility network and geodatabase function

To install on IIS follow these steps: This server assume your machine name where the Webadaptor lives is utilitynetwork.esri.com

  • Login to machine where you have the webadaptor
  • Create a folder called log in c:\inetpub\wwwroot
  • Copy the entire content of the repro https://github.com/hussein-nasser/uncli to c:\inetpub\wwwroot\log
  • Open IIS (Internet Information Services)
  • Open MIME Types
  • Under action click Add
  • under file extension type .mjs and under MIME Type write application/javascript
  • Restart IIS
  • (OPTIONAL only change when your webadaptor is not /portal) In c:\inetpub\wwwroot\log edit the index.html and find this line of code
  • Update the JSON object with the correct URL, for example if your webadaptor is https://utilitynetwork.esri.com/portal set the "portal" to be that. You don't have to update the referer it will be automatically calculated it.
  • (Optional) if you have multiple federated server , you have to set the correct one you want to query admin api for in the "server" parameter below.
let parameters = {
        "user": "unadmin",
        "password": "",
        "portal": "",
        "service": "",
        "referer": "",
        "server": undefined
    }
    ```
- Save the HTML and then visit `https://utilitynetwork.esri.com/log` put in your username and password and login to use the parser