Container

GET /(db)/(container)

Retrieves serialization of resource

  • Permission: guillotina.ViewContent
  • Context: guillotina.interfaces.content.IResource

http

GET /db/container HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@id": "http://localhost/db/container",
    "@type": "Container",
    "@name": "container",
    "@uid": "40f70cd0f2f541608e010e6dfe1ef72e",
    "@static_behaviors": [],
    "parent": {},
    "is_folderish": true,
    "creation_date": "2022-12-12T14:49:11.721468+00:00",
    "modification_date": "2022-12-12T14:49:11.721468+00:00",
    "type_name": "Container",
    "title": "container",
    "uuid": "40f70cd0f2f541608e010e6dfe1ef72e",
    "__behaviors__": [],
    "items": [],
    "length": 0
}
Query Parameters:
 
  • include (string) – (required) (required)
  • omit (string) – (required) (required)
Status Codes:

Types

GET /(db)/(container)/@types

Read information on available types

  • Permission: guillotina.AccessContent
  • Context: guillotina.interfaces.content.IContainer

http

GET /db/container/@types HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@types -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@types Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "title": "Item",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "type": "object",
        "required": [
            "uuid"
        ],
        "definitions": {
            "guillotina.behaviors.dublincore.IDublinCore": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "widget": "input",
                        "description": "The first unqualified Dublin Core 'Title' element value.",
                        "title": "Title"
                    },
                    "description": {
                        "type": "string",
                        "widget": "textarea",
                        "description": "The first unqualified Dublin Core 'Description' element value.",
                        "title": "Description"
                    },
                    "creation_date": {
                        "type": "datetime",
                        "description": "The date and time that an object is created. \nThis is normally set automatically.",
                        "title": "Creation Date"
                    },
                    "modification_date": {
                        "type": "datetime",
                        "description": "The date and time that the object was last modified in a\nmeaningful way.",
                        "title": "Modification Date"
                    },
                    "effective_date": {
                        "type": "datetime",
                        "description": "The date and time that an object should be published. ",
                        "title": "Effective Date"
                    },
                    "expiration_date": {
                        "type": "datetime",
                        "description": "The date and time that the object should become unpublished.",
                        "title": "Expiration Date"
                    },
                    "creators": {
                        "type": "array",
                        "description": "The unqualified Dublin Core 'Creator' element values",
                        "max_length": 1000,
                        "title": "Creators",
                        "items": {
                            "type": "string",
                            "widget": "input"
                        }
                    },
                    "tags": {
                        "type": "array",
                        "description": "The unqualified Dublin Core 'Tags' element values",
                        "max_length": 10000,
                        "title": "Tags",
                        "items": {
                            "type": "string",
                            "widget": "input"
                        }
                    },
                    "publisher": {
                        "type": "string",
                        "widget": "textarea",
                        "description": "The first unqualified Dublin Core 'Publisher' element value.",
                        "title": "Publisher"
                    },
                    "contributors": {
                        "type": "array",
                        "description": "The unqualified Dublin Core 'Contributor' element values",
                        "max_length": 10000,
                        "title": "Contributors",
                        "items": {
                            "type": "string",
                            "widget": "input"
                        }
                    }
                },
                "required": [],
                "invariants": [],
                "title": "Dublin Core fields",
                "description": ""
            }
        },
        "properties": {
            "type_name": {
                "type": "string",
                "widget": "input",
                "readonly": true
            },
            "title": {
                "type": "string",
                "widget": "input",
                "description": "Title of the Resource",
                "title": "Title"
            },
            "uuid": {
                "type": "string",
                "widget": "input",
                "readonly": true,
                "title": "UUID"
            },
            "modification_date": {
                "type": "datetime",
                "title": "Modification date"
            },
            "creation_date": {
                "type": "datetime",
                "title": "Creation date"
            },
            "__behaviors__": {
                "type": "array",
                "description": "Dynamic behaviors for the content type",
                "readonly": true,
                "title": "Enabled behaviors"
            },
            "guillotina.behaviors.dublincore.IDublinCore": [
                {
                    "$ref": "#/components/schemas/guillotina.behaviors.dublincore.IDublinCore"
                }
            ]
        },
        "invariants": []
    },
    {
        "title": "Folder",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "type": "object",
        "required": [
            "uuid"
        ],
        "definitions": {
            "guillotina.behaviors.dublincore.IDublinCore": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "widget": "input",
                        "description": "The first unqualified Dublin Core 'Title' element value.",
                        "title": "Title"
                    },
                    "description": {
                        "type": "string",
                        "widget": "textarea",
                        "description": "The first unqualified Dublin Core 'Description' element value.",
                        "title": "Description"
                    },
                    "creation_date": {
                        "type": "datetime",
                        "description": "The date and time that an object is created. \nThis is normally set automatically.",
                        "title": "Creation Date"
                    },
                    "modification_date": {
                        "type": "datetime",
                        "description": "The date and time that the object was last modified in a\nmeaningful way.",
                        "title": "Modification Date"
                    },
                    "effective_date": {
                        "type": "datetime",
                        "description": "The date and time that an object should be published. ",
                        "title": "Effective Date"
                    },
                    "expiration_date": {
                        "type": "datetime",
                        "description": "The date and time that the object should become unpublished.",
                        "title": "Expiration Date"
                    },
                    "creators": {
                        "type": "array",
                        "description": "The unqualified Dublin Core 'Creator' element values",
                        "max_length": 1000,
                        "title": "Creators",
                        "items": {
                            "type": "string",
                            "widget": "input"
                        }
                    },
                    "tags": {
                        "type": "array",
                        "description": "The unqualified Dublin Core 'Tags' element values",
                        "max_length": 10000,
                        "title": "Tags",
                        "items": {
                            "type": "string",
                            "widget": "input"
                        }
                    },
                    "publisher": {
                        "type": "string",
                        "widget": "textarea",
                        "description": "The first unqualified Dublin Core 'Publisher' element value.",
                        "title": "Publisher"
                    },
                    "contributors": {
                        "type": "array",
                        "description": "The unqualified Dublin Core 'Contributor' element values",
                        "max_length": 10000,
                        "title": "Contributors",
                        "items": {
                            "type": "string",
                            "widget": "input"
                        }
                    }
                },
                "required": [],
                "invariants": [],
                "title": "Dublin Core fields",
                "description": ""
            }
        },
        "properties": {
            "type_name": {
                "type": "string",
                "widget": "input",
                "readonly": true
            },
            "title": {
                "type": "string",
                "widget": "input",
                "description": "Title of the Resource",
                "title": "Title"
            },
            "uuid": {
                "type": "string",
                "widget": "input",
                "readonly": true,
                "title": "UUID"
            },
            "modification_date": {
                "type": "datetime",
                "title": "Modification date"
            },
            "creation_date": {
                "type": "datetime",
                "title": "Creation date"
            },
            "__behaviors__": {
                "type": "array",
                "description": "Dynamic behaviors for the content type",
                "readonly": true,
                "title": "Enabled behaviors"
            },
            "guillotina.behaviors.dublincore.IDublinCore": [
                {
                    "$ref": "#/components/schemas/guillotina.behaviors.dublincore.IDublinCore"
                }
            ]
        },
        "invariants": []
    },
    {
        "title": "Container",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "type": "object",
        "required": [
            "uuid"
        ],
        "definitions": {},
        "properties": {
            "type_name": {
                "type": "string",
                "widget": "input",
                "readonly": true
            },
            "title": {
                "type": "string",
                "widget": "input",
                "description": "Title of the Resource",
                "title": "Title"
            },
            "uuid": {
                "type": "string",
                "widget": "input",
                "readonly": true,
                "title": "UUID"
            },
            "modification_date": {
                "type": "datetime",
                "title": "Modification date"
            },
            "creation_date": {
                "type": "datetime",
                "title": "Creation date"
            },
            "__behaviors__": {
                "type": "array",
                "description": "Dynamic behaviors for the content type",
                "readonly": true,
                "title": "Enabled behaviors"
            }
        },
        "invariants": []
    }
]
Status Codes:

