Implementing NLWeb on Drupal

Open project for turning websites into natural-language and agent-accessible interfaces. This guide is specific to Drupal teams shipping production integrations.

Why this implementation exists

NLWeb standardizes how an AI host discovers tools, resources, and prompts from external systems so each integration is not custom-built per client.

Use custom Drupal modules as the protocol adapter boundary and keep editorial rendering concerns separate from orchestration logic.

Protocol-specific implementation focus

  • Normalize structured content before exposing query interfaces.
  • Track source attribution for every generated answer segment.
  • Route ambiguous intents to deterministic fallback UX.

Drupal technical foundation

  • JSON:API core module for standards-aligned content APIs with field/entity access controls.
  • REST + custom module endpoints for protocol-specific capabilities when JSON:API alone is insufficient.
  • Granular roles/permissions and optional OAuth via Simple OAuth for service-to-service auth.
  • Config-managed deployments to keep protocol adapters consistent across environments.

Step-by-step production rollout

  1. Scope the target journey. Pick one high-value flow where NLWeb adds deterministic value and define success metrics (latency, completion rate, human override rate).
  2. Build a protocol adapter service. Keep NLWeb logic in a dedicated adapter layer, separate from CMS templates and page rendering concerns.
  3. Map protocol contracts to Drupal primitives. Define read/write boundaries and strict schemas before implementation starts.
  4. Add authentication and policy gates. Enforce least-privilege tokens, role checks, and explicit approval points for sensitive operations.
  5. Implement idempotency + retries. Make long-running operations safe for replay, and include request IDs for traceability.
  6. Instrument observability. Log capability calls, validation failures, latency, and user escalations with protocol-level correlation IDs.
  7. Run conformance + integration tests. Validate schema contracts, permission boundaries, and rollback behavior before production.
  8. Roll out progressively. Start with read-only capability exposure, then enable controlled writes, then full orchestration.

Security and governance controls

  • Use environment-scoped secrets and rotate credentials for Drupal integrations on a fixed cadence.
  • Treat protocol payloads as untrusted input; validate all schemas before execution.
  • Record human approvals and denied operations for post-incident audits.
  • Apply explicit write allowlists for NLWeb actions that mutate Drupal content or commerce state.
  • NLWeb services should gate sensitive/private content at index and retrieval time.

Validation checklist

  • JSON:API route permission tests for every role touching protocol surfaces.
  • Entity/field access regression tests to prevent unintended data exposure.
  • Rollback tests across config + content deployments when protocol schema changes.

Common failure modes and mitigations

  • Exposing JSON:API write routes without explicit role and field access review.
  • Protocol adapters tightly coupled to theme/template code instead of modules.
  • Missing cache invalidation strategy after high-frequency protocol writes.

Official references used in this guide

NLWeb references

Drupal references