Data Products

Data products are the core building blocks of your data mesh. A typical integration flow is to PUT all static information about the data product as a CI/CD pipeline task to Data Mesh Manager, so that you don't have to update any information manually.


OpenAPI Specification


PUT/api/dataproducts/:id

Create or update a data product

This endpoint allows you to register a new data product or update an existing one for this id.

Required attributes

  • Name
    id
    Type
    string
    Required
    Description

    An organizational unique technical identifier for this data product, such as an UUID, URN, string, number. Format must be a valid path parameter for GET and DELETE requests, so no URI or '/' allowed.

  • Name
    name
    Type
    string
    Required
    Description

    The display name of this data product

  • Name
    teamId
    Type
    string
    Required
    Description

    The UUID of the team that owns the data product.

    The team needs to be created first with this teamId.

Request

POST
/api/dataproducts/:id
curl --request PUT https://api.datamesh-manager.com/api/dataproducts/search-queries-all \
--header "x-api-key: $DMM_API_KEY" \
--header "content-type: application/json" \
--data @- << EOF
{
    "info": {
        "id": "search-queries-all",
        "name": "Search Queries all",
        "description": "All search queries with user interactions",
        "status": "active",
        "archetype": "consumer-aligned",
        "maturity": "managed",
        "owner": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec"
    },
    "inputPorts": [
        {
            "id": "kafka_stock_topic",
            "name": "kafka_stock_topic",
            "description": "Kafka Topic with Stock updates",
            "sourceSystemId": "stock-service",
            "type": "Kafka",
            "location": "stock topic",
            "links": {
                "schema": "https://catalog.example.com/search/search-queries",
                "catalog": "https://catalog.example.com/search/search-queries/",
                "name": "link"
            },
            "custom": {
                "field": "value"
            },
            "tags": [
                "kafka"
            ]
        }
    ],
    "outputPorts": [
        {
            "id": "snowflake_search_queries_all_npii_v1",
            "name": "snowflake_search_queries_all_npii_v1",
            "description": "All search queries and result sets with PII removed.",
            "type": "Snowflake",
            "status": "active",
            "location": "SEARCH_DB.SEARCH_QUERIES_ALL_NPII_V1",
            "links": {
                "schema": "https://catalog.example.com/search/search-queries",
                "catalog": "https://catalog.example.com/search/search-queries/",
                "name": "link"
            },
            "custom": {
                "field": "value"
            },
            "containsPii": false,
            "tags": [
                "snowflake"
            ]
        }
    ],
    "links": {
        "dataProduct": "https://example.com/dataproducts/search-queries",
        "documentation": "https://git.example.com/search/search-queries/README.md",
        "catalog": "https://catalog.example.com/search/search-queries/",
        "repository": "https://git.example.com/search/search-queries",
        "name": "link"
    },
    "custom": {
        "field": "value"
    },
    "tags": [
        "high-quality"
    ]
}
EOF