GET /(db)/(container)/@types/(type_name)

Read information on available types

  • Permission: guillotina.AccessContent
  • Context: guillotina.interfaces.content.IContainer

http

GET /db/container/@types/Item HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@types/Item -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@types/Item Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "title": "Item",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "required": [
        "uuid"
    ],
    "definitions": {
        "guillotina.behaviors.dublincore.IDublinCore": {
            "type": "object",
            "properties": {
                "title": {
                    "type": "string",
                    "widget": "input",
                    "description": "The first unqualified Dublin Core 'Title' element value.",
                    "title": "Title"
                },
                "description": {
                    "type": "string",
                    "widget": "textarea",
                    "description": "The first unqualified Dublin Core 'Description' element value.",
                    "title": "Description"
                },
                "creation_date": {
                    "type": "datetime",
                    "description": "The date and time that an object is created. \nThis is normally set automatically.",
                    "title": "Creation Date"
                },
                "modification_date": {
                    "type": "datetime",
                    "description": "The date and time that the object was last modified in a\nmeaningful way.",
                    "title": "Modification Date"
                },
                "effective_date": {
                    "type": "datetime",
                    "description": "The date and time that an object should be published. ",
                    "title": "Effective Date"
                },
                "expiration_date": {
                    "type": "datetime",
                    "description": "The date and time that the object should become unpublished.",
                    "title": "Expiration Date"
                },
                "creators": {
                    "type": "array",
                    "description": "The unqualified Dublin Core 'Creator' element values",
                    "max_length": 1000,
                    "title": "Creators",
                    "items": {
                        "type": "string",
                        "widget": "input"
                    }
                },
                "tags": {
                    "type": "array",
                    "description": "The unqualified Dublin Core 'Tags' element values",
                    "max_length": 10000,
                    "title": "Tags",
                    "items": {
                        "type": "string",
                        "widget": "input"
                    }
                },
                "publisher": {
                    "type": "string",
                    "widget": "textarea",
                    "description": "The first unqualified Dublin Core 'Publisher' element value.",
                    "title": "Publisher"
                },
                "contributors": {
                    "type": "array",
                    "description": "The unqualified Dublin Core 'Contributor' element values",
                    "max_length": 10000,
                    "title": "Contributors",
                    "items": {
                        "type": "string",
                        "widget": "input"
                    }
                }
            },
            "required": [],
            "invariants": [],
            "title": "Dublin Core fields",
            "description": ""
        }
    },
    "properties": {
        "type_name": {
            "type": "string",
            "widget": "input",
            "readonly": true
        },
        "title": {
            "type": "string",
            "widget": "input",
            "description": "Title of the Resource",
            "title": "Title"
        },
        "uuid": {
            "type": "string",
            "widget": "input",
            "readonly": true,
            "title": "UUID"
        },
        "modification_date": {
            "type": "datetime",
            "title": "Modification date"
        },
        "creation_date": {
            "type": "datetime",
            "title": "Creation date"
        },
        "__behaviors__": {
            "type": "array",
            "description": "Dynamic behaviors for the content type",
            "readonly": true,
            "title": "Enabled behaviors"
        },
        "guillotina.behaviors.dublincore.IDublinCore": [
            {
                "$ref": "#/components/schemas/guillotina.behaviors.dublincore.IDublinCore"
            }
        ]
    },
    "invariants": []
}
Status Codes:

