BREAGEN Logo
Data Source Management

Data management

BREAGEN is a comprehensive data management platform designed to streamline the process of managing data sources within an organization. By centralizing metadata and providing a unified platform for discovery, governance, and lineage, BREAGEN simplifies the challenges associated with understanding, accessing, and utilizing data assets.

  • Here's a brief overview of how BREAGEN can help manage data sources:
    • Discovery and Inventory: BREAGEN creates a comprehensive inventory of all data sources within the organization, making it easy to locate and understand their purpose, ownership, and usage.
    • Governance and Compliance: By enforcing data quality standards and ensuring adherence to compliance regulations, BREAGEN helps maintain data integrity and protect sensitive information.
    • Lineage and Impact Analysis: BREAGEN tracks the flow of data from source to consumption, enabling organizations to understand the potential impact of changes to data sources and identify dependencies.
    • Collaboration and Teamwork: BREAGEN fosters collaboration among data teams by providing a shared platform for communication and knowledge sharing.
  • BREAGEN supports a wide range of data sources, including:
    • Databases: MySQL, PostgreSQL, Oracle, SQL Server, etc.
    • Data Warehouses: Redshift, Snowflake, Teradata, etc.
    • Data Lakes: S3, ADLS, GCS, etc.
    • Streaming Platforms: Kafka, Kinesis, Pulsar, etc.
    • ETL/ELT Tools: Informatica, Talend, Airflow, etc.
    • Custom Sources: APIs, files, and other data formats.

By leveraging BREAGEN's capabilities, organizations can establish a robust data management framework, improve data quality, and drive data-driven decision-making.

Create a Dataset GET v1/data/managment?action=ingestProposal

Resource URLv1/data/managment?action=ingestProposal
Response FormatJSON
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/managment?action=ingestProposal' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
  "proposal": {
    "entityType": "source",
    "entityUrn": "urn:li:source:(your_source_urn)",  # Replace with your desired URN
    "aspects": [
      {
        "com.linkedin.metadata.domains.source.Source": {
          "name": "My MySQL Source",
          "description": "This is a sample MySQL source for demonstration purposes.",
          "type": "Database",
          "sourceUrl": "jdbc:mysql://your_mysql_host:3306/your_database_name",
          "connectionProperties": {
            "username": "your_mysql_username",
            "password": "your_mysql_password"
          }
        }
      }
    ]
  }
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
403Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Delete Dataset DELETE /v1/data/managment?action=deleteProposal

Resource URL/v1/data/managment?action=deleteProposal
Response FormatJSON
MethodDELETE
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request DELETE 'https://api.braegen.ai/v1/data/managment?action=deleteProposal' \
    --header 'X-RestLi-Protocol-Version: 2.0.0' \
    --header 'Content-Type: application/json' \
    --data '{
    "proposal": {
        "entityType": "source",
        "entityUrn": "urn:li:source:(your_source_urn)""  # Replace with the URN of the source to delete
    }
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Create Glossary Terms POST /v1/data/managment?action=ingestProposal

Resource URL/v1/data/managment?action=ingestProposal
Response FormatJSON
MethodPOST
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/managment?action=ingestProposal' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
"proposal": {
    "entityType": "glossaryTerm",
    "entityUrn": "urn:li:glossaryTerm:(your_glossary_urn)",  # Replace with your desired URN
    "aspects": [
    {
        "com.linkedin.metadata.glossary.GlossaryTermInfo": {
        "name": "Sample Glossary Term",
        "definition": "This is a sample glossary term for demonstration purposes.",
        "termSource": "Datafab Chat API",
        "relatedTerms": ["urn:li:glossaryTerm:(related_term_urn)"]  # Optional related terms
        }
        }
    ]
}
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Read Terms from a Dataset GET /v1/data/managment?action=getTerms&entityType=dataset&entityUrn=urn:li:dataset:(your_dataset_urn)

curl request to read the glossary terms for a dataset using the same API endpoint. Typically, this would involve a GET request to fetch the glossary terms associated with a particular dataset.

