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.2.tar.gz (208.3 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.2-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: beast_dream_snow_loader-0.2.2.tar.gz
  • Upload date:
  • Size: 208.3 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.2.tar.gz
Algorithm Hash digest
SHA256 3e2036cacea64a86f9b95e7e2485ec8feec7548f2314748c3b40e4ebda494152
MD5 01a47eb4e78597b8747decc6bc8fc271
BLAKE2b-256 476d59b9e66ac4dd78be0fdaadc4eef9b8e16472e0343e8989ad6d28277a7fea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for beast_dream_snow_loader-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 26ce8bf9d53b0a3bdac82059b6d2deae58eef98f20d30d6a9a23a97c51733565
MD5 1e99a78005d654e5a77569e60731d04a
BLAKE2b-256 c07a849a600385631ba4458cc92bbf2d58fe869e4c987bbabe41db1704760c01

See more details on using hashes here.

Provenance

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