User

GET /(db)/(container)/@user

Get information on the currently logged in user

  • Permission: guillotina.AccessContent
  • Context: guillotina.interfaces.content.IContainer

http

GET /db/container/@user HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@user -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@user Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "root": {
        "roles": {
            "guillotina.Authenticated": 1
        },
        "groups": [
            "Managers"
        ],
        "permissions": {},
        "properties": {}
    },
    "groups": {
        "Managers": {
            "roles": {
                "guillotina.ContainerAdmin": 1,
                "guillotina.ContainerDeleter": 1,
                "guillotina.Owner": 1,
                "guillotina.Member": 1,
                "guillotina.Manager": 1
            },
            "groups": []
        }
    }
}
Status Codes:

Registry

GET /(db)/(container)/@registry

Read container registry settings

  • Permission: guillotina.ReadConfiguration
  • Context: guillotina.interfaces.content.IContainer

http

GET /db/container/@registry HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@registry -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@registry Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "value": {
        "guillotina.interfaces.registry.ILayers.active_layers": [],
        "guillotina.interfaces.registry.IAddons.enabled": []
    }
}
Status Codes:

POST /(db)/(container)/@registry

Register a new interface to for registry settings

  • Permission: guillotina.RegisterConfigurations
  • Context: guillotina.interfaces.content.IContainer