Resource URL/v1/data/managment?action=getTerms&entityType=dataset&entityUrn=urn:li:dataset:(your_dataset_urn)
Response FormatJSON
MethodGET
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request GET 'https://api.braegen.ai/v1/data/managment?action=getTerms&entityType=dataset&entityUrn=urn:li:dataset:(your_dataset_urn)' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Create Domain GET /v1/data/managment?action=ingestProposal

curl request to read the glossary terms for a dataset using the same API endpoint. Typically, this would involve a GET request to fetch the glossary terms associated with a particular dataset.

Resource URL/v1/data/managment?action=ingestProposal
Response FormatJSON
MethodPOST
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/managment?action=ingestProposal' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
"proposal": {
    "entityType": "domain",
    "entityUrn": "urn:li:domain:(your_domain_urn)",  # Replace with your desired domain URN
    "aspects": [
    {
        "com.linkedin.metadata.domains.DomainProperties": {
        "name": "My New Domain",
        "description": "This is a sample domain for organizational purposes.",
        "created": {
            "time": 1640995200000,  # Example timestamp (Unix Epoch time in ms)
            "actor": "urn:li:corpuser:(creator_user_urn)"  # Replace with the creator's URN
        }
        }
    }
    ]
}
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Read Domains GET /v1/data/managment?action=getDomains

Resource URL/v1/data/managment?action=getDomains
Response FormatJSON
MethodGET
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request GET 'https://api.datafabchat.com/v1/data/managment?action=getDomains' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Add Domains to a Dataset GET /v1/data/managment?action=ingestProposal

Resource URL/v1/data/managment?action=ingestProposal
Response FormatJSON
MethodGET
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/managment?action=ingestProposal' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
"proposal": {
    "entityType": "dataset",
    "entityUrn": "urn:li:dataset:(your_dataset_urn)",  # Replace with your dataset URN
    "aspects": [
    {
        "com.linkedin.metadata.domains.DomainAssociation": {
        "domainUrn": "urn:li:domain:(your_domain_urn)",  # Replace with your domain URN
        "domainProperties": {
            "name": "BREAGEN Chat Domain",
            "description": "Domain for managing datasets within the BREAGEN Chat environment.",
            "created": {
            "time": 1694044800000,  # Example timestamp for when the domain is assigned (Unix time in ms)
            "actor": "urn:li:corpuser:datafabadmin"  # Replace with the user who is associating the domain
            }
        }
        }
    }
    ]
}
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Add Lineage POST /v1/data/managment?action=ingestProposal

Resource URL/v1/data/managment?action=ingestProposal
Response FormatJSON
MethodPOST
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/managment?action=ingestProposal' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
"proposal": {
    "entityType": "dataset",
    "entityUrn": "urn:li:dataset:(your_source_dataset_urn)",  # Replace with the source dataset URN
    "aspects": [
    {
        "com.linkedin.metadata.lineage.UpstreamLineage": {
        "upstreams": [
            {
            "dataset": "urn:li:dataset:(your_target_dataset_urn)",  # Replace with the target dataset URN
            "type": "TRANSFORMED",  # Type of lineage (e.g., TRANSFORMED, COPIED, etc.)
            "created": {
                "time": 1694044800000,  # Example timestamp (Unix time in ms)
                "actor": "urn:li:corpuser:datafabadmin"  # Replace with the user performing the lineage creation
            },
            "fieldPaths": [
                "column_name_1",  # Replace with the specific column(s) involved in the lineage
                "column_name_2"   # Add more columns as needed
            ]
            }
        ]
        }
    }
    ]
}
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Add Documentation (Description) to a Column of a Dataset POST /v1/data/managment?action=ingestProposal

Resource URL/v1/data/managment?action=ingestProposal
Response FormatJSON
MethodPOST
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/managment?action=ingestProposal' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
"proposal": {
    "entityType": "dataset",
    "entityUrn": "urn:li:dataset:(your_dataset_urn)",  # Replace with your dataset URN
    "aspects": [
    {
        "com.linkedin.dataset.schema.EditableSchemaMetadata": {
        "editableSchemaFieldInfo": [
            {
            "fieldPath": "column_name",  # Replace with the specific column name
            "description": "This is the description of the column in the dataset."  # Add your column description here
            }
        ]
        }
    }
    ]
}
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Add Documentation (Description) to a Dataset POST /v1/data/managment?action=ingestProposal

