Have manitu install an application
Installs an application (WordPress, Joomla, Nextcloud ...) into a website or a folder.
manitu_webhosting_web_application_installation_create on https://mcp.manitu.de/mcpAnnotations as tools/list sends them
Description for the model
Has manitu install an application into a web hosting package of the manitu customer account this connection works in, by its site_id from manitu_webhosting_list: application.type (and version, default the newest) from manitu_webhosting_web_application_catalog_list, into a website (fqdn, type website showing a folder - its folder) or a folder (directory); an application that needs a database gets one of the package (database_id, see manitu_webhosting_web_database_list; table_prefix defaults to the application's). The folder must be empty unless overwrite is true - then files there are replaced. It runs in the background: follow it with manitu_workflow_get and its workflow_token. Where manitu sets it up right away, admin holds the administrator: login name and mail address; the password is withheld here - the customer sets his own with the application's "password forgotten". Show the notes from the catalog first. Refused with E2002 per field (not_offered, not_found, not_a_website_with_folder, directory_not_empty, required, server_type_not_supported ...) or a conflict when an installation is running (workflow_running), the package has no application installation (feature_not_in_package) or cannot be changed now (not_configurable). Tell the customer what goes where and ask for an explicit yes first.
Provide at least one of: fqdn, directory.
Arguments
site_idinteger | stringrequiredThe site_id from manitu_webhosting_list - never guess one.
applicationobjectrequiredapplication.typestringrequiredFrom manitu_webhosting_web_application_catalog_list, e.g. wordpress.
application.versionstringA version on offer; default: the newest.
fqdnstringThe website to install into (its folder), from manitu_webhosting_web_vhost_list. Not together with directory.
directorystringA folder of the package to install into, e.g. /web/blog - for a website that does not exist yet. Not together with fqdn.
overwritebooleanReplace files already in the folder (default false: the folder must be empty).
database_idintegerFor an application that needs a database: one of the package, of a server type the catalog names.
table_prefixstringPrefix of its tables - letters, digits, underscores, starting with a letter; default the application's (the catalog's table_prefix_default).
Result structuredContent, checked against the schema
workflowstring | nullrequiredWhat is being done, e.g. power_reboot or ngcobalt_site_web_database_copy.
workflow_idstring | nullrequiredThe id of this run, as vserver/workflow/list names it; null for a workflow not kept as tasks.
statusstringrequiredpending: 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.
created_atstring | nullrequiredWhen it was asked for.
started_atstring | nullrequiredWhen it started; null while pending, and for a workflow that does not record it.
ended_atstring | nullrequiredWhen it finished; null until then.
updated_atstring | nullrequiredWhen it last changed.
workflow_tokenstring | nullrequiredPass 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.
applicationobjectrequiredapplication.typestringrequiredapplication.versionstringrequireddirectorystringrequiredThe folder it goes into, relative to the package.
adminobject | nullrequiredThe administrator manitu sets up; null: the customer finishes the setup in the browser (is_configured_right_away false in the catalog).
admin.usernamestringrequiredThe administrator's login name.
admin.passwordstring | nullrequiredHis password - a secret; null where it is withheld (secrets_withheld): the customer then sets his own with the application's "password forgotten" and mail_address.
admin.mail_addressstringrequiredThe administrator's mail address - the account user's.
secrets_withheldbooleanrequiredThe password is left out here (an answer to an agent).
Authentication
One of X-API-Key, Authorization: Bearer … - never more than one in a request. More
Request body JSON; unknown fields are refused
site_idinteger | stringrequiredThe site_id from manitu_webhosting_list - never guess one.
applicationobjectrequiredapplication.typestringrequiredFrom manitu_webhosting_web_application_catalog_list, e.g. wordpress.
application.versionstringA version on offer; default: the newest.
fqdnstringThe website to install into (its folder), from manitu_webhosting_web_vhost_list. Not together with directory.
directorystringA folder of the package to install into, e.g. /web/blog - for a website that does not exist yet. Not together with fqdn.
overwritebooleanReplace files already in the folder (default false: the folder must be empty).
database_idintegerFor an application that needs a database: one of the package, of a server type the catalog names.
table_prefixstringPrefix of its tables - letters, digits, underscores, starting with a letter; default the application's (the catalog's table_prefix_default).
Response in data; the rest of the body as on every call
workflowstring | nullrequiredWhat is being done, e.g. power_reboot or ngcobalt_site_web_database_copy.
workflow_idstring | nullrequiredThe id of this run, as vserver/workflow/list names it; null for a workflow not kept as tasks.
statusstringrequiredpending: 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.
created_atstring | nullrequiredWhen it was asked for.
started_atstring | nullrequiredWhen it started; null while pending, and for a workflow that does not record it.
ended_atstring | nullrequiredWhen it finished; null until then.
updated_atstring | nullrequiredWhen it last changed.
workflow_tokenstring | nullrequiredPass 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.
applicationobjectrequiredapplication.typestringrequiredapplication.versionstringrequireddirectorystringrequiredThe folder it goes into, relative to the package.
adminobject | nullrequiredThe administrator manitu sets up; null: the customer finishes the setup in the browser (is_configured_right_away false in the catalog).
admin.usernamestringrequiredThe administrator's login name.
admin.passwordstring | nullrequiredHis password - a secret; null where it is withheld (secrets_withheld): the customer then sets his own with the application's "password forgotten" and mail_address.
admin.mail_addressstringrequiredThe administrator's mail address - the account user's.
secrets_withheldbooleanrequiredThe password is left out here (an answer to an agent).
Statuses
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.