http

POST /db/container/@registry HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "interface": "guillotina.documentation.IRegistryData"
}

curl

curl -i -X POST http://nohost/db/container/@registry -H 'Accept: application/json' --data-raw '{
    "interface": "guillotina.documentation.IRegistryData"
}' --user root:root

httpie

echo '{
    "interface": "guillotina.documentation.IRegistryData"
}' | http POST http://nohost/db/container/@registry Accept:application/json -a root:root

response

HTTP/1.1 201 OK
Content-Type: application/json

{}
Status Codes:

PATCH /(db)/(container)/@registry/(key)

Update registry setting

  • Permission: guillotina.WriteConfiguration
  • Context: guillotina.interfaces.content.IContainer

http

PATCH /db/container/@registry/guillotina.documentation.IRegistryData.foobar HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "value": "something"
}

curl

curl -i -X PATCH http://nohost/db/container/@registry/guillotina.documentation.IRegistryData.foobar -H 'Accept: application/json' --data-raw '{
    "value": "something"
}' --user root:root

httpie

echo '{
    "value": "something"
}' | http PATCH http://nohost/db/container/@registry/guillotina.documentation.IRegistryData.foobar Accept:application/json -a root:root

response

HTTP/1.1 204 OK
Content-Type: application/octet-stream
Status Codes:

GET /(db)/(container)/@registry/(key)

Read container registry settings

  • Permission: guillotina.ReadConfiguration
  • Context: guillotina.interfaces.content.IContainer

http

GET /db/container/@registry/guillotina.documentation.IRegistryData.foobar HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@registry/guillotina.documentation.IRegistryData.foobar -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@registry/guillotina.documentation.IRegistryData.foobar Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "value": "something"
}
Status Codes:

Addons

GET /(db)/(container)/@addons

List available addons

  • Permission: guillotina.ManageAddons
  • Context: guillotina.interfaces.content.IContainer

http

GET /db/container/@addons HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@addons -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@addons Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "available": [
        {
            "id": "docaddon",
            "title": "Doc addon",
            "dependencies": []
        }
    ],
    "installed": []
}
Status Codes:

POST /(db)/(container)/@addons

Install addon to container

  • Permission: guillotina.ManageAddons
  • Context: guillotina.interfaces.content.IContainer

http

POST /db/container/@addons HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "id": "docaddon"
}

curl

curl -i -X POST http://nohost/db/container/@addons -H 'Accept: application/json' --data-raw '{
    "id": "docaddon"
}' --user root:root

httpie

echo '{
    "id": "docaddon"
}' | http POST http://nohost/db/container/@addons Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "available": [
        {
            "id": "docaddon",
            "title": "Doc addon",
            "dependencies": []
        }
    ],
    "installed": [
        "docaddon"
    ]
}
Status Codes:

DELETE /(db)/(container)/@addons

Uninstall an addon from container

  • Permission: guillotina.ManageAddons
  • Context: guillotina.interfaces.content.IContainer

http

DELETE /db/container/@addons HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "id": "docaddon"
}

curl

curl -i -X DELETE http://nohost/db/container/@addons -H 'Accept: application/json' --data-raw '{
    "id": "docaddon"
}' --user root:root

httpie

echo '{
    "id": "docaddon"
}' | http DELETE http://nohost/db/container/@addons Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{}
Status Codes:

Metadata

GET /(db)/(container)/@metadata

Get available Indexes

  • Permission: guillotina.SearchContent
  • Context: guillotina.interfaces.content.IContainer

http

GET /db/container/@metadata HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@metadata -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@metadata Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@id": "http://localhost/db/container",
    "types": {
        "Item": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
        },
        "Folder": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
        },
        "Container": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
        }
    },
    "behaviors": {
        "guillotina.behaviors.attachment.IAttachment": {},
        "guillotina.behaviors.attachment.IMultiAttachment": {},
        "guillotina.behaviors.dublincore.IDublinCore": {
            "creators": "keyword",
            "tags": "keyword",
            "contributors": "keyword"
        },
        "guillotina.behaviors.dynamic.IDynamicFields": {},
        "guillotina.behaviors.dynamic.IDynamicFieldValues": {}
    }
}
Status Codes:

