### What is this PR for?
Doc should deliver key features and recommended usage more simple and easy way.
- docs/install/install.md has lots of duplicated section with README.md.
- docs/install/install.md includes install from binary as well as build from source. I've seen that makes some beginners try download binary and then source build it again.
- recommended and key usage need to be highlighted.
- Be less verbose in key instructions. Move optional, additional info from in the middle of key instruction to end of the each page.
### What type of PR is it?
Improvement
### Todos
* [x] - improve doc
### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1644
### How should this be tested?
Run doc locally
### Screenshots (if appropriate)
### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? no
Author: Lee moon soo <moon@apache.org>
Closes#1615 from Leemoonsoo/ZEPPELIN-1644 and squashes the following commits:
e554216 [Lee moon soo] Add build item in index.md
c6b25f8 [Lee moon soo] Update suggested build command.
c7a19eb [Lee moon soo] Add build.md
e59fe3f [Lee moon soo] make document easier to follow key instructions
### What is this PR for?
It's a bit misleading that both regular webserver location and websocket location use the exact same address. It's better to specify that websocket requests should be proxy-passed to `/ws` subdirectory.
### What type of PR is it?
Documentation
### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? no
Author: Mohammad Amin Khashkhashi Moghaddam <amin.moghaddamV@gmail.com>
Closes#1573 from m30m/patch-2 and squashes the following commits:
aa60fd5 [Mohammad Amin Khashkhashi Moghaddam] Add `/ws` for nginx websocket configuration
### What is this PR for?
As more and more document pages are added, it's really hard to find specific pages. So I added searching feature to Zeppelin documentation site([jekyll](https://jekyllrb.com/) based site) using [lunr.js](http://lunrjs.com/).
- **How does it work?**
I created [`search_data.json`](6e02423f54/docs/search_data.json) which is used for docs info template. `lunr.js` combines all of the text from all of the docs in `docs/` into `_site/search_data.json`. It looks like below.

