Skip to main content

UniFi Dream Machine → ServiceNow CMDB Data Loader (BETA - Work in Progress)

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

⚠️ BETA PRE-RELEASE - Work in Progress
MVP Complete - Core features implemented and tested
📦 Version 0.1.0b1 - See RELEASE_NOTES.md for details
📋 Features: See docs/MVP_FEATURES.md for complete feature list

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.1.0b1.tar.gz (138.4 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.1.0b1-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file beast_dream_snow_loader-0.1.0b1.tar.gz.

File metadata

File hashes

Hashes for beast_dream_snow_loader-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 79fb62f3899bbdffac384ecc023a39c3a541f99a5cfa13468c942378ffbdc718
MD5 dce61f4fe9d49f0cb68b37c49f024705
BLAKE2b-256 ec3a03770ff716ee6507992aa4c8ee3ea98dd749119d24107ac3672dde4f90c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for beast_dream_snow_loader-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd52e970fc8d4fc7577e87a3e89ee09f76ea133228738e210ac70e9570aec896
MD5 841678fe3d5bf601b7d8060aaf79f87e
BLAKE2b-256 29482c2460f86e004ec8c9a460f9268a2d265de505c54903c174f3fb638459ec

See more details on using hashes here.

Provenance

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