payload: {"action":"created","comment":{"url":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/comments/316656238","pull_request_review_id":278390851,"id":316656238,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMxNjY1NjIzOA==","diff_hunk":"@@ -0,0 +1,43 @@\n+﻿---\n+uid: SecuringDataViews\n+---\n+\n+# Securing Data Views\n+\n+Data view security is configured at multiple hierarchies. The highest level applies to the data views collection as a whole. Then individual data views can be secured. And finally, the data within a data view can be secured. Each of these levels are configured separately and act as independent authorization checks. \n+\n+This section covers information specific to access control within the data views feature. For background information about access control throughout OSIsoft Cloud Services and how to configure the access control objects, see [Role-based access control](..\\Access_Control.md). \n+\n+## Data Views Collection Access Control\n+The data views collection access control list is used to control which users and clients are authorized to create data views. Only users and clients with Write access rights can create data views. See [CommonAccessRightsEnum](..\\Access_Control.md#commonaccessrightsenum) for a complete list of available access rights. \n+\n+The data views collection access control list also determines the default access control list for individual data views. Note that changing the collection level access control list does not affect existing data views as the collection level access control list is only used when the data view is first created. Once the data view exists, data view level access control is managed independently of collection level access control. See [Data Views Access Control](#data-views-access-control) for more information on securing individual data views. \n+\n+When a namespace is first created, the data views collection access control list will default to the access control list for the entire namespace. Use the API routes in [Access Control API](AccessControl_API.md) to view and update the data views collection access control list. Note, only users and clients with ManageAccessControl rights on the data views collection are authorized to view and update the collection level access control list. \n+\n+## Data Views Access Control\n+Data views are also secured individually on a per data view basis. This allows data views containing sensitive information to be secured more tightly without limiting access to all data views within the collection. \n+\n+There are two objects that control authorization to an individual data view, the data view access control list and the data view owner. See [Role-based access control](..\\Access_Control.md) for more information about the access control list and owner objects. Note that owner authorization supersedes access control list authorization meaning that an owner, typically the user or client that created the data view, has full access to the data view regardless of what is in the access control list. \n+\n+The data view owner and access control list control basic authorization to a given data view. See the table below for the required access rights for each operation that can be performed against a data view. For the full list of available access rights, see [CommonAccessRightsEnum](..\\Access_Control.md#commonaccessrightsenum). \n+\n+| Operation                      | Required access rights         |\n+| ------------------------------ | ------------------------------ |\n+| Read                           | Read                           |\n+| Update                         | Write                          |\n+| Delete                         | Delete                         |\n+| Read access control objects    | ManageAccessControl            |\n+| Update access control objects  | ManageAccessControl            |\n+| Create                         | Write on data view collection<br> (see [Collection access control](#data-views-collection-access-control))  |\n+\n+On creation, a data view’s access control list will default to the access control list of the data views collection. The data view owner will default to the user or client that created the data view. Use the API routes in [Access Control API](AccessControl_API.md) to view and update the access control list and owner of a given data view. \n+\n+## Data Access Control\n+Data views honor the configured access control rights of streams (see [Streams](..\\SequentialDataStore\\SDS_Streams.md)). Users and clients with read access on a data view are not automatically granted read access to the data contained within the data view as this authorization is configured at the stream level. \n+\n+For example, say there is a data view that contains data from three streams – stream1, stream2, and stream3. Both user1 and user2 have read access to the data view. User1 also has read authorization to all three streams. However, user2 only has read authorization to stream1. When user1 requests data items for the data view (see [Get DataItems](DataRetrieval_API.md#get-dataitems)), user1 will see all three streams listed. When user2 makes the same request, user2 will only see stream1 listed. This is because the stream level authorization is preventing user2 from seeing the data associated with streams 2 and 3. Similarly, when user2 requests data for the data view using [Get Data View Data](DataRetrieval_API.md#get-data-view-data), he will only see data for stream1. Cells that should contain data for streams 2 and 3 as defined in the data view mappings will be empty.","path":"Documentation/DataViews/SecuringDataViews.md","position":null,"original_position":39,"commit_id":"84f10fa87321e2e2979047c1fe992cb19a59a3b6","original_commit_id":"9bb88483fac965c643ed3ab1facf382eca63435f","user":{"login":"emonino","id":25622845,"node_id":"MDQ6VXNlcjI1NjIyODQ1","avatar_url":"https://avatars0.githubusercontent.com/u/25622845?v=4","gravatar_id":"","url":"https://api.github.com/users/emonino","html_url":"https://github.com/emonino","followers_url":"https://api.github.com/users/emonino/followers","following_url":"https://api.github.com/users/emonino/following{/other_user}","gists_url":"https://api.github.com/users/emonino/gists{/gist_id}","starred_url":"https://api.github.com/users/emonino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emonino/subscriptions","organizations_url":"https://api.github.com/users/emonino/orgs","repos_url":"https://api.github.com/users/emonino/repos","events_url":"https://api.github.com/users/emonino/events{/privacy}","received_events_url":"https://api.github.com/users/emonino/received_events","type":"User","site_admin":false},"body":"Fixed","created_at":"2019-08-22T12:44:09Z","updated_at":"2019-08-22T12:44:09Z","html_url":"https://github.com/osisoft/OCS-Docs/pull/132#discussion_r316656238","pull_request_url":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/comments/316656238"},"html":{"href":"https://github.com/osisoft/OCS-Docs/pull/132#discussion_r316656238"},"pull_request":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132"}},"in_reply_to_id":316344675},"pull_request":{"url":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132","id":307720313,"node_id":"MDExOlB1bGxSZXF1ZXN0MzA3NzIwMzEz","html_url":"https://github.com/osisoft/OCS-Docs/pull/132","diff_url":"https://github.com/osisoft/OCS-Docs/pull/132.diff","patch_url":"https://github.com/osisoft/OCS-Docs/pull/132.patch","issue_url":"https://api.github.com/repos/osisoft/OCS-Docs/issues/132","number":132,"state":"open","locked":false,"title":"Dataviews access control documentation","user":{"login":"emonino","id":25622845,"node_id":"MDQ6VXNlcjI1NjIyODQ1","avatar_url":"https://avatars0.githubusercontent.com/u/25622845?v=4","gravatar_id":"","url":"https://api.github.com/users/emonino","html_url":"https://github.com/emonino","followers_url":"https://api.github.com/users/emonino/followers","following_url":"https://api.github.com/users/emonino/following{/other_user}","gists_url":"https://api.github.com/users/emonino/gists{/gist_id}","starred_url":"https://api.github.com/users/emonino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emonino/subscriptions","organizations_url":"https://api.github.com/users/emonino/orgs","repos_url":"https://api.github.com/users/emonino/repos","events_url":"https://api.github.com/users/emonino/events{/privacy}","received_events_url":"https://api.github.com/users/emonino/received_events","type":"User","site_admin":false},"body":"","created_at":"2019-08-15T14:09:10Z","updated_at":"2019-08-22T12:44:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5a7e0716b225d26c0d46140258dbd8f20029cbe5","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132/commits","review_comments_url":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132/comments","review_comment_url":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/osisoft/OCS-Docs/issues/132/comments","statuses_url":"https://api.github.com/repos/osisoft/OCS-Docs/statuses/84f10fa87321e2e2979047c1fe992cb19a59a3b6","head":{"label":"emonino:dataviews-access-control-documentation","ref":"dataviews-access-control-documentation","sha":"84f10fa87321e2e2979047c1fe992cb19a59a3b6","user":{"login":"emonino","id":25622845,"node_id":"MDQ6VXNlcjI1NjIyODQ1","avatar_url":"https://avatars0.githubusercontent.com/u/25622845?v=4","gravatar_id":"","url":"https://api.github.com/users/emonino","html_url":"https://github.com/emonino","followers_url":"https://api.github.com/users/emonino/followers","following_url":"https://api.github.com/users/emonino/following{/other_user}","gists_url":"https://api.github.com/users/emonino/gists{/gist_id}","starred_url":"https://api.github.com/users/emonino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emonino/subscriptions","organizations_url":"https://api.github.com/users/emonino/orgs","repos_url":"https://api.github.com/users/emonino/repos","events_url":"https://api.github.com/users/emonino/events{/privacy}","received_events_url":"https://api.github.com/users/emonino/received_events","type":"User","site_admin":false},"repo":{"id":199505787,"node_id":"MDEwOlJlcG9zaXRvcnkxOTk1MDU3ODc=","name":"OCS-Docs","full_name":"emonino/OCS-Docs","private":false,"owner":{"login":"emonino","id":25622845,"node_id":"MDQ6VXNlcjI1NjIyODQ1","avatar_url":"https://avatars0.githubusercontent.com/u/25622845?v=4","gravatar_id":"","url":"https://api.github.com/users/emonino","html_url":"https://github.com/emonino","followers_url":"https://api.github.com/users/emonino/followers","following_url":"https://api.github.com/users/emonino/following{/other_user}","gists_url":"https://api.github.com/users/emonino/gists{/gist_id}","starred_url":"https://api.github.com/users/emonino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emonino/subscriptions","organizations_url":"https://api.github.com/users/emonino/orgs","repos_url":"https://api.github.com/users/emonino/repos","events_url":"https://api.github.com/users/emonino/events{/privacy}","received_events_url":"https://api.github.com/users/emonino/received_events","type":"User","site_admin":false},"html_url":"https://github.com/emonino/OCS-Docs","description":"Documentation website for OSIsoft Cloud Service","fork":true,"url":"https://api.github.com/repos/emonino/OCS-Docs","forks_url":"https://api.github.com/repos/emonino/OCS-Docs/forks","keys_url":"https://api.github.com/repos/emonino/OCS-Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/emonino/OCS-Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/emonino/OCS-Docs/teams","hooks_url":"https://api.github.com/repos/emonino/OCS-Docs/hooks","issue_events_url":"https://api.github.com/repos/emonino/OCS-Docs/issues/events{/number}","events_url":"https://api.github.com/repos/emonino/OCS-Docs/events","assignees_url":"https://api.github.com/repos/emonino/OCS-Docs/assignees{/user}","branches_url":"https://api.github.com/repos/emonino/OCS-Docs/branches{/branch}","tags_url":"https://api.github.com/repos/emonino/OCS-Docs/tags","blobs_url":"https://api.github.com/repos/emonino/OCS-Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/emonino/OCS-Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/emonino/OCS-Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/emonino/OCS-Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/emonino/OCS-Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/emonino/OCS-Docs/languages","stargazers_url":"https://api.github.com/repos/emonino/OCS-Docs/stargazers","contributors_url":"https://api.github.com/repos/emonino/OCS-Docs/contributors","subscribers_url":"https://api.github.com/repos/emonino/OCS-Docs/subscribers","subscription_url":"https://api.github.com/repos/emonino/OCS-Docs/subscription","commits_url":"https://api.github.com/repos/emonino/OCS-Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/emonino/OCS-Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/emonino/OCS-Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/emonino/OCS-Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/emonino/OCS-Docs/contents/{+path}","compare_url":"https://api.github.com/repos/emonino/OCS-Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/emonino/OCS-Docs/merges","archive_url":"https://api.github.com/repos/emonino/OCS-Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/emonino/OCS-Docs/downloads","issues_url":"https://api.github.com/repos/emonino/OCS-Docs/issues{/number}","pulls_url":"https://api.github.com/repos/emonino/OCS-Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/emonino/OCS-Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/emonino/OCS-Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/emonino/OCS-Docs/labels{/name}","releases_url":"https://api.github.com/repos/emonino/OCS-Docs/releases{/id}","deployments_url":"https://api.github.com/repos/emonino/OCS-Docs/deployments","created_at":"2019-07-29T18:22:50Z","updated_at":"2019-08-22T12:23:19Z","pushed_at":"2019-08-22T12:26:50Z","git_url":"git://github.com/emonino/OCS-Docs.git","ssh_url":"git@github.com:emonino/OCS-Docs.git","clone_url":"https://github.com/emonino/OCS-Docs.git","svn_url":"https://github.com/emonino/OCS-Docs","homepage":"https://ocs-docs.osisoft.com/","size":9431,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"osisoft:master","ref":"master","sha":"fe659a1d712550e020d89e4c7f309d2a4dc9279e","user":{"login":"osisoft","id":10332995,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwMzMyOTk1","avatar_url":"https://avatars3.githubusercontent.com/u/10332995?v=4","gravatar_id":"","url":"https://api.github.com/users/osisoft","html_url":"https://github.com/osisoft","followers_url":"https://api.github.com/users/osisoft/followers","following_url":"https://api.github.com/users/osisoft/following{/other_user}","gists_url":"https://api.github.com/users/osisoft/gists{/gist_id}","starred_url":"https://api.github.com/users/osisoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/osisoft/subscriptions","organizations_url":"https://api.github.com/users/osisoft/orgs","repos_url":"https://api.github.com/users/osisoft/repos","events_url":"https://api.github.com/users/osisoft/events{/privacy}","received_events_url":"https://api.github.com/users/osisoft/received_events","type":"Organization","site_admin":false},"repo":{"id":147826717,"node_id":"MDEwOlJlcG9zaXRvcnkxNDc4MjY3MTc=","name":"OCS-Docs","full_name":"osisoft/OCS-Docs","private":false,"owner":{"login":"osisoft","id":10332995,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwMzMyOTk1","avatar_url":"https://avatars3.githubusercontent.com/u/10332995?v=4","gravatar_id":"","url":"https://api.github.com/users/osisoft","html_url":"https://github.com/osisoft","followers_url":"https://api.github.com/users/osisoft/followers","following_url":"https://api.github.com/users/osisoft/following{/other_user}","gists_url":"https://api.github.com/users/osisoft/gists{/gist_id}","starred_url":"https://api.github.com/users/osisoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/osisoft/subscriptions","organizations_url":"https://api.github.com/users/osisoft/orgs","repos_url":"https://api.github.com/users/osisoft/repos","events_url":"https://api.github.com/users/osisoft/events{/privacy}","received_events_url":"https://api.github.com/users/osisoft/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/osisoft/OCS-Docs","description":"Documentation website for OSIsoft Cloud Service","fork":false,"url":"https://api.github.com/repos/osisoft/OCS-Docs","forks_url":"https://api.github.com/repos/osisoft/OCS-Docs/forks","keys_url":"https://api.github.com/repos/osisoft/OCS-Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/osisoft/OCS-Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/osisoft/OCS-Docs/teams","hooks_url":"https://api.github.com/repos/osisoft/OCS-Docs/hooks","issue_events_url":"https://api.github.com/repos/osisoft/OCS-Docs/issues/events{/number}","events_url":"https://api.github.com/repos/osisoft/OCS-Docs/events","assignees_url":"https://api.github.com/repos/osisoft/OCS-Docs/assignees{/user}","branches_url":"https://api.github.com/repos/osisoft/OCS-Docs/branches{/branch}","tags_url":"https://api.github.com/repos/osisoft/OCS-Docs/tags","blobs_url":"https://api.github.com/repos/osisoft/OCS-Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/osisoft/OCS-Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/osisoft/OCS-Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/osisoft/OCS-Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/osisoft/OCS-Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/osisoft/OCS-Docs/languages","stargazers_url":"https://api.github.com/repos/osisoft/OCS-Docs/stargazers","contributors_url":"https://api.github.com/repos/osisoft/OCS-Docs/contributors","subscribers_url":"https://api.github.com/repos/osisoft/OCS-Docs/subscribers","subscription_url":"https://api.github.com/repos/osisoft/OCS-Docs/subscription","commits_url":"https://api.github.com/repos/osisoft/OCS-Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/osisoft/OCS-Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/osisoft/OCS-Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/osisoft/OCS-Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/osisoft/OCS-Docs/contents/{+path}","compare_url":"https://api.github.com/repos/osisoft/OCS-Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/osisoft/OCS-Docs/merges","archive_url":"https://api.github.com/repos/osisoft/OCS-Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/osisoft/OCS-Docs/downloads","issues_url":"https://api.github.com/repos/osisoft/OCS-Docs/issues{/number}","pulls_url":"https://api.github.com/repos/osisoft/OCS-Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/osisoft/OCS-Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/osisoft/OCS-Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/osisoft/OCS-Docs/labels{/name}","releases_url":"https://api.github.com/repos/osisoft/OCS-Docs/releases{/id}","deployments_url":"https://api.github.com/repos/osisoft/OCS-Docs/deployments","created_at":"2018-09-07T13:25:04Z","updated_at":"2019-08-21T19:58:34Z","pushed_at":"2019-08-22T12:26:52Z","git_url":"git://github.com/osisoft/OCS-Docs.git","ssh_url":"git@github.com:osisoft/OCS-Docs.git","clone_url":"https://github.com/osisoft/OCS-Docs.git","svn_url":"https://github.com/osisoft/OCS-Docs","homepage":"https://ocs-docs.osisoft.com/","size":9583,"stargazers_count":6,"watchers_count":6,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":41,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":6,"license":null,"forks":41,"open_issues":6,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132"},"html":{"href":"https://github.com/osisoft/OCS-Docs/pull/132"},"issue":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/issues/132"},"comments":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/issues/132/comments"},"review_comments":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132/comments"},"review_comment":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/pulls/132/commits"},"statuses":{"href":"https://api.github.com/repos/osisoft/OCS-Docs/statuses/84f10fa87321e2e2979047c1fe992cb19a59a3b6"}},"author_association":"CONTRIBUTOR"}}
other: {"actor":{"display_login":"emonino"}}