- Home
- Integration and extensions
- Drivers
- Custom Drivers
- Register Custom Drivers
-
- Overview
-
- Overview
- Deploy your Application
- Manage your Java application
- Migrate an Application
- Provision Amazon S3 Buckets
- Deploy an Amazon S3 Resource to production
- Scaffold a new Workload and create staging and prod Environments
- Update Resource Definitions for related Applications
- Use existing Terraform modules
- Provision a Redis cluster on AWS using Terraform
- Perform daily developer activities (debug, rollback, diffs, logs)
- Deploy ephemeral Environments
-
-
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.