Skip to main content

UniFi Dream Machine → ServiceNow CMDB Data Loader with Operational Resilience

Project description

beast-dream-snow-loader

PyPI - Version

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

  1. 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
  2. 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_ci table 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_ci table with sys_class_name (works without plugin)
  • Plugin Requirement: CMDB CI Class Models (sn_cmdb_ci_class) for full table support
  • Authentication: API key (preferred), OAuth token, Basic Auth (fallback)
  • 1Password Integration: Optional 1Password CLI support for credential management

Quick Start

  1. Install:

    pip install beast-dream-snow-loader
    # Or with uv:
    uv pip install beast-dream-snow-loader
    
  2. 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
    
  3. Run Complete Example:

    python examples/complete_workflow.py
    
  4. Or Run Smoke Test:

    python examples/smoke_test.py
    

See docs/pdi_activation_guide.md for ServiceNow plugin setup.

Dependencies

  • pydantic - Data validation and models
  • requests - HTTP client for ServiceNow REST API
  • beast-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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beast_dream_snow_loader-0.3.0.tar.gz (256.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beast_dream_snow_loader-0.3.0-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

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

Hashes for beast_dream_snow_loader-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f08103b1654b3a2e9203add667cac524ea8a8aaefea64471cd79604ad10fbecf
MD5 baf27f5081962d9263ae544c457ca070
BLAKE2b-256 7542b180a14825a3774aeaf7745d57c22d0ca138dfc838f758b878a09ba32bf1

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file beast_dream_snow_loader-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for beast_dream_snow_loader-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be33ddbd61295635dead81530647e0e637d0cd0237cb7b3a68ad4381f5024e9c
MD5 cadbb59d36ae91bcef312a6f01f9c793
BLAKE2b-256 75d7db966e9095cb766f3dfbf765ea1d97805addfcd305fed57261f8bde491a1

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page