Resource URL/v1/data/managment?action=ingestProposal
Response FormatJSON
MethodPOST
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/managment?action=ingestProposal' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
"proposal": {
    "entityType": "dataset",
    "entityUrn": "urn:li:dataset:(your_dataset_urn)",  # Replace with your dataset URN
    "aspects": [
    {
        "com.linkedin.dataset.DatasetProperties": {
        "description": "This is the description of the dataset."  # Add your dataset description here
        }
    }
    ]
}
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Data Catalog

Get Data Catalog GET /v1/data/catalog?entityType=dataset

Resource URL/v1/data/catalog?entityType=dataset
Response FormatJSON
MethodGET
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request GET 'https://api.braegen.ai/v1/data/catalog?entityType=dataset' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Search Data Catalog POST /v1/data/catalog?action=search

Resource URL/v1/data/catalog?action=search
Response FormatJSON
MethodPOST
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/data/catalog?action=search' \
--header 'X-RestLi-Protocol-Version: 2.0.0' \
--header 'Content-Type: application/json' \
--data '{
    "input": "your_search_query",  # Replace with your search query
    "entity": "dataset",  # You can change this to "dataset", "table", "column", etc.
    "start": 0,
    "count": 10  # Number of results to return
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

List Data Incidents GET /v1/entity/incident

Resource URL/v1/entity/incident
Response FormatJSON
MethodGET
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request GET 'https://api.braegen.ai/v1/entity/incident' \
--header 'Content-Type: application/json'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Create Incident GET /v1/entity/incident

Resource URL/v1/entity/incident
Response FormatJSON
MethodGET
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v1/entity/incident?async=true' \
--header 'Content-Type: application/json' \
--data '[
  {
      “urn”: “urn:li:incident:(incident-id)“,  # Replace with your incident URN
      “incidentInfo”: {
          “title”: “Example Incident”,
          “description”: “This is a sample incident”,
          “priority”: 1,
          “status”: “ACTIVE”,
          “entities”: [
              “urn:li:dataset:(source,example,PROD)”  # Replace with entity URNs
          ]
      }
  }
]'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Batch Get Incidents POST /v1/entity/incident/batchGet

Resource URL/v1/entity/incident/batchGet
Response FormatJSON
MethodPOST
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request POST 'https://api.braegen.ai/v3/entity/incident/batchGet' \
--header 'Content-Type: application/json' \
--data '{
    "urn": [
        "urn:li:incident:(incident-id-1)",
        "urn:li:incident:(incident-id-2)"
    ]
}'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
"status": "success",
"data": {
  "incidents": [
    {
      "urn": "urn:li:incident:(incident-id-1)",
      "incidentInfo": {
        "title": "Database Outage",
        "description": "A critical database outage occurred in the production environment.",
        "priority": 1,
        "status": "RESOLVED",
        "entities": [
          "urn:li:dataset:(mysql,prod-dataset-1,PROD)"
        ],
        "created": {
          "time": 1694044800000,
          "actor": "urn:li:corpuser:admin"
        }
      }
    },
    {
      "urn": "urn:li:incident:(incident-id-2)",
      "incidentInfo": {
        "title": "Data Pipeline Failure",
        "description": "Failure in the Airflow ETL pipeline.",
        "priority": 2,
        "status": "ACTIVE",
        "entities": [
          "urn:li:dataset:(airflow,etl-pipeline-1,PROD)"
        ],
        "created": {
          "time": 1694045800000,
          "actor": "urn:li:corpuser:dataeng"
        }
      }
    }
  ]
}
}

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Get Incident by URN GET /v1/entity/incident/{urn}?systemMetadata=false

Resource URL/v1/entity/incident/{urn}?systemMetadata=false
Response FormatJSON
MethodGET
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

{
“status”: “success”,
“data”: {
  “incidents”: [
    {
      “urn”: “urn:li:incident:(incident-id-1)“,
      “incidentInfo”: {
        “title”: “Database Outage”,
        “description”: “A critical database outage occurred in the production environment.“,
        “priority”: 1,
        “status”: “RESOLVED”,
        “entities”: [
          “urn:li:dataset:(mysql,prod-dataset-1,PROD)”
        ],
        “created”: {
          “time”: 1694044800000,
          “actor”: “urn:li:corpuser:admin”
        }
      }
    },
    {
      “urn”: “urn:li:incident:(incident-id-2)“,
      “incidentInfo”: {
        “title”: “Data Pipeline Failure”,
        “description”: “Failure in the Airflow ETL pipeline.“,
        “priority”: 2,
        “status”: “ACTIVE”,
        “entities”: [
          “urn:li:dataset:(airflow,etl-pipeline-1,PROD)”
        ],
        “created”: {
          “time”: 1694045800000,
          “actor”: “urn:li:corpuser:dataeng”
        }
      }
    }
  ]
}
}

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

Delete Incident by URN DELETE /v1/entity/incident/{urn}

Resource URL/v1/entity/incident/{urn}
Response FormatJSON
MethodDELETE
Requires AuthenticationYes
Rate LimitedYes
HTTPSYes

Parameters

Example Request

curl --location --request DELETE 'https://api.braegen.ai/v1/entity/incident/{urn}' \
--header 'Content-Type: application/json'

HTTP Responses

HTTP CodeMessage
200Success
400Bad Request
401Unauthorized

Example Response

{
  "status": "success", 
  "source_id": "123"
}

On this page

Create a Dataset GET v1/data/managment?action=ingestProposalParametersExample RequestHTTP ResponsesExample ResponseDelete Dataset DELETE /v1/data/managment?action=deleteProposalParametersExample RequestHTTP ResponsesExample ResponseCreate Glossary Terms POST /v1/data/managment?action=ingestProposalParametersExample RequestHTTP ResponsesExample ResponseRead Terms from a Dataset GET /v1/data/managment?action=getTerms&entityType=dataset&entityUrn=urn:li:dataset:(your_dataset_urn)ParametersExample RequestHTTP ResponsesExample ResponseCreate Domain GET /v1/data/managment?action=ingestProposalParametersExample RequestHTTP ResponsesExample ResponseRead Domains GET /v1/data/managment?action=getDomainsParametersExample RequestHTTP ResponsesExample ResponseAdd Domains to a Dataset GET /v1/data/managment?action=ingestProposalParametersExample RequestHTTP ResponsesExample ResponseAdd Lineage POST /v1/data/managment?action=ingestProposalParametersExample RequestHTTP ResponsesExample ResponseAdd Documentation (Description) to a Column of a Dataset POST /v1/data/managment?action=ingestProposalParametersExample RequestHTTP ResponsesExample ResponseAdd Documentation (Description) to a Dataset POST /v1/data/managment?action=ingestProposalParametersExample RequestHTTP ResponsesExample ResponseData CatalogGet Data Catalog GET /v1/data/catalog?entityType=datasetParametersExample RequestHTTP ResponsesExample ResponseSearch Data Catalog POST /v1/data/catalog?action=searchParametersExample RequestHTTP ResponsesExample ResponseList Data Incidents GET /v1/entity/incidentParametersExample RequestHTTP ResponsesExample ResponseCreate Incident GET /v1/entity/incidentParametersExample RequestHTTP ResponsesExample ResponseBatch Get Incidents POST /v1/entity/incident/batchGetParametersExample RequestHTTP ResponsesExample ResponseExample ResponseGet Incident by URN GET /v1/entity/incident/{urn}?systemMetadata=falseParametersExample RequestHTTP ResponsesExample ResponseDelete Incident by URN DELETE /v1/entity/incident/{urn}ParametersExample RequestHTTP ResponsesExample Response