Skip to main content

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:

  1. ABAC Implementation: Understanding which fields can be used for attribute-based access control
  2. API Discovery: Discovering available integrations and their capabilities
  3. Dynamic UI Generation: Building dynamic forms and filters based on available fields
  4. 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