- RelationContract gains Kind (empty is belongsToMany) and ForeignKey, with kind-aware boot checks
- manage.form, view.form and pivot.form compile against the related or pivot model; $/ paths resolve inside the plugin
- view toolbarButtons accept create|update|delete|link|unlink, each the capability of its routes
- POST .../relations/{name}/records creates a child through the manage form; the server sets the hasMany key
- relation schema carries kind, deferrable and the localized forms; 17 new relation message keys in en and pl
5467 lines
200 KiB
JSON
5467 lines
200 KiB
JSON
{
|
|
"components": {
|
|
"schemas": {
|
|
"cabana.AdminActionRequest": {
|
|
"properties": {
|
|
"record_id": {
|
|
"type": "integer"
|
|
},
|
|
"values": {
|
|
"additionalProperties": {},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminActionResult": {
|
|
"properties": {
|
|
"fill": {
|
|
"additionalProperties": {},
|
|
"type": "object"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"fill",
|
|
"message"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminFileCaptionRequest": {
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminIDsRequest": {
|
|
"properties": {
|
|
"ids": {
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"ids"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminLoginData": {
|
|
"properties": {
|
|
"access_token": {
|
|
"type": "string"
|
|
},
|
|
"expires_in": {
|
|
"type": "integer"
|
|
},
|
|
"token_type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"token_type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminLoginRequest": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"login": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"password"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminLogoutData": {
|
|
"properties": {
|
|
"status": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"status"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminProfile": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"first_name": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"is_superuser": {
|
|
"type": "boolean"
|
|
},
|
|
"last_name": {
|
|
"type": "string"
|
|
},
|
|
"login": {
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"$ref": "#/components/schemas/cabana.AdminRoleSummary"
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"first_name",
|
|
"id",
|
|
"is_superuser",
|
|
"last_name",
|
|
"login"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminRecord": {
|
|
"additionalProperties": {},
|
|
"type": "object"
|
|
},
|
|
"cabana.AdminRoleSummary": {
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"id",
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.BulkAction": {
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.BulkResult": {
|
|
"properties": {
|
|
"deleted": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"deleted"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ControllerAssets": {
|
|
"properties": {
|
|
"scripts": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"styles": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"scripts",
|
|
"styles"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-array_cabana_FileItem": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FileItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-array_cabana_FilterOption": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FilterOption"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-array_cabana_NavigationEntry": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.NavigationEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-array_cabana_SettingsEntry": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.SettingsEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_AdminActionResult": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.AdminActionResult"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_AdminLoginData": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.AdminLoginData"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_AdminLogoutData": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.AdminLogoutData"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_AdminProfile": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.AdminProfile"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_BulkResult": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.BulkResult"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_FileItem": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.FileItem"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_FileMutationResult": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.FileMutationResult"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_FormView": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.FormView"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_LangBundle": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.LangBundle"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_ListSchema": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.ListSchema"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_PartialView": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.PartialView"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_RelationMutationResult": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.RelationMutationResult"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_RelationSchema": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.RelationSchema"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.Envelope-cabana_SettingsResult": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.SettingsResult"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.SuccessMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ErrorBody": {
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"additionalProperties": {},
|
|
"type": "object"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"details",
|
|
"message"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ErrorEnvelope": {
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/components/schemas/cabana.ErrorBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"error"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FileItem": {
|
|
"properties": {
|
|
"content_type": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"file_name": {
|
|
"type": "string"
|
|
},
|
|
"file_size": {
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"pending": {
|
|
"type": "boolean"
|
|
},
|
|
"sort_order": {
|
|
"type": "integer"
|
|
},
|
|
"thumb_url": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"content_type",
|
|
"created_at",
|
|
"description",
|
|
"file_name",
|
|
"file_size",
|
|
"id",
|
|
"pending",
|
|
"sort_order",
|
|
"title"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FileMutationResult": {
|
|
"properties": {
|
|
"removed": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"removed"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FilterOption": {
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FormField": {
|
|
"properties": {
|
|
"action": {
|
|
"description": "Action names the controller action the widget runs (pact.HasAdminActions).",
|
|
"type": "string"
|
|
},
|
|
"actionLabel": {
|
|
"description": "ActionLabel is the action's Label, localized per request.",
|
|
"type": "string"
|
|
},
|
|
"attributes": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/cabana.jsonScalar"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"comment": {
|
|
"type": "string"
|
|
},
|
|
"context": {
|
|
"$ref": "#/components/schemas/cabana.fieldContext"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/schemas/cabana.jsonScalar"
|
|
},
|
|
"deferrable": {
|
|
"description": "Deferrable is true on a relation-manager field whose relation can be\nmanaged before the record is first saved (RelationSchema.Deferrable):\nthe SPA shows it on the create screen.",
|
|
"type": "boolean"
|
|
},
|
|
"displayFormat": {
|
|
"type": "string"
|
|
},
|
|
"emptyOption": {
|
|
"type": "string"
|
|
},
|
|
"fileTypes": {
|
|
"description": "FileTypes are the allowed lower-case extensions of a fileupload field.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"fill": {
|
|
"description": "Fill lists the fields of the same form the action writes back (D-07).",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"firstDay": {
|
|
"description": "FirstDay is the first day of the week, 0 (Sunday) to 6.",
|
|
"type": "integer"
|
|
},
|
|
"format": {
|
|
"description": "Format is a datepicker's WinterCMS (PHP date) display format;\nDisplayFormat is the same format in the SPA's moment-style tokens.",
|
|
"type": "string"
|
|
},
|
|
"ignoreTimezone": {
|
|
"description": "IgnoreTimezone keeps a datetime's wall-clock value with no conversion.",
|
|
"type": "boolean"
|
|
},
|
|
"imageHeight": {
|
|
"type": "integer"
|
|
},
|
|
"imageWidth": {
|
|
"description": "ImageWidth and ImageHeight are the preview size of an image upload.",
|
|
"type": "integer"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"maxDate": {
|
|
"type": "string"
|
|
},
|
|
"maxFiles": {
|
|
"description": "MaxFiles caps the number of files of an attachMany field.",
|
|
"type": "integer"
|
|
},
|
|
"maxFilesize": {
|
|
"description": "MaxFilesize is the largest accepted file in megabytes.",
|
|
"type": "number"
|
|
},
|
|
"mimeTypes": {
|
|
"description": "MimeTypes are the allowed MIME patterns (or extensions) of a\nfileupload field.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"minDate": {
|
|
"description": "MinDate and MaxDate bound a datepicker's calendar date (YYYY-MM-DD),\nchecked again on save.",
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"description": "Mode is the fileupload mode (image or file, default file) or the\ndatepicker mode (date, datetime or time, default datetime).",
|
|
"type": "string"
|
|
},
|
|
"multiple": {
|
|
"type": "boolean"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"nameFrom": {
|
|
"type": "string"
|
|
},
|
|
"options": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FormOption"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"path": {
|
|
"description": "Path names the controller partial of a `type: partial` field: the\ntemplate {ConfigDir}/_{path}.htm (D-09).",
|
|
"type": "string"
|
|
},
|
|
"prompt": {
|
|
"description": "Prompt is the upload button text, localized per request.",
|
|
"type": "string"
|
|
},
|
|
"protected": {
|
|
"description": "Protected is true for a fileupload field whose relation is not\npublic: its files are served only through the admin file routes.",
|
|
"type": "boolean"
|
|
},
|
|
"readOnly": {
|
|
"type": "boolean"
|
|
},
|
|
"relation": {
|
|
"type": "string"
|
|
},
|
|
"required": {
|
|
"type": "boolean"
|
|
},
|
|
"size": {
|
|
"type": "string"
|
|
},
|
|
"span": {
|
|
"type": "string"
|
|
},
|
|
"tab": {
|
|
"type": "string"
|
|
},
|
|
"thumbOptions": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/cabana.ThumbOptions"
|
|
}
|
|
],
|
|
"description": "ThumbOptions carries the preview thumbnail mode."
|
|
},
|
|
"twelveHour": {
|
|
"description": "TwelveHour shows a 12-hour clock.",
|
|
"type": "boolean"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"useCaption": {
|
|
"description": "UseCaption lets the admin edit each file's title and description.",
|
|
"type": "boolean"
|
|
},
|
|
"widget": {
|
|
"description": "Widget is the custom-element tag of a `type: widget` field (D-06).",
|
|
"type": "string"
|
|
},
|
|
"yearRange": {
|
|
"description": "YearRange is [n] (years either side of today) or [from, to].",
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FormMessages": {
|
|
"properties": {
|
|
"create": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleteConfirm": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleted": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"saved": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"update": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
}
|
|
},
|
|
"required": [
|
|
"create",
|
|
"deleteConfirm",
|
|
"deleted",
|
|
"saved",
|
|
"update"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FormMeta": {
|
|
"properties": {
|
|
"locale": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"locale"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FormOption": {
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"$ref": "#/components/schemas/cabana.jsonScalar"
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FormRedirect": {
|
|
"properties": {
|
|
"redirect": {
|
|
"type": "string"
|
|
},
|
|
"redirectClose": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"redirect",
|
|
"redirectClose"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FormRedirects": {
|
|
"properties": {
|
|
"create": {
|
|
"$ref": "#/components/schemas/cabana.FormRedirect"
|
|
},
|
|
"default": {
|
|
"type": "string"
|
|
},
|
|
"update": {
|
|
"$ref": "#/components/schemas/cabana.FormRedirect"
|
|
}
|
|
},
|
|
"required": [
|
|
"create",
|
|
"default",
|
|
"update"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.FormView": {
|
|
"properties": {
|
|
"assets": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/cabana.ControllerAssets"
|
|
}
|
|
],
|
|
"description": "Assets are the controller's plugin JS and CSS URLs; a settings form\ncarries empty lists."
|
|
},
|
|
"fields": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FormField"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"messages": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/cabana.FormMessages"
|
|
}
|
|
],
|
|
"description": "Messages is the form's copy resolved in the request locale (D-13)."
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.FormMeta"
|
|
},
|
|
"modelClass": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"redirects": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/cabana.FormRedirects"
|
|
}
|
|
],
|
|
"description": "Redirects are the raw Winter config_form.yaml targets; the SPA maps\nthem onto its routes."
|
|
}
|
|
},
|
|
"required": [
|
|
"assets",
|
|
"fields",
|
|
"messages",
|
|
"meta",
|
|
"redirects"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.LangBundle": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"cabana.ListColumn": {
|
|
"properties": {
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"relation": {
|
|
"type": "string"
|
|
},
|
|
"searchable": {
|
|
"type": "boolean"
|
|
},
|
|
"select": {
|
|
"type": "string"
|
|
},
|
|
"sortable": {
|
|
"type": "boolean"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"label",
|
|
"searchable",
|
|
"sortable"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ListEnvelope-array_cabana_AdminRecord": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"additionalProperties": {},
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.ListMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ListEnvelope-array_cabana_RelationOption": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.RelationOption"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.ListMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ListFilter": {
|
|
"properties": {
|
|
"column": {
|
|
"type": "string"
|
|
},
|
|
"falseValue": {
|
|
"$ref": "#/components/schemas/cabana.jsonScalar"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"modelClass": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"nameFrom": {
|
|
"type": "string"
|
|
},
|
|
"options": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FormOption"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"scope": {
|
|
"type": "string"
|
|
},
|
|
"trueValue": {
|
|
"$ref": "#/components/schemas/cabana.jsonScalar"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ListMessages": {
|
|
"properties": {
|
|
"create": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleteConfirm": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleteSelected": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleted": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"empty": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"emptySearch": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"emptySearchHint": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"recordCount": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"searchPrompt": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"selected": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
}
|
|
},
|
|
"required": [
|
|
"create",
|
|
"deleteConfirm",
|
|
"deleteSelected",
|
|
"deleted",
|
|
"empty",
|
|
"emptySearch",
|
|
"emptySearchHint",
|
|
"recordCount",
|
|
"searchPrompt",
|
|
"selected"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ListMeta": {
|
|
"properties": {
|
|
"last_page": {
|
|
"type": "integer"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"per_page": {
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"last_page",
|
|
"page",
|
|
"per_page",
|
|
"total"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ListSchema": {
|
|
"properties": {
|
|
"assets": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/cabana.ControllerAssets"
|
|
}
|
|
],
|
|
"description": "Assets are the controller's plugin JS and CSS URLs (pact.AdminClientAssets)."
|
|
},
|
|
"bulkActions": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.BulkAction"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"columns": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.ListColumn"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"defaultSort": {
|
|
"$ref": "#/components/schemas/cabana.ListSort"
|
|
},
|
|
"filters": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.ListFilter"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"headerPartial": {
|
|
"description": "HeaderPartial names the controller partial rendered above the list\n(config_list.yaml headerPartial, D-11).",
|
|
"type": "string"
|
|
},
|
|
"messages": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/cabana.ListMessages"
|
|
}
|
|
],
|
|
"description": "Messages is the list's copy (D-13). The cached schema carries each\nphrase key as its own form; a response resolves them in its locale."
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.FormMeta"
|
|
},
|
|
"modelClass": {
|
|
"type": "string"
|
|
},
|
|
"noRecordsMessage": {
|
|
"type": "string"
|
|
},
|
|
"perPageOptions": {
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"recordUrl": {
|
|
"type": "string"
|
|
},
|
|
"recordsPerPage": {
|
|
"type": "integer"
|
|
},
|
|
"rowActions": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.RowAction"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"searchPrompt": {
|
|
"type": "string"
|
|
},
|
|
"searchTerm": {
|
|
"type": "string"
|
|
},
|
|
"showCheckboxes": {
|
|
"type": "boolean"
|
|
},
|
|
"showSearch": {
|
|
"type": "boolean"
|
|
},
|
|
"showSetup": {
|
|
"type": "boolean"
|
|
},
|
|
"showSorting": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"toolbarActions": {
|
|
"description": "ToolbarActions are the controller-registered toolbar.buttons entries\nthe requesting admin may run, in declared order, with their labels.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.ToolbarAction"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"toolbarButtons": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"assets",
|
|
"bulkActions",
|
|
"columns",
|
|
"filters",
|
|
"messages",
|
|
"perPageOptions",
|
|
"recordsPerPage",
|
|
"rowActions",
|
|
"searchTerm",
|
|
"showCheckboxes",
|
|
"showSearch",
|
|
"showSetup",
|
|
"showSorting",
|
|
"toolbarActions",
|
|
"toolbarButtons"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ListSort": {
|
|
"properties": {
|
|
"column": {
|
|
"type": "string"
|
|
},
|
|
"direction": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"column",
|
|
"direction"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.MessageForms": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"cabana.NavigationEntry": {
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"controller": {
|
|
"type": "string"
|
|
},
|
|
"icon": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"order": {
|
|
"type": "integer"
|
|
},
|
|
"sideMenu": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.NavigationEntry"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"controller",
|
|
"icon",
|
|
"label",
|
|
"order",
|
|
"sideMenu"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.PartialNode": {
|
|
"properties": {
|
|
"attrs": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"children": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.PartialNode"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"cabana.PartialView": {
|
|
"properties": {
|
|
"nodes": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.PartialNode"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"nodes"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RecordEnvelope": {
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/components/schemas/cabana.AdminRecord"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/cabana.RecordMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RecordMeta": {
|
|
"properties": {
|
|
"labels": {
|
|
"additionalProperties": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.RelationOption"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"labels"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RelationColumn": {
|
|
"properties": {
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"searchable": {
|
|
"type": "boolean"
|
|
},
|
|
"sortable": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"label",
|
|
"searchable",
|
|
"sortable"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RelationList": {
|
|
"properties": {
|
|
"columns": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.RelationColumn"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"columns"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RelationMessages": {
|
|
"properties": {
|
|
"candidateSearch": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"create": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"createSubmit": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"createTitle": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"created": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleteConfirm": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleteOneConfirm": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleteSelected": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"deleted": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"editPivot": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"empty": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"link": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"linkHint": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"linkSubmit": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"linked": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"pivotSaved": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"pivotSubmit": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"pivotTitle": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"previewTitle": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"unlinkConfirm": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"unlinkSelected": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"unlinked": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"updateSubmit": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"updateTitle": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
},
|
|
"updated": {
|
|
"$ref": "#/components/schemas/cabana.MessageForms"
|
|
}
|
|
},
|
|
"required": [
|
|
"candidateSearch",
|
|
"create",
|
|
"createSubmit",
|
|
"createTitle",
|
|
"created",
|
|
"deleteConfirm",
|
|
"deleteOneConfirm",
|
|
"deleteSelected",
|
|
"deleted",
|
|
"editPivot",
|
|
"empty",
|
|
"link",
|
|
"linkHint",
|
|
"linkSubmit",
|
|
"linked",
|
|
"pivotSaved",
|
|
"pivotSubmit",
|
|
"pivotTitle",
|
|
"previewTitle",
|
|
"unlinkConfirm",
|
|
"unlinkSelected",
|
|
"unlinked",
|
|
"updateSubmit",
|
|
"updateTitle",
|
|
"updated"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RelationMutationResult": {
|
|
"properties": {
|
|
"linked": {
|
|
"type": "integer"
|
|
},
|
|
"removed": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"cabana.RelationOption": {
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"value"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RelationPanel": {
|
|
"properties": {
|
|
"list": {
|
|
"$ref": "#/components/schemas/cabana.RelationList"
|
|
},
|
|
"showSearch": {
|
|
"type": "boolean"
|
|
},
|
|
"toolbarButtons": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"list",
|
|
"showSearch",
|
|
"toolbarButtons"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RelationSchema": {
|
|
"properties": {
|
|
"deferrable": {
|
|
"description": "Deferrable is true when the relation can be managed on a record that\nis not saved yet: always for belongsToMany, and for a hasMany whose\nForeignKey is nullable.",
|
|
"type": "boolean"
|
|
},
|
|
"kind": {
|
|
"description": "Kind is the contract kind: belongsToMany or hasMany.",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"manage": {
|
|
"$ref": "#/components/schemas/cabana.RelationPanel"
|
|
},
|
|
"manageForm": {
|
|
"description": "ManageForm is the child create and update form (manage.form, or the\ntop-level form); ViewForm is the read-only preview form (view.form,\nor the top-level form); PivotForm edits pivot columns of a\nbelongsToMany link (pivot.form). Each is omitted when not declared.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FormField"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"messages": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/cabana.RelationMessages"
|
|
}
|
|
],
|
|
"description": "Messages is the relation manager's copy (D-13); the cached schema\ncarries each phrase key as its own form."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"pivotForm": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FormField"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"view": {
|
|
"$ref": "#/components/schemas/cabana.RelationPanel"
|
|
},
|
|
"viewForm": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/cabana.FormField"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"deferrable",
|
|
"kind",
|
|
"label",
|
|
"manage",
|
|
"messages",
|
|
"name",
|
|
"view"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.RowAction": {
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.SettingsEntry": {
|
|
"properties": {
|
|
"category": {
|
|
"type": "string"
|
|
},
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"icon": {
|
|
"type": "string"
|
|
},
|
|
"keywords": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"type": "string"
|
|
},
|
|
"order": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"category",
|
|
"code",
|
|
"description",
|
|
"icon",
|
|
"keywords",
|
|
"label",
|
|
"model",
|
|
"order"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.SettingsResult": {
|
|
"properties": {
|
|
"data": {
|
|
"additionalProperties": {},
|
|
"type": "object"
|
|
},
|
|
"exists": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"exists"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.SuccessMeta": {
|
|
"properties": {
|
|
"last_page": {
|
|
"type": "integer"
|
|
},
|
|
"locale": {
|
|
"type": "string"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"per_page": {
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"cabana.ThumbOptions": {
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"mode"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.ToolbarAction": {
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"cabana.fieldContext": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
]
|
|
},
|
|
"cabana.jsonScalar": {
|
|
"nullable": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "boolean"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"BackendBearer": {
|
|
"description": "Backend admin bearer token. Send \"Bearer {access_token}\".",
|
|
"in": "header",
|
|
"name": "Authorization",
|
|
"type": "apiKey"
|
|
}
|
|
}
|
|
},
|
|
"info": {
|
|
"contact": {},
|
|
"description": "Framework admin API consumed by the embedded admin SPA. Every path is relative to {backend.uri}/api/v1 (for example /backend/api/v1). The SPA authenticates with the HttpOnly summer_admin cookie set by a login that sends X-Requested-With: XMLHttpRequest, and sends that header on every request; CLI clients and tests send the BackendBearer Authorization header instead.",
|
|
"title": "SummerCMS Admin API",
|
|
"version": "1"
|
|
},
|
|
"openapi": "3.0.3",
|
|
"paths": {
|
|
"/auth/login": {
|
|
"post": {
|
|
"parameters": [
|
|
{
|
|
"description": "XMLHttpRequest selects cookie transport",
|
|
"in": "header",
|
|
"name": "X-Requested-With",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminLoginRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "Credentials",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_AdminLoginData"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
}
|
|
},
|
|
"summary": "Admin login",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/auth/logout": {
|
|
"post": {
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_AdminLogoutData"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Admin logout",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/auth/me": {
|
|
"get": {
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_AdminProfile"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Current admin",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/auth/refresh": {
|
|
"post": {
|
|
"parameters": [
|
|
{
|
|
"description": "XMLHttpRequest; required unless a Bearer token is sent",
|
|
"in": "header",
|
|
"name": "X-Requested-With",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_AdminLoginData"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
}
|
|
},
|
|
"summary": "Refresh an admin token",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/lang": {
|
|
"get": {
|
|
"description": "Every backend::lang key as CLDR plural forms for the Accept-Language locale, over the fallback locale's keys. Public: the login screen loads it before signing in. meta.locale is the locale the bundle resolved to.",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_LangBundle"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
}
|
|
},
|
|
"summary": "Admin UI strings",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/navigation": {
|
|
"get": {
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-array_cabana_NavigationEntry"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Admin navigation",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/settings": {
|
|
"get": {
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-array_cabana_SettingsEntry"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "List admin settings",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/settings/{code}": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Settings code",
|
|
"in": "path",
|
|
"name": "code",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_SettingsResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Read admin settings",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
},
|
|
"put": {
|
|
"parameters": [
|
|
{
|
|
"description": "Settings code",
|
|
"in": "path",
|
|
"name": "code",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminRecord"
|
|
}
|
|
}
|
|
},
|
|
"description": "Setting values keyed by field name",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_SettingsResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Update admin settings",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/settings/{code}/schema": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Settings code",
|
|
"in": "path",
|
|
"name": "code",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_FormView"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Admin settings schema",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Search term",
|
|
"in": "query",
|
|
"name": "search",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort column",
|
|
"in": "query",
|
|
"name": "sort",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort direction (asc or desc)",
|
|
"in": "query",
|
|
"name": "dir",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page",
|
|
"in": "query",
|
|
"name": "page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Records per page",
|
|
"in": "query",
|
|
"name": "per_page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter values keyed by filter name, sent as filter[\u003cname\u003e]=\u003cvalue\u003e",
|
|
"explode": true,
|
|
"in": "query",
|
|
"name": "filter",
|
|
"schema": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"style": "deepObject"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ListEnvelope-array_cabana_AdminRecord"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "List admin records",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Relation fields are sent by field name with ids ({\"genre\": 3, \"artists\": [4, 9]}); the response carries the same shape plus meta.labels.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key: the save attaches the files uploaded under it",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminRecord"
|
|
}
|
|
}
|
|
},
|
|
"description": "Field values keyed by field name; relation fields carry ids",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.RecordEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Created"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Create an admin record",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/bulk-delete": {
|
|
"post": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminIDsRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "Record ids",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_BulkResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"409": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Conflict"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Bulk-delete admin records",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/fields/{field}/options": {
|
|
"get": {
|
|
"description": "Choices for a writable `type: relation` field: value is the related id, label its nameFrom column. Read-only and non-relation fields answer 404.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Relation field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Case-insensitive label search",
|
|
"in": "query",
|
|
"name": "search",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page",
|
|
"in": "query",
|
|
"name": "page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Options per page (1-100, default 20)",
|
|
"in": "query",
|
|
"name": "per_page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ListEnvelope-array_cabana_RelationOption"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Relation field options",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/filters/{scope}/options": {
|
|
"get": {
|
|
"description": "Choices of a declared scope filter of the controller's list, from the model's FilterOptions. {scope} is the filter name used as filter[\u003cscope\u003e]; labels are localized.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter name",
|
|
"in": "path",
|
|
"name": "scope",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-array_cabana_FilterOption"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Filter scope options",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/partials/{name}": {
|
|
"get": {
|
|
"description": "Renders a declared header partial or form partial with html/template against the controller's view model and returns it as an allowlisted node tree: no HTML string. Without id the view model gets no record; id is accepted only for form partials and is loaded through the controller's form scope.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Partial name",
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Record id for a form partial",
|
|
"in": "query",
|
|
"name": "id",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_PartialView"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Render a controller partial",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/schema/form": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_FormView"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Admin form schema",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/schema/list": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_ListSchema"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Admin list schema",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/schema/relation/{name}": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Relation name",
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_RelationSchema"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Admin relation schema",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/toolbar/{action}": {
|
|
"post": {
|
|
"description": "Runs a controller-registered action that the list's toolbar.buttons declares. The body must be {}: a toolbar action takes no record ids or values, and its fill is always empty.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Action name",
|
|
"in": "path",
|
|
"name": "action",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminActionRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "Empty object",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_AdminActionResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Run a toolbar action",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/widgets/{field}": {
|
|
"post": {
|
|
"description": "Runs the controller action a `type: widget` field declares. The record is loaded through the controller's form scope (404 when out of scope); only the field's fill keys with scalar values reach the action and the response.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Widget field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminActionRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "Record id and fill snapshot",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_AdminActionResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Run a widget action",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}": {
|
|
"delete": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Record id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_BulkResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Delete an admin record",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
},
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Record id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.RecordEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Show an admin record",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
},
|
|
"put": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Record id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key: the save applies the file uploads and removals held against it",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminRecord"
|
|
}
|
|
}
|
|
},
|
|
"description": "Field values keyed by field name; relation fields carry ids",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.RecordEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Update an admin record",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}": {
|
|
"get": {
|
|
"description": "The files attached to the record minus the session's pending removals, plus the session's pending uploads, in sort_order. id 0 is the record being created in the X-Session-Key session (the key is then required). url and thumb_url are set only for a public relation.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id (0 for the record being created)",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "fileupload field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key (32-128 characters of A-Z a-z 0-9 _ -)",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-array_cabana_FileItem"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "List the files of a fileupload field",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Stores one multipart file_data part and binds it to the X-Session-Key session; the record's next create or update save with the same key attaches it. id 0 is the record being created. A body over the upload cap answers 413 payload_too_large; a file over maxFilesize, of a type the field does not allow, or that fails the image check answers 422 on the field.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id (0 for the record being created)",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "fileupload field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key (32-128 characters of A-Z a-z 0-9 _ -)",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"properties": {
|
|
"file_data": {
|
|
"description": "The file",
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file_data"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_FileItem"
|
|
}
|
|
}
|
|
},
|
|
"description": "Created"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"413": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Request Entity Too Large"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Upload a file to a fileupload field",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/reorder": {
|
|
"post": {
|
|
"description": "ids must be exactly the field's visible files (attached minus pending removals plus pending uploads); they receive the existing sort_order values in the submitted order, at once. attachMany only, otherwise 403.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id (0 for the record being created)",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "fileupload field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key; needed for pending uploads",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminIDsRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "File ids in the new order",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-array_cabana_FileItem"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"413": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Request Entity Too Large"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Reorder the files of a field",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}": {
|
|
"delete": {
|
|
"description": "Removing an attached file is deferred to the record's next save with the same X-Session-Key; removing a pending upload deletes it at once.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id (0 for the record being created)",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "fileupload field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "File id",
|
|
"in": "path",
|
|
"name": "file",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_FileMutationResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Remove a file",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Saves at once (not deferred). The field must declare useCaption, otherwise 403. Omitted keys are left unchanged; unknown keys are refused.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id (0 for the record being created)",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "fileupload field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "File id",
|
|
"in": "path",
|
|
"name": "file",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key; needed for a pending upload",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminFileCaptionRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "Title and description",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_FileItem"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"413": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Request Entity Too Large"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Save a file's title and description",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/download": {
|
|
"get": {
|
|
"description": "Streams a file of a protected (Public false) relation that belongs to a record the admin may load, or is pending in the admin's own session. Public files are 404. JPEG, PNG, GIF and WebP are served inline with their type; everything else as an application/octet-stream attachment. Responses carry X-Content-Type-Options nosniff, Cache-Control private, no-store and a sandboxing Content-Security-Policy.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id (0 for the record being created)",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "fileupload field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "File id",
|
|
"in": "path",
|
|
"name": "file",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key; needed for a pending upload",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Download a protected file",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/files/{field}/{file}/thumb": {
|
|
"get": {
|
|
"description": "The preview thumbnail (imageWidth by imageHeight, 240 by 240 by default, in thumbOptions.mode) of a protected image file, scoped like the download route. A file that is not a JPEG, PNG, GIF or WebP image is 404.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id (0 for the record being created)",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "fileupload field name",
|
|
"in": "path",
|
|
"name": "field",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "File id",
|
|
"in": "path",
|
|
"name": "file",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Form session key; needed for a pending upload",
|
|
"in": "header",
|
|
"name": "X-Session-Key",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/octet-stream": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Thumbnail of a protected image",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Relation name",
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Search term over the panel's searchable columns",
|
|
"in": "query",
|
|
"name": "search",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort column (a sortable panel column)",
|
|
"in": "query",
|
|
"name": "sort",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort direction (asc or desc)",
|
|
"in": "query",
|
|
"name": "dir",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page",
|
|
"in": "query",
|
|
"name": "page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Records per page (1-100, default 20)",
|
|
"in": "query",
|
|
"name": "per_page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ListEnvelope-array_cabana_AdminRecord"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "List linked relation records",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/candidates": {
|
|
"get": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Relation name",
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Search term over the panel's searchable columns",
|
|
"in": "query",
|
|
"name": "search",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort column (a sortable panel column)",
|
|
"in": "query",
|
|
"name": "sort",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort direction (asc or desc)",
|
|
"in": "query",
|
|
"name": "dir",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page",
|
|
"in": "query",
|
|
"name": "page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Records per page (1-100, default 20)",
|
|
"in": "query",
|
|
"name": "per_page",
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ListEnvelope-array_cabana_AdminRecord"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "List relation candidates",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/link": {
|
|
"post": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Relation name",
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminIDsRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "Related record ids",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_RelationMutationResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Link relation records",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/records": {
|
|
"post": {
|
|
"description": "Creates a record through the relation's manage form (manage.form, or the top-level form of config_relation.yaml) and attaches it to the owner: a hasMany child gets the owner's key in its foreign key (the server sets it; the body cannot), a belongsToMany record gets a pivot row. The view panel must declare the create toolbar button, otherwise 403. The owner is scoped like the record show route.",
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Relation name",
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminRecord"
|
|
}
|
|
}
|
|
},
|
|
"description": "Field values of the manage form keyed by field name",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.RecordEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Created"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"413": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Request Entity Too Large"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Create a related record",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
},
|
|
"/{vendor}/{plugin}/{controller}/{id}/relations/{name}/unlink": {
|
|
"post": {
|
|
"parameters": [
|
|
{
|
|
"description": "Vendor",
|
|
"in": "path",
|
|
"name": "vendor",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Plugin",
|
|
"in": "path",
|
|
"name": "plugin",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Controller",
|
|
"in": "path",
|
|
"name": "controller",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Owner id",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Relation name",
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.AdminIDsRequest"
|
|
}
|
|
}
|
|
},
|
|
"description": "Related record ids",
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.Envelope-cabana_RelationMutationResult"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unauthorized"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Forbidden"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Not Found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/cabana.ErrorEnvelope"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unprocessable Entity"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"BackendBearer": []
|
|
}
|
|
],
|
|
"summary": "Unlink relation records",
|
|
"tags": [
|
|
"admin"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|