The Browser Is Part of the Estate: Governing Vendor Scripts as Integration Dependencies
Most integration registers are built around interfaces that look like interfaces: REST endpoints, message queues, scheduled file drops and database links. The browser is rarely treated with the same seriousness. Yet for many UK organisations, a significant part of the live dependency estate is delivered as JavaScript written by someone else. Payment providers, chat widgets, analytics tags, personalisation engines, consent management platforms and embedded media all arrive as scripts that execute inside the user's browser, on pages the organisation controls.
That makes the browser an integration boundary. The script is not merely a presentation detail. It can read the document object model, inspect cookies and local storage, observe form fields, call third-party endpoints, set cookies of its own and, in some configurations, load further scripts. It may also change what the organisation believes it has agreed with a customer. A consent banner that appears to block tracking is not a control unless the scripts behind it actually behave as intended.
Why the usual audit misses the surface
Application programming interfaces are visible to integration teams because they are documented, versioned and often contracted. Vendor scripts are less tidy. They are added by marketing, product teams, agencies or template changes. They may be injected through a tag manager rather than committed to a repository. They may be served from a content delivery network domain that changes without notice. The result is a dependency that is real in production but absent from the integration catalogue.
This is not a reason to treat every script as hostile. It is a reason to treat it as an integration dependency with an owner, a purpose, a data flow and a failure mode. The question is not whether the organisation trusts the vendor. The question is what the organisation can evidence about the script's behaviour on its own pages.
Start with a page-and-script inventory
The first step is a census, not a policy statement. Begin with the public pages, authenticated journeys and transactional screens that matter most. Include the checkout, the account area, the application form, the contact page and any page that handles special category data. For each page, record the scripts that load, the domains they come from, whether they are first-party or third-party, and how they are inserted: directly in the template, through a tag manager, through a content management system plugin or through another script.
Automated crawling helps, but it is not sufficient. Some scripts load only after interaction, after cookie acceptance, after login or on a particular regional setting. Browser developer tools, network logs and content security policy reports can supplement the crawl. The inventory should also capture the business purpose of each script, the contract or terms that govern it, and the internal team that requested it. A script with no stated purpose is already a governance finding.
Map what the script can read and call
Once the inventory exists, describe each script's reach in plain terms. Can it read the whole page, or is it confined to an iframe? Can it access cookies, local storage or session storage? Can it observe keystrokes or form values? Which endpoints does it call, and from which origin? Does it load further resources, and are those resources pinned to a version or fetched dynamically?
This mapping should be proportionate. A payment iframe that is isolated from the surrounding page presents a different risk profile from a tag that runs in the top-level document. A chat widget that can read the page may need to be constrained. A consent tool that must intercept other scripts needs to be tested against the scripts it is meant to control. The output is not a security audit in miniature; it is an integration map that shows where vendor code sits in the delivery chain.
Test failure and consent behaviour
Integration teams already test what happens when an API is unavailable. Vendor scripts deserve the same treatment. Block the script domain and observe the page. Does the checkout fail closed, fail open or degrade gracefully? Does the chat widget leave a blank panel? Does the consent banner still appear? Does the page continue to function for users who deny consent?
Consent behaviour needs specific attention. Under UK GDPR and the Privacy and Electronic Communications Regulations, consent must be freely given, specific, informed and unambiguous. A banner that collects consent but allows non-essential scripts to load beforehand undermines that position. Test with consent denied, consent granted and consent withdrawn. Check whether scripts set cookies or call analytics endpoints before the user has acted. Record the results, because the organisation may need to show them to a regulator, a customer or an internal risk committee.
Assign ownership and review the list
A script inventory that nobody owns will decay within a quarter. Each entry should have a business owner, a technical owner and a contract owner. The business owner can explain why the script is there. The technical owner can explain how it is inserted and what it can reach. The contract owner can explain the terms, the data processing arrangement and the exit route. For smaller organisations, one person may hold more than one role, but the responsibilities should still be named.
Review the inventory when page templates change, when a tag manager container is updated, when a vendor changes its domain or when a contract is renewed. Treat a new script as a change to the integration estate, not as a marketing configuration. Keep the evidence in a form that can be produced without a scramble: the page, the script, the domain, the purpose, the data flow, the test result and the owner.
The browser is not outside the estate. It is the part of the estate that customers actually touch. Governing vendor scripts as integration dependencies brings that surface into the same discipline as the interfaces behind it: inventory, mapping, testing and ownership. The alternative is to discover the dependency at the point of an outage, a consent complaint or a supplier exit, when the script is already running and the organisation is still asking who put it there.