Entity Management

Entity management endpoints for discovering, retrieving, and managing data entities within the Streamline data catalog system.

List All Entities

GET /v1/data-catalog/entity

Get a paginated list of data entities with optional filtering and sorting capabilities.

Query Parameters:

  • pageSize (integer, optional): Number of items to return per page (1-1000, default: 10)
  • pageNumber (integer, optional): Page number to return (one-based, default: 1)
  • sortField (string, optional): Field to sort results by (default: id)
  • sortDirection (string, optional): Direction to sort results (ASC, DESC, default: ASC)
  • integrationId (string, optional): Filter results by integration ID (UUID format)
  • label (string, optional): Filter results by label text (fuzzy match)
  • nativeIdentifier (string, optional): Filter results by native identifier (exact match)

Response (200 OK):

{
  "content": [
    {
      "id": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
      "label": "Users Table",
      "descriptor": "Main users table containing customer profile information",
      "nativeIdentifier": "users",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "integrationId": "i1b2c3d4-e5f6-7890-1234-567890abcdef",
      "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
      "dataTags": ["customer_data", "pii", "active"],
      "primaryKeyStrategyMap": "UUID_GENERATOR",
      "discoveryMetadata": {
        "tableType": "BASE_TABLE",
        "rowCount": 150000,
        "lastAnalyzed": "2024-01-15T10:30:00Z"
      },
      "createdAt": "2024-01-15T08:00:00Z"
    },
    {
      "id": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
      "label": "Orders Table",
      "descriptor": "Order transaction records and associated metadata",
      "nativeIdentifier": "orders",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "integrationId": "i1b2c3d4-e5f6-7890-1234-567890abcdef",
      "catalogHistoryId": "h2b2c3d4-e5f6-7890-1234-567890abcdef",
      "dataTags": ["transaction_data", "financial"],
      "primaryKeyStrategyMap": "AUTO_INCREMENT",
      "discoveryMetadata": {
        "tableType": "BASE_TABLE",
        "rowCount": 500000,
        "lastAnalyzed": "2024-01-15T11:45:00Z"
      },
      "createdAt": "2024-01-15T08:15:00Z"
    }
  ],
  "page": {
    "size": 2,
    "pageSize": 10,
    "currentPage": 0,
    "number": 0,
    "totalElements": 2,
    "totalPages": 1
  }
}

Get Entity by ID

GET /v1/data-catalog/entity/{entityId}

Retrieve detailed information about a specific entity.

Path Parameters:

  • entityId (string, required): Unique identifier of the entity to retrieve (UUID format)

Response (200 OK):

{
  "id": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "label": "Users Table",
  "descriptor": "Main users table containing customer profile information",
  "nativeIdentifier": "users",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "integrationId": "i1b2c3d4-e5f6-7890-1234-567890abcdef",
  "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
  "dataTags": ["customer_data", "pii", "active"],
  "primaryKeyStrategyMap": "UUID_GENERATOR",
  "discoveryMetadata": {
    "tableType": "BASE_TABLE",
    "rowCount": 150000,
    "lastAnalyzed": "2024-01-15T10:30:00Z"
  },
  "createdAt": "2024-01-15T08:00:00Z"
}

Get Multiple Entities (Batch)

POST /v1/data-catalog/entity/batch

Look up multiple entities at once by providing a list of entity IDs.

Request Body:

Required fields:

  • Array of entity IDs (UUID format)
[
  "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "e2b2c3d4-e5f6-7890-1234-567890abcdef"
]

Response (200 OK):

{
  "e1b2c3d4-e5f6-7890-1234-567890abcdef": {
    "id": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
    "label": "Users Table",
    "descriptor": "Main users table containing customer profile information",
    "nativeIdentifier": "users",
    "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "integrationId": "i1b2c3d4-e5f6-7890-1234-567890abcdef",
    "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
    "dataTags": ["customer_data", "pii", "active"],
    "primaryKeyStrategyMap": "UUID_GENERATOR",
    "discoveryMetadata": {
      "tableType": "BASE_TABLE",
      "rowCount": 150000,
      "lastAnalyzed": "2024-01-15T10:30:00Z"
    },
    "createdAt": "2024-01-15T08:00:00Z"
  },
  "e2b2c3d4-e5f6-7890-1234-567890abcdef": {
    "id": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
    "label": "Orders Table",
    "descriptor": "Order transaction records and associated metadata",
    "nativeIdentifier": "orders",
    "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "integrationId": "i1b2c3d4-e5f6-7890-1234-567890abcdef",
    "catalogHistoryId": "h2b2c3d4-e5f6-7890-1234-567890abcdef",
    "dataTags": ["transaction_data", "financial"],
    "primaryKeyStrategyMap": "AUTO_INCREMENT",
    "discoveryMetadata": {
      "tableType": "BASE_TABLE",
      "rowCount": 500000,
      "lastAnalyzed": "2024-01-15T11:45:00Z"
    },
    "createdAt": "2024-01-15T08:15:00Z"
  }
}

Error Responses:

Response (404 Not Found):

{
  "code": "ENTITY_NOT_FOUND",
  "title": "Entity Not Found",
  "detail": "No entity found with the specified ID",
  "traceId": "req_12345678-abcd-4321-9876-fedcba098765"
}

Response (400 Bad Request):

{
  "code": "INVALID_REQUEST",
  "title": "Invalid Request Format",
  "detail": "Request body must be an array of valid UUID strings",
  "traceId": "req_12345678-abcd-4321-9876-fedcba098765"
}