Example:

{
   "@id": "http://localhost:8070/db/container",
   "types": {
      "Item": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
      },
      "Folder": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
      },
      "Container": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
      },
      "Customer": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword",
            "archived": "boolean",
            "ratehourly": "int"
      },
      "User": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword",
            "email": "keyword",
            "name": "textkeyword",
            "user_roles": "textkeyword",
            "disabled": "boolean"
      },
      "UserManager": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
      },
      "Group": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword",
            "name": "textkeyword",
            "user_roles": "textkeyword",
            "users": "textkeyword"
      },
      "GroupManager": {
            "uuid": "keyword",
            "type_name": "keyword",
            "title": "text",
            "modification_date": "date",
            "creation_date": "date",
            "access_roles": "keyword",
            "id": "keyword",
            "access_users": "keyword",
            "path": "path",
            "depth": "int",
            "parent_uuid": "keyword",
            "tid": "keyword"
      }
   },
   "behaviors": {
      "guillotina.behaviors.attachment.IAttachment": {},
      "guillotina.behaviors.attachment.IMultiAttachment": {},
      "guillotina.behaviors.dublincore.IDublinCore": {
            "creators": "keyword",
            "tags": "keyword",
            "contributors": "keyword"
      },
      "guillotina.behaviors.dynamic.IDynamicFields": {},
      "guillotina.behaviors.dynamic.IDynamicFieldValues": {}
   }
}

Dynamic Fields

Dynamic fields are done with the IDynamicFields behavior so first we add the behavior.

PATCH /(db)/(container)/@behaviors

Add behavior to resource

  • Permission: guillotina.ModifyContent
  • Context: guillotina.interfaces.content.IResource

http

PATCH /db/container/@behaviors HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "behavior": "guillotina.behaviors.dynamic.IDynamicFields"
}

curl

curl -i -X PATCH http://nohost/db/container/@behaviors -H 'Accept: application/json' --data-raw '{
    "behavior": "guillotina.behaviors.dynamic.IDynamicFields"
}' --user root:root

httpie

echo '{
    "behavior": "guillotina.behaviors.dynamic.IDynamicFields"
}' | http PATCH http://nohost/db/container/@behaviors Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{}
Status Codes:

Then, we can add a field.

PATCH /(db)/(container)

Modify the content of this resource

  • Permission: guillotina.ModifyContent
  • Context: guillotina.interfaces.content.IResource

http

PATCH /db/container HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "guillotina.behaviors.dynamic.IDynamicFields": {
        "fields": {
            "foobar": {
                "title": "Hello field",
                "type": "text"
            }
        }
    }
}

curl

curl -i -X PATCH http://nohost/db/container -H 'Accept: application/json' --data-raw '{
    "guillotina.behaviors.dynamic.IDynamicFields": {
        "fields": {
            "foobar": {
                "title": "Hello field",
                "type": "text"
            }
        }
    }
}' --user root:root

httpie

echo '{
    "guillotina.behaviors.dynamic.IDynamicFields": {
        "fields": {
            "foobar": {
                "title": "Hello field",
                "type": "text"
            }
        }
    }
}' | http PATCH http://nohost/db/container Accept:application/json -a root:root

response

HTTP/1.1 204 OK
Content-Type: application/octet-stream
Status Codes:

To inspect the dynamic fields available on content

GET /(db)/(container)/@dynamic-fields

Get a list of available fields

  • Permission: guillotina.ModifyContent
  • Context: guillotina.interfaces.content.IResource

http

GET /db/container/@dynamic-fields HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i http://nohost/db/container/@dynamic-fields -H 'Accept: application/json' --user root:root

httpie

http http://nohost/db/container/@dynamic-fields Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "foobar": {
        "title": "Hello field",
        "description": null,
        "type": "text",
        "required": false,
        "meta": {}
    }
}
Status Codes:

