Data Fields

Data field management endpoints for discovering, retrieving, and managing fields within data entities in the Streamline data catalog system.

List All Data Fields

GET /v1/data-catalog/data-fields

Retrieve a paginated list of data fields with optional filtering and sorting capabilities.

Query Parameters:

  • pageSize (integer, optional): Number of items to return per page (1-1000, default: 50)
  • 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)
  • entityId (string, optional): Filter results by entity ID (UUID format)
  • label (string, optional): Filter results by label text

Response (200 OK):

{
  "content": [
    {
      "id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
      "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
      "label": "User ID",
      "descriptor": "Unique identifier for user records",
      "nativeIdentifier": "user_id",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
      "definitionId": "def_001",
      "definitionVersion": "1.0",
      "scalarType": "VARCHAR",
      "nullable": false,
      "createable": true,
      "updateable": false,
      "searchable": true,
      "isManaged": true,
      "dataClassId": "dc_001",
      "dataClassName": "Personal Identifier",
      "isDataClassOverridden": false,
      "originalDataClassId": "dc_001",
      "dataClassCodeVersion": "1.2.0",
      "dataClassModelVersion": "2.1.0",
      "locator": "users.user_id",
      "caseSensitivityCapability": "CASE_SENSITIVE_ONLY",
      "defaultValue": {
        "type": "RANDOM_UUID",
        "defaultExpression": "uuid_generate_v4()",
        "value": null
      },
      "discoveredValues": [
        "user_123",
        "user_456",
        "user_789"
      ],
      "fieldMetadata": {
        "labelsAndValuesConfig": {
          "expandable": false,
          "labelAndValues": []
        }
      },
      "createdAt": "2024-01-15T10:30:00Z"
    },
    {
      "id": "f2b2c3d4-e5f6-7890-1234-567890abcdef",
      "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
      "label": "Email Address",
      "descriptor": "User's primary email address for communication",
      "nativeIdentifier": "email",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
      "definitionId": "def_002",
      "definitionVersion": "1.0",
      "scalarType": "VARCHAR",
      "nullable": false,
      "createable": true,
      "updateable": true,
      "searchable": true,
      "isManaged": false,
      "dataClassId": "dc_002",
      "dataClassName": "Email Address",
      "isDataClassOverridden": false,
      "originalDataClassId": "dc_002",
      "dataClassCodeVersion": "1.2.0",
      "dataClassModelVersion": "2.1.0",
      "locator": "users.email",
      "caseSensitivityCapability": "CASE_INSENSITIVE",
      "defaultValue": null,
      "discoveredValues": [
        "[email protected]",
        "[email protected]",
        "[email protected]"
      ],
      "fieldMetadata": {
        "labelsAndValuesConfig": {
          "expandable": false,
          "labelAndValues": []
        }
      },
      "createdAt": "2024-01-15T10:35:00Z"
    }
  ],
  "page": {
    "size": 2,
    "pageSize": 50,
    "currentPage": 0,
    "number": 0,
    "totalElements": 2,
    "totalPages": 1
  }
}

Get Data Fields by Entity IDs (Batch)

POST /v1/data-catalog/data-fields/batch

Look up fields for multiple entity IDs at once.

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": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
      "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
      "label": "User ID",
      "descriptor": "Unique identifier for user records",
      "nativeIdentifier": "user_id",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "scalarType": "VARCHAR",
      "nullable": false,
      "createable": true,
      "updateable": false,
      "searchable": true,
      "isManaged": true,
      "dataClassId": "dc_001",
      "dataClassName": "Personal Identifier",
      "createdAt": "2024-01-15T10:30:00Z"
    }
  ],
  "e2b2c3d4-e5f6-7890-1234-567890abcdef": [
    {
      "id": "f3b2c3d4-e5f6-7890-1234-567890abcdef",
      "entityId": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
      "label": "Order ID",
      "descriptor": "Unique identifier for order records",
      "nativeIdentifier": "order_id",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "scalarType": "INTEGER",
      "nullable": false,
      "createable": true,
      "updateable": false,
      "searchable": true,
      "isManaged": true,
      "dataClassId": "dc_003",
      "dataClassName": "Order Identifier",
      "createdAt": "2024-01-15T10:45:00Z"
    }
  ]
}

Get Entity Fields

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

Get all data fields belonging to a specific entity.

Path Parameters:

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

Response (200 OK):

