{"action":"created","comment":{"url":"https://api.github.com/repos/confluentinc/ksql/pulls/comments/176790935","pull_request_review_id":106555823,"id":176790935,"diff_hunk":"@@ -1,4 +1,242 @@\n .. _ksql-security:\n \n Securing KSQL\n--------------\n\\ No newline at end of file\n+=============\n+\n+KSQL supports many of the security features of both Apache Kafka and the |sr|.\n+\n+- KSQL supports Apache Kafka security features such as :ref:`SSL for encryption <kafka_ssl_encryption>`,\n+  :ref:`SASL for authentication <kafka_sasl_auth>`, and :ref:`ACLs <kafka_authorization>`.\n+- KSQL supports :ref:`Schema Registry security features <schemaregistry_security>` such as SSL and SASL.\n+\n+.. contents:: Table of Contents\n+    :local:\n+    :depth: 1\n+\n+.. _steps-configure-security:\n+\n+Configuring Security for KSQL\n+-----------------------------\n+\n+To configure security for KSQL, add your configuration settings to the ``<path-to-confluent>/etc/ksql/ksql-server.properties``\n+file and then :ref:`start the KSQL server <install_ksql-server>` with your configuration file specified.\n+\n+.. code:: bash\n+\n+    $ <path-to-confluent>/bin/ksql-server-start <path-to-confluent>/etc/ksql/ksql-server.properties\n+\n+---------------------------------------\n+Configuration Examples for Apache Kafka\n+---------------------------------------\n+\n+    To connect to a secured Kafka cluster, Kafka client applications must provide their security credentials. The following\n+    are common configuration examples.\n+\n+    **Connect to a secure Kafka cluster using PLAIN SASL and SSL, where the certificates have been signed by a CA trusted by\n+    the default JVM trust store**\n+\n+    In this example, the following entries are added to the KSQL server configuration file (``ksql-server.properties``). This\n+    configuration enables KSQL to connect to a secure Kafka cluster using PLAIN SASL, where the SSL certificates have been\n+    signed by a CA trusted by the default JVM trust store. Other options include GSSAPI and Kerberos.\n+\n+    .. code:: bash\n+\n+        security.protocol=SASL_SSL\n+        sasl.mechanism=PLAIN\n+        sasl.jaas.config=\\\n+            org.apache.kafka.common.security.plain.PlainLoginModule required `\n+            username=\"<authenticated-ksql-user>\" `\n+            password=\"<password>\";\n+\n+    **Run KSQL against an Apache Kafka cluster in Confluent Cloud**\n+\n+    In this example, KSQL is run against an Kafka cluster in |ccloud|. For more information, see :ref:`install_ksql-ccloud`.\n+\n+    .. code:: bash\n+\n+        # Comma-separated list of the the Confluent Cloud broker endpoints. eg. r0.great-app.confluent.aws.prod.cloud:9092,\n+        # r1.great-app.confluent.aws.prod.cloud:9093,r2.great-app.confluent.aws.prod.cloud:9094\n+        bootstrap.servers=<bootstrap-server-endpoints>\n+        ksql.sink.replicas=3\n+        replication.factor=3\n+        security.protocol=SASL_SSL\n+        sasl.mechanism=PLAIN\n+        sasl.jaas.config=\\\n+            org.apache.kafka.common.security.plain.PlainLoginModule required \\\n+            username=\"<confluent cloud access key>\" \\\n+            password=\"<confluent cloud secret>\";\n+\n+    **Monitoring Interceptors for Control Center Streams Monitoring**\n+\n+    In this example, KSQL is configured to connect to an Apache Kafka cluster using SASL and SSL and integrate with |c3-short|\n+    using the :ref:`Control Center interceptors <controlcenter_clients>`.\n+\n+\n+    .. code:: bash\n+\n+        # Producer Confluent Monitoring Interceptors for Control Center streams monitoring\n+        producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor\n+        producer.confluent.monitoring.interceptor.ssl.truststore.location=/etc/kafka/secrets/kafka.client.truststore.jks\n+        producer.confluent.monitoring.interceptor.ssl.truststore.password=confluent\n+        producer.confluent.monitoring.interceptor.ssl.keystore.location=/etc/kafka/secrets/kafka.client.keystore.jks\n+        producer.confluent.monitoring.interceptor.ssl.keystore.password=confluent\n+        producer.confluent.monitoring.interceptor.ssl.key.password=confluent\n+        producer.confluent.monitoring.interceptor.security.protocol=SASL_SSL\n+        producer.confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=\"client\" password=\"client-secret\";\n+        producer.confluent.monitoring.interceptor.sasl.mechanism=PLAIN\n+\n+        # Consumer Confluent Monitoring Interceptors for Control Center streams monitoring\n+        consumer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor\n+        consumer.confluent.monitoring.interceptor.ssl.truststore.location=/etc/kafka/secrets/kafka.client.truststore.jks\n+        consumer.confluent.monitoring.interceptor.ssl.truststore.password=confluent\n+        consumer.confluent.monitoring.interceptor.ssl.keystore.location=/etc/kafka/secrets/kafka.client.keystore.jks\n+        consumer.confluent.monitoring.interceptor.ssl.keystore.password=confluent\n+        consumer.confluent.monitoring.interceptor.ssl.key.password=confluent\n+        consumer.confluent.monitoring.interceptor.security.protocol=SASL_SSL\n+        consumer.confluent.monitoring.interceptor.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=\"client\" password=\"client-secret\";\n+        consumer.confluent.monitoring.interceptor.sasl.mechanism=PLAIN\n+\n+    The exact settings you need depend on what SASL mechanism your Kafka cluster is using and how your SSL certificates\n+    are signed. For more information, see the `Security section of the Kafka documentation <http://kafka.apache.org/documentation.html#security>`__.\n+\n+-----------------------------------------\n+Configuration Example for Schema Registry\n+-----------------------------------------\n+\n+    The following is a common configuration example.\n+\n+    **Communicate with the Confluent Schema Registry over HTTPS**\n+\n+    #. Specify the HTTPS endpoint in the ``ksql.schema.registry.url`` setting in the\n+       KSQL configuration file:\n+\n+       .. code:: bash\n+\n+            ksql.schema.registry.url=https://<host-name-of-schema-registry>:<ssl-port>\n+\n+    #. If the Schema Registry's SSL certificate is not signed by a CA that is recognized by the JVM by default, then you\n+       must provide a suitable truststore when starting KSQL via the command line:\n+\n+       .. code:: bash\n+\n+          $ KSQL_OPTS=\"-Djavax.net.ssl.trustStore=<path-to-trust-store> -Djavax.net.ssl.trustStorePassword=<store-password>\" ksql-server-start <props>\n+\n+    The exact settings you need depend on what SASL mechanism the Confluent Schema Registry is using is using and how your SSL certificates\n+    are signed. For more information, see :ref:`schemaregistry_security`.\n+\n+\n+Using KSQL with Kafka Clusters Secured with ACLs\n+------------------------------------------------\n+\n+You can use KSQL with Apache Kafka clusters that are secured with ACLs. The behavior depends on whether the cluster is\n+interactive or non-interactive.\n+\n+Kafka clusters that use ACLs to control access to resources require clients to authenticate as a particular user. Interactive\n+KSQL clusters require that this authenticated KSQL user has open access to create, read, write, delete topics, and use any\n+consumer group.\n+\n+The :ref:`Kafka Authorizer <kafka_authorization>` (``SimpleAclAuthorizer``) terminology is used to describe the ACLs.\n+Each ACL is made up of these parts:\n+\n+Resource\n+    A resource is an object that adheres to the permissions defined by the ACL. A resource is comprised of a resource type\n+    and resource name:\n+\n+    - ``RESOURCE_TYPE``, for example ``TOPIC`` or consumer ``GROUP``.\n+    - Resource name, where the name is either specific or the wildcard ``*``, meaning all resources of this type.\n+\n+    The ``CLUSTER`` resource type does not require a resource name because it refers to the entire Kafka cluster.\n+\n+Operation\n+    The operation that is performed on the resource, for example ``READ``.\n+\n+Permission\n+    The type of access an ACL allows or denies access.\n+\n+Principal\n+    An authenticated user or group. For example, ``\"user: Fred\"`` or ``\"group: fraud\"``. The identity of Kafka clients","path":"docs/installation/server-config/security.rst","position":159,"original_position":159,"commit_id":"4e46538e46bf2ac65cf9d07a58bfb11c50e15fb1","original_commit_id":"4e46538e46bf2ac65cf9d07a58bfb11c50e15fb1","user":{"login":"big-andy-coates","id":8012398,"avatar_url":"https://avatars0.githubusercontent.com/u/8012398?v=4","gravatar_id":"","url":"https://api.github.com/users/big-andy-coates","html_url":"https://github.com/big-andy-coates","followers_url":"https://api.github.com/users/big-andy-coates/followers","following_url":"https://api.github.com/users/big-andy-coates/following{/other_user}","gists_url":"https://api.github.com/users/big-andy-coates/gists{/gist_id}","starred_url":"https://api.github.com/users/big-andy-coates/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/big-andy-coates/subscriptions","organizations_url":"https://api.github.com/users/big-andy-coates/orgs","repos_url":"https://api.github.com/users/big-andy-coates/repos","events_url":"https://api.github.com/users/big-andy-coates/events{/privacy}","received_events_url":"https://api.github.com/users/big-andy-coates/received_events","type":"User","site_admin":false},"body":"Not 'authenticated user', more 'specific user'. \r\n\r\n> The identity of Kafka clients is the user principal which represents an authenticated user in a secure cluster.\r\n\r\nNot sure what this means.","created_at":"2018-03-23T16:28:47Z","updated_at":"2018-03-23T16:41:22Z","html_url":"https://github.com/confluentinc/ksql/pull/960#discussion_r176790935","pull_request_url":"https://api.github.com/repos/confluentinc/ksql/pulls/960","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/confluentinc/ksql/pulls/comments/176790935"},"html":{"href":"https://github.com/confluentinc/ksql/pull/960#discussion_r176790935"},"pull_request":{"href":"https://api.github.com/repos/confluentinc/ksql/pulls/960"}}},"pull_request":{"url":"https://api.github.com/repos/confluentinc/ksql/pulls/960","id":175373586,"html_url":"https://github.com/confluentinc/ksql/pull/960","diff_url":"https://github.com/confluentinc/ksql/pull/960.diff","patch_url":"https://github.com/confluentinc/ksql/pull/960.patch","issue_url":"https://api.github.com/repos/confluentinc/ksql/issues/960","number":960,"state":"open","locked":false,"title":"KSQL-525 - Security docs ","user":{"login":"joel-hamill","id":11722533,"avatar_url":"https://avatars0.githubusercontent.com/u/11722533?v=4","gravatar_id":"","url":"https://api.github.com/users/joel-hamill","html_url":"https://github.com/joel-hamill","followers_url":"https://api.github.com/users/joel-hamill/followers","following_url":"https://api.github.com/users/joel-hamill/following{/other_user}","gists_url":"https://api.github.com/users/joel-hamill/gists{/gist_id}","starred_url":"https://api.github.com/users/joel-hamill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joel-hamill/subscriptions","organizations_url":"https://api.github.com/users/joel-hamill/orgs","repos_url":"https://api.github.com/users/joel-hamill/repos","events_url":"https://api.github.com/users/joel-hamill/events{/privacy}","received_events_url":"https://api.github.com/users/joel-hamill/received_events","type":"User","site_admin":false},"body":"https://confluentinc.atlassian.net/browse/KSQL-525\r\n\r\nStaging server is here: http://staging-docs.confluent.io.s3-website-us-west-2.amazonaws.com/PR/767/4.1.0/ksql/docs/installation/server-config/security.html","created_at":"2018-03-15T20:44:16Z","updated_at":"2018-03-23T16:41:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e6cf70688031f8a7dd1a497e4cb99a94d7712c5c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":674298336,"url":"https://api.github.com/repos/confluentinc/ksql/labels/documentation","name":"documentation","color":"fbca04","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/confluentinc/ksql/pulls/960/commits","review_comments_url":"https://api.github.com/repos/confluentinc/ksql/pulls/960/comments","review_comment_url":"https://api.github.com/repos/confluentinc/ksql/pulls/comments{/number}","comments_url":"https://api.github.com/repos/confluentinc/ksql/issues/960/comments","statuses_url":"https://api.github.com/repos/confluentinc/ksql/statuses/4e46538e46bf2ac65cf9d07a58bfb11c50e15fb1","head":{"label":"confluentinc:joel-hamill/KSQL-525","ref":"joel-hamill/KSQL-525","sha":"4e46538e46bf2ac65cf9d07a58bfb11c50e15fb1","user":{"login":"confluentinc","id":9439498,"avatar_url":"https://avatars0.githubusercontent.com/u/9439498?v=4","gravatar_id":"","url":"https://api.github.com/users/confluentinc","html_url":"https://github.com/confluentinc","followers_url":"https://api.github.com/users/confluentinc/followers","following_url":"https://api.github.com/users/confluentinc/following{/other_user}","gists_url":"https://api.github.com/users/confluentinc/gists{/gist_id}","starred_url":"https://api.github.com/users/confluentinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/confluentinc/subscriptions","organizations_url":"https://api.github.com/users/confluentinc/orgs","repos_url":"https://api.github.com/users/confluentinc/repos","events_url":"https://api.github.com/users/confluentinc/events{/privacy}","received_events_url":"https://api.github.com/users/confluentinc/received_events","type":"Organization","site_admin":false},"repo":{"id":69400326,"name":"ksql","full_name":"confluentinc/ksql","owner":{"login":"confluentinc","id":9439498,"avatar_url":"https://avatars0.githubusercontent.com/u/9439498?v=4","gravatar_id":"","url":"https://api.github.com/users/confluentinc","html_url":"https://github.com/confluentinc","followers_url":"https://api.github.com/users/confluentinc/followers","following_url":"https://api.github.com/users/confluentinc/following{/other_user}","gists_url":"https://api.github.com/users/confluentinc/gists{/gist_id}","starred_url":"https://api.github.com/users/confluentinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/confluentinc/subscriptions","organizations_url":"https://api.github.com/users/confluentinc/orgs","repos_url":"https://api.github.com/users/confluentinc/repos","events_url":"https://api.github.com/users/confluentinc/events{/privacy}","received_events_url":"https://api.github.com/users/confluentinc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/confluentinc/ksql","description":"KSQL - the Streaming SQL Engine for Apache Kafka ","fork":false,"url":"https://api.github.com/repos/confluentinc/ksql","forks_url":"https://api.github.com/repos/confluentinc/ksql/forks","keys_url":"https://api.github.com/repos/confluentinc/ksql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/confluentinc/ksql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/confluentinc/ksql/teams","hooks_url":"https://api.github.com/repos/confluentinc/ksql/hooks","issue_events_url":"https://api.github.com/repos/confluentinc/ksql/issues/events{/number}","events_url":"https://api.github.com/repos/confluentinc/ksql/events","assignees_url":"https://api.github.com/repos/confluentinc/ksql/assignees{/user}","branches_url":"https://api.github.com/repos/confluentinc/ksql/branches{/branch}","tags_url":"https://api.github.com/repos/confluentinc/ksql/tags","blobs_url":"https://api.github.com/repos/confluentinc/ksql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/confluentinc/ksql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/confluentinc/ksql/git/refs{/sha}","trees_url":"https://api.github.com/repos/confluentinc/ksql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/confluentinc/ksql/statuses/{sha}","languages_url":"https://api.github.com/repos/confluentinc/ksql/languages","stargazers_url":"https://api.github.com/repos/confluentinc/ksql/stargazers","contributors_url":"https://api.github.com/repos/confluentinc/ksql/contributors","subscribers_url":"https://api.github.com/repos/confluentinc/ksql/subscribers","subscription_url":"https://api.github.com/repos/confluentinc/ksql/subscription","commits_url":"https://api.github.com/repos/confluentinc/ksql/commits{/sha}","git_commits_url":"https://api.github.com/repos/confluentinc/ksql/git/commits{/sha}","comments_url":"https://api.github.com/repos/confluentinc/ksql/comments{/number}","issue_comment_url":"https://api.github.com/repos/confluentinc/ksql/issues/comments{/number}","contents_url":"https://api.github.com/repos/confluentinc/ksql/contents/{+path}","compare_url":"https://api.github.com/repos/confluentinc/ksql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/confluentinc/ksql/merges","archive_url":"https://api.github.com/repos/confluentinc/ksql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/confluentinc/ksql/downloads","issues_url":"https://api.github.com/repos/confluentinc/ksql/issues{/number}","pulls_url":"https://api.github.com/repos/confluentinc/ksql/pulls{/number}","milestones_url":"https://api.github.com/repos/confluentinc/ksql/milestones{/number}","notifications_url":"https://api.github.com/repos/confluentinc/ksql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/confluentinc/ksql/labels{/name}","releases_url":"https://api.github.com/repos/confluentinc/ksql/releases{/id}","deployments_url":"https://api.github.com/repos/confluentinc/ksql/deployments","created_at":"2016-09-27T21:30:15Z","updated_at":"2018-03-23T10:10:55Z","pushed_at":"2018-03-23T15:52:18Z","git_url":"git://github.com/confluentinc/ksql.git","ssh_url":"git@github.com:confluentinc/ksql.git","clone_url":"https://github.com/confluentinc/ksql.git","svn_url":"https://github.com/confluentinc/ksql","homepage":"","size":6586,"stargazers_count":1490,"watchers_count":1490,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":270,"mirror_url":null,"archived":false,"open_issues_count":217,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":270,"open_issues":217,"watchers":1490,"default_branch":"master"}},"base":{"label":"confluentinc:4.1.x","ref":"4.1.x","sha":"092f28c7bf81f9f6cd6fa28134f4a067f63eb83d","user":{"login":"confluentinc","id":9439498,"avatar_url":"https://avatars0.githubusercontent.com/u/9439498?v=4","gravatar_id":"","url":"https://api.github.com/users/confluentinc","html_url":"https://github.com/confluentinc","followers_url":"https://api.github.com/users/confluentinc/followers","following_url":"https://api.github.com/users/confluentinc/following{/other_user}","gists_url":"https://api.github.com/users/confluentinc/gists{/gist_id}","starred_url":"https://api.github.com/users/confluentinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/confluentinc/subscriptions","organizations_url":"https://api.github.com/users/confluentinc/orgs","repos_url":"https://api.github.com/users/confluentinc/repos","events_url":"https://api.github.com/users/confluentinc/events{/privacy}","received_events_url":"https://api.github.com/users/confluentinc/received_events","type":"Organization","site_admin":false},"repo":{"id":69400326,"name":"ksql","full_name":"confluentinc/ksql","owner":{"login":"confluentinc","id":9439498,"avatar_url":"https://avatars0.githubusercontent.com/u/9439498?v=4","gravatar_id":"","url":"https://api.github.com/users/confluentinc","html_url":"https://github.com/confluentinc","followers_url":"https://api.github.com/users/confluentinc/followers","following_url":"https://api.github.com/users/confluentinc/following{/other_user}","gists_url":"https://api.github.com/users/confluentinc/gists{/gist_id}","starred_url":"https://api.github.com/users/confluentinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/confluentinc/subscriptions","organizations_url":"https://api.github.com/users/confluentinc/orgs","repos_url":"https://api.github.com/users/confluentinc/repos","events_url":"https://api.github.com/users/confluentinc/events{/privacy}","received_events_url":"https://api.github.com/users/confluentinc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/confluentinc/ksql","description":"KSQL - the Streaming SQL Engine for Apache Kafka ","fork":false,"url":"https://api.github.com/repos/confluentinc/ksql","forks_url":"https://api.github.com/repos/confluentinc/ksql/forks","keys_url":"https://api.github.com/repos/confluentinc/ksql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/confluentinc/ksql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/confluentinc/ksql/teams","hooks_url":"https://api.github.com/repos/confluentinc/ksql/hooks","issue_events_url":"https://api.github.com/repos/confluentinc/ksql/issues/events{/number}","events_url":"https://api.github.com/repos/confluentinc/ksql/events","assignees_url":"https://api.github.com/repos/confluentinc/ksql/assignees{/user}","branches_url":"https://api.github.com/repos/confluentinc/ksql/branches{/branch}","tags_url":"https://api.github.com/repos/confluentinc/ksql/tags","blobs_url":"https://api.github.com/repos/confluentinc/ksql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/confluentinc/ksql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/confluentinc/ksql/git/refs{/sha}","trees_url":"https://api.github.com/repos/confluentinc/ksql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/confluentinc/ksql/statuses/{sha}","languages_url":"https://api.github.com/repos/confluentinc/ksql/languages","stargazers_url":"https://api.github.com/repos/confluentinc/ksql/stargazers","contributors_url":"https://api.github.com/repos/confluentinc/ksql/contributors","subscribers_url":"https://api.github.com/repos/confluentinc/ksql/subscribers","subscription_url":"https://api.github.com/repos/confluentinc/ksql/subscription","commits_url":"https://api.github.com/repos/confluentinc/ksql/commits{/sha}","git_commits_url":"https://api.github.com/repos/confluentinc/ksql/git/commits{/sha}","comments_url":"https://api.github.com/repos/confluentinc/ksql/comments{/number}","issue_comment_url":"https://api.github.com/repos/confluentinc/ksql/issues/comments{/number}","contents_url":"https://api.github.com/repos/confluentinc/ksql/contents/{+path}","compare_url":"https://api.github.com/repos/confluentinc/ksql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/confluentinc/ksql/merges","archive_url":"https://api.github.com/repos/confluentinc/ksql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/confluentinc/ksql/downloads","issues_url":"https://api.github.com/repos/confluentinc/ksql/issues{/number}","pulls_url":"https://api.github.com/repos/confluentinc/ksql/pulls{/number}","milestones_url":"https://api.github.com/repos/confluentinc/ksql/milestones{/number}","notifications_url":"https://api.github.com/repos/confluentinc/ksql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/confluentinc/ksql/labels{/name}","releases_url":"https://api.github.com/repos/confluentinc/ksql/releases{/id}","deployments_url":"https://api.github.com/repos/confluentinc/ksql/deployments","created_at":"2016-09-27T21:30:15Z","updated_at":"2018-03-23T10:10:55Z","pushed_at":"2018-03-23T15:52:18Z","git_url":"git://github.com/confluentinc/ksql.git","ssh_url":"git@github.com:confluentinc/ksql.git","clone_url":"https://github.com/confluentinc/ksql.git","svn_url":"https://github.com/confluentinc/ksql","homepage":"","size":6586,"stargazers_count":1490,"watchers_count":1490,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":270,"mirror_url":null,"archived":false,"open_issues_count":217,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":270,"open_issues":217,"watchers":1490,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/confluentinc/ksql/pulls/960"},"html":{"href":"https://github.com/confluentinc/ksql/pull/960"},"issue":{"href":"https://api.github.com/repos/confluentinc/ksql/issues/960"},"comments":{"href":"https://api.github.com/repos/confluentinc/ksql/issues/960/comments"},"review_comments":{"href":"https://api.github.com/repos/confluentinc/ksql/pulls/960/comments"},"review_comment":{"href":"https://api.github.com/repos/confluentinc/ksql/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/confluentinc/ksql/pulls/960/commits"},"statuses":{"href":"https://api.github.com/repos/confluentinc/ksql/statuses/4e46538e46bf2ac65cf9d07a58bfb11c50e15fb1"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"big-andy-coates"}}