UniFi Dream Machine → ServiceNow CMDB Data Loader with Operational Resilience
Project description
beast-dream-snow-loader
UniFi Dream Machine → ServiceNow CMDB Data Loader
Loading raw UniFi network infrastructure data into ServiceNow CMDB for network asset management and discovery.
Overview
beast-dream-snow-loader transforms and loads UniFi network data (hosts, sites, devices, clients) from the UniFi API into ServiceNow CMDB tables. This enables ServiceNow to serve as the source of truth for network infrastructure.
Purpose: Complete the integration loop: UniFi API → Data Transformation → ServiceNow CMDB
What It Does
- Transforms Data: Maps UniFi schema to ServiceNow CMDB schema
- UniFi hosts → ServiceNow network gateway CIs
- UniFi sites → ServiceNow locations
- UniFi devices → ServiceNow network device CIs
- UniFi clients → ServiceNow endpoints
- Loads Data: Syncs transformed data to ServiceNow CMDB via REST API
- Multi-phase batch relationship linking
- Batch loading with dependency resolution
- Supports specific CI type tables or base
cmdb_citable fallback
Note: Currently assumes ServiceNow tables exist. Table creation feature planned for future release.
Project Status
✅ MVP COMPLETE - All core features implemented, tested, and published 📦 Version 0.2.3 (Stable Release) - Published to PyPI 🗓️ Release Cadence: Monthly stable releases with interim patches as needed 📋 Features: See docs/MVP_FEATURES.md for complete feature list 🎉 Status: See docs/MVP_COMPLETE.md for MVP completion summary
See Known Limitations before using.
Source Data Schema
UniFi data structure (from docs/unifi_schema.sql):
- hosts - Gateway devices (Dream Machines, etc.)
- sites - UniFi sites/organizations
- devices - Network devices (switches, access points, etc.)
- clients - Network clients (computers, phones, TVs, thermostats, etc.)
ServiceNow Integration
- Target: ServiceNow CMDB
- Method: REST API (direct API calls, MID server support planned)
- Tables:
- Preferred: Specific CI type tables (
cmdb_ci_network_gateway,cmdb_ci_network_gear, etc.) - Fallback: Base
cmdb_citable withsys_class_name(works without plugin)
- Preferred: Specific CI type tables (
- Plugin Requirement: CMDB CI Class Models (
sn_cmdb_ci_class) for full table support- Free in PDIs, included with ITOM Visibility in production
- See docs/pdi_activation_guide.md for activation
- Authentication: API key (preferred), OAuth token, Basic Auth (fallback)
- 1Password Integration: Optional 1Password CLI support for credential management
Quick Start
-
Install:
pip install beast-dream-snow-loader # Or with uv: uv pip install beast-dream-snow-loader
-
Configure ServiceNow:
export SERVICENOW_INSTANCE="your-instance.service-now.com" export SERVICENOW_USERNAME="your-username" export SERVICENOW_API_KEY="your-api-key" # or use 1Password
-
Run Complete Example:
python examples/complete_workflow.py -
Or Run Smoke Test:
python examples/smoke_test.py
See docs/pdi_activation_guide.md for ServiceNow plugin setup.
Dependencies
pydantic- Data validation and modelsrequests- HTTP client for ServiceNow REST APIbeast-unifi-integration- UniFi API clients (planned, not yet available)
Installation
pip install beast-dream-snow-loader
Or with uv:
uv pip install beast-dream-snow-loader
Documentation
- Quick Start Guide - Get started in 5 minutes
- MVP Features - Complete feature list
- Release Notes - What's new and what's planned
- Deployment Guide - PyPI and SonarCloud setup
- ServiceNow Setup - REST API and plugin activation
- Table Requirements - Plugin dependencies and verification
- Constraints & Assumptions - ServiceNow integration details
License
MIT License - see LICENSE for details.
Project: Part of the Beastmaster framework ecosystem
Repository: nkllon/beast-dream-snow-loader (GitHub)
Test workflow trigger
Project details
Release history Release notifications | RSS feed
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 beast_dream_snow_loader-0.3.0.tar.gz.
File metadata
- Download URL: beast_dream_snow_loader-0.3.0.tar.gz
- Upload date:
- Size: 256.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f08103b1654b3a2e9203add667cac524ea8a8aaefea64471cd79604ad10fbecf
|
|
| MD5 |
baf27f5081962d9263ae544c457ca070
|
|
| BLAKE2b-256 |
7542b180a14825a3774aeaf7745d57c22d0ca138dfc838f758b878a09ba32bf1
|
Provenance
The following attestation bundles were made for beast_dream_snow_loader-0.3.0.tar.gz:
Publisher:
publish.yml on nkllon/beast-dream-snow-loader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beast_dream_snow_loader-0.3.0.tar.gz -
Subject digest:
f08103b1654b3a2e9203add667cac524ea8a8aaefea64471cd79604ad10fbecf - Sigstore transparency entry: 668133425
- Sigstore integration time:
-
Permalink:
nkllon/beast-dream-snow-loader@7ef65420dc6f961c09a44225a5af9254da1cf027 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/nkllon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7ef65420dc6f961c09a44225a5af9254da1cf027 -
Trigger Event:
release
-
Statement type:
File details
Details for the file beast_dream_snow_loader-0.3.0-py3-none-any.whl.
File metadata
- Download URL: beast_dream_snow_loader-0.3.0-py3-none-any.whl
- Upload date:
- Size: 44.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be33ddbd61295635dead81530647e0e637d0cd0237cb7b3a68ad4381f5024e9c
|
|
| MD5 |
cadbb59d36ae91bcef312a6f01f9c793
|
|
| BLAKE2b-256 |
75d7db966e9095cb766f3dfbf765ea1d97805addfcd305fed57261f8bde491a1
|
Provenance
The following attestation bundles were made for beast_dream_snow_loader-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on nkllon/beast-dream-snow-loader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beast_dream_snow_loader-0.3.0-py3-none-any.whl -
Subject digest:
be33ddbd61295635dead81530647e0e637d0cd0237cb7b3a68ad4381f5024e9c - Sigstore transparency entry: 668133445
- Sigstore integration time:
-
Permalink:
nkllon/beast-dream-snow-loader@7ef65420dc6f961c09a44225a5af9254da1cf027 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/nkllon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7ef65420dc6f961c09a44225a5af9254da1cf027 -
Trigger Event:
release
-
Statement type: