NAble Data Extraction API library/wrapper
Project description
NAble Data Extraction API wrapper/Library
This is a Python wrapper/library for the NAble Data Extraction API. The NAble API returns data in xml format, this tool will convert those to lists and dictionaries for ease of use.
The official API documentation from NAble can be found here. I have tried to keep my naming scheme similar to theirs.
NOTE:
- This is still in extremely early stages of development, function names may change!
- Most functions have docstrings, but proper documentation has not yet been created.
Table Of Contents
I don't know how to make this yet, so it's Coming Soon
Installation
pip install NAbleAPI
Getting Started
To use the NAble API, you will need to know your region and have an API key.
- Import the package
- Get an API key. Follow these instructions to get your API key.
- Find your region (see below)
Regions
To find your region, check this page or view table below.
Notes:
- Not all regions have been tested, if your region is marked 'untested' on the table below, please let me know whether it works.
- If your dashboard URL starts with
www2, assume it is justwwwfor the region. - If there is another abbreviation or country code you would like added, let me know!
| Dashboard URL | Region | Status |
|---|---|---|
| www.am.remote.management | americas, ams | Untested |
| wwwasia.system-monitor.com | asia | Untested |
| www.system-monitor.com | australia, au, aus | Untested |
| wwweurope1.systemmonitor.eu.com | europe, eu | Untested |
| wwwfrance.systemmonitor.eu.com | france, fr | Untested |
| wwwfrance1.systemmonitor.eu.com | france1, fr1 | Untested |
| wwwgermany1.systemmonitor.eu.com | germany, de, deu | Untested |
| wwwireland.systemmonitor.eu.com | ireland, ie, irl | Untested |
| wwwpoland1.systemmonitor.eu.com | poland, pl,pol | Untested |
| www.systemmonitor.co.uk | united kingdom, uk, gb, gbr | Verified |
| www.systemmonitor.us | united states, us, usa | Untested |
Using the package
Create a new .py file in the root directory and import the NAble package
from NAbleAPI import NAble
Authenticate with your API key
na = NAble('[YOUR REGION]','[YOUR API KEY]')
Example
na = NAble('uk','f821213a8d3q43843dj39824')
(Not a real API key, don't try to use it)
Make your first request
Gee it sure would be helpful is there was documentation for the available commands. Unfortunately, there isn't right now.
Get all your clients
myNAbleClients = na.clients()
Storing your key
It's probably best not to store your API key in your script. Instead, you can create a .env file and use that.
- Create a new file called
.envin the root directory - Put your API key in it (do not put it in quotes, type exactly as shown below)
NABLE_KEY = f821213a8d3q43843dj39824
- Get the key from file
from NAbleAPI import NAble # Import the NAble package
import os # Import OS package (built into Python, I'm like 99% sure)
NABLE_KEY = os.getenv("NABLE_KEY")
na = NAble('uk',NABLE_KEY)
API Endpoints
The endpoints are grouped by category on NAble's website, so I have done the same below.
I found the names on NAbles site to be a bit long, so I have shortened them a bit. The Function Name is what you will use in Python.
I'm doing my best to get them all added!
Clients, SItes, and Devices
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|---|---|---|
| list_clients | Working | clients() | List all clients |
| list_sites | Working | sites() | List sites for a client |
| list_servers | Working | servers() | list servers at a site |
| list_workstations | Working | workstations() | list workstations at a site |
| list_agentless_assets | Working | agentlessAssets() | List agentless assets at a site |
| list_devices_at_client | Working | clientDevices() | List all workstations or servers for a client |
| list_device_monitoring_details | Working | deviceDetails() | Get details for a single device |
| add_client | Planned | addClient() | Add a client |
| add_site | Working | addSite() | Add a site |
| get_site_installation_package() | Partially Working | siteInstallPackage | Create/Get a site installation package (returns rawbytes right now) |
Checks and results
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|---|---|---|
| list_checks | Working | checks() | List all checks for a device |
| list_failing_checks | Working | failingChecks() | List all failing checks |
| list_check_config | Working | checkConfig() | Get a single checks configuration |
| get_formatted_check_output | Working | formattedCheckOutput() | Get first line of check result |
| list_outages | Working | checks() | List all outages for a device |
| list_performance_history | Untested | performanceHistory() | Get performance history of a device |
| list_drive_space_history | Working | driveSpaceHistory() | Get Device Storage History |
| list_exchange_storage_history | Untested | exchangeStorageHistory() | Get Exchange Storage History |
| clear_check | Untested | clearCheck() | Clear a check |
| add_check_note | Working | addNote() | Add note to a check |
| list_templates | Working | templates() | List all server/workstation monitoring templates |
Anti-Virus Update Check Information
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|---|---|---|
| list_supported_av_products | Working | supportedAVs() | Lists supported AVs |
| list_av_definitions | Working | AVDefinitions() | Get definitions for specific AV Product |
| get_av_definition_release_date | Working | AVDefinitionsReleaseDate() | Get release date of specific AV version |
| list_av_history | Working | AVHistory() | List last 60s of AV status (I got 90 though...) |
List Backup Check History
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|---|---|---|
| list_backup_history | Untested | backupHistory() | Get last 60 days of backup history for device |
Asset Tracking Information
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|
Settings
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|---|---|---|
| list_wallchart_settings | Working | wallchartSettings() | Get general wallchart settings |
| list_general_settings | Working | generalSettings() | Get general account settings |
Patch Management
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|
Managed Anti-Virus
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|
Backup & Recovery
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|
Run Task Now
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|
List Active Directory Users
Official NAble documentation page here
| Service | Status | Function Name | Description |
|---|
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nableapi-0.0.3.tar.gz.
File metadata
- Download URL: nableapi-0.0.3.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a081ecb5af285d89848b10080d63353f3adcfb3e8244cf6b4ad90f46c22c5673
|
|
| MD5 |
0e9397eda26153ab7103c200cfc7e427
|
|
| BLAKE2b-256 |
06f415366adb21e1fc6ee32eb8b9f31f942347cc6d7a7a661fe5fa9ea7a66018
|
Provenance
The following attestation bundles were made for nableapi-0.0.3.tar.gz:
Publisher:
python-publish.yml on ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/Python-NAbleAPI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nableapi-0.0.3.tar.gz -
Subject digest:
a081ecb5af285d89848b10080d63353f3adcfb3e8244cf6b4ad90f46c22c5673 - Sigstore transparency entry: 154499294
- Sigstore integration time:
-
Permalink:
ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/Python-NAbleAPI@91fd4c97433d2d2811b325281e96187b233a5e0b -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@91fd4c97433d2d2811b325281e96187b233a5e0b -
Trigger Event:
release
-
Statement type:
File details
Details for the file NAbleAPI-0.0.3-py3-none-any.whl.
File metadata
- Download URL: NAbleAPI-0.0.3-py3-none-any.whl
- Upload date:
- Size: 25.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f331a819ba05cdc6a54c8f9c820e9e27d0cb3328f557b75656ba5937edb9c12
|
|
| MD5 |
197fa5c76d280c6bc080be6d3a4e6b9a
|
|
| BLAKE2b-256 |
7272e5c7048af70c8df0c2ae47434883ab3cb7a413314b2c352c4dcd2eb206af
|
Provenance
The following attestation bundles were made for NAbleAPI-0.0.3-py3-none-any.whl:
Publisher:
python-publish.yml on ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/Python-NAbleAPI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nableapi-0.0.3-py3-none-any.whl -
Subject digest:
4f331a819ba05cdc6a54c8f9c820e9e27d0cb3328f557b75656ba5937edb9c12 - Sigstore transparency entry: 154499296
- Sigstore integration time:
-
Permalink:
ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/Python-NAbleAPI@91fd4c97433d2d2811b325281e96187b233a5e0b -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@91fd4c97433d2d2811b325281e96187b233a5e0b -
Trigger Event:
release
-
Statement type: