Endpoints under /datasource
provide access to DataSource objects. A Waterline Data data source is the
location of an HDFS directory, a Hive instance or specific database, a cloud storage location, or a relational
database instance or specific database. A data source hosts data resources, in the form of folders, files,
databases, and tables.
DataSource objects are uniquely identified by a "key" value, assigned on creation. In addition, data sources can
be referenced by the "name" property, specified by the creator.
Data source calls return results based on the user credentials for the current authentication session.
A GET request to the /datasource
endpoint retrieves a list of all data sources configured in the
catalog. A DataSource object includes:
media type | data type | description |
---|---|---|
application/json | array of DataSource (JSON) | A list of DataSource objects in JSON format. |
GET /v2/datasource
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
[ {
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
} ]
A POST request to the /datasource
endpoint creates a DataSource object.
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) | The data source content ("transfer object") in JSON format, including the "name" string, URI, and connection credentials. |
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) | The new DataSource object, with its assigned unique key. |
POST /v2/datasource
Content-Type: application/json
Accept: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
A GET request to the /datasource/list-configs
endpoint retrieves a list of all data sources
configured in the catalog. A DataSource object includes:
media type | data type | description |
---|---|---|
application/json | array of DataSource (JSON) | A list of DataSource objects in JSON format. |
GET /v2/datasource/list-configs
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
[ {
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
} ]
A POST request to the /datasource/validate
endpoint tests the connection for a DataSource object.
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) | The data source content ("transfer object") in JSON format, including the "name" string, URI, and connection credentials. |
media type | data type | description |
---|---|---|
application/json | map of string (JSON) |
POST /v2/datasource/validate
Content-Type: application/json
Accept: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
HTTP/1.1 201 Created
Content-Type: application/json
...
name | type | description |
---|---|---|
key | path |
DELETE /v2/datasource/{key}
Content-Type: */*
...
HTTP/1.1 204 No Content
A GET request to the /datasource/{key}
endpoint retrieves details of a specific data source.
name | type | description |
---|---|---|
key | path | The identifying key of a data source, as returned in the list from a call to listDataSources(). |
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) | The DataSource object in JSON format. |
GET /v2/datasource/{key}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
A PUT request to the /datasource/{key}
endpoint updates properties of a DataSource object.
Warning: Updating a data source after contents of the data source have been added to the Waterline Data
catalog may cause unexpected results.
name | type | description |
---|---|---|
key | path | The unique identifier of the DataSource object. |
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) | The new data source content in JSON format. Properties that are not present are not changed. |
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) | The updated DataResource object in JSON format. |
PUT /v2/datasource/{key}
Content-Type: application/json
Accept: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
HTTP/1.1 204 No Content
Content-Type: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
name | type | description |
---|---|---|
key | path |
media type | data type | description |
---|---|---|
application/json | DataSourceDependencies (JSON) |
GET /v2/datasource/dependencies/{key}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
{
"Association" : 12345,
"Review" : 12345,
"Virtual Folder" : 12345,
"Dataset" : 12345,
"Favorite" : 12345,
"Resource" : 12345,
"Role" : 12345
}
name | type | description |
---|---|---|
datasourcetype | path |
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) |
GET /v2/datasource/gethint/{datasourcetype}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
A GET request to the /datasource/name
endpoint retrieves details of a specific data source.
name | type | description |
---|---|---|
name | path | A data source name string. |
media type | data type | description |
---|---|---|
application/json | DataSource (JSON) | The DataSource object in JSON format. |
GET /v2/datasource/name/{name}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
{
"hiveUrl" : "...",
"agentLocalUrl" : "...",
"jdbcUrl" : "...",
"sourceType" : "...",
"useWebHdfs" : true,
"agentName" : "...",
"configured" : true,
"webHdfsUri" : "...",
"rootResourceKey" : "...",
"permittedToRead" : true,
"skipConnectionTest" : true,
"hdfsUri" : "...",
"driverClass" : "...",
"name" : "...",
"agentKey" : "...",
"attributes" : {
"property1" : { },
"property2" : { }
},
"sourcePath" : "...",
"jdbcPassword" : "...",
"jdbcUsername" : "...",
"timeOfLastChange" : 12345,
"timeOfCreation" : 12345,
"key" : "...",
"description" : "...",
"type" : "...",
"restricted" : [ "...", "..." ],
"viewAble" : [ "...", "..." ],
"updateable" : [ "...", "..." ],
"richDescription" : "...",
"score" : 12345.0,
"customProperties" : [ {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
}, {
"description" : "...",
"value" : { },
"facetAble" : true,
"name" : "...",
"type" : "...",
"displayName" : "..."
} ]
}
name | type | description |
---|---|---|
key | path |
media type | data type | description |
---|---|---|
application/json | object (JSON) |
DELETE /v2/datasource/sync/{key}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 204 No Content
Content-Type: application/json
...
name | type | description |
---|---|---|
user | path |
media type | data type | description |
---|---|---|
application/json | map of Credentials (JSON) |
GET /v2/datasource/credentials/users/{user}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
{
"..." : {
"username" : "...",
"password" : "..."
}
}
name | type | description |
---|---|---|
key | path | |
user | path |
media type | data type | description |
---|---|---|
application/json | Credential (JSON) |
DELETE /v2/datasource/{key}/credentials/users/{user}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 204 No Content
Content-Type: application/json
{
"principal" : {
"name" : "..."
},
"secret" : { }
}
name | type | description |
---|---|---|
key | path | |
user | path |
media type | data type |
---|---|
application/json | Credentials (JSON) |
POST /v2/datasource/{key}/credentials/users/{user}
Content-Type: application/json
{
"username" : "...",
"password" : "..."
}
HTTP/1.1 201 Created
name | type | description |
---|---|---|
key | path | |
user | path |
media type | data type |
---|---|
application/json | Credentials (JSON) |
PUT /v2/datasource/{key}/credentials/users/{user}
Content-Type: application/json
{
"username" : "...",
"password" : "..."
}
HTTP/1.1 204 No Content