Development Workflow Security for Agencies Managing Client Sites

A practical agency workflow security checklist for code, plugins, dependencies, browser extensions, secrets, deployments, and client-site evidence.

Michael
January 28, 2025

Why Workflow Security Matters For Client Sites

A client site is only as safe as the workflow used to change it.

That sounds obvious, but it is easy to treat development tooling as separate from website assurance. It is not separate. The editor extensions, browser profiles, deployment keys, plugin zip files, staging copies, password sharing habits, and emergency fixes all become part of the risk surface.

For agencies, the challenge is multiplied across clients. A loose process on one site is annoying. A loose process across dozens of client sites becomes a business risk.

The Bigger Lesson

Security is not only about the code you write.

It is also about who can deploy it, where secrets live, which dependencies get pulled in, what browser extensions can read, how staging data is handled, whether backups can be restored, and whether anyone can prove what changed when something breaks.

This is where workflow security connects directly to client trust. When a site fails after a change, the agency needs to know what changed, who changed it, how to roll it back, and what evidence exists.

What I Would Audit First

The goal is not to create paperwork. The goal is to remove the easy mistakes that create painful client-site incidents.

Agency Workflow Audit Areas

  • Repository access, branch protection, and deploy permissions
  • Secrets in code, local files, shared notes, support tickets, and chat history
  • Package dependencies, WordPress plugins, themes, and one-off vendor scripts
  • Editor and browser extensions used around client admin sessions
  • Staging environments, copied production data, and cleanup routines
  • Deployment process, rollback process, and release notes
  • Backups, restores, and evidence that restores have been tested
  • Client access, contractor access, and offboarding

Secrets Are Usually The First Mess

Most teams know they should not commit secrets. The harder part is all the places secrets drift before they reach a repository.

API keys end up in local config files, screenshots, Slack threads, copied staging databases, browser autofill, old plugin settings, deployment logs, and support notes. Once a secret is shared casually, nobody has a clean inventory of where it went.

A practical workflow treats secrets like production access: use environment variables or a secret manager, rotate keys after exposure, keep client credentials out of chat when possible, and remove access when a contractor rolls off.

Secret Hygiene Checklist

  • Scan repositories for committed secrets before and after major cleanup work.
  • Keep `.env` files out of source control and out of shared client handoff folders.
  • Use separate credentials per client, site, environment, and integration where possible.
  • Rotate credentials after accidental exposure instead of only deleting the visible copy.
  • Avoid storing production credentials in browser notes, task comments, or screenshots.
  • Document who has access and review it on a regular schedule.

Dependencies Are Website Changes

Dependency updates are not just developer chores.

A Composer package, npm package, WordPress plugin, theme, payment SDK, analytics tag, or page-builder add-on can change the behavior of a public site. Sometimes the risk is a known vulnerability. Sometimes the risk is a perfectly normal update that breaks a form or checkout.

The useful habit is to pair dependency maintenance with verification: what changed, which sites are affected, which business flows need a smoke test, and what monitoring should be watched afterward?

Dependency Practices That Help

  • Keep dependencies and plugins intentionally small. Remove what the site no longer needs.
  • Separate routine low-risk updates from high-risk updates like forms, payments, cache, security, membership, and page builders.
  • Update in staging when the site risk justifies it.
  • Record what changed so failures can be connected to likely causes.
  • Verify public critical paths after updates instead of only checking the admin dashboard.
  • Watch browser errors, CSP reports, security headers, forms, checkout, and performance after changes.

Browser And Editor Extensions Need Boundaries

Extensions are convenient, and some are genuinely useful. They can also read pages, inspect forms, alter requests, inject scripts, and access data from client admin sessions.

I do not think the answer is pretending nobody will use extensions. The practical answer is separation. Keep client admin work in a browser profile with a small trusted extension set. Keep personal browsing, random testing tools, and experimental extensions somewhere else.

The same idea applies to editor extensions. If an extension has broad file access, access to terminal output, or network behavior you do not understand, it belongs in the risk review.

Extension Boundaries

  • Use a dedicated browser profile for client admin work.
  • Keep that profile's extensions boring and minimal.
  • Review permissions before installing anything that can read or change site data.
  • Remove extensions that are no longer used.
  • Avoid testing unknown extensions while logged into client sites.
  • Document approved tooling for contractors and support staff.

Deployments Need A Trail

When a site breaks, "someone changed something" is not good enough.

A healthy deployment process leaves a trail: what changed, who approved it, when it went live, how to roll it back, and which checks passed afterward. This is not about bureaucracy. It is about being able to respond fast when the site starts costing the client money.

For smaller teams, the trail can be lightweight. A deployment note, a linked pull request, a plugin update log, or a service report can be enough if it gives the next person a real starting point.

Deployment Guardrails

  • Limit who can deploy to production.
  • Use deployment keys and tokens with the smallest practical permissions.
  • Keep production secrets out of build logs and release notes.
  • Make rollback steps known before the emergency.
  • Run post-deploy checks against public pages, not just internal admin status.
  • Watch for header drift, CSP changes, browser errors, failed forms, and checkout issues after release.

Staging Data Is Still Client Data

One of the quietest workflow risks is copied production data.

A staging site can contain real customers, order history, form entries, emails, addresses, tokens, private content, and logs. If staging is less protected than production, the agency has effectively created a weaker copy of the client site.

I like staging environments that are password-protected, noindexed, short-lived when possible, cleaned after use, and stripped of sensitive data when the work does not need it.

Client-Site Workflow Checklist

  • Access is scoped by role and reviewed when people join or leave.
  • Secrets are stored deliberately and rotated after exposure.
  • Dependencies and plugins are reviewed by risk, not only by update count.
  • High-value flows are tested after releases and plugin updates.
  • Staging environments do not casually expose production data.
  • Deployments and plugin changes leave enough evidence for investigation.
  • Monitoring watches the public site after the change, because admin screens can lie.

The MetricPoints Connection

This is another reason I keep coming back to evidence.

If a deployment, plugin update, DNS change, header change, CSP violation, browser error spike, form failure, or checkout failure happens in isolation, it can be hard to know what matters. When those signals are connected around a site and a time window, they become much more useful.

That is the assurance layer I want agencies to have: not just a pile of logs, but a calmer way to understand what changed and whether the client site still works.

Bottom Line

Workflow security is not glamorous, but it prevents expensive problems.

Clean up access. Protect secrets. Treat updates as site changes. Separate risky tools from client sessions. Keep a deployment trail. Verify the public site after important work.

The best agency security process is not the one with the most ceremony. It is the one your team will actually follow when client work is busy and something important is on the line.

Follow the MetricPoints build

Occasional emails when we publish a new guide or ship something agencies can use: new monitoring checks, lessons from real client-site failures, and product updates. No fixed schedule. Unsubscribe anytime.

Tags

Development workflow security Agency security Client sites Deployment security Secrets management

Related Articles