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

Uploaded Python 3

File details

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

File metadata

  • Download URL: beast_dream_snow_loader-0.2.3.tar.gz
  • Upload date:
  • Size: 225.6 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.3.tar.gz
Algorithm Hash digest
SHA256 b1588c74514990dc06316860812e9c3dd628d0e8a7ce7678c1b38df0b1d23ca4
MD5 17dc69b93836a1c838230815e4f1622d
BLAKE2b-256 8f711e810c04bb16c58fc5029f34bc50a5d0274983a903c57cd0a26c64fd5721

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for beast_dream_snow_loader-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 22e06f3b21fae06bc646b41d5c915cd4aa1d4d08efc9ba1b2c91e9310ae6732d
MD5 3cb643a8fb2796a3801a0ef2ae795a5e
BLAKE2b-256 49d213bb90274ad1f27ab313f3cf3437132b2ce20ae7ee64ec6baa3cf140a7aa

See more details on using hashes here.

Provenance

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