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:
getFeedqueryEntity 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?