Files
2026-07-13 12:38:34 +08:00

246 lines
6.6 KiB
Markdown

# Auth Configs API
The `AuthConfigs` class provides methods to manage authentication configurations for toolkits. Auth configs define how authentication works for a particular toolkit, specifying the auth scheme (OAuth2, API Key, etc.) and other authentication-related details.
## Methods
### list(query?)
Lists all auth configs based on provided filter criteria.
```typescript
// List all auth configs
const allAuthConfigs = await composio.authConfigs.list();
// List auth configs for a specific toolkit
const githubAuthConfigs = await composio.authConfigs.list({
toolkit: 'github',
});
// Search auth configs by name or id and include disabled configs
const searchedAuthConfigs = await composio.authConfigs.list({
search: 'github',
showDisabled: true,
});
```
**Parameters:**
- `query` (AuthConfigListParams): Optional query parameters for filtering auth configs
**Returns:** Promise<AuthConfigListResponse> - A paginated list of auth configs
**Throws:** ValidationError if the query fails validation against the expected schema
### get(id)
Retrieves a specific auth config by its ID.
```typescript
// Get an auth config by ID
const authConfig = await composio.authConfigs.get('auth_config_123');
console.log(authConfig.name); // Name of the auth config
```
**Parameters:**
- `id` (string): The unique identifier of the auth config
**Returns:** Promise<AuthConfigRetrieveResponse> - The auth config details
**Throws:** ComposioAuthConfigNotFoundError if the auth config cannot be found
### create(toolkit, data)
Creates a new auth config for a toolkit.
```typescript
// Create an auth config for GitHub
const authConfig = await composio.authConfigs.create('github', {
type: 'use_composio_managed_auth',
name: 'GitHub Auth Config',
});
```
**Parameters:**
- `toolkit` (string): The slug of the toolkit to create an auth config for
- `data` (AuthConfigCreateParams): The parameters for creating the auth config
**Returns:** Promise<AuthConfigCreateResponse> - The created auth config
**Throws:**
- ValidationError if the parameters fail validation
- ComposioToolNotFoundError if the toolkit cannot be found
### update(id, data)
Updates an existing auth config.
```typescript
// Update a custom auth config with new credentials
const updatedAuthConfig = await composio.authConfigs.update('auth_config_123', {
type: 'custom',
credentials: {
client_id: 'new_client_id',
client_secret: 'new_client_secret',
},
toolAccessConfig: {
toolsAvailableForExecution: ['GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER'],
},
});
// Update a default auth config with new scopes
const updatedDefaultAuth = await composio.authConfigs.update('auth_config_456', {
type: 'default',
scopes: 'read:user,repo',
toolAccessConfig: {
toolsAvailableForExecution: ['GITHUB_GET_A_REPOSITORY', 'GITHUB_LIST_REPOSITORIES_FOR_A_USER'],
},
});
```
**Parameters:**
- `id` (string): The unique identifier of the auth config to update
- `data` (AuthConfigUpdateParams): The parameters for updating the auth config. Must be a discriminated union with either:
- `{ type: 'custom', credentials: Record<string, unknown>, toolAccessConfig?: {...} }`
- `{ type: 'default', scopes: string, toolAccessConfig?: {...} }`
**Returns:** Promise<AuthConfigUpdateResponse> - The updated auth config
**Throws:**
- ValidationError if the update parameters are invalid
- ComposioAuthConfigNotFoundError if the auth config cannot be found
### delete(id)
Deletes an auth config.
```typescript
// Delete an auth config
await composio.authConfigs.delete('auth_config_123');
```
**Parameters:**
- `id` (string): The unique identifier of the auth config to delete
**Returns:** Promise<AuthConfigDeleteResponse> - The deletion response
**Throws:** Error if the auth config doesn't exist or cannot be deleted
## Types
### AuthConfigListParams
```typescript
interface AuthConfigListParams {
cursor?: string; // Pagination cursor
limit?: number; // Limit the number of results
search?: string; // Search auth configs by name or id
showDisabled?: boolean; // Include disabled auth configs
toolkit?: string; // Filter by toolkit slug
isComposioManaged?: boolean; // Filter by Composio-managed auth configs
}
```
### AuthConfigListResponse
```typescript
interface AuthConfigListResponse {
items: AuthConfigRetrieveResponse[]; // List of auth configs
nextCursor: string | null; // Pagination cursor
totalPages: number; // Total number of pages
}
```
### AuthConfigRetrieveResponse
```typescript
interface AuthConfigRetrieveResponse {
id: string; // Auth config ID
name: string; // Name of the auth config
type: AuthConfigType; // Type of auth config
toolkit: {
// Associated toolkit
id: string; // Toolkit ID
slug: string; // Toolkit slug
name: string; // Toolkit name
};
authScheme: AuthSchemeType; // Auth scheme (e.g., 'oauth2', 'api_key')
isDisabled: boolean; // Whether the auth config is disabled
fields: Record<string, unknown>; // Configuration fields
meta: Record<string, unknown>; // Additional metadata
createdAt: string; // Creation timestamp
updatedAt: string; // Last update timestamp
}
```
### AuthConfigCreateParams
```typescript
interface AuthConfigCreateParams {
type: AuthConfigType; // Type of auth config
name: string; // Name of the auth config
fields?: Record<string, unknown>; // Configuration fields
}
```
### AuthConfigUpdateParams
```typescript
// Discriminated union type for updating auth configs
type AuthConfigUpdateParams =
| {
type: 'custom';
credentials: Record<string, string | number | boolean | unknown>;
toolAccessConfig?: {
toolsAvailableForExecution?: string[];
toolsForConnectedAccountCreation?: string[];
};
/** @deprecated Use toolAccessConfig instead */
restrictToFollowingTools?: string[];
}
| {
type: 'default';
scopes: string;
toolAccessConfig?: {
toolsAvailableForExecution?: string[];
toolsForConnectedAccountCreation?: string[];
};
/** @deprecated Use toolAccessConfig instead */
restrictToFollowingTools?: string[];
};
```
### AuthConfigType
Auth config types are defined as an enum:
```typescript
enum AuthConfigTypes {
USE_COMPOSIO_MANAGED_AUTH = 'use_composio_managed_auth',
SERVICE_CONNECTION = 'service_connection',
USER_CREDENTIALS = 'user_credentials',
CUSTOM_AUTH = 'custom_auth',
NO_AUTH = 'no_auth',
}
```
### AuthSchemeType
Auth scheme types are defined as an enum:
```typescript
enum AuthSchemeTypes {
OAUTH2 = 'oauth2',
API_KEY = 'api_key',
BASIC_AUTH = 'basic_auth',
CUSTOM = 'custom',
NO_AUTH = 'no_auth',
}
```