Update apps/docs/org-settings.mdx

Co-Authored-By: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
This commit is contained in:
mintlify[bot] 2025-12-19 01:08:29 +00:00 committed by GitHub
parent c42248ff35
commit c3f290685a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,265 +1,84 @@
---
title: "Organization Settings"
description: "Configure organization-wide settings and content filtering for Supermemory"
icon: "settings"
title: Organization Settings
description: Configure organization-wide settings for your Supermemory workspace
---
Organization settings control how Supermemory processes content across your entire organization. These settings apply to all memories and connectors, helping you:
## Organization Settings
- Filter content before indexing
- Configure custom OAuth applications for connectors
- Set organization-wide processing rules
- Control what gets indexed and what gets excluded
Organization settings allow you to customize and configure various aspects of your Supermemory workspace, including custom OAuth credentials for connectors, processing options, and analytics preferences.
## Custom OAuth Credentials
Supermemory provides default OAuth credentials for various connectors, but you can configure custom credentials for your organization to use your own OAuth applications. This gives you more control over the authentication flow and allows you to customize the OAuth app settings.
### Why Use Custom OAuth Credentials?
- **Branding**: Use your own OAuth app with custom branding and app information
- **Rate Limits**: Avoid shared rate limits by using your own OAuth application
- **Control**: Full control over OAuth app settings, permissions, and configurations
- **Compliance**: Meet specific compliance requirements for your organization
### Supported Connectors
You can configure custom OAuth credentials for the following connectors:
- **Google Drive**: Custom Google OAuth Client ID and Secret
- **Notion**: Custom Notion OAuth Client ID and Secret
- **OneDrive**: Custom Microsoft OAuth Client ID and Secret
- **GitHub**: Custom GitHub OAuth Client ID and Secret
## Configuring Custom GitHub OAuth Credentials
To use custom GitHub OAuth credentials for your organization:
### Step 1: Create a GitHub OAuth App
1. Go to [GitHub Developer Settings](https://github.com/settings/developers)
2. Click **OAuth Apps** → **New OAuth App**
3. Fill in the application details:
- **Application name**: Your app name (e.g., "My Company - Supermemory")
- **Homepage URL**: Your organization's homepage
- **Authorization callback URL**: `https://api.supermemory.ai/auth/github/callback`
4. Click **Register application**
5. Note your **Client ID** (displayed on the app page)
6. Click **Generate a new client secret** and save the secret securely
### Step 2: Configure in Supermemory
1. Navigate to **Advanced Settings** in your Supermemory dashboard
2. Find the **GitHub** connector section
3. Toggle **Use custom client keys** to enable
4. Enter your **Client ID** and **Client Secret**
5. Click **Save Changes**
### Validation Requirements
When configuring custom GitHub OAuth credentials, the following validation rules apply:
**Client ID:**
- Must be at least 10 characters long
- Must be less than 50 characters
- Can only contain letters, numbers, dots, underscores, and hyphens
**Client Secret:**
- Must be exactly 40 characters long
- Must be a hexadecimal string (only contains 0-9 and a-f)
<Note>
Settings are organization-wide and apply to all users and memories within your organization.
Your Client Secret is encrypted before being stored in the database and is never displayed in plain text after saving.
</Note>
## Why Settings Matter
## Other Organization Settings
The settings endpoint is crucial for teaching Supermemory about your specific use case. It helps Supermemory understand:
### Processing Settings
- **What you are**: Your organization's specific use case and purpose
- **What to expect**: The types of content and information flowing through your system
- **How to interpret**: Context for understanding queries in your specific use case
- **What to prioritize**: Which content matters most for your users
- **LLM Filtering**: Enable AI-powered filtering of content before processing
- **Chunk Size**: Configure the maximum chunk size for document processing
### Example: Brand Guidelines Use Case
### Analytics
Without proper settings, when a user searches "what are our values?", Supermemory might return random documents mentioning "values". But with proper configuration:
Configure analytics and monitoring preferences for your organization. See [Analytics & Monitoring](/docs/analytics) for more details.
```typescript
await client.settings.update({
shouldLLMFilter: true,
filterPrompt: `You are managing brand guidelines for Brand.ai.
You will receive all outbound content from our organization.
When users search, they're looking for:
- "What are our values?" → Return official brand values document
- "What's our tone of voice?" → Return brand voice guidelines
- "How do we describe our mission?" → Return approved mission statements
Focus on the latest approved brand materials, not drafts or outdated versions.`
});
```
## Security
Now Supermemory understands that:
- Searches about "values" refer to brand values, not financial values
- "Tone" means brand voice, not audio settings
- Priority should be given to official, approved content
This context dramatically improves search relevance and ensures users get the right information for their specific use case.
## API Endpoints
### Get Current Settings
Retrieve your organization's current settings configuration.
<CodeGroup>
```typescript TypeScript
const settings = await client.settings.get();
console.log('Current settings:', settings);
```
```python Python
settings = client.settings.get()
print(f'Current settings: {settings}')
```
```bash cURL
curl -X GET "https://api.supermemory.ai/v3/settings" \
-H "Authorization: Bearer $SUPERMEMORY_API_KEY"
```
</CodeGroup>
### Update Settings
Update your organization's settings. You only need to include the fields you want to change.
<CodeGroup>
```typescript TypeScript
const updatedSettings = await client.settings.update({
shouldLLMFilter: true,
filterPrompt: "Only index technical documentation and code",
includeItems: ["*.md", "*.ts", "*.py"],
excludeItems: ["node_modules", ".git", "*.test.*"]
});
console.log('Updated fields:', updatedSettings.updated);
```
```python Python
updated_settings = client.settings.update(
should_llm_filter=True,
filter_prompt="Only index technical documentation and code",
include_items=["*.md", "*.ts", "*.py"],
exclude_items=["node_modules", ".git", "*.test.*"]
)
print(f'Updated fields: {updated_settings.updated}')
```
```bash cURL
curl -X PATCH "https://api.supermemory.ai/v3/settings" \
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"shouldLLMFilter": true,
"filterPrompt": "Only index technical documentation and code",
"includeItems": ["*.md", "*.ts", "*.py"],
"excludeItems": ["node_modules", ".git", "*.test.*"]
}'
```
</CodeGroup>
## Content Filtering Settings
Control what content gets indexed into Supermemory.
### Basic Filtering
Use include/exclude patterns to filter content:
```typescript
await client.settings.update({
includeItems: [
"*.md", // All markdown files
"*.mdx", // MDX documentation
"docs/**", // Everything in docs folder
"src/**/*.ts" // TypeScript files in src
],
excludeItems: [
"node_modules", // Dependencies
".git", // Version control
"*.test.*", // Test files
"build/**", // Build outputs
"*.tmp" // Temporary files
]
});
```
### Intelligent LLM Filtering
Enable AI-powered content filtering for semantic understanding:
```typescript
await client.settings.update({
shouldLLMFilter: true,
filterPrompt: `You are filtering content for a technical documentation system.
Include:
- API documentation
- Code examples and tutorials
- Technical guides and references
- Architecture documentation
Exclude:
- Marketing materials
- Internal meeting notes
- Personal information
- Outdated or deprecated content
Focus on content that helps developers understand and use our APIs.`
});
```
## Connector OAuth Settings
Configure custom OAuth applications for connector integrations.
### Google Drive Custom OAuth
```typescript
await client.settings.update({
googleDriveCustomKeyEnabled: true,
googleDriveClientId: "your-client-id.apps.googleusercontent.com",
googleDriveClientSecret: "your-client-secret"
});
```
### Notion Custom OAuth
```typescript
await client.settings.update({
notionCustomKeyEnabled: true,
notionClientId: "your-notion-oauth-client-id",
notionClientSecret: "your-notion-oauth-client-secret"
});
```
### OneDrive Custom OAuth
```typescript
await client.settings.update({
onedriveCustomKeyEnabled: true,
onedriveClientId: "your-azure-app-id",
onedriveClientSecret: "your-azure-app-secret"
});
```
## Best Practices
### 1. Set Before Bulk Import
Configure settings before importing large amounts of content. Changes don't retroactively affect existing memories.
### 2. Be Specific in Filter Prompts
Provide clear context about your organization and expected search patterns:
```typescript
// Good - Specific and contextual
filterPrompt: `Technical documentation for developers.
Include: API references, code examples, error solutions.
Exclude: marketing content, personal data, test files.
Users search for: implementation details, troubleshooting, best practices.`
// Bad - Too vague
filterPrompt: "Only important content"
```
### 3. Test OAuth Credentials
Always test custom OAuth credentials in development before production:
```typescript
// Test connection after updating OAuth settings
const testConnection = await client.connections.create('google-drive', {
redirectUrl: 'https://yourapp.com/callback',
containerTags: ['test-connection']
});
```
### 4. Monitor Filter Effectiveness
Check what's being indexed to ensure filters work as expected:
```typescript
const memories = await client.memories.list({
containerTags: ['your-tags'],
limit: 10
});
// Review what's actually being indexed
memories.memories.forEach(memory => {
console.log(`Indexed: ${memory.title} - ${memory.type}`);
});
```
## Important Notes
<Warning>
**Settings Limitations:**
- Changes are organization-wide, not per-user
- Settings don't retroactively process existing memories
- OAuth credentials must be properly configured in respective platforms
- Filter patterns are applied during content ingestion
</Warning>
## Related Documentation
- [Connectors Overview](/connectors/overview) - Setting up external integrations
- [Google Drive Setup](/connectors/google-drive) - Configure Google Drive OAuth
- [Notion Setup](/connectors/notion) - Configure Notion OAuth
- [OneDrive Setup](/connectors/onedrive) - Configure OneDrive OAuth
All sensitive credentials (OAuth secrets, API keys) are encrypted at rest using industry-standard encryption. Credentials are only decrypted when needed for authentication flows and are never exposed in API responses or logs.