When Cloudflare Workers Become Shadow IT: A Practical Integration Register

Illustrated infographic summarizing: Cloudflare Workers can become shadow IT without an integration register

By Greg Nowak. Updated 26 September 2026.

Cloudflare Workers often arrive as sensible, contained fixes: validate a webhook, repair campaign redirects, reshape form data or put a cleaner interface in front of an awkward API. The code may be small, but the business dependency rarely stays small.

A few months later, that Worker can sit between your website and a CRM, payment service or fulfilment platform. It has credentials, routes and failure modes, yet nobody can confidently say who owns it or what happens when it stops. That is the point at which useful integration glue becomes shadow IT.

You do not need a heavyweight governance programme. You need an integration register: a short, maintained record connecting each production Worker to its purpose, configuration, owner and recovery plan.

When should a Worker enter the register?

Register a Worker when it accepts external events, changes customer-facing behaviour, calls another system, handles credentials or affects business records. A 40-line lead-routing Worker is still a production application component if enquiries disappear when it fails.

Start with the workflow, not the script name. “Website lead intake” tells an operations lead more than form-proxy-prod. It also exposes the consequence of failure: lost enquiries, delayed orders, incorrect attribution or an undocumented change in the customer journey.

Record every entry point. For HTTP traffic, Cloudflare currently distinguishes Custom Domains, where the Worker acts as the origin; Routes, where it runs in front of an existing origin; and workers.dev. Cloudflare recommends a Route or Custom Domain for production rather than a workers.dev address. Also capture scheduled triggers, queues, service bindings and other event sources.

What belongs in a useful integration register?

Area Record this Review it when
Business purpose Workflow, affected users, criticality and acceptable interruption The process or supplier changes
Entry points Routes, Custom Domains, schedules, queues and callers DNS, traffic or trigger configuration changes
Dependencies APIs, origins, service bindings, KV, D1, R2 and queues An API, binding or data model changes
Credentials Secret names, purpose, owning system and rotation owner—never secret values Access changes or credentials rotate
Delivery Repository, Wrangler configuration, environments and approval path Every production release
Operations Logs, alerts, expected failures and safe correlation identifiers An incident or material traffic increase
Recovery Known-good version, rollback steps and incompatible resource changes Bindings, schemas or storage change
A compact register should connect technical configuration to operational decisions and accountable people.

Name both a business owner and a technical maintainer. The owner decides whether the workflow is still required and how much downtime is acceptable. The maintainer can test, deploy and diagnose it. One person may hold both roles, but the two responsibilities should remain explicit—especially when an agency maintains the code for a client.

How to audit the Workers you already have

Begin with the Cloudflare account, then compare it with the repositories your team considers authoritative. Do not assume they match. Dashboard changes, abandoned experiments and Workers deployed from a former supplier’s machine are exactly what the audit should uncover.

From a repository-backed Worker, these current Wrangler commands provide a useful snapshot:

npx wrangler deployments list --json
npx wrangler deployments status --json
npx wrangler secret list --format json

Run them for each environment and Worker; use Wrangler’s --name or --env options where appropriate. The secret command returns names and types, not values, which is what an inventory needs. Sensitive values belong in secrets, not plaintext Wrangler variables.

You can also declare expected names under secrets.required in Wrangler configuration. Current Wrangler versions validate those requirements during development and deployment, failing a deployment if a required secret is absent. This is a valuable technical control, but the register must still explain the secret’s purpose and who rotates it.

Next, trace each entry point from caller to destination. Ask four practical questions: How is the request authenticated? What does the Worker change? What happens when a dependency times out? Can the caller safely retry? Test the unhappy path deliberately. A webhook that returns success after a failed CRM write is more dangerous than one that fails visibly.

Finally, compare deployed settings with version control. Routes, bindings, compatibility settings and observability should be reproducible from the Wrangler configuration. If an important setting exists only in someone’s dashboard knowledge, record and reconcile it rather than quietly treating the dashboard as documentation.

Make logging explain the business failure

Logs should answer “what happened to this order, lead or event?” without storing full payloads, credentials or unnecessary personal data. Useful structured fields can include a correlation ID, event type, validation result, downstream service, response status and elapsed time.

Workers Logs can index structured JSON fields, making them easier to filter than values buried in message strings. Head-based sampling controls volume, but choose it according to the workflow. Sampling a high-volume redirect service may be reasonable; missing the only log for a low-volume, high-value integration may not be. Put the sampling decision in the register so responders know what an absent event means.

Application logs and Cloudflare Audit Logs answer different questions. Application logs show what code did with a request. Audit Logs show account activity and resource changes initiated through Cloudflare interfaces or systems. Neither replaces the register’s explanation of business purpose and accountability.

A rollback command is not a recovery plan

Cloudflare can roll a Worker back with npx wrangler rollback or through the dashboard, but connected storage and platform resources do not roll back with its code. Older code may be unusable after a KV namespace, R2 bucket or queue is removed, or after stored data changes shape. Cloudflare also limits rollback eligibility in some binding and Durable Object lifecycle scenarios.

For every important Worker, identify a known-good version and state which resources must remain compatible. Rehearse recovery after meaningful binding or schema changes. “Click rollback” is not a plan unless the earlier version can still run safely.

Keep the register useful, not ceremonial

Store the register where delivery and operations teams already work. Update it whenever someone adds a route, trigger, binding, credential or production dependency. Review critical entries after incidents and before an employee or agency leaves. A small, accurate register is far more valuable than an elaborate inventory nobody trusts.

If years of quick fixes have left your Workers estate difficult to explain, Greg can help map the workflows, dependencies, owners and recovery gaps and turn them into a maintenance plan your team can use.

Related on GrN.dk

Need help with this kind of work?

Ask Greg about a Cloudflare Workers review Get in touch with Greg.

Sources

Seneste artikler

Når en ingrediens ændres, kan menukortet kræve rettelser, selv om opskriftsdatoen står stille. Sådan kan AI hjælpe med gennemgang og godkendelse i WordPress.

Når checkout fejler, skal driftspartneren have noget konkret at arbejde med. Se, hvordan AI, dmesg og journalctl kan samle sporene i en brugbar driftssag.

Brug oktober til at afprøve daglige AI-forslag til genbestilling før Black Friday. Få styr på Shopify-data, leveringstid og budget, før forslagene bliver til indkøb.

Jeg lærte serverdrift ved at ødelægge mine egne servere. Jeg søger en, der vil stå ved siden af mig, mens jeg gør det, og så gøre det selv ugen efter.

Jeg er god til at bygge og dårlig til at ringe. Her er, hvem jeg vil have ved siden af mig, hvad der er lettest at sælge, og hvordan vi deler det.

AI kan samle onboardingopgaverne før første arbejdsdag. Se, hvordan lederen godkender konkret adgang, og hvordan åbne opgaver bliver fulgt til dørs.

En AI-assistent kan svare på spørgsmål og føre kunder til booking. Her er de konkrete grænser for pris, levering, personoplysninger og kontakt med en medarbejder.

Et sikkert AI-workflow kan omsætte Meet- og Teams-transskripter til godkendte beslutninger og opgaver i Jira eller Asana – uden at slippe kontrollen.

AI kan finde opsigelsesfrister og prisreguleringer i leverandørkontrakter, sende usikre fund til godkendelse og oprette de rette påmindelser.

Sådan automatiserer danske virksomheder Gmail og Microsoft 365 med hurtig sortering, begrænsede rettigheder og menneskelig godkendelse.