API extensions¶
The changes below were introduced to the Incus API after the 1.0 API was finalized.
They are all backward compatible and can be detected by client tools by
looking at the api_extensions field in GET /1.0.
storage_zfs_remove_snapshots¶
A storage.zfs_remove_snapshots daemon configuration key was introduced.
It’s a Boolean that defaults to false and that when set to true instructs Incus
to remove any needed snapshot when attempting to restore another.
This is needed as ZFS will only let you restore the latest snapshot.
container_host_shutdown_timeout¶
A boot.host_shutdown_timeout container configuration key was introduced.
It’s an integer which indicates how long Incus should wait for the container to stop before killing it.
Its value is only used on clean Incus daemon shutdown. It defaults to 30s.
container_stop_priority¶
A boot.stop.priority container configuration key was introduced.
It’s an integer which indicates the priority of a container during shutdown.
Containers will shutdown starting with the highest priority level.
Containers with the same priority will shutdown in parallel. It defaults to 0.
container_syscall_filtering¶
A number of new syscalls related container configuration keys were introduced.
security.syscalls.blacklist_defaultsecurity.syscalls.blacklist_compatsecurity.syscalls.blacklistsecurity.syscalls.whitelist
See Instance configuration for how to use them.
auth_pki¶
This indicates support for PKI authentication mode.
In this mode, the client and server both must use certificates issued by the same PKI.
See Security for details.
container_last_used_at¶
A last_used_at field was added to the GET /1.0/containers/<name> endpoint.
It is a timestamp of the last time the container was started.
If a container has been created but not started yet, last_used_at field
will be 1970-01-01T00:00:00Z
etag¶
Add support for the ETag header on all relevant endpoints.
This adds the following HTTP header on answers to GET:
ETag (SHA-256 of user modifiable content)
And adds support for the following HTTP header on PUT requests:
If-Match (ETag value retrieved through previous GET)
This makes it possible to GET an Incus object, modify it and PUT it without risking to hit a race condition where Incus or another client modified the object in the meantime.
patch¶
Add support for the HTTP PATCH method.
PATCH allows for partial update of an object in place of PUT.
usb_devices¶
Add support for USB hotplug.
https_allowed_credentials¶
To use Incus API with all Web Browsers (via SPAs) you must send credentials
(certificate) with each XHR (in order for this to happen, you should set
withCredentials=true
flag to each XHR Request).
Some browsers like Firefox and Safari can’t accept server response without
Access-Control-Allow-Credentials: true header. To ensure that the server will
return a response with that header, set core.https_allowed_credentials=true.
image_compression_algorithm¶
This adds support for a compression_algorithm property when creating an image (POST /1.0/images).
Setting this property overrides the server default value (images.compression_algorithm).
directory_manipulation¶
This allows for creating and listing directories via the Incus API, and exports
the file type via the X-Incus-type header, which can be either file or
directory right now.