Set owners and modes of files of a web hosting package

Sets who owns the files and folders in a folder, and what others may do with them.

WWriteIdempotentbetaNeeds service_webhosting
Tool
manitu_webhosting_web_permission_seton https://mcp.manitu.de/mcp
POST
/v1/webhosting/web/permission/seton https://api.manitu.de
Try it
Changes the account. Agents say what will happen and wait for an explicit yes before calling it.
readOnlyHint falsedestructiveHint falseidempotentHint trueopenWorldHint false

Sets owners and modes of the files and folders in a folder of a web hosting package of the manitu customer account this connection works in, by its site_id from manitu_webhosting_list - the usual cure when PHP cannot write somewhere, or files were uploaded with the wrong owner: owner.user webserver (what PHP runs as) or user (an FTP or SSH user of the package, owner.username), owner.group webserver, mode.files and mode.folders optimal (owner and group may read and write, others nothing); keep leaves that part as it is. recursive (default true) includes every folder below. It runs in the background: follow it with manitu_workflow_get and its workflow_token. Refused with E2002 per field (directory_not_found, directory_has_symlink - it never follows a symbolic link, name the real folder -, not_found, nothing_to_do ...) or a conflict when one is running (workflow_running) or the package cannot be changed now (not_configurable). Tell the customer which folder and what changes, and ask for an explicit yes first.

site_idinteger | stringrequired

The site_id from manitu_webhosting_list - never guess one.

pattern ^[1-9][0-9]*$min 1
directorystringrequired

The folder, relative to the package, e.g. /web or /web/wp-content.

min length 1max length 255
recursiveboolean

Every folder below as well (default true).

ownerobject
owner.userstring

keep (default), webserver or user.

One of keep webserver user
owner.usernamestring

For user user: an FTP or SSH user of the package (ftp..., ssh...).

min length 1max length 64
owner.groupstring

keep (default) or webserver.

One of keep webserver
modeobject
mode.filesstring

keep (default) or optimal.

One of keep optimal
mode.foldersstring

keep (default) or optimal.

One of keep optimal
workflowstring | nullrequired

What is being done, e.g. power_reboot or ngcobalt_site_web_database_copy.

One of create destroy power_start power_stop power_reboot reinstall ptr_set vnc_enable vnc_disable rescuesystem_enable rescuesystem_disable snapshot_create snapshot_delete snapshot_delete_all snapshot_revert telemetry_await iso_eject none account_contract_termination_finish ngcobalt_site_web_application_installation_set ngcobalt_site_web_application_installation_update ngcobalt_site_web_permission_set ngcobalt_site_web_database_copy network_librenms_discover null
workflow_idstring | nullrequired

The id of this run, as vserver/workflow/list names it; null for a workflow not kept as tasks.

statusstringrequired

pending: waiting to start; running: started, not finished (can take a while); done: finished, everything went through; error: finished, but it or part of it failed.

One of pending running done error
created_atstring | nullrequired

When it was asked for.

Format date-time
started_atstring | nullrequired

When it started; null while pending, and for a workflow that does not record it.

Format date-time
ended_atstring | nullrequired

When it finished; null until then.

Format date-time
updated_atstring | nullrequired

When it last changed.

Format date-time
workflow_tokenstring | nullrequired

Pass it to manitu_workflow_get to see how far the workflow is - as it is, never built or changed. A secret of this workflow: do not show it to anyone. null if there is none.

directorystringrequired

The folder, as the backend took it.

One of X-API-Key, Authorization: Bearer … - never more than one in a request. More

site_idinteger | stringrequired

The site_id from manitu_webhosting_list - never guess one.

pattern ^[1-9][0-9]*$min 1
directorystringrequired

The folder, relative to the package, e.g. /web or /web/wp-content.

min length 1max length 255
recursiveboolean

Every folder below as well (default true).

ownerobject
owner.userstring

keep (default), webserver or user.

One of keep webserver user
owner.usernamestring

For user user: an FTP or SSH user of the package (ftp..., ssh...).

min length 1max length 64
owner.groupstring

keep (default) or webserver.

One of keep webserver
modeobject
mode.filesstring

keep (default) or optimal.

One of keep optimal
mode.foldersstring

keep (default) or optimal.

One of keep optimal
workflowstring | nullrequired

What is being done, e.g. power_reboot or ngcobalt_site_web_database_copy.

One of create destroy power_start power_stop power_reboot reinstall ptr_set vnc_enable vnc_disable rescuesystem_enable rescuesystem_disable snapshot_create snapshot_delete snapshot_delete_all snapshot_revert telemetry_await iso_eject none account_contract_termination_finish ngcobalt_site_web_application_installation_set ngcobalt_site_web_application_installation_update ngcobalt_site_web_permission_set ngcobalt_site_web_database_copy network_librenms_discover null
workflow_idstring | nullrequired

The id of this run, as vserver/workflow/list names it; null for a workflow not kept as tasks.

statusstringrequired

pending: waiting to start; running: started, not finished (can take a while); done: finished, everything went through; error: finished, but it or part of it failed.

One of pending running done error
created_atstring | nullrequired

When it was asked for.

Format date-time
started_atstring | nullrequired

When it started; null while pending, and for a workflow that does not record it.

Format date-time
ended_atstring | nullrequired

When it finished; null until then.

Format date-time
updated_atstring | nullrequired

When it last changed.

Format date-time
workflow_tokenstring | nullrequired

Pass it to manitu_workflow_get to see how far the workflow is - as it is, never built or changed. A secret of this workflow: do not show it to anyone. null if there is none.

directorystringrequired

The folder, as the backend took it.

200Success.400The request does not match the declared input schema.401No credential was presented, or it was not recognised.403The credential is not permitted to use this operation.500The server failed. Nothing about the request was wrong. Whether a change took effect is not known - check before trying it again.503The channel this operation forwards through is unavailable.