Get Feed Details

Feed: Get Feed Details

User Intent

"I want to retrieve full configuration details for a specific feed"

Operation

  • SDK Method: graphlit.getFeed()

  • GraphQL: getFeed query

  • Entity Type: Feed

  • Common Use Cases: View feed configuration, check OAuth tokens, inspect sync settings

TypeScript (Canonical)

import { Graphlit } from 'graphlit-client';
import { FeedTypes } from 'graphlit-client/dist/generated/graphql-types';

const graphlit = new Graphlit();

const feedId = 'feed-id-here';

// Get full feed details
const feed = await graphlit.getFeed(feedId);

console.log(`\nFeed: ${feed.feed.name}`);
console.log(`Type: ${feed.feed.type}`);
console.log(`State: ${feed.feed.state}`);
console.log(`Created: ${feed.feed.creationDate}`);

// Check type-specific configuration
switch (feed.feed.type) {
  case FeedTypes.Slack: {
    if (!feed.feed.slack) break;
    console.log(`\nSlack Configuration:`);
    console.log(`  Channels: ${feed.feed.slack.channels?.length ?? 0}`);
    feed.feed.slack.channels?.forEach((ch) => {
      console.log(`    - ${ch.name}`);
    });
    console.log(`  Read Messages: ${feed.feed.slack.readMessages}`);
    console.log(`  Read Threads: ${feed.feed.slack.readThreads}`);
    break;
  }
  case FeedTypes.Web: {
    if (!feed.feed.web) break;
    console.log(`\nWeb Configuration:`);
    console.log(`  Start URI: ${feed.feed.web.uri}`);
    console.log(`  Read Limit: ${feed.feed.web.readLimit}`);
    console.log(`  Include Files: ${feed.feed.web.includeFiles}`);
    console.log(`  Allowed Domains: ${feed.feed.web.allowedDomains?.join(', ')}`);
    break;
  }
  case FeedTypes.Rss: {
    if (!feed.feed.rss) break;
    console.log(`\nRSS Configuration:`);
    console.log(`  URI: ${feed.feed.rss.uri}`);
    console.log(`  Read Limit: ${feed.feed.rss.readLimit}`);
    break;
  }
  case FeedTypes.Google: {
    if (!feed.feed.google) break;
    console.log(`\nGoogle Drive Configuration:`);
    console.log(`  Folders: ${feed.feed.google.folderIds?.join(', ') ?? 'All'}`);
    console.log(`  Include Files: ${feed.feed.google.includeFiles}`);
    break;
  }
  case FeedTypes.MicrosoftTeams: {
    if (!feed.feed.microsoftTeams) break;
    console.log(`\nMicrosoft Teams Configuration:`);
    console.log(`  Team ID: ${feed.feed.microsoftTeams.teamId}`);
    console.log(`  Channel ID: ${feed.feed.microsoftTeams.channelId}`);
    console.log(`  Read Messages: ${feed.feed.microsoftTeams.readMessages}`);
    console.log(`  Read Threads: ${feed.feed.microsoftTeams.readThreads}`);
    break;
  }
  default: {
    console.log('\nNo specialized configuration for this feed type.');
  }
}

Get feed (snake_case)

feed = await graphlit.getFeed(feed_id)

print(f"Feed: {feed.feed.name}") print(f"Type: {feed.feed.type}") print(f"State: {feed.feed.state}")

Check Slack configuration

if feed.feed.type == "SLACK" and feed.feed.slack: print(f"Slack Channels: {len(feed.feed.slack.channels or [])}")


**C#**:
```csharp
using Graphlit;

var client = new Graphlit();

var feedId = "feed-id-here";

// Get feed (PascalCase)
var feed = await graphlit.GetFeed(feedId);

Console.WriteLine($"Feed: {feed.Feed.Name}");
Console.WriteLine($"Type: {feed.Feed.Type}");
Console.WriteLine($"State: {feed.Feed.State}");

// Check Slack configuration
if (feed.Feed.Type == FeedSlack && feed.Feed.Slack != null)
{
    Console.WriteLine($"Slack Channels: {feed.Feed.Slack.Channels?.Count ?? 0}");
}

Parameters

  • id (string): Feed ID

Response

{
  feed: {
    id: string;
    name: string;
    type: FeedTypes;
    state: EntityState;
    creationDate: Date;
    slack?: SlackFeedProperties;
    google?: GoogleFeedProperties;
    rss?: RSSFeedProperties;
    web?: WebFeedProperties;
  }
}

Developer Hints

Inspect Configuration

const feed = await graphlit.getFeed(feedId);

// Check what type of feed
switch (feed.feed.type) {
  case FeedTypes.Slack:
    console.log('Slack feed');
    console.log('Channels:', feed.feed.slack?.channels);
    break;
  case FeedTypes.Web:
    console.log('Web crawl feed');
    console.log('Starting URL:', feed.feed.web?.uri);
    break;
  case FeedTypes.Rss:
    console.log('RSS feed');
    console.log('Feed URL:', feed.feed.rss?.uri);
    break;
  case FeedTypes.Google:
    console.log('Google Drive feed');
    console.log('Folders:', feed.feed.google?.folderIds);
    break;
}

Check OAuth Token Status

const feed = await graphlit.getFeed(feedId);

// OAuth tokens are not returned for security
// If feed is syncing, token is valid
// If feed has errors, token may be expired

if (feed.feed.state === EntityState.Enabled) {
  console.log(' Feed is active');
} else {
  console.log(' Feed is disabled');
}

Variations

1. Basic Feed Retrieval

const feed = await graphlit.getFeed(feedId);
console.log(feed.feed.name);

2. Check Configuration

const feed = await graphlit.getFeed(feedId);

console.log('Configuration:');
console.log(`  Type: ${feed.feed.type}`);
console.log(`  State: ${feed.feed.state}`);

3. Verify Sync Settings

const feed = await graphlit.getFeed(feedId);

if (feed.feed.web) {
  console.log('Web crawl settings:');
  console.log(`  Max pages: ${feed.feed.web.readLimit}`);
  console.log(`  Include files: ${feed.feed.web.includeFiles}`);
}

Production Example

Feed health check:

async function checkFeedHealth(feedId: string) {
  const feed = await graphlit.getFeed(feedId);
  
  console.log(`=== FEED HEALTH: ${feed.feed.name} ===`);
  console.log(`Type: ${feed.feed.type}`);
  console.log(`State: ${feed.feed.state}`);
  console.log(`Created: ${new Date(feed.feed.creationDate).toLocaleDateString()}`);
  
  // Check if syncing
  const isDone = await graphlit.isFeedDone(feedId);
  console.log(`Sync Status: ${isDone.isFeedDone.result ? 'Complete' : 'In Progress'}`);
  
  // Count synced content
  const contents = await graphlit.queryContents({
    feeds: [{ id: feedId }]
  });
  console.log(`Content Items: ${contents.contents.results.length}`);
  
  // Health indicator
  const isHealthy = 
    feed.feed.state === EntityState.Enabled && 
    contents.contents.results.length > 0;
  
  console.log(`Health: ${isHealthy ? ' Healthy' : ' Issues Detected'}`);
}

await checkFeedHealth(feedId);

Last updated

Was this helpful?