Omni CMS: broaden the dom selector to match any OU Campus path - #352
Omni CMS: broaden the dom selector to match any OU Campus path#352danielserranoh wants to merge 2 commits into
Conversation
Omni CMS (Modern Campus, formerly OU Campus) matches only via a dom selector (a[href*='a.cms.omniupdate.com/11/']). Response-first / non-headless consumers don't evaluate dom, so Omni CMS goes undetected even when the marker is present. Add html patterns for the same signal (statically matchable): the omniupdate CMS link host and the OmniUpdate XSL namespace. Verified on www.stonybrook.edu, www.fau.edu, www.aamu.edu, www.wilkes.edu.
| ], | ||
| "description": "Omni CMS (formerly OU Campus) is a web content management system developed by Modern Campus. Modern Campus is a SaaS-based student lifecycle management software designed to manage continuing education and non-degree programs.", | ||
| "dom": "a[href*='a.cms.omniupdate.com/11/']", | ||
| "html": [ |
There was a problem hiding this comment.
I’m not sure we need this since HTTP Archive only uses Wappalyzer with DOM detection.
Can you explain more why it’s needed?
There was a problem hiding this comment.
You're right — for HTTP Archive's DOM-based detection the existing dom rule already fires, so the html patterns are redundant for that crawl. Two things prompted the PR:
- The existing dom selector is pinned to a specific OU Campus version: a[href*='a.cms.omniupdate.com/11/']. Installs served under a different path (other versions, or the omniupdate.com/XSL/Variables include) are missed even with DOM detection. If useful, I'd rather broaden the dom rule — e.g. a[href*='cms.omniupdate.com'] — since that's the change that actually improves detection here.
- The html form was aimed at response-first consumers of this dataset that match raw HTML without a headless browser and so can't evaluate dom rules (my use case is an internal fingerprint engine). I understand if that's out of scope for a set tuned to HTTP Archive's DOM crawl.
Happy to convert this to a broadened dom rule and drop the html additions — or close it if the response-first angle isn't something you want to carry here. Which would you prefer?
There was a problem hiding this comment.
Happy to broaden the DOM rule.
So you’re using this Wappalyzer code outside of HTTP Archive and that’s why you want to make the change? The HTML selector is deprecated and is known to be slower so don’t really want to spread usage of it much further. Saying that if it’s one these three extra ones I don’t think that’ll cause any issue. But I wouldn’t want to apply this more widely to all DOM selectors.
There was a problem hiding this comment.
Thanks — that's the useful half of the change, so I've pushed it: the html patterns are gone and the selector is now a[href*='cms.omniupdate.com'] instead of a[href*='a.cms.omniupdate.com/11/']. One-line diff; title and description updated to match.
Yes — the response-first angle was for an internal engine that consumes these fingerprints without a headless browser. Point taken on html being deprecated and slower; I'll keep those supplements on my side rather than push them here, and I'm closing the Liferay and Wagtail PRs for the same reason. Thanks for taking the time to explain the reasoning.
Replaces the version-pinned a[href*='a.cms.omniupdate.com/11/'] selector with a[href*='cms.omniupdate.com'], so installs served under other OU Campus paths/versions are detected. Drops the html patterns per review feedback. Co-Authored-By: Claude and Daniel Serrano - daniel.serrano@griddo.io
Omni CMS (Modern Campus, formerly OU Campus) matched only via a
domselector pinned to a specific OU Campus version:Installs served under a different path or version are missed. This broadens the selector to the host itself:
Per review feedback, the originally proposed
htmlpatterns have been dropped — this is now a one-linedomchange.Test websites:
Assisted by Claude Code.