SiteKit

Security and Privacy

Authorized automation, redacted fixtures, and no raw HARs in git by default.

SiteKit is for authorized user automation. It is not a CAPTCHA bypass tool, a credential sharing tool, or a way around access controls.

Automation Boundary

SiteKit automates websites you are authorized to use through the same session a normal browser establishes. It does not defeat access controls.

SiteKit should not:

  • Solve CAPTCHAs.
  • Evade bot detection.
  • Spoof device fingerprints.
  • Rotate proxies to disguise origin.
  • Work around rate limits imposed by a site.

This is an operational boundary, not only a policy statement. If onboarding detects an anti-automation challenge, the right result is a clear unsupported site status:

UnsupportedSiteError
  reason: anti_automation_challenge
  message: SiteKit does not proceed past challenge pages or access controls.

That is better than producing a half-working adapter that fails unpredictably in pipelines.

Capture Storage

Raw captures can contain cookies, bearer tokens, PII, regulated records, customer contact information, and sensitive free text.

Default storage:

~/.sitekit/captures/raw/

Raw captures are local, ignored by git, and should be encrypted at rest when possible.

Redacted Fixtures

Generated fixtures are safe enough to commit:

adapters/source_portal/fixtures/redacted/users.json
adapters/source_portal/fixtures/redacted/events.json

Redaction keeps:

  • Field names.
  • Types.
  • Structural shape.
  • Stable fake IDs.
  • Representative enum values when approved.

Redaction removes:

  • Tokens and cookies.
  • Personal names.
  • Dates of birth.
  • Emails and phone numbers.
  • Confidential free text.
  • Free text that may identify a person.

Audit Trail

Every generated adapter should record:

  • Capture IDs used for generation.
  • Human review answers.
  • LLM model and prompt bundle used for adapter proposals.
  • Tests that passed before generation.
  • Package versions generated from the IR.
  • Provenance for imported adapters.
  • Capability declarations for generated transforms and browser scripts.

Writes

Write operations should support preview mode by default:

await destination_portal.records.update({
  recordId: 'rec_4745909',
  location: 'Example Warehouse',
  confirm: false,
});

Approval workflows are built above SiteKit. The adapter's job is to make the payload explicit, deterministic, and testable.

Autonomous Discovery

Autonomous browser exploration needs stricter defaults than human-guided recording:

  • Restrict allowed hosts.
  • Set time and action budgets.
  • Block destructive selectors.
  • Pause before final submit.
  • Record screenshots, actions, and model decisions.
  • Prefer sandbox accounts for write exploration.

The autonomous agent may help discover an adapter. It should not silently commit state-changing operations while onboarding production systems.

On this page