[
  {
    "id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
    "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
    "label": "User ID",
    "descriptor": "Unique identifier for user records",
    "nativeIdentifier": "user_id",
    "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
    "definitionId": "def_001",
    "definitionVersion": "1.0",
    "scalarType": "VARCHAR",
    "nullable": false,
    "createable": true,
    "updateable": false,
    "searchable": true,
    "isManaged": true,
    "dataClassId": "dc_001",
    "dataClassName": "Personal Identifier",
    "isDataClassOverridden": false,
    "originalDataClassId": "dc_001",
    "dataClassCodeVersion": "1.2.0",
    "dataClassModelVersion": "2.1.0",
    "locator": "users.user_id",
    "caseSensitivityCapability": "CASE_SENSITIVE_ONLY",
    "defaultValue": {
      "type": "RANDOM_UUID",
      "defaultExpression": "uuid_generate_v4()",
      "value": null
    },
    "discoveredValues": [
      "user_123",
      "user_456",
      "user_789"
    ],
    "fieldMetadata": {
      "labelsAndValuesConfig": {
        "expandable": false,
        "labelAndValues": []
      }
    },
    "createdAt": "2024-01-15T10:30:00Z"
  }
]

Create Entity Field

POST /v1/data-catalog/entity/{entityId}/data-fields

Create a new data field on an existing entity.

Path Parameters:

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

Request Body:

Required fields:

  • label
  • nativeIdentifier
  • scalarType

Optional fields:

  • descriptor
  • nullable
  • createable
  • updateable
  • searchable
  • dataClassId
  • locator
  • defaultValue
  • fieldMetadata
{
  "label": "Last Login Date",
  "descriptor": "Timestamp of the user's most recent login",
  "nativeIdentifier": "last_login_date",
  "scalarType": "TIMESTAMP",
  "nullable": true,
  "createable": false,
  "updateable": true,
  "searchable": true,
  "dataClassId": "dc_004",
  "locator": "users.last_login_date",
  "defaultValue": {
    "type": "CURRENT_TIMESTAMP",
    "defaultExpression": "CURRENT_TIMESTAMP",
    "value": null
  },
  "fieldMetadata": {
    "labelsAndValuesConfig": {
      "expandable": false,
      "labelAndValues": []
    }
  }
}

Response (200 OK):

{
  "id": "f4b2c3d4-e5f6-7890-1234-567890abcdef",
  "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "label": "Last Login Date",
  "descriptor": "Timestamp of the user's most recent login",
  "nativeIdentifier": "last_login_date",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
  "definitionId": "def_004",
  "definitionVersion": "1.0",
  "scalarType": "TIMESTAMP",
  "nullable": true,
  "createable": false,
  "updateable": true,
  "searchable": true,
  "isManaged": false,
  "dataClassId": "dc_004",
  "dataClassName": "Timestamp",
  "isDataClassOverridden": false,
  "originalDataClassId": "dc_004",
  "locator": "users.last_login_date",
  "caseSensitivityCapability": "UNKNOWN",
  "defaultValue": {
    "type": "CURRENT_TIMESTAMP",
    "defaultExpression": "CURRENT_TIMESTAMP",
    "value": null
  },
  "fieldMetadata": {
    "labelsAndValuesConfig": {
      "expandable": false,
      "labelAndValues": []
    }
  },
  "createdAt": "2024-01-15T11:00:00Z"
}

Get Single Field

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

Get detailed information about a specific field on an entity.

Path Parameters:

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

Response (200 OK):

{
  "id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
  "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "label": "User ID",
  "descriptor": "Unique identifier for user records",
  "nativeIdentifier": "user_id",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
  "definitionId": "def_001",
  "definitionVersion": "1.0",
  "scalarType": "VARCHAR",
  "nullable": false,
  "createable": true,
  "updateable": false,
  "searchable": true,
  "isManaged": true,
  "dataClassId": "dc_001",
  "dataClassName": "Personal Identifier",
  "isDataClassOverridden": false,
  "originalDataClassId": "dc_001",
  "dataClassCodeVersion": "1.2.0",
  "dataClassModelVersion": "2.1.0",
  "locator": "users.user_id",
  "caseSensitivityCapability": "CASE_SENSITIVE_ONLY",
  "defaultValue": {
    "type": "RANDOM_UUID",
    "defaultExpression": "uuid_generate_v4()",
    "value": null
  },
  "discoveredValues": [
    "user_123",
    "user_456",
    "user_789"
  ],
  "fieldMetadata": {
    "labelsAndValuesConfig": {
      "expandable": false,
      "labelAndValues": []
    }
  },
  "createdAt": "2024-01-15T10:30:00Z"
}

Update Field

PUT /v1/data-catalog/entity/{entityId}/data-fields/{fieldId}

Update an existing data field on an entity.

Path Parameters:

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

Request Body:

{
  "id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
  "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "label": "User Identifier",
  "descriptor": "Updated description: Unique identifier for user records with enhanced tracking",
  "nativeIdentifier": "user_id",
  "scalarType": "VARCHAR",
  "nullable": false,
  "createable": true,
  "updateable": false,
  "searchable": true,
  "dataClassId": "dc_001",
  "locator": "users.user_id",
  "fieldMetadata": {
    "labelsAndValuesConfig": {
      "expandable": false,
      "labelAndValues": []
    }
  }
}

