Collaboration Support Bot supporting my team.
Find a file
Joseph McQueen 07152a467b Add scripts/removeAdvancedMessaging.js + extract shared bulk lib
New scripts/removeAdvancedMessaging.js reads a Users Export CSV
and bulk-removes the Advanced Messaging and Advanced Space Meetings
licenses from every listed user (with optional add of a Basic
Messaging license, though in most Webex orgs Basic Messaging is a
derived entitlement and no explicit add is required).

Detection is authoritative like the reclaim script: the assignee
rosters of the two Advanced licenses are fetched once up-front,
unioned by email, and the CSV is cross-referenced. PersonIds come
straight off the roster (no per-user /people lookup). Only the
remove ops the user actually still needs are emitted — the PATCH
body is trimmed per user based on which licenses they hold.

Dry-run enumerates every org license whose name matches
/message|advanced|space|basic/i so the operator can discover the
three ids without prior knowledge. --advanced-messaging-license-id,
--advanced-space-meetings-license-id, and --basic-messaging-license-id
also read WEBEX_ADV_MSG_LICENSE_ID / WEBEX_ADV_SPACE_MTG_LICENSE_ID
/ WEBEX_BASIC_MSG_LICENSE_ID from .env if set.

Also extracted the CSV parsing, format detection, pool/retry
helpers, and Webex license helpers from reclaimWebexHosts.js into
a shared scripts/lib/webexBulk.js module. reclaimWebexHosts.js now
imports from it — no behavior change (verified against both CSV
formats: 1028 candidates on the Meetings Inactive Users report,
665 on the Users Export report). Net -106 lines from the reclaim
script.

.gitignore updates:
  - whitelist scripts/lib/ and the new removeAdvancedMessaging.js
    file so they get tracked
  - exclude reclaim-*.csv and remove-*.csv (per-user report CSVs
    generated by --report contain PII and must never be committed)
2026-07-07 15:54:37 -04:00
commands DECT relay Phase 1: WSS hub + agent + /phonestatus follow-up 2026-07-02 17:03:32 -04:00
config Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
dect-relay-agent Fix DECT relay container: install node_modules at /workspace, not under agent 2026-07-03 10:15:57 -04:00
integrations Add DBS-210 status.xml parser + health verdict 2026-07-02 15:35:34 -04:00
public Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
scripts Add scripts/removeAdvancedMessaging.js + extract shared bulk lib 2026-07-07 15:54:37 -04:00
services DECT relay Phase 1: WSS hub + agent + /phonestatus follow-up 2026-07-02 17:03:32 -04:00
tests DECT relay Phase 1: WSS hub + agent + /phonestatus follow-up 2026-07-02 17:03:32 -04:00
utils Add Cisco DBS-210 DECT base spike (HTTP Digest client + safe probes) 2026-07-02 15:30:42 -04:00
.dockerignore Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
.env.example DECT relay Phase 1: WSS hub + agent + /phonestatus follow-up 2026-07-02 17:03:32 -04:00
.gitignore Add scripts/removeAdvancedMessaging.js + extract shared bulk lib 2026-07-07 15:54:37 -04:00
docker-compose.yml Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
Dockerfile Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
index.js DECT relay Phase 1: WSS hub + agent + /phonestatus follow-up 2026-07-02 17:03:32 -04:00
nodemon.json Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
package-lock.json DECT relay Phase 1: WSS hub + agent + /phonestatus follow-up 2026-07-02 17:03:32 -04:00
package.json Rework DECT relay bundle to ship a pre-built Docker image 2026-07-03 10:05:05 -04:00