- Home
- Integration and extensions
- Drivers
- Custom Drivers
- Register Custom Drivers
Register Custom Drivers
On this page
A custom Driver is essentially a simple API service. Therefore, you need to notify Humanitec about how to consume it.
Notify Humanitec about the type of Driver, the types of account credentials supported, the Driver-specific input parameters (as a JSON Schema), whether to make the Driver publicly available, the URL that it can be accessed from, and give it an id
.
Custom Driver example #
Set the following environment variables for the CLI and API commands:
Variable | Example | Description |
---|---|---|
HUMANITEC_TOKEN |
my-token |
The authentication token for accessing the Humanitec API. |
HUMANITEC_ORG |
my-org-id |
The unique identifier for the organization in Humanitec. |
The CLI and API examples expect a Driver schema file in my_driver_schema.json
.
Register a custom driver:
humctl api post /orgs/${HUMANITEC_ORG}/resources/drivers \
-d '{
"id": "demo-driver",
"type": "s3",
"account_types": [
"aws"
],
"inputs_schema": '"$(cat my_driver_schema.json)"',
"is_public": false,
"target": "https://drivers.example.com/s3/"
}'
Update a custom driver:
export DRIVER_ID="demo-driver"
humctl api put /orgs/${HUMANITEC_ORG}/resources/drivers/${DRIVER_ID} \
-d '{
"type": "s3",
"account_types": [
"aws"
],
"inputs_schema": '"$(cat my_driver_schema.json)"',
"is_public": false,
"target": "https://drivers.example.com/s3/"
}'
Register a custom driver:
curl -X POST https://api.humanitec.io/orgs/${HUMANITEC_ORG}/resources/drivers \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${HUMANITEC_TOKEN}" \
-d @- <<EOF
{
"id": "demo-driver",
"type": "s3",
"account_types": [
"aws"
],
"inputs_schema": $(cat my_driver_schema.json),
"is_public": false,
"target": "https://drivers.example.com/s3/"
}
EOF
Update a custom driver:
export DRIVER_ID="demo-driver"
curl -X PUT https://api.humanitec.io/orgs/${HUMANITEC_ORG}/resources/drivers/${DRIVER_ID} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${HUMANITEC_TOKEN}" \
-d @- <<EOF
{
"type": "s3",
"account_types": [
"aws"
],
"inputs_schema": $(cat my_driver_schema.json),
"is_public": false,
"target": "https://drivers.example.com/s3/"
}
EOF
Use the humanitec_resource_driver
Resource of the Humanitec Terraform Provider to manage custom drivers. An example usage can be found in the
provider documentation
.