PHPackages                             kanopi/quicksilver-scrubber - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. kanopi/quicksilver-scrubber

ActiveQuicksilver-script[DevOps &amp; Deployment](/categories/devops)

kanopi/quicksilver-scrubber
===========================

Trigger scrubber via CircleCI.

1.0.0(1y ago)064MITPHP

Since Apr 30Pushed 1y ago6 watchersCompare

[ Source](https://github.com/kanopi/quicksilver-scrubber)[ Packagist](https://packagist.org/packages/kanopi/quicksilver-scrubber)[ RSS](/packages/kanopi-quicksilver-scrubber/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Quicksilver Scrubber
====================

[](#quicksilver-scrubber)

[![Quicksilver Scrubber v1.x](https://camo.githubusercontent.com/7c0fb37e6ce2e9f10e937ff8f8665fd674b199f0b7427472fa886c4c19690195/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f517569636b73696c7665725f53637275626265722d76312e782d677265656e2e737667)](https://camo.githubusercontent.com/7c0fb37e6ce2e9f10e937ff8f8665fd674b199f0b7427472fa886c4c19690195/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f517569636b73696c7665725f53637275626265722d76312e782d677265656e2e737667) [![Terminus v3.x Compatible](https://camo.githubusercontent.com/aa3554f9a1255a690f13b6ef509ee88e1ea7cd92f7041db1acb7934cd08fd9f7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7465726d696e75732d76332e782d677265656e2e737667)](https://camo.githubusercontent.com/aa3554f9a1255a690f13b6ef509ee88e1ea7cd92f7041db1acb7934cd08fd9f7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7465726d696e75732d76332e782d677265656e2e737667)

This Quicksilver project is used in conjunction with the Scrubber tool to help scrub the database of PII or sensitive data. The goal of this is

Requirements
------------

[](#requirements)

- Configured Scrubber Data Configuration File
    - For more information on the Scrubber(database obfuscation) tool, refer to the [documentation](https://github.com/kanopi/scrubber).
    - There is a starter file in the `examples` directory of this repo.
- Configured CircleCI Job

### Installation

[](#installation)

This project is designed to be included from a site's `composer.json` file, and placed in its appropriate installation directory by [Composer Installers](https://github.com/composer/installers).

In order for this to work, you should have the following in your composer.json file:

```
{
  "require": {
    "composer/installers": "^1.0.20"
  },
  "extra": {
    "installer-paths": {
      "web/private/scripts/{$name}/": ["type:quicksilver-script"]
    }
  }
}
```

The project can be included by using the command:

`composer require kanopi/quicksilver-scrubber:^1`

### Setting Secrets

[](#setting-secrets)

The project uses [Terminus Secrets Manager Plugin](https://github.com/pantheon-systems/terminus-secrets-manager-plugin) to operate. The following secrets will need to be set in order for you to move forward with the scripts. These are what is read within the scrubber file and used.

```
terminus secret:set site-id scrubber_processor 'circleci' --type=env --scope=web
terminus secret:set site-id token 'XXXXX' --type=env --scope=web
terminus secret:set site-id repo_source 'github' --type=env --scope=web
terminus secret:set site-id repo_owner 'XXXXX' --type=env --scope=web
terminus secret:set site-id repo_name 'XXXX' --type=env --scope=web
terminus secret:set site-id primary_branch 'XXXX' --type=env --scope=web
```

### Example `pantheon.yml`

[](#example-pantheonyml)

Here's an example of what your `pantheon.yml` would look like if this were the only Quicksilver operation you wanted to use.

```
api_version: 1

workflows:
  clone_database:
    after:
      - type: webphp
        description: Trigger Scrubber
        script: private/scripts/quicksilver-scrubber/scrubber.php
```

### Example `scrubber.yml`

[](#example-scrubberyml)

Look at [scubber.yml](examples/scrubber.yml) for the basic config that will work with CircleCI.

Place the `scrubber.yml` file at the root of your repo.

One of the key things around the example file is that it has the environment values set to access the Pantheon database that are set in CircleCI.

Also make sure that you take the time to make the scrubber project specific by scrubbing the specific tables for your project. For notes on how to set that refer to the documentation.

### Example CircleCI config

[](#example-circleci-config)

Here are the updates you'd need to make to your CircleCI config.yml

Add the orbs

```
orbs:
  ci-tools: kanopi/ci-tools@2
  scrubber: kanopi/scrubber@1
```

Add the parameters

```
after_db_clone: &after_db_clone >
parameters:
  after_db_clone:
    type: boolean
    default: false
  target_url:
    type: string
    default: ''
  site_name:
    type: string
    default: ''
  site_env:
    type: string
    default: ''
```

Add the scrub data workflow.

```
workflows:
  scrub-data:
    when: *after_db_clone
    jobs:
      - scrubber/scrub:
          config: scrubber.yml
          context: kanopi-code
          pre-steps:
              - run:
                  name: Setup quicksilver environment variables
                  command: |
                    echo "export SITE_URL=>" >> "$BASH_ENV"
                    echo "export SITE_NAME=>" >> "$BASH_ENV"
                    echo "export SITE_ENV=>" >> "$BASH_ENV"
              - ci-tools/install-terminus
              - run:
                  name: Setup Pantheon database variables
                  command: |
                    terminus auth:login --machine-token="$TERMINUS_TOKEN"
                    # Capture the JSON
                    TERMINUS_DB_JSON=$(terminus connection:info \
                      --format=json \
                      --fields=mysql_username,mysql_host,mysql_password,mysql_port,mysql_database \
                      -- "$SITE_NAME.$SITE_ENV")

                    # Parse into shell vars
                    MYSQL_USER=$(echo "$TERMINUS_DB_JSON" | jq -r '.mysql_username')
                    MYSQL_HOST=$(echo "$TERMINUS_DB_JSON" | jq -r '.mysql_host')
                    MYSQL_PASSWORD=$(echo "$TERMINUS_DB_JSON" | jq -r '.mysql_password')
                    MYSQL_PORT=$(echo "$TERMINUS_DB_JSON" | jq -r '.mysql_port')
                    MYSQL_DATABASE=$(echo "$TERMINUS_DB_JSON" | jq -r '.mysql_database')

                    # Append to $BASH_ENV with proper quoting
                    echo "export MYSQL_USER=\"$MYSQL_USER\"" >> "$BASH_ENV"
                    echo "export MYSQL_HOST=\"$MYSQL_HOST\""       >> "$BASH_ENV"
                    echo "export MYSQL_PASSWORD=\"$MYSQL_PASSWORD\"" >> "$BASH_ENV"
                    echo "export MYSQL_PORT=\"$MYSQL_PORT\""       >> "$BASH_ENV"
                    echo "export MYSQL_DATABASE=\"$MYSQL_DATABASE\"" >> "$BASH_ENV"

```

If you have other workflows, they may be triggered by the API calls made by the hook. To make sure they are not triggered you can do something like this

```
  build-test:
    when:
      not:
        or:
          - equal: [ scheduled_pipeline, > ]
          - >

```

or

```
  PHPcs:
    when:
      and:
        - not: >

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance49

Moderate activity, may be stable

Popularity8

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 94.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

375d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bf9dca5c46910be861bb00920034637b5a36a1f6277413be6817a50a1ce6fc74?d=identicon)[kanopi\_studios](/maintainers/kanopi_studios)

---

Top Contributors

[![paulsheldrake](https://avatars.githubusercontent.com/u/1062456?v=4)](https://github.com/paulsheldrake "paulsheldrake (17 commits)")[![sean-e-dietrich](https://avatars.githubusercontent.com/u/1564748?v=4)](https://github.com/sean-e-dietrich "sean-e-dietrich (1 commits)")

### Embed Badge

![Health badge](/badges/kanopi-quicksilver-scrubber/health.svg)

```
[![Health](https://phpackages.com/badges/kanopi-quicksilver-scrubber/health.svg)](https://phpackages.com/packages/kanopi-quicksilver-scrubber)
```

###  Alternatives

[k10r/deployment

Adds some helpers for shopware-deployment

1321.7k](/packages/k10r-deployment)[metadrop/drupal-boilerplate

Project template for Drupal 9 projects with a relocated document root

281.0k](/packages/metadrop-drupal-boilerplate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
