I have seen a similar question asked but I’m not entirely sure it’s the same problem.
We are creating a local Dremio instance and have a Nessie catalog of iceberg tables (over MinIO). I’ve got a dremio account up and running on container creation with the script:
curl 'http://dremio:9047/apiv2/bootstrap/firstuser' -X PUT
-H 'Authorization: _dremionull' -H 'Content-Type: application/json'
--data-binary '{"userName":"dremio","firstName":"dremio","lastName":"asdfg","email":"[email protected]","createdAt":1526186430755,"password":"dremio4test"}'
exit 0
which correctly instantiates a user. Now, if I acess the dremio web app at localhost:9047 I can configure a Nessie source using the wizard no problem.
However, when I try to use the POST method (we are using Python requests library for this), we get a 400 error. Basically we do a login call to “http://localhost:9047/apiv2/login” which succeeds, then a call to “http://localhost:9047/api/v3/source” with the json:
{
"name": "nessienessie",
"config": {
"nessieEndpoint": "http://nessie:19120/api/v2",
"nessieAuthType": "NONE",
"credentialType": "ACCESS_KEY",
"awsAccessKey": "nessie",
"awsAccessSecret": "nessiepwd",
"awsRootPath": "warehouse/",
"propertyList": [
{"name": "fs.s3a.path.style.access", "value": "true"},
{"name": "fs.s3a.endpoint", "value": "minio:9000"},
{"name": "dremio.s3.compat", "value": "true"},
],
"secure": "false",
},
"type": "S3",
}
This complains about the “nessieEndpoint” parameter not being valid.
The minio account “nessie” is valid and exists.
Note this is all in a docker-compose setup with all the services inside a network.
I’m at my wits end…