A web-based tool for assigning SDK application versions to router groups via the NCM API v2.
python3 serve.py # macOS/Linux
python serve.py # WindowsThat's it. On first run the script will:
- Install the
requestspackage if it's not already available - Prompt for your API credentials if they're not set
- Save credentials to a
.envfile so you won't be asked again - Start the web server at http://localhost:9000
- Lists all SDK apps and their versions from
device_apps/anddevice_app_versions/ - Displays all groups with checkbox selection and pagination
- "Select All" selects groups across all pages, not just the current page
- Assigns the selected app version to all selected groups via
device_app_bindings/ - Logs all assignment results (success/failure) to a datetime-stamped log file
- Python 3.10+
- NCM API v2 credentials
Credentials are resolved in this order:
- Hardcoded values in
serve.py(if you fill in the placeholders) - Environment variables (
CP_API_ID,CP_API_KEY,ECM_API_ID,ECM_API_KEY) .envfile in this directory (auto-created on first run)
| File | Purpose |
|---|---|
serve.py |
Web server, API logic, and credential management |
index.html |
Frontend UI |
requirements.txt |
Python dependencies (optional — auto-installed if missing) |
Each assignment run creates a log file in the logs/ directory:
logs/assign_sdk_YYYYMMDD_HHMMSS.log