Ejento AI
HomeQuickstartGuidesRecipesREST APIsChangelogFAQs
HomeQuickstartGuidesRecipesREST APIsChangelogFAQs
Ejento AI
  1. Guides
  • Basic Operations
    • Features
      • Teams → Projects → Assistants Hierarchy
    • Guides
      • Login/Signup
  • Assistants
    • Features
      • Introduction to Assistants
      • Assistant Access Control
      • Caching Responses for Assistants
      • Assistant Evaluation
      • Evaluation Metrics
      • URL-based Chat Thread Creation and Prepopulation
      • Reasoning Modes
    • Guides
      • Add Assistant
      • Evaluate Assistant
      • Edit Assistant
      • Delete Assistant
      • Add Favourite Assistants
      • View Assistant Id
      • View Dataset Id
  • Workflows
    • Features
      • Overview and Types of Supervisors
    • Guides
      • Add Workflow
      • Workflow Chat
  • Corpus
    • Features
      • Introduction
      • Corpus Permissions
      • PII Redaction
    • Guides
      • Assistant Corpus Setup
      • Assistant Corpus Settings
      • Corpus Access Control
      • Corpus Connections
      • ETag Setup for Corpus Incremental Refresh
      • View Corpus Id
      • View Document Id
      • Tagging
        • Corpus tagging
        • Document tagging
  • Tools
    • Features
      • Introduction
    • Guides
      • Tools Overview
      • Create External Tool
      • Connect Tool to Assistant
  • Analytics
    • Guides
      • Analytics
  • User Settings
    • Features
      • Ejento AI User Access Levels
    • Guides
      • Assistant Edit Access
      • Add new user
      • Add User in a Team
      • Remove User from a Team
      • View my Access level in a Team
      • View my User Id
  • Chatlogs
    • Guides
      • Chatlogs
      • View Chatlog & Chat thread Id
  • API Keys
    • Guides
      • API Keys
  • Integrations
    • Email Indexing
    • Microsoft Teams
    • Sharepoint Indexing
    • MS Teams Integration Setup
  • Teams
    • Features
      • Introduction
    • Guides
      • Add a Team
      • Edit a Team
      • Delete a Team
      • View Team Id
  • Projects
    • Features
      • Introduction
    • Guides
      • Add a Project
      • Edit a Project
      • Delete a Project
      • View Project Id
  1. Guides

ETag Setup for Corpus Incremental Refresh

The Incremental Refresh feature in Corpus relies on correctly configured ETags.
ETags (Entity Tags) help identify changes in resources. If the ETag value of a URL remains unchanged, Corpus skips re-indexing that content.
Without proper ETag setup, Incremental Refresh will not function as intended.
This guide provides ETag setup instructions for various environments.

1. Apache HTTP Server#

Enable ETags Based on File Properties#

Avoid differences across servers by ignoring inode values.
Source: KeyCDN Guide on ETags

2. Nginx#

Enable ETags Globally#

Enable ETags for Specific Files (e.g., HTML)#

Note: If gzip is enabled, ETags may be stripped.
Source: ServerFault Thread

Advanced: Use Dynamic ETag Module#

Automatically generates ETags for dynamic responses.
Source: GetPageSpeed Nginx Extras

3. Node.js / Express (REST APIs)#

Enable ETags in Express#

Source: Express ETag Documentation

4. Spring Boot (Java)#

Add ETag Support with ShallowEtagHeaderFilter#

Automatically adds ETags based on response content.
Source: Implementing ETags in REST APIs – Medium

5. Cloudflare#

Cloudflare Behavior#

Cloudflare preserves ETags from the origin but does not generate them.
If content is cached at Cloudflare, ETags may not be revalidated.
Best Practices:
Ensure your origin server sends ETag headers.
Use:
to force revalidation and allow conditional requests using ETags.

Summary Table#

EnvironmentMethodNotes
ApacheFileETag + HeaderUse MTime and Size for consistency
Nginxetag on or dynamic moduleGzip can interfere with ETags
Express (Node.js)app.set('etag', 'strong')Built-in support in Express
Spring BootShallowEtagHeaderFilterAdds ETags for REST responses
CloudflarePreserve origin ETagsRequires correct Cache-Control

Previous
Corpus Connections
Next
View Corpus Id