Hide STIR/SHAKEN from compliance checker, remove toggle

STIR/SHAKEN card creates confusion with OCN bundling on the order
page — if carried over, it doesn't auto-select OCN. Self-reported
RMD status also doesn't reliably indicate actual compliance.
Reverted to hidden (computed internally but not shown to users).
Removed STIR toggle and pending-question watcher for it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-05-02 08:55:10 -05:00
parent 0f9b473030
commit d03135e9d0
2 changed files with 14 additions and 56 deletions

View file

@ -367,16 +367,18 @@ router.get("/api/v1/fcc/lookup", async (req, res) => {
ssDetail = "Cannot determine — no RMD filing found for this FRN. Verify STIR/SHAKEN status directly.";
}
// STIR/SHAKEN — show based on RMD self-reported implementation status.
// Note: this is NOT verified against the STI-PA certificate authority.
checks.push({
id: "stir_shaken",
label: "STIR/SHAKEN Call Authentication",
status: ssStatus,
detail: ssDetail,
action_url: null,
due_date: null,
});
// STIR/SHAKEN — computed but NOT shown on the compliance checker.
// The self-reported RMD status doesn't reliably indicate compliance,
// and showing it creates confusion with OCN bundling on the order page.
// Kept computed for internal use / future STI-PA verification.
// checks.push({
// id: "stir_shaken",
// label: "STIR/SHAKEN Call Authentication",
// status: ssStatus,
// detail: ssDetail,
// action_url: null,
// due_date: null,
// });
// 4. CPNI Annual Certification
//

View file

@ -406,49 +406,6 @@ Send reset link
});
}
// STIR/SHAKEN toggle — terminating-only providers don't need a signing certificate
if (!checks.querySelector(".pw-stir-toggle")) {
var stirCards = checks.querySelectorAll(":scope > div");
stirCards.forEach(function(card) {
if (card.textContent.indexOf("STIR/SHAKEN") < 0) return;
if (card.querySelector(".pw-stir-toggle")) return;
// Only show for red/amber cards
if (!card.classList.contains("bg-red-50") && !card.classList.contains("bg-amber-50")) return;
var detail = card.querySelectorAll("p")[1];
var icon = card.querySelector("span");
var flexDiv = card.querySelector(".flex-1");
if (!flexDiv || !detail) return;
var q = document.createElement("div");
q.className = "pw-stir-toggle mt-3 flex items-center gap-2 flex-wrap";
q.innerHTML =
'<span class="text-sm font-bold text-gray-900 w-full mb-1">Do you originate calls (place them onto the network), or do you only receive and terminate calls from other carriers?</span>' +
'<button type="button" class="px-4 py-1.5 text-xs font-bold rounded-lg border-2 border-red-300 bg-red-50 text-red-700 hover:bg-red-100 hover:border-red-400 transition-colors" data-stir="originate">I originate calls</button>' +
'<button type="button" class="px-4 py-1.5 text-xs font-bold rounded-lg border-2 border-green-300 bg-green-50 text-green-700 hover:bg-green-100 hover:border-green-400 transition-colors" data-stir="terminate">Terminate only</button>' +
'<button type="button" class="px-4 py-1.5 text-xs font-bold rounded-lg border-2 border-amber-300 bg-amber-50 text-amber-700 hover:bg-amber-100 hover:border-amber-400 transition-colors" data-stir="both">Both</button>';
flexDiv.appendChild(q);
q.addEventListener("click", function(ev) {
var b = ev.target.closest("[data-stir]");
if (!b) return;
q.remove();
if (b.dataset.stir === "terminate") {
card.className = "bg-green-50 border-green-200 border rounded-xl p-4 flex items-start gap-3";
detail.innerHTML = 'Signing certificate not required \u2014 terminating-only providers verify incoming call signatures (a software configuration) but do not need their own STI certificate. File your RMD as &ldquo;partial implementation&rdquo; describing your verification process.';
detail.className = "text-xs text-green-800 mt-1";
icon.className = "text-green-600 shrink-0 mt-0.5";
icon.innerHTML = '<svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"/></svg>';
card.dataset.stirExempt = "true";
} else {
// Originate or both — needs own certificate
card.className = "bg-red-50 border-red-200 border rounded-xl p-4 flex items-start gap-3";
detail.innerHTML = 'STIR/SHAKEN signing certificate required \u2014 as of June 2025, originating providers must sign all calls with their own STI certificate. You can no longer rely on upstream providers to sign on your behalf. Obtain a certificate from an approved CA (e.g. Sievert Larsen, Neustar, TransNexus).';
detail.className = "text-xs text-red-800 mt-1";
icon.className = "text-red-600 shrink-0 mt-0.5";
icon.innerHTML = '<svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/></svg>';
}
});
});
}
// CALEA toggle — wholesale-only carriers are exempt ("interconnecting carriers")
if (!checks.querySelector(".pw-calea-toggle")) {
@ -516,8 +473,7 @@ Send reset link
var hasRmdQuestion = !!checks.querySelector(".pw-rmd-toggle");
var has499aQuestion = !!checks.querySelector(".pw-499a-toggle");
var hasCaleaQuestion = !!checks.querySelector(".pw-calea-toggle");
var hasStirQuestion = !!checks.querySelector(".pw-stir-toggle");
var hasPendingQuestion = hasBdcQuestion || hasRmdQuestion || has499aQuestion || hasCaleaQuestion || hasStirQuestion;
var hasPendingQuestion = hasBdcQuestion || hasRmdQuestion || has499aQuestion || hasCaleaQuestion;
var frn = currentFrn;
var url = "/order/fcc-compliance?services=" + services.join(",") + (frn ? "&frn=" + frn : "");
var cta = document.createElement("div");
@ -536,7 +492,7 @@ Send reset link
'<button type="button" id="pw-cta-btn" disabled class="inline-block px-6 py-2.5 bg-gray-400 text-white font-semibold rounded-lg cursor-not-allowed text-sm">Get Started \u2014 Fix ' + count + ' Item' + (count > 1 ? 's' : '') + '</button>';
// Watch for toggle removal (= answered)
var bdcWatcher = new MutationObserver(function() {
if (!checks.querySelector(".pw-bdc-toggle") && !checks.querySelector(".pw-rmd-toggle") && !checks.querySelector(".pw-499a-toggle") && !checks.querySelector(".pw-calea-toggle") && !checks.querySelector(".pw-stir-toggle")) {
if (!checks.querySelector(".pw-bdc-toggle") && !checks.querySelector(".pw-rmd-toggle") && !checks.querySelector(".pw-499a-toggle") && !checks.querySelector(".pw-calea-toggle")) {
bdcWatcher.disconnect();
// Re-count actionable items (red + amber)
var newServices = [];