Added: zeppelin/site/docs/0.6.0/rest-api/rest-notebook.html URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/rest-api/rest-notebook.html?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.6.0/rest-api/rest-notebook.html (added) +++ zeppelin/site/docs/0.6.0/rest-api/rest-notebook.html Wed Jul 6 06:25:29 2016 @@ -0,0 +1,1096 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Notebook REST API</title> + <meta name="description" content=""> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"> + + <!-- Le styles --> + <link href="/docs/0.6.0/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/docs.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/anchor.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/toc.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.6.0/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.6.0/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.6.0"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>0.6.0</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.6.0/index.html">What is Apache Zeppelin ?</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Getting Started</b><span></li> + <li><a href="/docs/0.6.0/install/install.html">Install</a></li> + <li><a href="/docs/0.6.0/install/install.html#apache-zeppelin-configuration">Configuration</a></li> + <li><a href="/docs/0.6.0/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li> + <li><a href="/docs/0.6.0/quickstart/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Basic Feature Guide</b><span></li> + <li><a href="/docs/0.6.0/manual/dynamicform.html">Dynamic Form</a></li> + <li><a href="/docs/0.6.0/manual/publish.html">Publish your Paragraph</a></li> + <li><a href="/docs/0.6.0/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>More</b><span></li> + <li><a href="/docs/0.6.0/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li> + <li><a href="/docs/0.6.0/install/upgrade.html">Upgrade Zeppelin Version</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu"> + <li><a href="/docs/0.6.0/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Usage</b><span></li> + <li><a href="/docs/0.6.0/manual/interpreterinstallation.html">Interpreter Installation</a></li> + <!--<li><a href="/docs/0.6.0/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>--> + <li><a href="/docs/0.6.0/manual/dependencymanagement.html">Interpreter Dependency Management</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Available Interpreters</b><span></li> + <li><a href="/docs/0.6.0/interpreter/alluxio.html">Alluxio</a></li> + <li><a href="/docs/0.6.0/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.6.0/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.6.0/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.6.0/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.6.0/interpreter/hbase.html">HBase</a></li> + <li><a href="/docs/0.6.0/interpreter/hdfs.html">HDFS</a></li> + <li><a href="/docs/0.6.0/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.6.0/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.6.0/interpreter/jdbc.html">JDBC</a></li> + <li><a href="/docs/0.6.0/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.6.0/interpreter/livy.html">Livy</a></li> + <li><a href="/docs/0.6.0/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.6.0/interpreter/python.html">Python</a></li> + <li><a href="/docs/0.6.0/interpreter/postgresql.html">Postgresql, HAWQ</a></li> + <li><a href="/docs/0.6.0/interpreter/r.html">R</a></li> + <li><a href="/docs/0.6.0/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.6.0/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.6.0/interpreter/spark.html">Spark</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li class="title"><span><b>Basic Display System</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#text">Text</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#html">Html</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#table">Table</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Angular API</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/back-end-angular.html">Angular (backend API)</a></li> + <li><a href="/docs/0.6.0/displaysystem/front-end-angular.html">Angular (frontend API)</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;"> + <li class="title"><span><b>Notebook Storage</b><span></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>REST API</b><span></li> + <li><a href="/docs/0.6.0/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-notebook.html">Notebook API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-configuration.html">Configuration API</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Security</b><span></li> + <li><a href="/docs/0.6.0/security/authentication.html">Authentication for NGINX</a></li> + <li><a href="/docs/0.6.0/security/shiroauthentication.html">Shiro Authentication</a></li> + <li><a href="/docs/0.6.0/security/notebook_authorization.html">Notebook Authorization</a></li> + <li><a href="/docs/0.6.0/security/interpreter_authorization.html">Interpreter & Data Resource Authorization</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Contibute</b><span></li> + <li><a href="/docs/0.6.0/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.6.0/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.6.0/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="content"> + +<!--<div class="hero-unit Notebook REST API"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <!-- +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> + +<h1>Apache Zeppelin Notebook REST API</h1> + +<div id="toc"></div> + +<h2>Overview</h2> + +<p>Apache Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +All REST APIs are available starting with the following endpoint <code>http://[zeppelin-server]:[zeppelin-port]/api</code>. +Note that Apache Zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as <a href="https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc">JSONView</a>.</p> + +<p>If you work with Apache Zeppelin and find a need for an additional REST API, please <a href="http://zeppelin.apache.org/community.html">file an issue or send us an email</a>.</p> + +<h2>Notebook REST API List</h2> + +<p>Notebooks REST API supports the following operations: List, Create, Get, Delete, Clone, Run, Export, Import as detailed in the following tables.</p> + +<h3>List of the notebooks</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method lists the available notebooks on your server. + Notebook JSON contains the <code>name</code> and <code>id</code> of all notebooks. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre> +{ + "status": "OK", + "message": "", + "body": [ + { + "name":"Homepage", + "id":"2AV4WUEMK" + }, + { + "name":"Zeppelin Tutorial", + "id":"2A94M5J1Z" + } + ] +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Create a new notebook</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method creates a new notebook using the given name or default name if none given. + The body field of the returned JSON contains the new notebook id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook</code></td> + </tr> + <tr> + <td>Success code</td> + <td>201</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON input (without paragraphs) </td> + <td><pre>{"name": "name of new notebook"}</pre></td> + </tr> + <tr> + <td> sample JSON input (with initial paragraphs) </td> + <td><pre> +{ + "name": "name of new notebook", + "paragraphs": [ + { + "title": "paragraph title1", + "text": "paragraph text1" + }, + { + "title": "paragraph title2", + "text": "paragraph text2" + } + ] +}</pre></td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre> +{ + "status": "CREATED", + "message": "", + "body": "2AZPHY918" +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Get an existing notebook information</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method retrieves an existing notebook's information using the given id. + The body field of the returned JSON contain information about paragraphs in the notebook. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre> +{ + "status": "OK", + "message": "", + "body": { + "paragraphs": [ + { + "text": "%sql \nselect age, count(1) value\nfrom bank \nwhere age < 30 \ngroup by age \norder by age", + "config": { + "colWidth": 4, + "graph": { + "mode": "multiBarChart", + "height": 300, + "optionOpen": false, + "keys": [ + { + "name": "age", + "index": 0, + "aggr": "sum" + } + ], + "values": [ + { + "name": "value", + "index": 1, + "aggr": "sum" + } + ], + "groups": [], + "scatter": { + "xAxis": { + "name": "age", + "index": 0, + "aggr": "sum" + }, + "yAxis": { + "name": "value", + "index": 1, + "aggr": "sum" + } + } + } + }, + "settings": { + "params": {}, + "forms": {} + }, + "jobName": "paragraph_1423500782552_-1439281894", + "id": "20150210-015302_1492795503", + "result": { + "code": "SUCCESS", + "type": "TABLE", + "msg": "age\tvalue\n19\t4\n20\t3\n21\t7\n22\t9\n23\t20\n24\t24\n25\t44\n26\t77\n27\t94\n28\t103\n29\t97\n" + }, + "dateCreated": "Feb 10, 2015 1:53:02 AM", + "dateStarted": "Jul 3, 2015 1:43:17 PM", + "dateFinished": "Jul 3, 2015 1:43:23 PM", + "status": "FINISHED", + "progressUpdateIntervalMs": 500 + } + ], + "name": "Zeppelin Tutorial", + "id": "2A94M5J1Z", + "angularObjects": {}, + "config": { + "looknfeel": "default" + }, + "info": {} + } +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Delete a notebook</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>DELETE</code> method deletes a notebook by the given notebook id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK","message": ""}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Clone a notebook</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method clones a notebook by the given id and create a new notebook using the given name + or default name if none given. + The body field of the returned JSON contains the new notebook id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>201</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON input </td> + <td><pre>{"name": "name of new notebook"}</pre></td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre> +{ + "status": "CREATED", + "message": "", + "body": "2AZPHY918" +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Run all paragraphs</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method runs all paragraphs in the given notebook id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK"}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Stop all paragraphs</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>DELETE</code> method stops all paragraphs in the given notebook id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status":"OK"}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Get the status of all paragraphs</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method gets the status of all paragraphs by the given notebook id. + The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre> +{ + "status": "OK", + "body": [ + { + "id":"20151121-212654_766735423", + "status":"FINISHED", + "finished":"Tue Nov 24 14:21:40 KST 2015", + "started":"Tue Nov 24 14:21:39 KST 2015" + }, + { + "progress":"1", + "id":"20151121-212657_730976687", + "status":"RUNNING", + "finished":"Tue Nov 24 14:21:35 KST 2015", + "started":"Tue Nov 24 14:21:40 KST 2015" + } + ] +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Run a paragraph</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method runs the paragraph by given notebook and paragraph id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[notebookId]/[paragraphId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON input (optional, only needed when if you want to update dynamic form's value) </td> + <td><pre> +{ + "name": "name of new notebook", + "params": { + "formLabel1": "value1", + "formLabel2": "value2" + } +}</pre></td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK"}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Stop a paragraph</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>DELETE</code> method stops the paragraph by given notebook and paragraph id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/job/[notebookId]/[paragraphId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK"}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Add Cron Job</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method adds cron job by the given notebook id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON input </td> + <td><pre>{"cron": "cron expression of notebook"}</pre></td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK"}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Remove Cron Job</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>DELETE</code> method removes cron job by the given notebook id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK"}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Get Cron Job</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method gets cron job expression of given notebook id. + The body field of the returned JSON contains the cron expression. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/cron/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK", "body": "* * * * * ?"}</pre></td> + </tr> + </table></p> + +<p><br /></p> + +<h3>Full text search through the paragraphs in all notebooks</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td><code>GET</code> request will return list of matching paragraphs + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/search?q=[query]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td>Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td>Sample JSON response </td> + <td><pre> +{ + "status": "OK", + "body": [ + { + "id": "<noteId>/paragraph/<paragraphId>", + "name":"Notebook Name", + "snippet":"", + "text":"" + } + ] +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Create a new paragraph</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method create a new paragraph using JSON payload. + The body field of the returned JSON contain the new paragraph id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[notebookId]/paragraph</code></td> + </tr> + <tr> + <td>Success code</td> + <td>201</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON input (add to the last) </td> + <td><pre> +{ + "title": "Paragraph insert revised", + "text": "%spark\nprintln(\"Paragraph insert revised\")" +}</pre></td> + </tr> + <tr> + <td> sample JSON input (add to specific index) </td> + <td><pre> +{ + "title": "Paragraph insert revised", + "text": "%spark\nprintln(\"Paragraph insert revised\")", + "index": 0 +}</pre></td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre> +{ + "status": "CREATED", + "message": "", + "body": "20151218-100330_1754029574" +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Get a paragraph information</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method retrieves an existing paragraph's information using the given id. + The body field of the returned JSON contain information about paragraph. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[notebookId]/paragraph/[paragraphId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre> +{ + "status": "OK", + "message": "", + "body": { + "title": "Paragraph2", + "text": "%spark\n\nprintln(\"it's paragraph2\")", + "dateUpdated": "Dec 18, 2015 7:33:54 AM", + "config": { + "colWidth": 12, + "graph": { + "mode": "table", + "height": 300, + "optionOpen": false, + "keys": [], + "values": [], + "groups": [], + "scatter": {} + }, + "enabled": true, + "title": true, + "editorMode": "ace/mode/scala" + }, + "settings": { + "params": {}, + "forms": {} + }, + "jobName": "paragraph_1450391574392_-1890856722", + "id": "20151218-073254_1105602047", + "result": { + "code": "SUCCESS", + "type": "TEXT", + "msg": "it's paragraph2\n" + }, + "dateCreated": "Dec 18, 2015 7:32:54 AM", + "dateStarted": "Dec 18, 2015 7:33:55 AM", + "dateFinished": "Dec 18, 2015 7:33:55 AM", + "status": "FINISHED", + "progressUpdateIntervalMs": 500 + } +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Move a paragraph to the specific index</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method moves a paragraph to the specific index (order) from the notebook. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[notebookId]/paragraph/[paragraphId]/move/[newIndex]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK","message": ""}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Delete a paragraph</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>DELETE</code> method deletes a paragraph by the given notebook and paragraph id. + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/[notebookId]/paragraph/[paragraphId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response </td> + <td><pre>{"status": "OK","message": ""}</pre></td> + </tr> + </table></p> + +<p><br /></p> + +<h3>Export a notebook</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method exports a notebook by the given id and gernerates a JSON + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/export/[notebookId]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>201</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <td> sample JSON response </td> + <td><pre>{ + "paragraphs": [ + { + "text": "%md This is my new paragraph in my new note", + "dateUpdated": "Jan 8, 2016 4:49:38 PM", + "config": { + "enabled": true + }, + "settings": { + "params": {}, + "forms": {} + }, + "jobName": "paragraph_1452300578795_1196072540", + "id": "20160108-164938_1685162144", + "dateCreated": "Jan 8, 2016 4:49:38 PM", + "status": "READY", + "progressUpdateIntervalMs": 500 + } + ], + "name": "source note for export", + "id": "2B82H3RR1", + "angularObjects": {}, + "config": {}, + "info": {} +}</pre></td> + </tr> + </table></p> + +<p><br /></p> + +<h3>Import a notebook</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>POST</code> method imports a notebook from the notebook JSON input + </td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/notebook/import</code></td> + </tr> + <tr> + <td>Success code</td> + <td>201</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <td>sample JSON input</td> + <td><pre> +{ + "paragraphs": [ + { + "text": "%md This is my new paragraph in my new note", + "dateUpdated": "Jan 8, 2016 4:49:38 PM", + "config": { + "enabled": true + }, + "settings": { + "params": {}, + "forms": {} + }, + "jobName": "paragraph_1452300578795_1196072540", + "id": "20160108-164938_1685162144", + "dateCreated": "Jan 8, 2016 4:49:38 PM", + "status": "READY", + "progressUpdateIntervalMs": 500 + } + ], + "name": "source note for export", + "id": "2B82H3RR1", + "angularObjects": {}, + "config": {}, + "info": {} +}</pre></td> + <tr> + <td>sample JSON response</td> + <td><pre> +{ + "status": "CREATED", + "message": "", + "body": "2AZPHY918" +}</pre></td> + </tr> + </tr> + </table></p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> +
Propchange: zeppelin/site/docs/0.6.0/rest-api/rest-notebook.html ------------------------------------------------------------------------------ svn:eol-style = native Added: zeppelin/site/docs/0.6.0/robot.txt URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/robot.txt?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.6.0/robot.txt (added) +++ zeppelin/site/docs/0.6.0/robot.txt Wed Jul 6 06:25:29 2016 @@ -0,0 +1,14 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. Propchange: zeppelin/site/docs/0.6.0/robot.txt ------------------------------------------------------------------------------ svn:eol-style = native Added: zeppelin/site/docs/0.6.0/rss.xml URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/rss.xml?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.6.0/rss.xml (added) +++ zeppelin/site/docs/0.6.0/rss.xml Wed Jul 6 06:25:29 2016 @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<rss version="2.0"> +<channel> + <title>Apache Zeppelin</title> + <description>Apache Zeppelin - The Apache Software Foundation</description> + <link>http://zeppelin.apache.org</link> + <link>http://zeppelin.apache.org</link> + <lastBuildDate>2016-07-06T15:17:13+09:00</lastBuildDate> + <pubDate>2016-07-06T15:17:13+09:00</pubDate> + <ttl>1800</ttl> + + + +</channel> +</rss> Propchange: zeppelin/site/docs/0.6.0/rss.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: zeppelin/site/docs/0.6.0/screenshots.html URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/screenshots.html?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.6.0/screenshots.html (added) +++ zeppelin/site/docs/0.6.0/screenshots.html Wed Jul 6 06:25:29 2016 @@ -0,0 +1,240 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Screenshots</title> + <meta name="description" content=""> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"> + + <!-- Le styles --> + <link href="/docs/0.6.0/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/docs.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/anchor.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/toc.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.6.0/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.6.0/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.6.0"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>0.6.0</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.6.0/index.html">What is Apache Zeppelin ?</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Getting Started</b><span></li> + <li><a href="/docs/0.6.0/install/install.html">Install</a></li> + <li><a href="/docs/0.6.0/install/install.html#apache-zeppelin-configuration">Configuration</a></li> + <li><a href="/docs/0.6.0/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li> + <li><a href="/docs/0.6.0/quickstart/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Basic Feature Guide</b><span></li> + <li><a href="/docs/0.6.0/manual/dynamicform.html">Dynamic Form</a></li> + <li><a href="/docs/0.6.0/manual/publish.html">Publish your Paragraph</a></li> + <li><a href="/docs/0.6.0/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>More</b><span></li> + <li><a href="/docs/0.6.0/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li> + <li><a href="/docs/0.6.0/install/upgrade.html">Upgrade Zeppelin Version</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu"> + <li><a href="/docs/0.6.0/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Usage</b><span></li> + <li><a href="/docs/0.6.0/manual/interpreterinstallation.html">Interpreter Installation</a></li> + <!--<li><a href="/docs/0.6.0/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>--> + <li><a href="/docs/0.6.0/manual/dependencymanagement.html">Interpreter Dependency Management</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Available Interpreters</b><span></li> + <li><a href="/docs/0.6.0/interpreter/alluxio.html">Alluxio</a></li> + <li><a href="/docs/0.6.0/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.6.0/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.6.0/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.6.0/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.6.0/interpreter/hbase.html">HBase</a></li> + <li><a href="/docs/0.6.0/interpreter/hdfs.html">HDFS</a></li> + <li><a href="/docs/0.6.0/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.6.0/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.6.0/interpreter/jdbc.html">JDBC</a></li> + <li><a href="/docs/0.6.0/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.6.0/interpreter/livy.html">Livy</a></li> + <li><a href="/docs/0.6.0/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.6.0/interpreter/python.html">Python</a></li> + <li><a href="/docs/0.6.0/interpreter/postgresql.html">Postgresql, HAWQ</a></li> + <li><a href="/docs/0.6.0/interpreter/r.html">R</a></li> + <li><a href="/docs/0.6.0/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.6.0/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.6.0/interpreter/spark.html">Spark</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li class="title"><span><b>Basic Display System</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#text">Text</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#html">Html</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#table">Table</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Angular API</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/back-end-angular.html">Angular (backend API)</a></li> + <li><a href="/docs/0.6.0/displaysystem/front-end-angular.html">Angular (frontend API)</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;"> + <li class="title"><span><b>Notebook Storage</b><span></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>REST API</b><span></li> + <li><a href="/docs/0.6.0/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-notebook.html">Notebook API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-configuration.html">Configuration API</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Security</b><span></li> + <li><a href="/docs/0.6.0/security/authentication.html">Authentication for NGINX</a></li> + <li><a href="/docs/0.6.0/security/shiroauthentication.html">Shiro Authentication</a></li> + <li><a href="/docs/0.6.0/security/notebook_authorization.html">Notebook Authorization</a></li> + <li><a href="/docs/0.6.0/security/interpreter_authorization.html">Interpreter & Data Resource Authorization</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Contibute</b><span></li> + <li><a href="/docs/0.6.0/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.6.0/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.6.0/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="content"> + +<!--<div class="hero-unit Screenshots"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <!-- +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> + +<div class="row"> + <div class="col-md-3"> + <a href="assets/themes/zeppelin/img/screenshots/sparksql.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/sparksql.png" /></a> + <center>SparkSQL with inline visualization</center> + </div> + <div class="col-md-3"> + <a href="assets/themes/zeppelin/img/screenshots/spark.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/spark.png" /></a> + <center>Scala code runs with Spark</center> + </div> + <div class="col-md-3"> + <a href="assets/themes/zeppelin/img/screenshots/markdown.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/markdown.png" /></a> + <center>Markdown supported</center> + </div> +</div> + +<p><br /> +<div class="row"> + <div class="col-md-3"> + <a href="assets/themes/zeppelin/img/screenshots/notebook.png"><img class="thumbnail" src="assets/themes/zeppelin/img/screenshots/notebook.png" /></a> + <center>Notebook</center> + </div> + <div class="col-md-3"> + </div> + <div class="col-md-3"> + </div> +</div></p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> + Propchange: zeppelin/site/docs/0.6.0/screenshots.html ------------------------------------------------------------------------------ svn:eol-style = native Added: zeppelin/site/docs/0.6.0/security/authentication.html URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/security/authentication.html?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.6.0/security/authentication.html (added) +++ zeppelin/site/docs/0.6.0/security/authentication.html Wed Jul 6 06:25:29 2016 @@ -0,0 +1,317 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Authentication for NGINX</title> + <meta name="description" content="Authentication for NGINX"> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"> + + <!-- Le styles --> + <link href="/docs/0.6.0/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/docs.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/anchor.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/toc.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.6.0/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.6.0/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.6.0"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>0.6.0</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.6.0/index.html">What is Apache Zeppelin ?</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Getting Started</b><span></li> + <li><a href="/docs/0.6.0/install/install.html">Install</a></li> + <li><a href="/docs/0.6.0/install/install.html#apache-zeppelin-configuration">Configuration</a></li> + <li><a href="/docs/0.6.0/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li> + <li><a href="/docs/0.6.0/quickstart/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Basic Feature Guide</b><span></li> + <li><a href="/docs/0.6.0/manual/dynamicform.html">Dynamic Form</a></li> + <li><a href="/docs/0.6.0/manual/publish.html">Publish your Paragraph</a></li> + <li><a href="/docs/0.6.0/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>More</b><span></li> + <li><a href="/docs/0.6.0/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li> + <li><a href="/docs/0.6.0/install/upgrade.html">Upgrade Zeppelin Version</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu"> + <li><a href="/docs/0.6.0/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Usage</b><span></li> + <li><a href="/docs/0.6.0/manual/interpreterinstallation.html">Interpreter Installation</a></li> + <!--<li><a href="/docs/0.6.0/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>--> + <li><a href="/docs/0.6.0/manual/dependencymanagement.html">Interpreter Dependency Management</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Available Interpreters</b><span></li> + <li><a href="/docs/0.6.0/interpreter/alluxio.html">Alluxio</a></li> + <li><a href="/docs/0.6.0/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.6.0/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.6.0/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.6.0/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.6.0/interpreter/hbase.html">HBase</a></li> + <li><a href="/docs/0.6.0/interpreter/hdfs.html">HDFS</a></li> + <li><a href="/docs/0.6.0/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.6.0/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.6.0/interpreter/jdbc.html">JDBC</a></li> + <li><a href="/docs/0.6.0/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.6.0/interpreter/livy.html">Livy</a></li> + <li><a href="/docs/0.6.0/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.6.0/interpreter/python.html">Python</a></li> + <li><a href="/docs/0.6.0/interpreter/postgresql.html">Postgresql, HAWQ</a></li> + <li><a href="/docs/0.6.0/interpreter/r.html">R</a></li> + <li><a href="/docs/0.6.0/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.6.0/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.6.0/interpreter/spark.html">Spark</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li class="title"><span><b>Basic Display System</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#text">Text</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#html">Html</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#table">Table</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Angular API</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/back-end-angular.html">Angular (backend API)</a></li> + <li><a href="/docs/0.6.0/displaysystem/front-end-angular.html">Angular (frontend API)</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;"> + <li class="title"><span><b>Notebook Storage</b><span></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>REST API</b><span></li> + <li><a href="/docs/0.6.0/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-notebook.html">Notebook API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-configuration.html">Configuration API</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Security</b><span></li> + <li><a href="/docs/0.6.0/security/authentication.html">Authentication for NGINX</a></li> + <li><a href="/docs/0.6.0/security/shiroauthentication.html">Shiro Authentication</a></li> + <li><a href="/docs/0.6.0/security/notebook_authorization.html">Notebook Authorization</a></li> + <li><a href="/docs/0.6.0/security/interpreter_authorization.html">Interpreter & Data Resource Authorization</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Contibute</b><span></li> + <li><a href="/docs/0.6.0/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.6.0/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.6.0/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="content"> + +<!--<div class="hero-unit Authentication for NGINX"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <!-- +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> + +<h1>Authentication for NGINX</h1> + +<div id="toc"></div> + +<p>Authentication is company-specific. +One option is to use <a href="https://en.wikipedia.org/wiki/Basic_access_authentication">Basic Access Authentication</a>.</p> + +<h2>HTTP Basic Authentication using NGINX</h2> + +<blockquote> +<p><strong>Quote from Wikipedia:</strong> NGINX is a web server. It can act as a reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer and an HTTP cache.</p> +</blockquote> + +<p>So you can use NGINX server as proxy server to serve HTTP Basic Authentication as a separate process along with Zeppelin server. +Here are instructions how to accomplish the setup NGINX as a front-end authentication server and connect Zeppelin at behind.</p> + +<p>This instruction based on Ubuntu 14.04 LTS but may work with other OS with few configuration changes.</p> + +<ol> +<li><p>Install NGINX server on your server instance</p> + +<p>You can install NGINX server with same box where zeppelin installed or separate box where it is dedicated to serve as proxy server.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">$ apt-get install nginx +</code></pre></div> +<blockquote> +<p><strong>NOTE :</strong> On pre 1.3.13 version of NGINX, Proxy for Websocket may not fully works. Please use latest version of NGINX. See: <a href="https://www.nginx.com/blog/websocket-nginx/">NGINX documentation</a>.</p> +</blockquote></li> +<li><p>Setup init script in NGINX</p> + +<p>In most cases, NGINX configuration located under <code>/etc/nginx/sites-available</code>. Create your own configuration or add your existing configuration at <code>/etc/nginx/sites-available</code>.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">$ cd /etc/nginx/sites-available +$ touch my-zeppelin-auth-setting +</code></pre></div> +<p>Now add this script into <code>my-zeppelin-auth-setting</code> file. You can comment out <code>optional</code> lines If you want serve Zeppelin under regular HTTP 80 Port.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">upstream zeppelin { + server [YOUR-ZEPPELIN-SERVER-IP]:[YOUR-ZEPPELIN-SERVER-PORT]; # For security, It is highly recommended to make this address/port as non-public accessible +} + +# Zeppelin Website +server { + listen [YOUR-ZEPPELIN-WEB-SERVER-PORT]; + listen 443 ssl; # optional, to serve HTTPS connection + server_name [YOUR-ZEPPELIN-SERVER-HOST]; # for example: zeppelin.mycompany.com + + ssl_certificate [PATH-TO-YOUR-CERT-FILE]; # optional, to serve HTTPS connection + ssl_certificate_key [PATH-TO-YOUR-CERT-KEY-FILE]; # optional, to serve HTTPS connection + + if ($ssl_protocol = "") { + rewrite ^ https://$host$request_uri? permanent; # optional, to force use of HTTPS + } + + location / { # For regular websever support + proxy_pass http://zeppelin; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + proxy_redirect off; + auth_basic "Restricted"; + auth_basic_user_file /etc/nginx/.htpasswd; + } + + location /ws { # For websocket support + proxy_pass http://zeppelin; + proxy_http_version 1.1; + proxy_set_header Upgrade websocket; + proxy_set_header Connection upgrade; + proxy_read_timeout 86400; + } +} +</code></pre></div> +<p>Then make a symbolic link to this file from <code>/etc/nginx/sites-enabled/</code> to enable configuration above when NGINX reloads.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">$ ln -s /etc/nginx/sites-enabled/my-zeppelin-auth-setting /etc/nginx/sites-available/my-zeppelin-auth-setting +</code></pre></div></li> +<li><p>Setup user credential into <code>.htpasswd</code> file and restart server</p> + +<p>Now you need to setup <code>.htpasswd</code> file to serve list of authenticated user credentials for NGINX server.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">$ cd /etc/nginx +$ htpasswd -c htpasswd [YOUR-ID] +$ NEW passwd: [YOUR-PASSWORD] +$ RE-type new passwd: [YOUR-PASSWORD-AGAIN] +</code></pre></div> +<p>Or you can use your own apache <code>.htpasswd</code> files in other location for setting up property: <code>auth_basic_user_file</code></p> + +<p>Restart NGINX server.</p> +<div class="highlight"><pre><code class="text language-text" data-lang="text">$ service nginx restart +</code></pre></div> +<p>Then check HTTP Basic Authentication works in browser. If you can see regular basic auth popup and then able to login with credential you entered into <code>.htpasswd</code> you are good to go.</p></li> +<li><p>More security consideration</p></li> +</ol> + +<ul> +<li>Using HTTPS connection with Basic Authentication is highly recommended since basic auth without encryption may expose your important credential information over the network.</li> +<li>Using <a href="./shiroauthentication.html">Shiro Security feature built-into Zeppelin</a> is recommended if you prefer all-in-one solution for authentication but NGINX may provides ad-hoc solution for re-use authentication served by your system's NGINX server or in case of you need to separate authentication from zeppelin server.</li> +<li>It is recommended to isolate direct connection to Zeppelin server from public internet or external services to secure your zeppelin instance from unexpected attack or problems caused by public zone.</li> +</ul> + +<h2>Another option</h2> + +<p>Another option is to have an authentication server that can verify user credentials in an LDAP server. +If an incoming request to the Zeppelin server does not have a cookie with user information encrypted with the authentication server public key, the user +is redirected to the authentication server. Once the user is verified, the authentication server redirects the browser to a specific URL in the Zeppelin server which sets the authentication cookie in the browser. +The end result is that all requests to the Zeppelin web server have the authentication cookie which contains user and groups information.</p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> + Propchange: zeppelin/site/docs/0.6.0/security/authentication.html ------------------------------------------------------------------------------ svn:eol-style = native Added: zeppelin/site/docs/0.6.0/security/interpreter_authorization.html URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/security/interpreter_authorization.html?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.6.0/security/interpreter_authorization.html (added) +++ zeppelin/site/docs/0.6.0/security/interpreter_authorization.html Wed Jul 6 06:25:29 2016 @@ -0,0 +1,233 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Notebook Authorization</title> + <meta name="description" content="Notebook Authorization"> + <meta name="author" content="The Apache Software Foundation"> + + <!-- Enable responsive viewport --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <!-- Le HTML5 shim, for IE6-8 support of HTML elements --> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"> + + <!-- Le styles --> + <link href="/docs/0.6.0/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.6.0/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" /> + <!-- Le fav and touch icons --> + <!-- Update these with your own images + <link rel="shortcut icon" href="images/favicon.ico"> + <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> + <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> + <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> + --> + + <!-- Js --> + <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/docs.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/anchor.min.js"></script> + <script src="/docs/0.6.0/assets/themes/zeppelin/js/toc.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.6.0/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.6.0/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed"> + </head> + + <body> + + <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/docs/0.6.0"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>0.6.0</small></span> + </a> + </div> + <nav class="navbar-collapse collapse" role="navigation"> + <ul class="nav navbar-nav"> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/docs/0.6.0/index.html">What is Apache Zeppelin ?</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Getting Started</b><span></li> + <li><a href="/docs/0.6.0/install/install.html">Install</a></li> + <li><a href="/docs/0.6.0/install/install.html#apache-zeppelin-configuration">Configuration</a></li> + <li><a href="/docs/0.6.0/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li> + <li><a href="/docs/0.6.0/quickstart/tutorial.html">Tutorial</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Basic Feature Guide</b><span></li> + <li><a href="/docs/0.6.0/manual/dynamicform.html">Dynamic Form</a></li> + <li><a href="/docs/0.6.0/manual/publish.html">Publish your Paragraph</a></li> + <li><a href="/docs/0.6.0/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>More</b><span></li> + <li><a href="/docs/0.6.0/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li> + <li><a href="/docs/0.6.0/install/upgrade.html">Upgrade Zeppelin Version</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu"> + <li><a href="/docs/0.6.0/manual/interpreters.html">Overview</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Usage</b><span></li> + <li><a href="/docs/0.6.0/manual/interpreterinstallation.html">Interpreter Installation</a></li> + <!--<li><a href="/docs/0.6.0/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>--> + <li><a href="/docs/0.6.0/manual/dependencymanagement.html">Interpreter Dependency Management</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Available Interpreters</b><span></li> + <li><a href="/docs/0.6.0/interpreter/alluxio.html">Alluxio</a></li> + <li><a href="/docs/0.6.0/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.6.0/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.6.0/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.6.0/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.6.0/interpreter/hbase.html">HBase</a></li> + <li><a href="/docs/0.6.0/interpreter/hdfs.html">HDFS</a></li> + <li><a href="/docs/0.6.0/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.6.0/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.6.0/interpreter/jdbc.html">JDBC</a></li> + <li><a href="/docs/0.6.0/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.6.0/interpreter/livy.html">Livy</a></li> + <li><a href="/docs/0.6.0/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.6.0/interpreter/python.html">Python</a></li> + <li><a href="/docs/0.6.0/interpreter/postgresql.html">Postgresql, HAWQ</a></li> + <li><a href="/docs/0.6.0/interpreter/r.html">R</a></li> + <li><a href="/docs/0.6.0/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.6.0/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.6.0/interpreter/spark.html">Spark</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li class="title"><span><b>Basic Display System</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#text">Text</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#html">Html</a></li> + <li><a href="/docs/0.6.0/displaysystem/basicdisplaysystem.html#table">Table</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Angular API</b><span></li> + <li><a href="/docs/0.6.0/displaysystem/back-end-angular.html">Angular (backend API)</a></li> + <li><a href="/docs/0.6.0/displaysystem/front-end-angular.html">Angular (frontend API)</a></li> + </ul> + </li> + <li> + <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a> + <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;"> + <li class="title"><span><b>Notebook Storage</b><span></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li> + <li><a href="/docs/0.6.0/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>REST API</b><span></li> + <li><a href="/docs/0.6.0/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-notebook.html">Notebook API</a></li> + <li><a href="/docs/0.6.0/rest-api/rest-configuration.html">Configuration API</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Security</b><span></li> + <li><a href="/docs/0.6.0/security/authentication.html">Authentication for NGINX</a></li> + <li><a href="/docs/0.6.0/security/shiroauthentication.html">Shiro Authentication</a></li> + <li><a href="/docs/0.6.0/security/notebook_authorization.html">Notebook Authorization</a></li> + <li><a href="/docs/0.6.0/security/interpreter_authorization.html">Interpreter & Data Resource Authorization</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Contibute</b><span></li> + <li><a href="/docs/0.6.0/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.6.0/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.6.0/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="content"> + +<!--<div class="hero-unit Notebook Authorization"> + <h1></h1> +</div> +--> + +<div class="row"> + <div class="col-md-12"> + <!-- +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> + +<h1>Interpreter and Data Source Authorization</h1> + +<div id="toc"></div> + +<h2>Interpreter Authorization</h2> + +<p>Interpreter authorization involves permissions like creating an interpreter and execution queries using it.</p> + +<h2>Data Source Authorization</h2> + +<p>Data source authorization involves authenticating to the data source like a Mysql database and letting it determine user permissions.</p> + +<p>For the JDBC interpreter, we need to maintain per-user connection pools. +The interpret method takes the user string as parameter and executes the jdbc call using a connection in the user's connection pool.</p> + +<p>In case of Presto, we don't need password if the Presto DB server runs backend code using HDFS authorization for the user. +For databases like Vertica and Mysql we have to store password information for users.</p> + +<p>The Credentials tab in the navbar allows users to save credentials for data sources which are passed to interpreters.</p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 The Apache Software Foundation</p>--> + </footer> + </div> + + + + + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-45176241-5', 'zeppelin.apache.org'); + ga('require', 'linkid', 'linkid.js'); + ga('send', 'pageview'); + +</script> + + + + </body> +</html> + Propchange: zeppelin/site/docs/0.6.0/security/interpreter_authorization.html ------------------------------------------------------------------------------ svn:eol-style = native