DataLicenser

Product / cached local execution

Policy from the platform.
Decisions at the publisher edge.

DataLicenser keeps request-time enforcement local. The central service signs policy, issues per-lab access credentials, receives batched telemetry, and maintains each direct agreement’s access state.

Local decision pathCache valid
REQUEST

Known crawler

LOCAL

Signed rules

DECISION

Block or licensed access

human.request → bypass bot check
rules.sync → background
telemetry.flush → buffered batch

Two enforcement paths

PATH / EXISTING EDGE

Cloudflare or Akamai

Use narrowly scoped provider controls and keep the rest of your edge configuration intact.

DataLicenser touches: the dedicated crawler rule set, signed license-state values, and access telemetry.

It does not touch: DNS, origins, cache behavior, unrelated WAF rules, TLS private keys, or provider billing.

Cloudflare → scoped zone rule
Akamai → scoped security behavior
Commercial state → edge decision
PATH / LOCAL SERVER LAYER

WordPress, PHP, or NGINX

Read a signed JSON rule cache from local disk before serving known crawler traffic.

Human requests do not make a live DataLicenser API call. Known crawler requests are evaluated against local rules and, for licensed access, a signed credential.

Installation time and decision latency vary by server. Production benchmarks will be published by environment rather than asserted in advance.

cache.signature → verify
known bot + no entitlement → deny
known bot + valid entitlement → allow
human → normal request path

Request architecture

No request-time dependency on the SaaS control plane.

Rules are designed to refresh approximately every 15 minutes. Telemetry is designed to flush in approximately five-minute batches. Final intervals remain configurable.

01

Central policy is signed

Publisher bot policy and active license references are compiled into a versioned, signed rules file.

02

Rules sync in the background

The plugin refreshes its local disk cache on a scheduled interval. Requests do not wait for this sync.

03

Crawler is decided locally

Known crawler traffic is blocked or checked for a valid entitlement. Ordinary human traffic bypasses the license path.

04

Events flush asynchronously

Block and licensed-access events enter a local buffer and are sent to the central service in a background batch.

Signed policy and tokens

Editing the cache invalidates it.

The local layer verifies the policy signature before use. A malformed, expired, or modified crawler policy fails closed for the protected crawler path.

HMAC uses a symmetric site secret, not a public/private key pair. Secret storage and rotation procedures are part of onboarding.

config = read(local_cache)
expected = HMAC_SHA256(site_secret, canonical(config))

if !timing_safe_equal(expected, config.signature)
  deny_known_crawlers()

if license_token.valid && license.active
  serve_structured_payload()

Clean licensed delivery

Content, not page chrome.

For a covered license and supported CMS, an authorized lab can receive a structured Markdown or JSON representation instead of ads, navigation, and unrelated layout markup.

GET /licensed/v1/article/…
Authorization: DL-HMAC …
Accept: application/json

{
  "publisher": "…",
  "canonical_url": "…",
  "title": "…",
  "body_markdown": "…"
}

Direct deal controls

One lab, several labs, or none.

Every AI lab has its own commercial scope and technical access state. Exclusivity is an explicit publisher-approved term, not a platform default.

Buyer
The named AI lab and verified technical identities covered by the agreement.
Rights
Permitted use, content scope, territory, format, and any model-training or retrieval restrictions.
Term
Start, expiry, renewal, and termination state translated into access policy.
Exclusivity
Optional and scope-specific. Other labs remain blocked only where the approved agreement requires it.

Telemetry

Evidence for operations and direct billing.

Signed decision logs show what each licensed lab accessed under its own agreement, while keeping unrelated human traffic outside the event model.

Logged
Timestamp, publisher, verified crawler/lab identity, decision, content reference, byte band, and license reference.
Not logged by default
Page body, query-string values, visitor cookies, or unrelated human traffic.
Buffer
Crawler events append locally and flush in a background batch; failed batches retry without delaying page delivery.
Commercial use
Verified usage supports publisher reporting, lab-side billing, renewal, and audit for the corresponding direct agreement.

Find the gap before you configure the fix.

Run a private, limited check against your current policy and edge response.

Scan your site