L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Documents · SKILL.md

glean-hello-world

glean-hello-world

Index documents into Glean and search them back using the Indexing and Client APIs. Use when starting a new Glean custom connector, testing search quality, or learning the index/search pattern. Trigger: "glean hello world", "glean example", "glean index document", "glean search".

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: glean-hello-world description: 'Index documents into Glean and search them back using the Indexing and Client APIs.

Use when starting a new Glean custom connector, testing search quality,

or learning the index/search pattern.

Trigger: "glean hello world", "glean example", "glean index document", "glean search".

' allowed-tools: Read, Write, Edit, Bash(npm:), Bash(curl:) version: 1.8.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:

  • saas
  • enterprise-search
  • glean compatibility: Designed for Claude Code

Glean Hello World

Overview

Index documents into Glean and search them. Two steps: set up a custom datasource with the Indexing API, then query with the Client API.

Prerequisites

  • Use an approved sandbox datasource, scoped non-production credentials, and fictional sample documents only.
  • Prepare one synthetic identity allowed to see the sample and one that must be denied, plus a deletion path for the test records.
  • Record opaque test IDs locally; do not use a production wiki, employee identity, or real result snippet as tutorial data.

Instructions

Step 1: Set Up Custom Datasource

const GLEAN = `https://${process.env.GLEAN_DOMAIN}/api`;
const idxHeaders = {
  'Authorization': `Bearer ${process.env.GLEAN_INDEXING_TOKEN}`,
  'Content-Type': 'application/json',
};

// Create or configure a custom datasource
await fetch(`${GLEAN}/index/v1/adddatasource`, {
  method: 'POST', headers: idxHeaders,
  body: JSON.stringify({
    name: 'my_wiki',
    displayName: 'Internal Wiki',
    datasourceCategory: 'PUBLISHED_CONTENT',
    urlRegex: 'https://wiki.company.com/.*',
    iconUrl: 'https://wiki.company.com/favicon.ico',
  }),
});

Step 2: Index Documents

// Index individual documents
await fetch(`${GLEAN}/index/v1/indexdocuments`, {
  method: 'POST', headers: idxHeaders,
  body: JSON.stringify({
    datasource: 'my_wiki',
    documents: [{
      id: 'doc-001',
      title: 'Getting Started Guide',
      url: 'https://wiki.company.com/getting-started',
      body: { mimeType: 'text/plain', textContent: 'This guide covers onboarding steps...' },
      author: { email: 'jane@company.com' },
      updatedAt: new Date().toISOString(),
      permissions: { allowAnonymousAccess: true },
    }],
  }),
});
console.log('Document indexed.');

Step 3: Search

const searchHeaders = {
  'Authorization': `Bearer ${process.env.GLEAN_CLIENT_TOKEN}`,
  'X-Glean-Auth-Type': 'BEARER',
  'Content-Type': 'application/json',
};

const results = await fetch(`${GLEAN}/client/v1/search`, {
  method: 'POST', headers: searchHeaders,
  body: JSON.stringify({
    query: 'onboarding getting started',
    pageSize: 10,
    requestOptions: { datasourceFilter: 'my_wiki' },
  }),
}).then(r => r.json());

results.results?.forEach((r: any) => {
  console.log(`${r.title} (${r.url}) — score: ${r.score}`);
});

Output

Document indexed.
Getting Started Guide (https://wiki.company.com/getting-started) — score: 0.95

Error Handling

ErrorCauseSolution
datasource not foundDatasource not createdRun adddatasource first
No search resultsIndexing not yet completeWait 1-2 minutes for processing
invalid documentMissing required fieldsInclude id, title, url

Examples

Index two fictional records into sandbox-onboarding, search for sample-policy, then record indexed=2; allowed_probe=1; denied_probe=0; cleanup=complete. This demonstrates the boundary without retaining company content.

Resources

Next Steps

Proceed to glean-local-dev-loop for development workflow setup.

Skills enregistrées