Response (200 OK):

{
  "id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
  "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "label": "User Identifier",
  "descriptor": "Updated description: Unique identifier for user records with enhanced tracking",
  "nativeIdentifier": "user_id",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
  "definitionId": "def_001",
  "definitionVersion": "1.1",
  "scalarType": "VARCHAR",
  "nullable": false,
  "createable": true,
  "updateable": false,
  "searchable": true,
  "isManaged": true,
  "dataClassId": "dc_001",
  "dataClassName": "Personal Identifier",
  "isDataClassOverridden": false,
  "originalDataClassId": "dc_001",
  "dataClassCodeVersion": "1.2.0",
  "dataClassModelVersion": "2.1.0",
  "locator": "users.user_id",
  "caseSensitivityCapability": "CASE_SENSITIVE_ONLY",
  "defaultValue": {
    "type": "RANDOM_UUID",
    "defaultExpression": "uuid_generate_v4()",
    "value": null
  },
  "fieldMetadata": {
    "labelsAndValuesConfig": {
      "expandable": false,
      "labelAndValues": []
    }
  },
  "createdAt": "2024-01-15T10:30:00Z"
}

Update Data Class on Field

PUT /v1/data-catalog/entity/{entityId}/data-fields/{fieldId}/data-class-id

Update the data class assignment for a specific field.

Path Parameters:

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

Request Body:

Required fields:

  • dataClassId
{
  "dataClassId": "dc_005"
}

Response (200 OK):

{
  "id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
  "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "label": "User ID",
  "descriptor": "Unique identifier for user records",
  "nativeIdentifier": "user_id",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
  "definitionId": "def_001",
  "definitionVersion": "1.0",
  "scalarType": "VARCHAR",
  "nullable": false,
  "createable": true,
  "updateable": false,
  "searchable": true,
  "isManaged": true,
  "dataClassId": "dc_005",
  "dataClassName": "Updated Data Class",
  "isDataClassOverridden": true,
  "originalDataClassId": "dc_001",
  "dataClassCodeVersion": "1.2.0",
  "dataClassModelVersion": "2.1.0",
  "locator": "users.user_id",
  "caseSensitivityCapability": "CASE_SENSITIVE_ONLY",
  "createdAt": "2024-01-15T10:30:00Z"
}

Update Field Metadata

POST /v1/data-catalog/entity/{entityId}/data-fields/{fieldId}/metadata

Update metadata configuration for a specific field.

Path Parameters:

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

Request Body:

Required fields:

  • labelsAndValuesConfig
{
  "labelsAndValuesConfig": {
    "expandable": true,
    "labelAndValues": [
      {
        "label": "Active",
        "value": "active",
        "valueManaged": true,
        "translations": {
          "es": "Activo",
          "fr": "Actif"
        }
      },
      {
        "label": "Inactive",
        "value": "inactive",
        "valueManaged": true,
        "translations": {
          "es": "Inactivo",
          "fr": "Inactif"
        }
      }
    ]
  }
}

Response (200 OK):

{
  "id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
  "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "label": "User ID",
  "descriptor": "Unique identifier for user records",
  "nativeIdentifier": "user_id",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "catalogHistoryId": "h1b2c3d4-e5f6-7890-1234-567890abcdef",
  "definitionId": "def_001",
  "definitionVersion": "1.0",
  "scalarType": "VARCHAR",
  "nullable": false,
  "createable": true,
  "updateable": false,
  "searchable": true,
  "isManaged": true,
  "dataClassId": "dc_001",
  "dataClassName": "Personal Identifier",
  "isDataClassOverridden": false,
  "originalDataClassId": "dc_001",
  "fieldMetadata": {
    "labelsAndValuesConfig": {
      "expandable": true,
      "labelAndValues": [
        {
          "label": "Active",
          "value": "active",
          "valueManaged": true,
          "translations": {
            "es": "Activo",
            "fr": "Actif"
          }
        },
        {
          "label": "Inactive",
          "value": "inactive",
          "valueManaged": true,
          "translations": {
            "es": "Inactivo",
            "fr": "Inactif"
          }
        }
      ]
    }
  },
  "createdAt": "2024-01-15T10:30:00Z"
}

Error Responses:

Response (404 Not Found):

{
  "code": "FIELD_NOT_FOUND",
  "title": "Field Not Found",
  "detail": "No field found with the specified ID on the given entity",
  "traceId": "req_12345678-abcd-4321-9876-fedcba098765"
}

Response (400 Bad Request):

{
  "code": "INVALID_FIELD_DATA",
  "title": "Invalid Field Data",
  "detail": "Field data validation failed. Check required fields and data types.",
  "traceId": "req_12345678-abcd-4321-9876-fedcba098765"
}