Skip to main content

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

  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
    • Two-phase 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.1.0b1 (Beta Pre-Release) - Published to PyPI
📋 Features: See docs/MVP_FEATURES.md for complete feature list
🎉 Status: See docs/MVP_COMPLETE.md for MVP completion summary

Note: This is a beta pre-release. Pre-releases are not installed by default:

pip install --pre beast-dream-snow-loader

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 --pre beast-dream-snow-loader
    # Or with uv:
    uv pip install --pre 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.2.1.tar.gz (204.0 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.2.1-py3-none-any.whl (42.6 kB view details)

Uploaded Python 3

File details

Details for the file beast_dream_snow_loader-0.2.1.tar.gz.

File metadata

  • Download URL: beast_dream_snow_loader-0.2.1.tar.gz
  • Upload date:
  • Size: 204.0 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.2.1.tar.gz
Algorithm Hash digest
SHA256 19b6344dffc8efea6caa5be472eb101d3b04b1683cff3691b92bd25c537445ca
MD5 40dd21f71b2075b2beb04b33e0bd5a4f
BLAKE2b-256 c61d6f2a21e1d1b6a7a218db0f2de597c8d76d7dc275d66e9b15610da79b4761

See more details on using hashes here.

Provenance

The following attestation bundles were made for beast_dream_snow_loader-0.2.1.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.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for beast_dream_snow_loader-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 122fb3528900d8cbe60e6e6680b2d8e962b19fdb4d96492699dfa5af937241e5
MD5 428f899e1a3e588183741fe5f5348163
BLAKE2b-256 871d547a778ce96eb39fbbd1c0b7c1f7816fba36c3ab4bea28a1d8db28dca96f

See more details on using hashes here.

Provenance

The following attestation bundles were made for beast_dream_snow_loader-0.2.1-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