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
Metadata
Release files for beast-dream-snow-loader 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| beast_dream_snow_loader-0.3.0.tar.gz | 256.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| beast_dream_snow_loader-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 301.8 kB
Release files / beast_dream_snow_loader-0.3.0.tar.gz
| Download URL | beast_dream_snow_loader-0.3.0.tar.gz |
|---|---|
| Size | 256.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f08103b1654b3a2e9203add667cac524ea8a8aaefea64471cd79604ad10fbecf
|
|
BLAKE2b-256 checksum How to use checksums |
7542b180a14825a3774aeaf7745d57c22d0ca138dfc838f758b878a09ba32bf1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2025.
Transparency logRelease files / beast_dream_snow_loader-0.3.0-py3-none-any.whl
| Download URL | beast_dream_snow_loader-0.3.0-py3-none-any.whl |
|---|---|
| Size | 44.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be33ddbd61295635dead81530647e0e637d0cd0237cb7b3a68ad4381f5024e9c
|
|
BLAKE2b-256 checksum How to use checksums |
75d7db966e9095cb766f3dfbf765ea1d97805addfcd305fed57261f8bde491a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2025.
Transparency logSecurity for beast-dream-snow-loader 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for beast_dream_snow_loader-0.3.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.