{"action":"created","comment":{"url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/comments/80460519","id":80460519,"diff_hunk":"@@ -0,0 +1,126 @@\n+# Multi Tagging\n+\n+\n+_WIP @todo_\n+\n+\n+\n+\n+## Description\n+Being built on Symfony, one of the cornerstones of eZ Platform is that it has always extended Symfony HttpCache\n+to better integrate with the CMS. Starting in version v2014.11 *(eZ Publish Platform 5.4)* this was further improved\n+by building on top of FOSHttpCache.\n+\n+But even if we moved to FOSHttpCache, we still had our own Symfony Proxy Store, and still abstract cache clearing\n+internally. Starting with kernel v6.5 *(eZ Platform v1.5)*, this allowed us to give HttpCache layer several changes to:\n+1. Be able to support multiple tagging, across Varnish and Symfony Proxy, as opposed to just single location tagging.\n+2. Allow usage of Varnish xkey VMOD for better performance with Varnish.\n+\n+In both cases this is needed to more reliably be able to clear cache, and to improve performance. At later point these\n+features might appear in FOSHttpCache v2.0 in a more generic form for us to build upon.\n+\n+\n+## Tags\n+\n+As the systems is extensible, important part of this is to document the used tags to avoid wrong use, or conflicts.\n+If you add own tag types, please prefix with 1-3 letters abbreviating your *(company/full)* name.\n+\n+The tags are needs to be made in a way so that cache can be cleared using nothing but what info is available on signal,\n+and the signals will need to be expanded to contain the relevant info depending on operation they correspond to.\n+\n+\n+### Predefined System Tags\n+\n+\n+- `content-<content-id>`\n+\n+*Tagging*: Used for tagging content responses with id.\n+*Clearing*: When a operation is specifically affecting just given content.\n+\n+\n+- `content-type-<content-type-id>`\n+\n+*Tagging*: Used for tagging content responses with type id.","path":"doc/specifications/cache/multi_tagging.md","position":43,"original_position":43,"commit_id":"371bd05390d6381cfe00d68d3e55e20f6a96f8a7","original_commit_id":"371bd05390d6381cfe00d68d3e55e20f6a96f8a7","user":{"login":"bdunogier","id":235928,"avatar_url":"https://avatars.githubusercontent.com/u/235928?v=3","gravatar_id":"","url":"https://api.github.com/users/bdunogier","html_url":"https://github.com/bdunogier","followers_url":"https://api.github.com/users/bdunogier/followers","following_url":"https://api.github.com/users/bdunogier/following{/other_user}","gists_url":"https://api.github.com/users/bdunogier/gists{/gist_id}","starred_url":"https://api.github.com/users/bdunogier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdunogier/subscriptions","organizations_url":"https://api.github.com/users/bdunogier/orgs","repos_url":"https://api.github.com/users/bdunogier/repos","events_url":"https://api.github.com/users/bdunogier/events{/privacy}","received_events_url":"https://api.github.com/users/bdunogier/received_events","type":"User","site_admin":false},"body":"Note that the PR's description gives ContentTypes as a first example of what could be cached thanks to this.\r\n\r\nIn that case, the HttpCache slots on ContentType service are missing for this.","created_at":"2016-09-26T12:08:32Z","updated_at":"2016-09-26T12:08:32Z","html_url":"https://github.com/ezsystems/ezpublish-kernel/pull/1772#discussion_r80460519","pull_request_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772","_links":{"self":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/comments/80460519"},"html":{"href":"https://github.com/ezsystems/ezpublish-kernel/pull/1772#discussion_r80460519"},"pull_request":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772"}}},"pull_request":{"url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772","id":84499395,"html_url":"https://github.com/ezsystems/ezpublish-kernel/pull/1772","diff_url":"https://github.com/ezsystems/ezpublish-kernel/pull/1772.diff","patch_url":"https://github.com/ezsystems/ezpublish-kernel/pull/1772.patch","issue_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/1772","number":1772,"state":"open","locked":false,"title":"[WIP] Feature EZP-25696: HTTPCache Multi Tagging/labeling","user":{"login":"andrerom","id":289757,"avatar_url":"https://avatars.githubusercontent.com/u/289757?v=3","gravatar_id":"","url":"https://api.github.com/users/andrerom","html_url":"https://github.com/andrerom","followers_url":"https://api.github.com/users/andrerom/followers","following_url":"https://api.github.com/users/andrerom/following{/other_user}","gists_url":"https://api.github.com/users/andrerom/gists{/gist_id}","starred_url":"https://api.github.com/users/andrerom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrerom/subscriptions","organizations_url":"https://api.github.com/users/andrerom/orgs","repos_url":"https://api.github.com/users/andrerom/repos","events_url":"https://api.github.com/users/andrerom/events{/privacy}","received_events_url":"https://api.github.com/users/andrerom/received_events","type":"User","site_admin":false},"body":"Epic: https://jira.ez.no/browse/EZP-25696\r\nAs we have own layers for HttpCache it is possible to solve this without waiting for others.\r\n\r\n### Solves:\r\n- Makes it possible to cache anything, example included is ContentType REST calls speeding up Platform UI _(but UI should cache these and not wait for server all the time in the first place)_\r\n- Solves lots of cache clearing issues, especially when deleting content\r\n- Makes it possible to combine several responses more reliably in one response  _(needed for [REST Embedding](https://github.com/ezsystems/ezpublish-kernel/pull/1741) to speed up Platform UI by reducing round trips on thins like content > main location and more importantly for [Permissions lookup REST API](https://github.com/ezsystems/ezpublish-kernel/pull/1730) to not greatly slow down UI further)_\r\n- Performance:\r\n - Less work on purge, no need to iterate the content tree to calculate what needs to be cleared\r\n - Better Varnish performance by move to xkey over Banning to allow stale purging (grace handling)\r\n - With this we can set default cache TTL much higher, as it more reliably clears relevant cache now _(there will be bugs, but they will be fixable now)_\r\n\r\n\r\n### BC\r\nThis change on purpose rather intrusive to HTTPCache layer, not all strictly needed to solve the issues, but overdue as it was somewhat jungle in there and cleanup highly needed as it has received changes over the years.\r\n- see doc/bc/changes-6.5.md\r\n- not mentioned yet, but as smart cache clearing won't come back in the form it current has the PR also deprecates and strips out use of `GatewayCachePurger` and implementations in favor of just the PurgeClientInterface layer.\r\n\r\n\r\n### Testing\r\n\r\nUsing eZ Platform 1.5 or master apply the following before running composer update and start server, it sets cache to 15 minutes so you get time to verify things:\r\n```diff\r\ndiff --git a/app/config/ezplatform.yml b/app/config/ezplatform.yml\r\nindex edc4d2c..c411962 100644\r\n--- a/app/config/ezplatform.yml\r\n+++ b/app/config/ezplatform.yml\r\n@@ -29,3 +29,5 @@ ezpublish:\r\n             # so removing eng-GB from this list may lead to errors or content not being shown, unless you change\r\n             # all eng-GB data to other locales first.\r\n             languages: [eng-GB]\r\n+            content:\r\n+                default_ttl: 900\r\ndiff --git a/composer.json b/composer.json\r\nindex 25c2f42..6e6f510 100644\r\n--- a/composer.json\r\n+++ b/composer.json\r\n@@ -27,7 +27,7 @@\r\n         \"sensio/generator-bundle\": \"~2.3\",\r\n         \"incenteev/composer-parameter-handler\": \"~2.0\",\r\n         \"tedivm/stash-bundle\": \"~0.4\",\r\n-        \"ezsystems/ezpublish-kernel\": \"^6.5@dev\",\r\n+        \"ezsystems/ezpublish-kernel\": \"dev-feature-EZP-25696 as 6.5.2\",\r\n         \"ezsystems/repository-forms\": \"^1.4@dev\",\r\n         \"ezsystems/ezplatform-solr-search-engine\": \"^1.1@dev\",\r\n         \"ezsystems/platform-ui-bundle\": \"^1.5@dev\",\r\n```\r\n\r\nWhat you should expect:\r\n- content type REST requests in UI are cached _(see AGE header, nad xkey headers)_\r\n- editing content type should clear the content type cache AND cache for content of given content type\r\n- Editing a content should refresh cache of parent, self, siblings and children\r\n- Deleting content should do the same\r\n\r\n### Todo\r\n- [ ] VCL, two: of them for Varnish 4.x _(3.x not relevant anymore as 4.1 re-added VMOD support)_:\r\n - Varnish vanilla using BAN\r\n - Varnish using [xkey VMOD](https://github.com/varnish/varnish-modules/blob/master/docs/vmod_xkey.rst) as it is better performing then BAN and allows soft purge on the tags further enabling higher average performance. _NOTE: We will need to suggest use of different domain name for Platform UI with this, so Varnish can skip grace time for backend to avoid UI issues when loading stale data._\r\n- [ ] Fixes to `FOSPurgeClient` once VCL changes are in place to align\r\n\r\n### Future\r\n\r\n- Refactor TagAwareStore to just simply use Symfony Cache component once 3.2 is out to have more solid tag handling, and built in expiry support natively to reintroduce staleness _(however we need to look into how to avoid staleness for Platform UI requests as it will easily break the UI as mentioned in regards to Varnsih above)_\r\n","created_at":"2016-09-08T15:25:08Z","updated_at":"2016-09-26T12:08:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0e98578b6ee20ecb1a495583d452bdac80485602","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772/commits","review_comments_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772/comments","review_comment_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/1772/comments","statuses_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/statuses/371bd05390d6381cfe00d68d3e55e20f6a96f8a7","head":{"label":"ezsystems:feature-EZP-25696","ref":"feature-EZP-25696","sha":"371bd05390d6381cfe00d68d3e55e20f6a96f8a7","user":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"repo":{"id":1663890,"name":"ezpublish-kernel","full_name":"ezsystems/ezpublish-kernel","owner":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ezsystems/ezpublish-kernel","description":"eZ Platform (aka eZ Publish 6.x) kernel","fork":false,"url":"https://api.github.com/repos/ezsystems/ezpublish-kernel","forks_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/forks","keys_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/teams","hooks_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/hooks","issue_events_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/events{/number}","events_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/events","assignees_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/assignees{/user}","branches_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/branches{/branch}","tags_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/tags","blobs_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/statuses/{sha}","languages_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/languages","stargazers_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/stargazers","contributors_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/contributors","subscribers_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/subscribers","subscription_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/subscription","commits_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/comments{/number}","contents_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/contents/{+path}","compare_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/merges","archive_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/downloads","issues_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues{/number}","pulls_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls{/number}","milestones_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/milestones{/number}","notifications_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/labels{/name}","releases_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/releases{/id}","deployments_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/deployments","created_at":"2011-04-26T08:54:24Z","updated_at":"2016-08-22T16:14:44Z","pushed_at":"2016-09-26T08:55:24Z","git_url":"git://github.com/ezsystems/ezpublish-kernel.git","ssh_url":"git@github.com:ezsystems/ezpublish-kernel.git","clone_url":"https://github.com/ezsystems/ezpublish-kernel.git","svn_url":"https://github.com/ezsystems/ezpublish-kernel","homepage":"http://ezplatform.com/","size":51387,"stargazers_count":115,"watchers_count":115,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":162,"mirror_url":null,"open_issues_count":71,"forks":162,"open_issues":71,"watchers":115,"default_branch":"master"}},"base":{"label":"ezsystems:master","ref":"master","sha":"0f6506fdc9a6ddb46cf12826aa442d3ed4ca1a7c","user":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"repo":{"id":1663890,"name":"ezpublish-kernel","full_name":"ezsystems/ezpublish-kernel","owner":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ezsystems/ezpublish-kernel","description":"eZ Platform (aka eZ Publish 6.x) kernel","fork":false,"url":"https://api.github.com/repos/ezsystems/ezpublish-kernel","forks_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/forks","keys_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/teams","hooks_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/hooks","issue_events_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/events{/number}","events_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/events","assignees_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/assignees{/user}","branches_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/branches{/branch}","tags_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/tags","blobs_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/statuses/{sha}","languages_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/languages","stargazers_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/stargazers","contributors_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/contributors","subscribers_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/subscribers","subscription_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/subscription","commits_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/comments{/number}","contents_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/contents/{+path}","compare_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/merges","archive_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/downloads","issues_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues{/number}","pulls_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls{/number}","milestones_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/milestones{/number}","notifications_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/labels{/name}","releases_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/releases{/id}","deployments_url":"https://api.github.com/repos/ezsystems/ezpublish-kernel/deployments","created_at":"2011-04-26T08:54:24Z","updated_at":"2016-08-22T16:14:44Z","pushed_at":"2016-09-26T08:55:24Z","git_url":"git://github.com/ezsystems/ezpublish-kernel.git","ssh_url":"git@github.com:ezsystems/ezpublish-kernel.git","clone_url":"https://github.com/ezsystems/ezpublish-kernel.git","svn_url":"https://github.com/ezsystems/ezpublish-kernel","homepage":"http://ezplatform.com/","size":51387,"stargazers_count":115,"watchers_count":115,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":162,"mirror_url":null,"open_issues_count":71,"forks":162,"open_issues":71,"watchers":115,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772"},"html":{"href":"https://github.com/ezsystems/ezpublish-kernel/pull/1772"},"issue":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/1772"},"comments":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/issues/1772/comments"},"review_comments":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772/comments"},"review_comment":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/pulls/1772/commits"},"statuses":{"href":"https://api.github.com/repos/ezsystems/ezpublish-kernel/statuses/371bd05390d6381cfe00d68d3e55e20f6a96f8a7"}}}}
{"actor":{"display_login":"bdunogier"}}