Update dynamic field values

POST /(db)/(container)/(id)

Add new resouce inside this container resource

  • Permission: guillotina.AddContent
  • Context: guillotina.interfaces.content.IResource

http

POST /db/container HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "@type": "Item",
    "id": "foobar-fields",
    "@behaviors": [
        "guillotina.behaviors.dynamic.IDynamicFieldValues"
    ]
}

curl

curl -i -X POST http://nohost/db/container -H 'Accept: application/json' --data-raw '{
    "@type": "Item",
    "id": "foobar-fields",
    "@behaviors": [
        "guillotina.behaviors.dynamic.IDynamicFieldValues"
    ]
}' --user root:root

httpie

echo '{
    "@type": "Item",
    "id": "foobar-fields",
    "@behaviors": [
        "guillotina.behaviors.dynamic.IDynamicFieldValues"
    ]
}' | http POST http://nohost/db/container Accept:application/json -a root:root

response

HTTP/1.1 201 OK
Content-Type: application/json
Location: http://localhost/db/container/foobar-fields

{
    "@id": "http://localhost/db/container/foobar-fields",
    "@name": "foobar-fields",
    "@type": "Item",
    "@uid": "40f|d9a4f88f9ac04d60b8e4eb867e016b66"
}
Status Codes:

PATCH /(db)/(container)/(id)

Modify the content of this resource

  • Permission: guillotina.ModifyContent
  • Context: guillotina.interfaces.content.IResource

http

PATCH /db/container/foobar-fields HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

{
    "guillotina.behaviors.dynamic.IDynamicFieldValues": {
        "values": {
            "op": "update",
            "value": [
                {
                    "key": "foobar",
                    "value": "value"
                }
            ]
        }
    }
}

curl

curl -i -X PATCH http://nohost/db/container/foobar-fields -H 'Accept: application/json' --data-raw '{
    "guillotina.behaviors.dynamic.IDynamicFieldValues": {
        "values": {
            "op": "update",
            "value": [
                {
                    "key": "foobar",
                    "value": "value"
                }
            ]
        }
    }
}' --user root:root

httpie

echo '{
    "guillotina.behaviors.dynamic.IDynamicFieldValues": {
        "values": {
            "op": "update",
            "value": [
                {
                    "key": "foobar",
                    "value": "value"
                }
            ]
        }
    }
}' | http PATCH http://nohost/db/container/foobar-fields Accept:application/json -a root:root

response

HTTP/1.1 204 OK
Content-Type: application/octet-stream
Status Codes:

GET /(db)/(container)/(id)

Retrieves serialization of resource

  • Permission: guillotina.ViewContent
  • Context: guillotina.interfaces.content.IResource

http

GET /db/container/foobar-fields?include=guillotina.behaviors.dynamic.IDynamicFieldValues HTTP/1.1
Accept: application/json
Authorization: Basic cm9vdDpyb290

curl

curl -i 'http://nohost/db/container/foobar-fields?include=guillotina.behaviors.dynamic.IDynamicFieldValues' -H 'Accept: application/json' --user root:root

httpie

http 'http://nohost/db/container/foobar-fields?include=guillotina.behaviors.dynamic.IDynamicFieldValues' Accept:application/json -a root:root

response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@id": "http://localhost/db/container/foobar-fields",
    "@type": "Item",
    "@name": "foobar-fields",
    "@uid": "40f|d9a4f88f9ac04d60b8e4eb867e016b66",
    "@static_behaviors": [
        "guillotina.behaviors.dublincore.IDublinCore"
    ],
    "parent": {
        "@id": "http://localhost/db/container",
        "@name": "container",
        "@type": "Container",
        "@uid": "40f70cd0f2f541608e010e6dfe1ef72e"
    },
    "is_folderish": false,
    "creation_date": "2022-12-12T14:49:12.556107+00:00",
    "modification_date": "2022-12-12T14:49:12.556107+00:00",
    "guillotina.behaviors.dynamic.IDynamicFieldValues": {
        "values": {
            "foobar": "value"
        }
    }
}
Query Parameters:
 
  • include (string) – (required) (required) (required)
  • omit (string) – (required) (required) (required)
Status Codes: