fix: remove the hard coded token in search

This commit is contained in:
Harshith Mullapudi 2025-09-22 12:07:08 +05:30
parent 92182f1428
commit 169a2713d2
3 changed files with 58 additions and 20 deletions

View File

@ -50,7 +50,7 @@ export const extensionSearch = task({
{ query },
{
headers: {
Authorization: `Bearer rc_pat_v41311t6trhr3c8sc7ap4hsbhp6pwsstzyunaazq`,
Authorization: `Bearer ${pat.token}`,
},
},
);

View File

@ -5,9 +5,11 @@ Integrations connect external services to CORE's knowledge graph, automatically
## Available Integrations
### 🐙 [GitHub](./github/README.md)
Tracks your GitHub activities and notifications, including PRs, issues, comments, and repository events.
**Features:**
- Pull request creation, comments, and reviews
- Issue tracking and assignments
- Notification processing (mentions, reviews, assignments)
@ -15,17 +17,21 @@ Tracks your GitHub activities and notifications, including PRs, issues, comments
- Team mentions and state changes
### 📐 [Linear](./linear/README.md)
Project management and issue tracking integration.
**Features:**
- Issue creation and updates
- Project milestone tracking
- Team assignments and workflows
### 💬 [Slack](./slack/README.md)
Workspace communication and activity tracking.
**Features:**
- Channel message monitoring
- Direct message tracking
- Thread participation
@ -41,6 +47,7 @@ Workspace communication and activity tracking.
## Common Features
### 🔄 Data Collection Methods
- **Scheduled Sync**: Periodic API polling (every 5 minutes) for services like GitHub and Linear
- **Real-time Webhooks**: Instant event delivery for services that support personal webhooks (like Slack)
- **Incremental Updates**: Only fetch new activities since last sync
@ -49,12 +56,14 @@ Workspace communication and activity tracking.
- **Error Handling**: Graceful degradation on service outages
### 📊 Activity Tracking
- **User Actions**: What you created, commented, or modified
- **Mentions**: When others reference you in discussions
- **Assignments**: Tasks or issues assigned to you
- **State Changes**: Status updates on projects you follow
### 🧠 Knowledge Graph Integration
- **Entities**: People, projects, repositories, issues, organizations
- **Relationships**: Created, commented, assigned, mentioned, collaborated
- **Temporal Context**: When events occurred and their sequence
@ -74,6 +83,7 @@ All integrations generate events in a consistent format for knowledge graph inge
```
### Example Events
```
john_doe created PR #123 in facebook/react: Fix memory leak in hooks
alice_smith mentioned manoj_k in linear/project issue #456: Can you review?
@ -94,12 +104,14 @@ Each integration requires:
### Adding New Integrations
1. **Create Integration Directory**
```bash
mkdir integrations/{service-name}
cd integrations/{service-name}
```
2. **Required Files**
```
src/
├── index.ts # Main entry point
@ -110,6 +122,7 @@ Each integration requires:
```
3. **Core Implementation**
- Extend `IntegrationCLI` class
- Implement OAuth2 authentication
- Define sync schedule and event processing

View File

@ -1,19 +1,21 @@
# Echo SDK
# Core SDK
The Echo SDK provides tools and utilities for building integrations with the Echo platform.
The Core SDK provides tools and utilities for building integrations with the Core platform.
## Integration System
The Echo integration system uses a CLI-based approach where each integration is a command-line tool that responds to specific events. This makes integrations portable, testable, and easy to debug.
The Core integration system uses a CLI-based approach where each integration is a command-line tool that responds to specific events. This makes integrations portable, testable, and easy to debug.
### Integration Event Types
Each integration CLI handles 5 core event types:
#### 1. `spec`
Returns the integration's metadata and configuration.
**Usage:**
```bash
my-integration spec
```
@ -21,9 +23,11 @@ my-integration spec
**Returns:** Integration specification including name, description, auth config, etc.
#### 2. `setup`
Processes authentication data and returns tokens/credentials to be saved.
**Usage:**
```bash
my-integration setup --event-body '{"code":"oauth_code","state":"state"}' --integration-definition '{}'
```
@ -31,9 +35,11 @@ my-integration setup --event-body '{"code":"oauth_code","state":"state"}' --inte
**Returns:** Configuration data (tokens, credentials) to be stored for the account.
#### 3. `identify`
Extracts accountId from webhook data to route webhooks to the correct account.
**Usage:**
```bash
my-integration identify --webhook-data '{"team_id":"T123","event":{}}'
```
@ -41,9 +47,11 @@ my-integration identify --webhook-data '{"team_id":"T123","event":{}}'
**Returns:** Account identifier for webhook routing.
#### 4. `process`
Handles webhook events and returns activity data.
**Usage:**
```bash
my-integration process --event-data '{"type":"reaction_added","reaction":"=M"}' --config '{"access_token":"token"}'
```
@ -51,9 +59,11 @@ my-integration process --event-data '{"type":"reaction_added","reaction":"=M"}'
**Returns:** Activity messages representing user actions.
#### 5. `sync`
Performs scheduled data synchronization for integrations that don't support webhooks.
**Usage:**
```bash
my-integration sync --config '{"access_token":"token","last_sync":"2023-01-01T00:00:00Z"}'
```
@ -72,20 +82,24 @@ All integration responses are wrapped in a `Message` object with a `type` field:
### Building an Integration
1. **Install the SDK:**
```bash
npm install @echo/core-sdk
npm install @Core/core-sdk
```
2. **Create your integration class:**
```typescript
import { IntegrationCLI } from '@echo/core-sdk';
import { IntegrationCLI } from '@Core/core-sdk';
class MyIntegration extends IntegrationCLI {
constructor() {
super('my-integration', '1.0.0');
}
protected async handleEvent(eventPayload: IntegrationEventPayload): Promise<any> {
protected async handleEvent(
eventPayload: IntegrationEventPayload,
): Promise<any> {
switch (eventPayload.event) {
case 'SETUP':
return this.handleSetup(eventPayload);
@ -110,24 +124,28 @@ class MyIntegration extends IntegrationCLI {
OAuth2: {
token_url: 'https://api.example.com/oauth/token',
authorization_url: 'https://api.example.com/oauth/authorize',
scopes: ['read', 'write']
}
}
scopes: ['read', 'write'],
},
},
};
}
private async handleSetup(eventPayload: IntegrationEventPayload): Promise<any> {
private async handleSetup(
eventPayload: IntegrationEventPayload,
): Promise<any> {
// Process OAuth response and return tokens to save
const { code } = eventPayload.eventBody;
// Exchange code for tokens...
return {
access_token: 'token',
refresh_token: 'refresh_token',
expires_at: Date.now() + 3600000
expires_at: Date.now() + 3600000,
};
}
private async handleProcess(eventPayload: IntegrationEventPayload): Promise<any> {
private async handleProcess(
eventPayload: IntegrationEventPayload,
): Promise<any> {
// Handle webhook events
const { eventData } = eventPayload.eventBody;
// Process event and return activity...
@ -135,23 +153,29 @@ class MyIntegration extends IntegrationCLI {
type: 'message',
user: 'user123',
content: 'Hello world',
timestamp: new Date()
timestamp: new Date(),
};
}
private async handleIdentify(eventPayload: IntegrationEventPayload): Promise<any> {
private async handleIdentify(
eventPayload: IntegrationEventPayload,
): Promise<any> {
// Extract account ID from webhook
const { team_id } = eventPayload.eventBody;
return { id: team_id };
}
private async handleSync(eventPayload: IntegrationEventPayload): Promise<any> {
private async handleSync(
eventPayload: IntegrationEventPayload,
): Promise<any> {
// Perform scheduled sync
const { config } = eventPayload;
// Fetch data since last sync...
return {
activities: [/* activity data */],
state: { last_sync: new Date().toISOString() }
activities: [
/* activity data */
],
state: { last_sync: new Date().toISOString() },
};
}
}
@ -162,6 +186,7 @@ integration.parse();
```
3. **Build and package your integration:**
```bash
npm run build
npm pack