All the info are comes from [Jekyll YAML front matter](https://jekyllrb.com/docs/frontmatter/) variables. (i.e. title, group, description.. that's why I rewrote all docs' title and description.)
[search.js](6e02423f54/docs/assets/themes/zeppelin/js/search.js) will do this job using this data!
### What type of PR is it?
Improvement & Feature
### Todos
* [x] - Keep consistency for all docs pages' `Title`
* [x] - Add some overview sentences to all docs pages' `Description` section (this will be used as the result preview)
* [x] - Add apache license header to all docs page (some pages are missing the license header currently)
* [x] - Add LICENSE for `lunr.min.js`
### What is the Jira issue?
[ZEPPELIN-1219](https://issues.apache.org/jira/browse/ZEPPELIN-1219)
### How should this be tested?
1. Apply this patch and build `ZEPPELIN_HOME/docs` dir -> please see [docs/README.md#build-documentation](https://github.com/apache/zeppelin/tree/master/docs#build-documentation)
2. Click `search` icon in navbar and go to `search.html` page
3. Type anything you want to search in the search bar (i.e. type `python`, `spark`, `dynamic` ... )
### Screenshots (if appropriate)


### Questions:
* Does the licenses files need update? Yes, for `lunr.min.js`
* Is there breaking changes for older versions? no
* Does this needs documentation? no
Author: AhyoungRyu <fbdkdud93@hanmail.net>
Closes#1266 from AhyoungRyu/ZEPPELIN-1219 and squashes the following commits:
7ec8854 [AhyoungRyu] Modify 'no result' sentence
91b71a7 [AhyoungRyu] Remove Apache license header since JSON doesn't allow comment
34afd5d [AhyoungRyu] Add Apache license header to search_data.json
6784282 [AhyoungRyu] Minor search page UI update
0389d28 [AhyoungRyu] Make index.md not to be searched
9f1ba42 [AhyoungRyu] Disable enterkey press & change icon
bd4956a [AhyoungRyu] Add docs.js & search.js to exclude list in pom.xml
624b051 [AhyoungRyu] Add Apache license header to search.js
1381152 [AhyoungRyu] Fix search result skipping issue
6e775f5 [AhyoungRyu] Make pleasecontribute.md not to be searched
ee11136 [AhyoungRyu] Fix some typos
fa01299 [AhyoungRyu] Refine 'description' in some docs as @bzz suggested
da0cff9 [AhyoungRyu] Exclude lunr.min.js
36ba7f1 [AhyoungRyu] Add lunr.min.js license info
f6a05a6 [AhyoungRyu] Apply css style for the search results
68eb997 [AhyoungRyu] Attach 'Apache Zeppelin ZEPPELIN_VERSION Documentation: ' to title
d908c37 [AhyoungRyu] Add searching page
a951fa6 [AhyoungRyu] Add search icon to navbar
0688a79 [AhyoungRyu] Keep consistency all docs' front matter for the right search result
040f532 [AhyoungRyu] Add template for storing docs info based on jekyll front matter
0705bd6 [AhyoungRyu] Add js files: lunr.min.js & search.js
### What is this PR for?
I added auto TOC(Table of Contents) generator for Zeppelin documentation website. TOC can help people looking through whole contents at a glance and finding what they want quickly.
I just added `<div id="toc"></div>` to the each documentation header. [`toc`](https://github.com/apache/zeppelin/compare/master...AhyoungRyu:ZEPPELIN-1018?expand=1#diff-85af09fb498a5667ea455391533f945dR3) recognize `<h2>` & `<h3>` as a title in the docs and it automatically generate TOC. So I set a rule for this work. (I'll write this rule on `docs/CONTRIBUTING.md` or [docs/howtocontributewebsite](https://zeppelin.apache.org/docs/0.6.0-SNAPSHOT/development/howtocontributewebsite.html)).
```
# Level-1 Heading <- Use only for the main title of the page
## Level-2 Heading <- Start with this one
### Level-3 heading <- Only use this one for child of Level-2
toc only recognize Level-2 & Level-3
```
Please see the below attached screenshot image.
### What type of PR is it?
Improvement & Documentation
### Todos
* [x] - Add TOC generator
* [x] - Apply TOC(`<div id="toc"></div>`) to every documentation and reorganize each headers(apply the above rule)
* [x] - Fix some broken code block in several docs
* [x] - Apply TOC to `r.md` (Currently R docs has some duplicated info since [this one](d5e87fb8ba) and [this one](7d6cc7e991) )
* [x] - Apply TOC to `install.md` after #1010 merged
* [x] - Apply TOC to `interpreterinstallation.md` after #1042 merged
### What is the Jira issue?
[ZEPPELIN-1018](https://issues.apache.org/jira/browse/ZEPPELIN-1018)
### How should this be tested?
1. Apply this patch and build `docs/` with [this guide](https://github.com/apache/zeppelin/tree/master/docs#build-documentation)
2. Visit some docs page. Then you can see TOC in the header of page.
### Screenshots (if appropriate)
- Automatically generated TOC in Spark interpreter docs page
<img width="831" alt="screen shot 2016-06-16 at 9 37 18 pm" src="https://cloud.githubusercontent.com/assets/10060731/16140902/945b9c7a-340a-11e6-91f3-b6174738bed0.png">
### Questions:
* Does the licenses files need update?
No. Actually I used [jekyll-table-of-contents#copyright](https://github.com/ghiculescu/jekyll-table-of-contents#copyright). But I don't need to add a license for this :)
* Is there breaking changes for older versions? No
* Does this needs documentation? Maybe
Author: AhyoungRyu <fbdkdud93@hanmail.net>
Closes#1031 from AhyoungRyu/ZEPPELIN-1018 and squashes the following commits:
e66397b [AhyoungRyu] Apply TOC to interpreterinstallation.md
009579b [AhyoungRyu] Add more info to 'What is the next?' in install.md
04cf501 [AhyoungRyu] Revert 'where to start' section
b7cbe5f [AhyoungRyu] Fix typo
cf0911c [AhyoungRyu] Rename license file
388f35a [AhyoungRyu] Add jekyll-table-of-contents license info
6394c70 [AhyoungRyu] Fix image path in python.md
d00e4b1 [AhyoungRyu] Move interpreter/screenshot/ -> asset/../img/docs-img/
3ffb383 [AhyoungRyu] Remove duplicated info in r.md & apply toc
a03ca99 [AhyoungRyu] Exclude toc.js from pom.xml
3fae7df [AhyoungRyu] Apply auto generated toc to install.md
d114a9d [AhyoungRyu] Address @felixcheung feedback
6a788fe [AhyoungRyu] Resize TOC tab indent
6760c00 [AhyoungRyu] Apply auto TOC to all of docs under docs/storage/
fbde57f [AhyoungRyu] Apply auto TOC to all of docs under docs/quickstart/
db76eb6 [AhyoungRyu] Apply auto TOC to all of docs under docs/install/
f35db47 [AhyoungRyu] Apply auto TOC to all of docs under docs/displaysystem/
b05365f [AhyoungRyu] Apply auto TOC to all of docs under docs/rest-api/
163691c [AhyoungRyu] Apply auto TOC to all of docs under docs/manual/
bef398e [AhyoungRyu] Apply auto TOC to all of docs under docs/development/
9c5f76b [AhyoungRyu] Apply auto TOC to all of docs under docs/interpreter/
587d4ba [AhyoungRyu] Apply auto TOC to all of docs under docs/security/
1f10b97 [AhyoungRyu] Change toc configuration
78dca9e [AhyoungRyu] Add toc.js for auto generating TOC
### What is this PR for?
git repo infra have moved from incubator-zeppelin to zeppelin
### What type of PR is it?
Hot Fix
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Mina Lee <minalee@apache.org>
Closes#983 from minahlee/ZEPPELIN-980 and squashes the following commits:
7542c31 [Mina Lee] remove travis url after travis migration is done
3793b38 [Mina Lee] Move git repository from incubator-zeppelin to zeppelin
### What is this PR for?
Revised documentation about nginx authentication after receive few comments about it. Especially for users who using old version of nginx (older than 1.3) facing websocket failures when using zeppelin after follow instructions. I put more information for those users to encourage use of latest version of nginx if possible + fix few grammars for readability.
### What type of PR is it?
Documentation
Author: Jesang Yoon <yoonjs2@kanizsalab.com>
Closes#877 from yoonjs2/nginx-auth-revised and squashes the following commits:
5c97838 [Jesang Yoon] Remove unused image files
3d48de4 [Jesang Yoon] Fix documentation to supply more information for help to setup basic auth with NGINX
7525167 [Jesang Yoon] Merge branch 'master' of https://github.com/apache/incubator-zeppelin6a5a3c8 [Jesang Yoon] Merge branch 'master' of https://github.com/apache/incubator-zeppelin6d04fa7 [Jesang Yoon] Merge branch 'master' of https://github.com/apache/incubator-zeppelin90219f7 [Jesang Yoon] Merge branch 'master' of https://github.com/apache/incubator-zeppelin35a6679 [Jesang Yoon] Merge branch 'master' of https://github.com/apache/incubator-zeppelin4b2223a [Jesang Yoon] Make path to cert and key for HTTPS Ambigious
aac4cd4 [Jesang Yoon] Add documentation for explaining enable HTTP basic authentication served by NGINX
3d9e5b3 [Jesang Yoon] Merge remote-tracking branch 'upstream/master'
eba0315 [Jesang Yoon] Merge remote-tracking branch 'upstream/master'
db8b4da [Jesang Yoon] Merge remote-tracking branch 'upstream/master'
781954b [Jesang Yoon] Interpreter documentation merge with commit #578af55811 [Jesang Yoon] Merge remote-tracking branch 'origin/master'
079480f [Jesang Yoon] Merge remote-tracking branch 'origin/master'
5f0a6e0 [Jesang Yoon] Merge remote-tracking branch 'origin/master'
4d1503a [Jesang Yoon] Merge remote-tracking branch 'origin/master'
5b091e4 [Jesang Yoon] Fix wrong HTML tags, indention and space between paragraph and tables. Remove unnecessary spaces.
5665dcf [Jesang Yoon] Fix wrong HTML tags, indention and space between paragraph and tables. Remove unnecessary spaces.
### What is this PR for?
Zeppelin uses single port number for REST and websocket since 0.5.5 so It should be fixed nginx config to use single port for websocket and RESTAPI.
### What type of PR is it?
Bug Fix | Documentation
### Todos
* [x] - fix to use single port nubmer for websocket and REST.
### How should this be tested?
Try to set up the nginx config to use single port number for websocket and REST.
### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? no
Author: hsshim <astroshim@gmail.com>
Closes#814 from astroshim/fix-nginx-config and squashes the following commits:
d552398 [hsshim] change upstream port to 8080
aa58fac [hsshim] websocket is same with restapi's.
### What is this PR for?
1. Fix some typos in docs.
2. Remove trailing white spaces for each line.
3. Remove leading white spaces if a line contains no content.
4. Add trailing new line for each file.
### What type of PR is it?
Improvement | Documentation
### Todos
None
### What is the Jira issue?
N/A
### How should this be tested?
Build the doc site and check.
### Screenshots (if appropriate)
N/A
### Questions:
* Does the licenses files need update? *no*
* Is there breaking changes for older versions? *no*
* Does this needs documentation? *no*
Author: Cheng-Yu Hsu <m@cyhsu.me>
Closes#852 from cyhsutw/fix-typos-in-docs and squashes the following commits:
6f5f46b [Cheng-Yu Hsu] fix typos in docs
### What is this PR for?
Provide a guide to setup basic authentication using NGINX with detailed instruction for users who wants to use NGINX as a separate authentication server. Shiro Security is preferred way to provide a basic authentication for future releases, but we may need to provide a way to workaround when user need other options.
### What type of PR is it?
Documentation
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Jesang Yoon <yoonjs2@kanizsalab.com>
Closes#775 from yoonjs2/add-nginx-auth-documentation and squashes the following commits:
54b8970 [Jesang Yoon] Fix reference url about Shiro security to https://github.com/apache/incubator-zeppelin/blob/master/SECURITY-README.md in document
fe0f616 [Jesang Yoon] Merge branch 'master' of https://github.com/apache/incubator-zeppelin into add-nginx-auth-documentation
10f339d [Jesang Yoon] Fix server port naming
4b2223a [Jesang Yoon] Make path to cert and key for HTTPS Ambigious
aac4cd4 [Jesang Yoon] Add documentation for explaining enable HTTP basic authentication served by NGINX
3d9e5b3 [Jesang Yoon] Merge remote-tracking branch 'upstream/master'
eba0315 [Jesang Yoon] Merge remote-tracking branch 'upstream/master'
db8b4da [Jesang Yoon] Merge remote-tracking branch 'upstream/master'
781954b [Jesang Yoon] Interpreter documentation merge with commit #578af55811 [Jesang Yoon] Merge remote-tracking branch 'origin/master'
079480f [Jesang Yoon] Merge remote-tracking branch 'origin/master'
5f0a6e0 [Jesang Yoon] Merge remote-tracking branch 'origin/master'
4d1503a [Jesang Yoon] Merge remote-tracking branch 'origin/master'
5b091e4 [Jesang Yoon] Fix wrong HTML tags, indention and space between paragraph and tables. Remove unnecessary spaces.
5665dcf [Jesang Yoon] Fix wrong HTML tags, indention and space between paragraph and tables. Remove unnecessary spaces.
### What is this PR for?
The goal of the PR is to add authorization for notebooks according to the design document [here] (https://gist.github.com/prasadwagle/712b7ca1e0f1f4f1aa20).
The PR uses Shiro authentication.
### What type of PR is it?
Feature
### Todos
* [x] - Find way to get roles for a user in SecurityUtils (Not possible at the moment, see SHIRO-492)
* [x] - Investigate how to use Shiro authorization
* [x] - Use groups associated with user to determine if operation is permitted
* [x] - Check if user has permissions to modify note permissions
* [x] - Add checks in more NotebookServer operations
* [x] - Improve UI (explain permissions, error messages)
* [x] - Add unit tests
* [x] - Documentation
### Is there a relevant Jira issue?
ZEPPELIN-549
### How should this be tested?
1. Enable Basic Auth Security by changing conf/shiro.ini.
1. Create a note. By default all operations are allowed by any authenticated user.
1. Update readers, writers and owners by clicking on the lock icon in the top right area.
1. Check if users can or cannot perform operations according to the permissions.
### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Prasad Wagle <pwagle@twitter.com>
Closes#681 from prasadwagle/notebook_authorization and squashes the following commits:
e7cffd8 [Prasad Wagle] Restore anon default in shiro.ini
24e8de4 [Prasad Wagle] Remove duplicate imports
29ebf48 [Prasad Wagle] Merge with master
52f4914 [Prasad Wagle] Check whether roles is non-empty before adding to userAndRoles
733530f [Prasad Wagle] Minor doc fix
28ea697 [Prasad Wagle] Fixed issues with security documentation reported by @AhyoungRyu
1ac076e [Prasad Wagle] Fixed typo in _navigation.html and updated interpreter_authorization.md
6c89dbe [Prasad Wagle] Implement Moon's suggestions on note permissions background and wildcard placeholder
2554315 [Prasad Wagle] Use user and roles for checking note permissions
3a5e5c0 [Prasad Wagle] Check if user has permissions to modify note permissions
fbbd04b [Prasad Wagle] Make insufficient privileges error message easier to read
06c5e07 [Prasad Wagle] Update navigation.html for security docs
6b9e274 [Prasad Wagle] Add unit test for note permissions
a8d0ecb [Prasad Wagle] Add security documentation
6e85730 [Prasad Wagle] Notebook Authorization