anchor.diff:    -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyVXVpZCI6IjNjYjY2YzU0MmFlMzRiMDFiNjZjNTQyYWUzY2IwMWRiIiwiaWF0IjoxNDkxNzY1NDEzLCJleHAiOjE0OTE3NjkwMTN9.UY8OgjiK5qyZobAWt6X1Vd1Z-zg68BeJgGZKbW4Ucj0=' \
   ----
   
  -=== API token
  -
  -An API token can be used to authenticate an user. The API token will never expire. This is different from regular tokens which will be issued when calling `/api/v1/auth/login`. 
  -Leaking an API token is potentially dangerous and thus the API token should only be used in combination with a secure connection.
  -
  -Typical use cases are backend implementations which constantly communicate with Gentics Mesh via a secure / local connection.
  -
  -The token can be issued on a user basis via `POST /api/v1/users/:userUuid/token`.
  -
  -NOTE: Creating a new API token will automatically invalidate the previously issued token.
  +=== API Token
  +
  +An API token will never expire. This is different from regular tokens which will be issued when calling `/api/v1/auth/login`. 
  +
  +WARNING: Leaking an API token is potentially dangerous and thus the API token should only be used in combination with a secure connection.
  +
  +Typical use cases for API tokens are backend implementations which constantly communicate with Gentics Mesh using a secure or local connection.
  +
  +The token can be issued per user with ```POST /api/v1/users/:userUuid/token```.
  +
  +NOTE: Creating a new API token will automatically invalidate a previously issued token.
   
   Since the token is just a regular JWT you just need to add it to your request `Authorization` header field.
   
  
positive.code:   -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyVXVpZCI6IjNjYjY2YzU0MmFlMzRiMDFiNjZjNTQyYWUzY2IwMWRiIiwiaWF0IjoxNDkxNzY1NDEzLCJleHAiOjE0OTE3NjkwMTN9.UY8OgjiK5qyZobAWt6X1Vd1Z-zg68BeJgGZKbW4Ucj0=' \
  ----
  
  It is possible to manually revoke the issued token via `DELETE /api/v1/users/:userUuid/token`. Once the token is invalidated it can no longer be used for authentication.
  
  === Anonymous Access 
  
  Sometimes it may be desirable to serve public content via Gentics Mesh. All Gentics Mesh instances ship with an included `anonymous` user/role/group set. 
  If no authentication details are provided Gentics Mesh will automatically try to authenticate with the user `anonymous`.
  
  You can assign `read` permissions to the `anonymous` role for all elements you want to be publicly available.
  
  NOTE: Assigning further permissions would of course allow for other operations to be granted. 
  
  Anonymous access can be configured in the `mesh.yml` configuration file:
  
  [source,yaml]
  ----
  
negative.code: 
  == REST API
  
  The link:raml[Gentics Mesh REST API] provides end points enabling you to invoke CRUD operations on just ANY Gentics Mesh element. 
  There are many things you can do with the REST API. To name a few:
  
  * Obviously you can create, update & fetch multilingual content items as well as tag them.
  * But you can also define the schemas, i.e. the content types of your project.
  * You can do file upload and image manipulation.
  * WebRoot Paths for fetching content by path as well as automatic link resolving greatly simplify the integration with any routing framework.
  * Fetching dynamic navigation menus and breadcrumbs based on the content structure will make your editors happy.
  * With Elasticsearch under the hood you can search your content.
  * You can manage your users and their permissions on content elements.
  
  NOTE: All REST API responses are available in JSON, only, except for binary data.
  
  === DEMO
  
  We have set up a Gentics Mesh instance for demo purposes, that you can play with.
  
  *Let's see what's inside...*
  
  
  List all projects: http://getmesh.io/api/v1/projects
  
  Well, it's our demo project.
  
  
  Want to fetch all content items including media? With pretty URLs? Here you go: http://getmesh.io/api/v1/demo/nodes/?resolveLinks=short
  
  OK, let's load a single content item: http://getmesh.io/api/v1/demo/nodes/fc3c85be82584ae2bc85be82588ae2b0
  
  And now forget about UUIDs and do it with its corresponding WebRoot path: http://getmesh.io/api/v1/demo/webroot/automobiles/ford-gt
  
  That's easy. Well, what about an image?
  
  That's the image node: http://getmesh.io/api/v1/demo/nodes/df8beb3922c94ea28beb3922c94ea2f6
  
  And that's the actual image: http://getmesh.io/api/v1/demo/nodes/df8beb3922c94ea28beb3922c94ea2f6/binary/image
  
  Let's do some resizing: http://getmesh.io/api/v1/demo/nodes/df8beb3922c94ea28beb3922c94ea2f6/binary/image?width=400
  
  And now again with a readable WebRoot path: http://getmesh.io/api/v1/demo/webroot/images/ford-gt.jpg?width=400
  
  TIP: The https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en[Postman] chrome extension can be used to build and invoke requests from your browser to Gentics Mesh.
  
  
  == GraphQL
  
  Gentics Mesh is also able to process http://graphql.org/[GraphQL] queries. You can use GraphQL to directly specify what fields should be retrieved and fetch deeply nested data sets.
  Internally, Gentics Mesh will resolve your query and traverse your content graph to fetch only the data you specified.
  
  === Examples
  
  ==== Fetch the current user with username and UUID
  
  include::examples/graphql/tiny-query[]
  
  ==== Retrieve specified fields of a node identified by WebRoot path
  
  include::examples/graphql/field-query[]
  
  === DEMO
  We have integrated the interactive https://github.com/graphql/graphiql[GraphiQL]footnote:[https://github.com/graphql/graphiql[GraphiQL] is owned and developed by Facebook Inc. Usage is subject to the https://github.com/gentics/mesh/blob/d69b94d4b9bd8e3dbbba06dcdf8fac9b09593f13/verticles/graphql/src/main/resources/graphiql/LICENSE[LICENSE AGREEMENT For GraphiQL software].] browser into Gentics Mesh so you can easily play with the API.
  
  Try our link:/api/v1/demo/graphql/browser/[Live Demo].
  
  Alternatively, you can download Gentics Mesh and test the API locally.
  Once authenticated you can access the interactive GraphiQL browser at ```/api/v1/:projectName/graphql/browser/``` .
  
  === Current Limitations
  
  * At the moment, the GraphQL API supports read-only operations. Modifying data with via mutations is currently not supported.
  * GraphQL queries are restricted to a specific project. It is not possible to query data across multiple projects.
  * GraphQL queries are restricted to a specific link:features.html#_content_release[content release]. The scope of the content release can be changed by adding the `?release` query parameter.
  
  
  == HTTP details
  