Integrations Metadata
Get available integrations and their filterable fields for ABAC (Attribute-Based Access Control).
Endpoint
GET /integrations
Returns metadata about all available integrations including:
- Integration name and identifier
- Available endpoints
- Filterable fields/parameters for each endpoint
- Field types and descriptions
Authentication: Not required (public endpoint)
Request:
curl http://localhost:3007/integrations
Response:
{
"success": true,
"data": {
"integrations": [
{
"id": "jira",
"name": "Jira",
"description": "Atlassian Jira issue tracking and project management",
"endpoints": [
{
"path": "/jira/projects/{project_key}/tickets",
"method": "GET",
"description": "Get all tickets from a project",
"filterable_fields": [
{
"name": "project_key",
"type": "string",
"required": true,
"description": "Jira project key (path parameter)",
"example": "PROJ"
},
{
"name": "assignee_id",
"type": "string",
"required": false,
"description": "Filter tickets by assignee user ID",
"example": "user-123"
},
{
"name": "limit",
"type": "integer",
"required": false,
"description": "Maximum number of tickets to return",
"default": 100,
"example": 50
}
],
"query_parameters": ["assignee_id", "limit"]
}
]
},
{
"id": "github",
"name": "GitHub",
"description": "GitHub repository and issue management",
"endpoints": [
{
"path": "/github/repositories/{repo_id}/pull-requests",
"method": "GET",
"description": "Get pull requests with metrics",
"filterable_fields": [
{
"name": "repo_id",
"type": "string",
"required": true,
"description": "Repository ID",
"example": "owner/repo"
},
{
"name": "state",
"type": "string",
"required": false,
"description": "Filter by PR state: 'open', 'closed', 'all'",
"default": "all",
"enum": ["open", "closed", "all"],
"example": "open"
},
{
"name": "limit",
"type": "integer",
"required": false,
"description": "Maximum number of PRs to return",
"default": 30,
"example": 30
}
],
"query_parameters": ["state", "limit"]
}
]
}
]
},
"meta": {
"timestamp": "2024-01-01T00:00:00.000Z",
"version": "2.0.0"
}
}
Use Cases
This endpoint is useful for:
- ABAC Implementation: Understanding which fields can be used for attribute-based access control
- API Discovery: Discovering available integrations and their capabilities
- Dynamic UI Generation: Building dynamic forms and filters based on available fields
- Documentation: Generating up-to-date documentation from the API itself
Filterable Fields
Each endpoint includes information about:
- Path parameters: Required parameters in the URL path (e.g.,
project_key,repo_id) - Query parameters: Optional parameters that can be used for filtering (e.g.,
assignee_id,status,limit) - Field types: The data type of each field (string, integer, etc.)
- Required fields: Whether a field is required or optional
- Default values: Default values for optional fields
- Enums: Possible values for fields with limited options
- Examples: Example values for each field