Skip to content

Omni CMS: broaden the dom selector to match any OU Campus path - #352

Open
danielserranoh wants to merge 2 commits into
HTTPArchive:mainfrom
danielserranoh:omnicms-response-first-signals
Open

Omni CMS: broaden the dom selector to match any OU Campus path#352
danielserranoh wants to merge 2 commits into
HTTPArchive:mainfrom
danielserranoh:omnicms-response-first-signals

Conversation

@danielserranoh

@danielserranoh danielserranoh commented Jul 31, 2026

Copy link
Copy Markdown

Omni CMS (Modern Campus, formerly OU Campus) matched only via a dom selector pinned to a specific OU Campus version:

a[href*='a.cms.omniupdate.com/11/']

Installs served under a different path or version are missed. This broadens the selector to the host itself:

a[href*='cms.omniupdate.com']

Per review feedback, the originally proposed html patterns have been dropped — this is now a one-line dom change.


Test websites:

Assisted by Claude Code.

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.
Comment thread src/technologies/o.json Outdated
],
"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": [

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m not sure we need this since HTTP Archive only uses Wappalyzer with DOM detection.

Can you explain more why it’s needed?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

  1. 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.
  2. 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?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
@danielserranoh danielserranoh changed the title Omni CMS: add HTML signals (dom-only misses response-first detection) Omni CMS: broaden the dom selector to match any OU Campus path Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants