blob: 78a8f29892ba8293595fbe78959c3213af290b90 [file] [log] [blame]
{
"info": {
"_postman_id": "b07b47aa-5a8c-4be5-bbc3-0fd98040ee92",
"name": "Membrane",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Get swagger file",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"title is Apache MetaModel Membrane\"] = jsonData.info.title === \"Apache MetaModel Membrane\";"
]
}
}
],
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/swagger.json",
"host": [
"{{baseUrl}}"
],
"path": [
"swagger.json"
]
}
},
"response": []
},
{
"name": "Create my-tenant",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"var isTenant = jsonData.type === \"tenant\";",
"tests[\"type is tenant\"] = isTenant;",
"",
"if (isTenant) {",
" postman.setGlobalVariable(\"membrane_tenant\", jsonData.name);",
"}",
""
]
}
}
],
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \n}"
},
"url": {
"raw": "{{baseUrl}}/my-tenant",
"host": [
"{{baseUrl}}"
],
"path": [
"my-tenant"
]
}
},
"response": []
},
{
"name": "Get tenant info",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is tenant\"] = jsonData.type === \"tenant\";"
]
}
}
],
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}"
]
}
},
"response": []
},
{
"name": "Create data source - postgres",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is datasource\"] = jsonData.type === \"datasource\";",
"tests[\"is updateable\"] = jsonData.updateable;",
"",
"postman.setGlobalVariable(\"membrane_data_source\", jsonData.name);",
""
]
}
}
],
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"type\":\"jdbc\",\n \"url\": \"jdbc:postgresql://example-postgres/membrane\",\n \"username\": \"membrane\",\n \"password\": \"secret\"\n}"
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/example-postgres",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"example-postgres"
]
}
},
"response": []
},
{
"name": "Create data source - couchdb",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is datasource\"] = jsonData.type === \"datasource\";",
"tests[\"is updateable\"] = jsonData.updateable;",
"",
"postman.setGlobalVariable(\"membrane_data_source\", jsonData.name);",
""
]
}
}
],
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"type\":\"couchdb\",\n \"hostname\": \"example-couchdb\",\n \"username\": \"membrane\",\n \"password\": \"secret\"\n}"
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/example-couchdb",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"example-couchdb"
]
}
},
"response": []
},
{
"name": "Create data source - pojo",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is datasource\"] = jsonData.type === \"datasource\";",
"tests[\"is updateable\"] = jsonData.updateable;",
"",
"postman.setGlobalVariable(\"membrane_data_source\", jsonData.name);",
"postman.setGlobalVariable(\"membrane_schema\", \"Schema\");",
"postman.setGlobalVariable(\"membrane_table\", \"foo\");",
""
]
}
}
],
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"type\":\"pojo\",\n \"table-defs\":\"hello_world (greeting VARCHAR, who VARCHAR); foo (bar INTEGER, baz DATE);\"\n}"
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/example-pojo",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"example-pojo"
]
}
},
"response": []
},
{
"name": "Get data source info",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is datasource\"] = jsonData.type === \"datasource\";",
"",
"// find the first non-information schema",
"var schemas = jsonData.schemas;",
"for (var i=0; i<schemas.length; i++) {",
" if (schemas[i].name !== \"information_schema\") {",
" postman.setGlobalVariable(\"membrane_schema\", schemas[i].name);",
" break;",
" }",
"}",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}"
]
}
},
"response": []
},
{
"name": "Get schema info",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is schema\"] = jsonData.type === \"schema\";",
"",
"// find the first non-information schema",
"var tables = jsonData.tables;",
"for (var i=0; i<tables.length; i++) {",
" postman.setGlobalVariable(\"membrane_table\", tables[i].name);",
" break;",
"}",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}/s/{{membrane_schema}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}",
"s",
"{{membrane_schema}}"
]
}
},
"response": []
},
{
"name": "Get table info",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is table\"] = jsonData.type === \"table\";",
"",
"// find the first non-information schema",
"var columns = jsonData.columns;",
"for (var i=0; i<columns.length; i++) {",
" postman.setGlobalVariable(\"membrane_column\", columns[i].name);",
" break;",
"}",
"",
"postman.setGlobalVariable(\"membrane_column_count\", columns.length);",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}/s/{{membrane_schema}}/t/{{membrane_table}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}",
"s",
"{{membrane_schema}}",
"t",
"{{membrane_table}}"
]
}
},
"response": []
},
{
"name": "Add table data",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"status is ok\"] = jsonData.status === \"ok\";",
""
]
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"insert\": [\n\t\t{\n\t\t\t\"bar\": 42,\n\t\t\t\"baz\": null\n\t\t}\n\t]\n}"
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}/s/{{membrane_schema}}/t/{{membrane_table}}/d",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}",
"s",
"{{membrane_schema}}",
"t",
"{{membrane_table}}",
"d"
]
}
},
"response": []
},
{
"name": "Get table data",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is dataset\"] = jsonData.type === \"dataset\";",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}/s/{{membrane_schema}}/t/{{membrane_table}}/d",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}",
"s",
"{{membrane_schema}}",
"t",
"{{membrane_table}}",
"d"
]
}
},
"response": []
},
{
"name": "Query table data",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is dataset\"] = jsonData.type === \"dataset\";",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}/q?sql=SELECT * FROM {{membrane_table}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}",
"q"
],
"query": [
{
"key": "sql",
"value": "SELECT * FROM {{membrane_table}}"
}
]
}
},
"response": []
},
{
"name": "Get column info",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is column\"] = jsonData.type === \"column\";",
""
]
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}/s/{{membrane_schema}}/t/{{membrane_table}}/c/{{membrane_column}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}",
"s",
"{{membrane_schema}}",
"t",
"{{membrane_table}}",
"c",
"{{membrane_column}}"
]
}
},
"response": []
},
{
"name": "Create data source - federated",
"event": [
{
"listen": "test",
"script": {
"id": "9d1f41d7-12f9-44b0-8730-6e869b22e7d2",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is datasource\"] = jsonData.type === \"datasource\";",
"tests[\"is NOT updateable\"] = !jsonData.updateable;",
"",
"tests[\"has > 3 schemas\"] = jsonData.schemas.length > 3;"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"type\": \"federated\",\n \"datasources\": [\n \"example-pojo\",\n \"example-couchdb\",\n \"example-postgres\"\n ]\n}"
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/example-federated",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"example-federated"
]
}
},
"response": []
},
{
"name": "Query federated datasource",
"event": [
{
"listen": "test",
"script": {
"id": "689cf505-4bca-49b1-95a6-a861b026e31b",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is dataset\"] = jsonData.type === \"dataset\";",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/example-federated/q?sql=SELECT * FROM {{membrane_schema}}.{{membrane_table}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"example-federated",
"q"
],
"query": [
{
"key": "sql",
"value": "SELECT * FROM {{membrane_schema}}.{{membrane_table}}"
}
]
}
},
"response": []
},
{
"name": "Delete data source",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is datasource\"] = jsonData.type === \"datasource\";",
"tests[\"deleted is true\"] = jsonData.deleted;",
""
]
}
}
],
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}/{{membrane_data_source}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}",
"{{membrane_data_source}}"
]
}
},
"response": []
},
{
"name": "Delete tenant",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var jsonData = JSON.parse(responseBody);",
"tests[\"type is tenant\"] = jsonData.type === \"tenant\";",
"tests[\"deleted is true\"] = jsonData.deleted;",
""
]
}
}
],
"request": {
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{baseUrl}}/{{membrane_tenant}}",
"host": [
"{{baseUrl}}"
],
"path": [
"{{membrane_tenant}}"
]
}
},
"response": []
}
]
}