Added: zeppelin/site/docs/0.6.0/security/notebook_authorization.html
URL:
http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/security/notebook_authorization.html?rev=1751605&view=auto
==============================================================================
--- zeppelin/site/docs/0.6.0/security/notebook_authorization.html (added)
+++ zeppelin/site/docs/0.6.0/security/notebook_authorization.html Wed Jul 6
06:25:29 2016
@@ -0,0 +1,260 @@
+
+<!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>Zeppelin Notebook Authorization</h1>
+
+<div id="toc"></div>
+
+<h2>Overview</h2>
+
+<p>We assume that there is an <strong>Shiro Authentication</strong> component
that associates a user string and a set of group strings with every
NotebookSocket.
+If you don't set the authentication components yet, please check <a
href="./shiroauthentication.html">Shiro authentication for Apache Zeppelin</a>
first.</p>
+
+<h2>Authorization Setting</h2>
+
+<p>You can set Zeppelin notebook permissions in each notebooks. Of course only
<strong>notebook owners</strong> can change this configuration.
+Just click <strong>Lock icon</strong> and open the permission setting page in
your notebook.</p>
+
+<p>As you can see, each Zeppelin notebooks has 3 entities : </p>
+
+<ul>
+<li>Owners ( users or groups )</li>
+<li>Readers ( users or groups )</li>
+<li>Writers ( users or groups )</li>
+</ul>
+
+<p><center><img
src="../assets/themes/zeppelin/img/docs-img/permission_setting.png"></center></p>
+
+<p>Fill out the each forms with comma seperated <strong>users</strong> and
<strong>groups</strong> configured in <code>conf/shiro.ini</code> file.
+If the form is empty (*), it means that any users can perform that
operation.</p>
+
+<p>If someone who doesn't have <strong>read</strong> permission is trying
to access the notebook or someone who doesn't have <strong>write</strong>
permission is trying to edit the notebook, Zeppelin will ask to login or block
the user. </p>
+
+<p><center><img
src="../assets/themes/zeppelin/img/docs-img/insufficient_privileges.png"></center></p>
+
+<h2>How it works</h2>
+
+<p>In this section, we will explain the detail about how the notebook
authorization works in backend side.</p>
+
+<h3>NotebookServer</h3>
+
+<p>The <a
href="https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java">NotebookServer</a>
classifies every notebook operations into three categories:
<strong>Read</strong>, <strong>Write</strong>, <strong>Manage</strong>.
+Before executing a notebook operation, it checks if the user and the groups
associated with the <code>NotebookSocket</code> have permissions.
+For example, before executing a <strong>Read</strong> operation, it checks if
the user and the groups have at least one entity that belongs to the
<strong>Reader</strong> entities.</p>
+
+<h3>Notebook REST API call</h3>
+
+<p>Zeppelin executes a <a
href="https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java">REST
API call</a> for the notebook permission information.
+In the backend side, Zeppelin gets the user information for the connection and
allows the operation if the users and groups
+associated with the current user have at least one entity that belongs to
owner entities for the notebook.</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/notebook_authorization.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: zeppelin/site/docs/0.6.0/security/shiroauthentication.html
URL:
http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/security/shiroauthentication.html?rev=1751605&view=auto
==============================================================================
--- zeppelin/site/docs/0.6.0/security/shiroauthentication.html (added)
+++ zeppelin/site/docs/0.6.0/security/shiroauthentication.html Wed Jul 6
06:25:29 2016
@@ -0,0 +1,290 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Shiro Security for Apache Zeppelin</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 Shiro Security for Apache Zeppelin">
+ <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>Shiro authentication for Apache Zeppelin</h1>
+
+<div id="toc"></div>
+
+<h2>Overview</h2>
+
+<p><a href="http://shiro.apache.org/">Apache Shiro</a> is a powerful and
easy-to-use Java security framework that performs authentication,
authorization, cryptography, and session management. In this documentation, we
will explain step by step how Shiro works for Zeppelin notebook
authentication.</p>
+
+<p>When you connect to Apache Zeppelin, you will be asked to enter your
credentials. Once you logged in, then you have access to all notes including
other user's notes.</p>
+
+<h2>Security Setup</h2>
+
+<p>You can setup <strong>Zeppelin notebook authentication</strong> in some
simple steps.</p>
+
+<h3>1. Secure the HTTP channel</h3>
+
+<p>To secure the HTTP channel, you have to change both <strong>anon</strong>
and <strong>authc</strong> settings in <code>conf/shiro.ini</code>. In here,
<strong>anon</strong> means "the access is anonymous" and
<strong>authc</strong> means "formed auth security".</p>
+
+<p>The default status of them is</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">/** = anon
+#/** = authc
+</code></pre></div>
+<p>Deactivate the line "/** = anon" and activate the line "/**
= authc" in <code>conf/shiro.ini</code> file.</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">#/** = anon
+/** = authc
+</code></pre></div>
+<p>For the further information about <code>shiro.ini</code> file format,
please refer to <a
href="http://shiro.apache.org/configuration.html#Configuration-INISections">Shiro
Configuration</a>.</p>
+
+<h3>2. Secure the Websocket channel</h3>
+
+<p>Set to property <strong>zeppelin.anonymous.allowed</strong> to
<strong>false</strong> in <code>conf/zeppelin-site.xml</code>. If you don't
have this file yet, just copy <code>conf/zeppelin-site.xml.template</code> to
<code>conf/zeppelin-site.xml</code>.</p>
+
+<h3>3. Start Zeppelin</h3>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">bin/zeppelin-daemon.sh start (or restart)
+</code></pre></div>
+<p>Then you can browse Zeppelin at <a
href="http://localhost:8080">http://localhost:8080</a>.</p>
+
+<h3>4. Login</h3>
+
+<p>Finally, you can login using one of the below
<strong>username/password</strong> combinations.</p>
+
+<p><center><img
src="../assets/themes/zeppelin/img/docs-img/zeppelin-login.png"></center></p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">admin = password1
+user1 = password2
+user2 = password3
+</code></pre></div>
+<h3>5. Groups and permissions (optional)</h3>
+
+<p>In case you want to leverage user groups and permissions, use one of the
following configuration for LDAP or AD under <code>[main]</code> segment in
<code>shiro.ini</code></p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">activeDirectoryRealm =
org.apache.zeppelin.server.ActiveDirectoryGroupRealm
+activeDirectoryRealm.systemUsername = userNameA
+activeDirectoryRealm.systemPassword = passwordA
+activeDirectoryRealm.searchBase = CN=Users,DC=SOME_GROUP,DC=COMPANY,DC=COM
+activeDirectoryRealm.url = ldap://ldap.test.com:389
+activeDirectoryRealm.groupRolesMap =
"CN=aGroupName,OU=groups,DC=SOME_GROUP,DC=COMPANY,DC=COM":"group1"
+activeDirectoryRealm.authorizationCachingEnabled = false
+
+ldapRealm = org.apache.zeppelin.server.LdapGroupRealm
+# search base for ldap groups (only relevant for LdapGroupRealm):
+ldapRealm.contextFactory.environment[ldap.searchBase] = dc=COMPANY,dc=COM
+ldapRealm.contextFactory.url = ldap://ldap.test.com:389
+ldapRealm.userDnTemplate = uid={0},ou=Users,dc=COMPANY,dc=COM
+ldapRealm.contextFactory.authenticationMechanism = SIMPLE
+</code></pre></div>
+<p>also define roles/groups that you want to have in system, like below;</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">[roles]
+admin = *
+hr = *
+finance = *
+group1 = *
+</code></pre></div>
+<p>All of above configurations are defined in the <code>conf/shiro.ini</code>
file.</p>
+
+<blockquote>
+<p><strong>NOTE :</strong> This documentation is originally from <a
href="https://github.com/apache/zeppelin/blob/master/SECURITY-README.md">SECURITY-README.md</a>.</p>
+</blockquote>
+
+ </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/shiroauthentication.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: zeppelin/site/docs/0.6.0/sitemap.txt
URL:
http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/sitemap.txt?rev=1751605&view=auto
==============================================================================
--- zeppelin/site/docs/0.6.0/sitemap.txt (added)
+++ zeppelin/site/docs/0.6.0/sitemap.txt Wed Jul 6 06:25:29 2016
@@ -0,0 +1,53 @@
+
+http://zeppelin.apache.org/atom.xml
+http://zeppelin.apache.org/development/howtocontribute.html
+http://zeppelin.apache.org/development/howtocontributewebsite.html
+http://zeppelin.apache.org/development/writingzeppelininterpreter.html
+http://zeppelin.apache.org/displaysystem/back-end-angular.html
+http://zeppelin.apache.org/displaysystem/basicdisplaysystem.html
+http://zeppelin.apache.org/displaysystem/front-end-angular.html
+http://zeppelin.apache.org/index.html
+http://zeppelin.apache.org/install/install.html
+http://zeppelin.apache.org/install/upgrade.html
+http://zeppelin.apache.org/install/virtual_machine.html
+http://zeppelin.apache.org/install/yarn_install.html
+http://zeppelin.apache.org/interpreter/alluxio.html
+http://zeppelin.apache.org/interpreter/cassandra.html
+http://zeppelin.apache.org/interpreter/elasticsearch.html
+http://zeppelin.apache.org/interpreter/flink.html
+http://zeppelin.apache.org/interpreter/geode.html
+http://zeppelin.apache.org/interpreter/hbase.html
+http://zeppelin.apache.org/interpreter/hdfs.html
+http://zeppelin.apache.org/interpreter/hive.html
+http://zeppelin.apache.org/interpreter/ignite.html
+http://zeppelin.apache.org/interpreter/jdbc.html
+http://zeppelin.apache.org/interpreter/lens.html
+http://zeppelin.apache.org/interpreter/livy.html
+http://zeppelin.apache.org/interpreter/markdown.html
+http://zeppelin.apache.org/interpreter/postgresql.html
+http://zeppelin.apache.org/interpreter/python.html
+http://zeppelin.apache.org/interpreter/r.html
+http://zeppelin.apache.org/interpreter/scalding.html
+http://zeppelin.apache.org/interpreter/spark.html
+http://zeppelin.apache.org/manual/dependencymanagement.html
+http://zeppelin.apache.org/manual/dynamicform.html
+http://zeppelin.apache.org/manual/dynamicinterpreterload.html
+http://zeppelin.apache.org/manual/interpreterinstallation.html
+http://zeppelin.apache.org/manual/interpreters.html
+http://zeppelin.apache.org/manual/notebookashomepage.html
+http://zeppelin.apache.org/manual/publish.html
+http://zeppelin.apache.org/pleasecontribute.html
+http://zeppelin.apache.org/quickstart/explorezeppelinui.html
+http://zeppelin.apache.org/quickstart/tutorial.html
+http://zeppelin.apache.org/rest-api/rest-configuration.html
+http://zeppelin.apache.org/rest-api/rest-interpreter.html
+http://zeppelin.apache.org/rest-api/rest-notebook.html
+http://zeppelin.apache.org/rss.xml
+http://zeppelin.apache.org/screenshots.html
+http://zeppelin.apache.org/security/authentication.html
+http://zeppelin.apache.org/security/interpreter_authorization.html
+http://zeppelin.apache.org/security/notebook_authorization.html
+http://zeppelin.apache.org/security/shiroauthentication.html
+http://zeppelin.apache.org/sitemap.txt
+http://zeppelin.apache.org/storage/storage.html
+
Propchange: zeppelin/site/docs/0.6.0/sitemap.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: zeppelin/site/docs/0.6.0/storage/storage.html
URL:
http://svn.apache.org/viewvc/zeppelin/site/docs/0.6.0/storage/storage.html?rev=1751605&view=auto
==============================================================================
--- zeppelin/site/docs/0.6.0/storage/storage.html (added)
+++ zeppelin/site/docs/0.6.0/storage/storage.html Wed Jul 6 06:25:29 2016
@@ -0,0 +1,385 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Storage</title>
+ <meta name="description" content="Notebook Storage option for Zeppelin">
+ <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 Storage">
+ <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>Notebook storage options for Apache Zeppelin</h1>
+
+<div id="toc"></div>
+
+<h2>Overview</h2>
+
+<p>Apache Zeppelin has a pluggable notebook storage mechanism controlled by
<code>zeppelin.notebook.storage</code> configuration option with multiple
implementations.
+There are few notebook storage systems available for a use out of the box:</p>
+
+<ul>
+<li>(default) all notes are saved in the notebook folder in your local File
System - <code>VFSNotebookRepo</code></li>
+<li>use local file system and version it using local Git repository -
<code>GitNotebookRepo</code></li>
+<li>storage using Amazon S3 service - <code>S3NotebookRepo</code></li>
+<li>storage using Azure service - <code>AzureNotebookRepo</code></li>
+</ul>
+
+<p>Multiple storage systems can be used at the same time by providing a
comma-separated list of the class-names in the configuration.
+By default, only first two of them will be automatically kept in sync by
Zeppelin.</p>
+
+<p></br></p>
+
+<h2>Notebook Storage in local Git repository <a name="Git"></a></h2>
+
+<p>To enable versioning for all your local notebooks though a standard Git
repository - uncomment the next property in <code>zeppelin-site.xml</code> in
order to use GitNotebookRepo class:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.GitNotebookRepo</value>
+ <description>notebook persistence layer
implementation</description>
+</property>
+</code></pre></div>
+<p></br></p>
+
+<h2>Notebook Storage in S3 <a name="S3"></a></h2>
+
+<p>Notebooks may be stored in S3, and optionally encrypted. The <a
href="https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html"><code>DefaultAWSCredentialsProviderChain</code></a>
credentials provider is used for credentials and checks the following:</p>
+
+<ul>
+<li>The <code>AWS_ACCESS_KEY_ID</code> and <code>AWS_SECRET_ACCESS_KEY</code>
environment variables</li>
+<li>The <code>aws.accessKeyId</code> and <code>aws.secretKey</code> Java
System properties</li>
+<li>Credential profiles file at the default location
(<code>~/.aws/credentials</code>) used by the AWS CLI</li>
+<li>Instance profile credentials delivered through the Amazon EC2 metadata
service</li>
+</ul>
+
+<p></br>
+The following folder structure will be created in S3:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">s3://bucket_name/username/notebook-id/
+</code></pre></div>
+<p>Configure by setting environment variables in the file
<strong>zeppelin-env.sh</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">export ZEPPELIN_NOTEBOOK_S3_BUCKET = bucket_name
+export ZEPPELIN_NOTEBOOK_S3_USER = username
+</code></pre></div>
+<p>Or using the file <strong>zeppelin-site.xml</strong> uncomment and complete
the S3 settings:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.s3.bucket</name>
+ <value>bucket_name</value>
+ <description>bucket name for notebook storage</description>
+</property>
+<property>
+ <name>zeppelin.notebook.s3.user</name>
+ <value>username</value>
+ <description>user name for s3 folder structure</description>
+</property>
+</code></pre></div>
+<p>Uncomment the next property for use S3NotebookRepo class:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.S3NotebookRepo</value>
+ <description>notebook persistence layer
implementation</description>
+</property>
+</code></pre></div>
+<p>Comment out the next property to disable local notebook storage (the
default):</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.VFSNotebookRepo</value>
+ <description>notebook persistence layer
implementation</description>
+</property>
+</code></pre></div>
+<h3>Data Encryption in S3</h3>
+
+<h4>AWS KMS encryption keys</h4>
+
+<p>To use an <a href="https://aws.amazon.com/kms/">AWS KMS</a> encryption key
to encrypt notebooks, set the following environment variable in the file
<strong>zeppelin-env.sh</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">export ZEPPELIN_NOTEBOOK_S3_KMS_KEY_ID = kms-key-id
+</code></pre></div>
+<p>Or using the following setting in <strong>zeppelin-site.xml</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.s3.kmsKeyID</name>
+ <value>AWS-KMS-Key-UUID</value>
+ <description>AWS KMS key ID used to encrypt notebook data in
S3</description>
+</property>
+</code></pre></div>
+<h4>Custom Encryption Materials Provider class</h4>
+
+<p>You may use a custom <a
href="https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/EncryptionMaterialsProvider.html"><code>EncryptionMaterialsProvider</code></a>
class as long as it is available in the classpath and able to initialize
itself from system properties or another mechanism. To use this, set the
following environment variable in the file <strong>zeppelin-env.sh</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">export ZEPPELIN_NOTEBOOK_S3_EMP = class-name
+</code></pre></div>
+<p>Or using the following setting in <strong>zeppelin-site.xml</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.s3.encryptionMaterialsProvider</name>
+ <value>provider implementation class name</value>
+ <description>Custom encryption materials provider used to encrypt
notebook data in S3</description>
+</code></pre></div>
+<p></br></p>
+
+<h2>Notebook Storage in Azure <a name="Azure"></a></h2>
+
+<p>Using <code>AzureNotebookRepo</code> you can connect your Zeppelin with
your Azure account for notebook storage.</p>
+
+<p>First of all, input your <code>AccountName</code>, <code>AccountKey</code>,
and <code>Share Name</code> in the file <strong>zeppelin-site.xml</strong> by
commenting out and completing the next properties:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.azure.connectionString</name>
+
<value>DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey></value>
+ <description>Azure account credentials</description>
+</property>
+
+<property>
+ <name>zeppelin.notebook.azure.share</name>
+ <value>zeppelin</value>
+ <description>share name for notebook storage</description>
+</property>
+</code></pre></div>
+<p>Secondly, you can initialize <code>AzureNotebookRepo</code> class in the
file <strong>zeppelin-site.xml</strong> by commenting the next property:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.VFSNotebookRepo</value>
+ <description>notebook persistence layer
implementation</description>
+</property>
+</code></pre></div>
+<p>and commenting out:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+
<value>org.apache.zeppelin.notebook.repo.AzureNotebookRepo</value>
+ <description>notebook persistence layer
implementation</description>
+</property>
+</code></pre></div>
+<p>In case you want to use simultaneously your local storage with Azure
storage use the following property instead:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.VFSNotebookRepo,
apache.zeppelin.notebook.repo.AzureNotebookRepo</value>
+ <description>notebook persistence layer
implementation</description>
+</property>
+</code></pre></div>
+<p>Optionally, you can specify Azure folder structure name in the file
<strong>zeppelin-site.xml</strong> by commenting out the next property:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">
<property>
+ <name>zeppelin.notebook.azure.user</name>
+ <value>user</value>
+ <description>optional user name for Azure folder
structure</description>
+</property>
+</code></pre></div>
+<p></br></p>
+
+<h2>Storage in ZeppelinHub <a name="ZeppelinHub"></a></h2>
+
+<p>ZeppelinHub storage layer allows out of the box connection of Zeppelin
instance with your ZeppelinHub account. First of all, you need to either
comment out the following property in <strong>zeppelin-site.xml</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text"><!-- For connecting your Zeppelin with ZeppelinHub -->
+<!--
+<property>
+ <name>zeppelin.notebook.storage</name>
+ <value>org.apache.zeppelin.notebook.repo.VFSNotebookRepo,
org.apache.zeppelin.notebook.repo.zeppelinhub.ZeppelinHubRepo</value>
+ <description>two notebook persistence layers (local +
ZeppelinHub)</description>
+</property>
+-->
+</code></pre></div>
+<p>or set the environment variable in the file
<strong>zeppelin-env.sh</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">export
ZEPPELIN_NOTEBOOK_STORAGE="org.apache.zeppelin.notebook.repo.VFSNotebookRepo,
org.apache.zeppelin.notebook.repo.zeppelinhub.ZeppelinHubRepo"
+</code></pre></div>
+<p>Secondly, you need to set the environment variables in the file
<strong>zeppelin-env.sh</strong>:</p>
+<div class="highlight"><pre><code class="text language-text"
data-lang="text">export ZEPPELINHUB_API_TOKEN = ZeppelinHub token
+export ZEPPELINHUB_API_ADDRESS = address of ZeppelinHub service (e.g.
https://www.zeppelinhub.com)
+</code></pre></div>
+<p>You can get more information on generating <code>token</code> and using
authentication on the corresponding <a
href="http://help.zeppelinhub.com/zeppelin_integration/#add-a-new-zeppelin-instance-and-generate-a-token">help
page</a>.</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/storage/storage.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: zeppelin/site/docs/0.7.0-SNAPSHOT/404.html
URL:
http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/404.html?rev=1751605&view=auto
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/404.html (added)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/404.html Wed Jul 6 06:25:29 2016
@@ -0,0 +1 @@
+Sorry this page does not exist =(
Propchange: zeppelin/site/docs/0.7.0-SNAPSHOT/404.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
zeppelin/site/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap-theme.css
URL:
http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap-theme.css?rev=1751605&view=auto
==============================================================================
---
zeppelin/site/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap-theme.css
(added)
+++
zeppelin/site/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap-theme.css
Wed Jul 6 06:25:29 2016
@@ -0,0 +1,459 @@
+/*!
+ * Bootstrap v3.0.2 by @fat and @mdo
+ * Copyright 2013 Twitter, Inc.
+ * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world by @mdo and @fat.
+ */
+
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px
rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px
rgba(0, 0, 0, 0.075);
+}
+
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn:active,
+.btn.active {
+ background-image: none;
+}
+
+.btn-default {
+ text-shadow: 0 1px 0 #fff;
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#ffffff), to(#e0e0e0));
+ background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
+ background-image: -moz-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
+ background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
+ background-repeat: repeat-x;
+ border-color: #dbdbdb;
+ border-color: #ccc;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',
endColorstr='#ffe0e0e0', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-default:hover,
+.btn-default:focus {
+ background-color: #e0e0e0;
+ background-position: 0 -15px;
+}
+
+.btn-default:active,
+.btn-default.active {
+ background-color: #e0e0e0;
+ border-color: #dbdbdb;
+}
+
+.btn-primary {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#428bca), to(#2d6ca2));
+ background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+ background-image: -moz-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
+ background-repeat: repeat-x;
+ border-color: #2b669a;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',
endColorstr='#ff2d6ca2', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-primary:hover,
+.btn-primary:focus {
+ background-color: #2d6ca2;
+ background-position: 0 -15px;
+}
+
+.btn-primary:active,
+.btn-primary.active {
+ background-color: #2d6ca2;
+ border-color: #2b669a;
+}
+
+.btn-success {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#5cb85c), to(#419641));
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: -moz-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+ background-repeat: repeat-x;
+ border-color: #3e8f3e;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',
endColorstr='#ff419641', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-success:hover,
+.btn-success:focus {
+ background-color: #419641;
+ background-position: 0 -15px;
+}
+
+.btn-success:active,
+.btn-success.active {
+ background-color: #419641;
+ border-color: #3e8f3e;
+}
+
+.btn-warning {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#f0ad4e), to(#eb9316));
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: -moz-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+ background-repeat: repeat-x;
+ border-color: #e38d13;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',
endColorstr='#ffeb9316', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-warning:hover,
+.btn-warning:focus {
+ background-color: #eb9316;
+ background-position: 0 -15px;
+}
+
+.btn-warning:active,
+.btn-warning.active {
+ background-color: #eb9316;
+ border-color: #e38d13;
+}
+
+.btn-danger {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#d9534f), to(#c12e2a));
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: -moz-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+ background-repeat: repeat-x;
+ border-color: #b92c28;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',
endColorstr='#ffc12e2a', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-danger:hover,
+.btn-danger:focus {
+ background-color: #c12e2a;
+ background-position: 0 -15px;
+}
+
+.btn-danger:active,
+.btn-danger.active {
+ background-color: #c12e2a;
+ border-color: #b92c28;
+}
+
+.btn-info {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#5bc0de), to(#2aabd2));
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: -moz-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
+ background-repeat: repeat-x;
+ border-color: #28a4c9;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',
endColorstr='#ff2aabd2', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-info:hover,
+.btn-info:focus {
+ background-color: #2aabd2;
+ background-position: 0 -15px;
+}
+
+.btn-info:active,
+.btn-info.active {
+ background-color: #2aabd2;
+ border-color: #28a4c9;
+}
+
+.thumbnail,
+.img-thumbnail {
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ background-color: #e8e8e8;
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#f5f5f5), to(#e8e8e8));
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',
endColorstr='#ffe8e8e8', GradientType=0);
+}
+
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ background-color: #357ebd;
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#428bca), to(#357ebd));
+ background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',
endColorstr='#ff357ebd', GradientType=0);
+}
+
+.navbar-default {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#ffffff), to(#f8f8f8));
+ background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
+ background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
+ background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
+ background-repeat: repeat-x;
+ border-radius: 4px;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',
endColorstr='#fff8f8f8', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px
rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px
rgba(0, 0, 0, 0.075);
+}
+
+.navbar-default .navbar-nav > .active > a {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#ebebeb), to(#f3f3f3));
+ background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+ background-image: -moz-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',
endColorstr='#fff3f3f3', GradientType=0);
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+}
+
+.navbar-brand,
+.navbar-nav > li > a {
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
+}
+
+.navbar-inverse {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#3c3c3c), to(#222222));
+ background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
+ background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%);
+ background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',
endColorstr='#ff222222', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.navbar-inverse .navbar-nav > .active > a {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#222222), to(#282828));
+ background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%);
+ background-image: -moz-linear-gradient(top, #222222 0%, #282828 100%);
+ background-image: linear-gradient(to bottom, #222222 0%, #282828 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',
endColorstr='#ff282828', GradientType=0);
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+}
+
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+}
+
+.alert {
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px
rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px
rgba(0, 0, 0, 0.05);
+}
+
+.alert-success {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#dff0d8), to(#c8e5bc));
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+ background-repeat: repeat-x;
+ border-color: #b2dba1;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',
endColorstr='#ffc8e5bc', GradientType=0);
+}
+
+.alert-info {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#d9edf7), to(#b9def0));
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+ background-repeat: repeat-x;
+ border-color: #9acfea;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',
endColorstr='#ffb9def0', GradientType=0);
+}
+
+.alert-warning {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#fcf8e3), to(#f8efc0));
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+ background-repeat: repeat-x;
+ border-color: #f5e79e;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',
endColorstr='#fff8efc0', GradientType=0);
+}
+
+.alert-danger {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#f2dede), to(#e7c3c3));
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+ background-repeat: repeat-x;
+ border-color: #dca7a7;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',
endColorstr='#ffe7c3c3', GradientType=0);
+}
+
+.progress {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#ebebeb), to(#f5f5f5));
+ background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',
endColorstr='#fff5f5f5', GradientType=0);
+}
+
+.progress-bar {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#428bca), to(#3071a9));
+ background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
+ background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',
endColorstr='#ff3071a9', GradientType=0);
+}
+
+.progress-bar-success {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#5cb85c), to(#449d44));
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',
endColorstr='#ff449d44', GradientType=0);
+}
+
+.progress-bar-info {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#5bc0de), to(#31b0d5));
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',
endColorstr='#ff31b0d5', GradientType=0);
+}
+
+.progress-bar-warning {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#f0ad4e), to(#ec971f));
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',
endColorstr='#ffec971f', GradientType=0);
+}
+
+.progress-bar-danger {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#d9534f), to(#c9302c));
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',
endColorstr='#ffc9302c', GradientType=0);
+}
+
+.list-group {
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ text-shadow: 0 -1px 0 #3071a9;
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#428bca), to(#3278b3));
+ background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
+ background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
+ background-repeat: repeat-x;
+ border-color: #3278b3;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',
endColorstr='#ff3278b3', GradientType=0);
+}
+
+.panel {
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.panel-default > .panel-heading {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#f5f5f5), to(#e8e8e8));
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',
endColorstr='#ffe8e8e8', GradientType=0);
+}
+
+.panel-primary > .panel-heading {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#428bca), to(#357ebd));
+ background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',
endColorstr='#ff357ebd', GradientType=0);
+}
+
+.panel-success > .panel-heading {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#dff0d8), to(#d0e9c6));
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',
endColorstr='#ffd0e9c6', GradientType=0);
+}
+
+.panel-info > .panel-heading {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#d9edf7), to(#c4e3f3));
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',
endColorstr='#ffc4e3f3', GradientType=0);
+}
+
+.panel-warning > .panel-heading {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#fcf8e3), to(#faf2cc));
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',
endColorstr='#fffaf2cc', GradientType=0);
+}
+
+.panel-danger > .panel-heading {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#f2dede), to(#ebcccc));
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
+ background-repeat: repeat-x;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',
endColorstr='#ffebcccc', GradientType=0);
+}
+
+.well {
+ background-image: -webkit-gradient(linear, left 0%, left 100%,
from(#e8e8e8), to(#f5f5f5));
+ background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+ background-repeat: repeat-x;
+ border-color: #dcdcdc;
+ filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',
endColorstr='#fff5f5f5', GradientType=0);
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255,
255, 255, 0.1);
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255,
255, 255, 0.1);
+}
\ No newline at end of file
Propchange:
zeppelin/site/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap-theme.css
------------------------------------------------------------------------------
svn:eol-style = native