Workflow

All content has a workflow attached. We can get the current state and history of an object by issuing a GET request using on any context:

GET /news/@workflow HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk

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

{
  "@id": "http://localhost:8000/news/@workflow",
  "history": [],
  "state": {
    "id": "published",
    "title": "Published"
  },
  "transitions": [
    {
      "@id": "http://localhost:8000/news/@workflow/reject",
      "title": "Send back"
    },
    {
      "@id": "http://localhost:8000/news/@workflow/retract",
      "title": "Retract"
    }
  ]
}

Now, if we want to change the state of the front page to publish, we would proceed by issuing a POST request to the given URL:

POST /news/my-news-item/@workflow/publish HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk

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

{
  "action": "publish",
  "actor": "admin",
  "comments": "",
  "review_state": "published",
  "time": "2022-04-08T16:00:00.000Z",
  "title": "Published"
}