├── kbnauth ├── public │ ├── css │ ├── font │ ├── img │ ├── vendor │ ├── app │ │ ├── app.js │ │ ├── panels │ │ ├── filters │ │ ├── partials │ │ ├── services │ │ ├── components │ │ ├── controllers │ │ ├── directives │ │ └── factories │ ├── login │ │ └── images │ │ │ ├── login_bg01.jpg │ │ │ ├── login_bg02.jpg │ │ │ └── sla_icon.png │ └── dashboards │ │ └── blank.json ├── .htpasswd ├── vendor │ └── cache │ │ └── authors │ │ └── id │ │ ├── E │ │ ├── ET │ │ │ └── ETHER │ │ │ │ └── URI-1.65.tar.gz │ │ ├── ES │ │ │ └── ESM │ │ │ │ └── Net-NIS-0.44.tar.gz │ │ └── EX │ │ │ └── EXODIST │ │ │ └── Test-Exception-0.35.tar.gz │ │ ├── G │ │ ├── GA │ │ │ ├── GARU │ │ │ │ └── Clone-0.37.tar.gz │ │ │ └── GAAS │ │ │ │ ├── Digest-MD2-2.04.tar.gz │ │ │ │ ├── Digest-MD5-2.53.tar.gz │ │ │ │ ├── HTTP-Date-6.02.tar.gz │ │ │ │ ├── Digest-HMAC-1.03.tar.gz │ │ │ │ ├── Digest-SHA1-2.13.tar.gz │ │ │ │ ├── Encode-Locale-1.03.tar.gz │ │ │ │ ├── File-Listing-6.04.tar.gz │ │ │ │ ├── HTML-Parser-3.71.tar.gz │ │ │ │ ├── HTTP-Cookies-6.01.tar.gz │ │ │ │ ├── HTTP-Daemon-6.01.tar.gz │ │ │ │ ├── HTTP-Message-6.06.tar.gz │ │ │ │ ├── HTTP-Negotiate-6.01.tar.gz │ │ │ │ ├── LWP-MediaTypes-6.02.tar.gz │ │ │ │ └── WWW-RobotRules-6.02.tar.gz │ │ ├── GB │ │ │ └── GBARR │ │ │ │ └── Convert-ASN1-0.27.tar.gz │ │ └── GR │ │ │ └── GRANTM │ │ │ └── XML-SAX-Base-1.08.tar.gz │ │ ├── T │ │ ├── TI │ │ │ └── TIMB │ │ │ │ └── DBI-1.632.tar.gz │ │ ├── TM │ │ │ └── TMTM │ │ │ │ ├── Class-DBI-v3.0.17.tar.gz │ │ │ │ ├── DBIx-ContextualFetch-1.03.tar.gz │ │ │ │ └── Class-Data-Inheritable-0.08.tar.gz │ │ ├── TU │ │ │ └── TURNSTEP │ │ │ │ ├── Math-GMP-2.07.tar.gz │ │ │ │ └── Net-SSH-Perl-1.38.tar.gz │ │ └── TO │ │ │ └── TOKUHIROM │ │ │ └── Class-ErrorHandler-0.03.tar.gz │ │ ├── C │ │ ├── CJ │ │ │ └── CJM │ │ │ │ └── IO-HTML-1.001.tar.gz │ │ └── CH │ │ │ └── CHANSEN │ │ │ ├── Authen-Simple-0.5.tar.gz │ │ │ ├── Authen-Simple-CDBI-0.2.tar.gz │ │ │ ├── Authen-Simple-DBI-0.2.tar.gz │ │ │ ├── Authen-Simple-HTTP-0.2.tar.gz │ │ │ ├── Authen-Simple-LDAP-0.3.tar.gz │ │ │ ├── Authen-Simple-NIS-0.3.tar.gz │ │ │ ├── Authen-Simple-Net-0.2.tar.gz │ │ │ ├── Authen-Simple-PAM-0.2.tar.gz │ │ │ ├── Authen-Simple-SSH-0.1.tar.gz │ │ │ ├── Authen-Simple-Passwd-0.6.tar.gz │ │ │ ├── Authen-Simple-RADIUS-0.1.tar.gz │ │ │ └── Authen-Simple-Kerberos-0.1.tar.gz │ │ ├── D │ │ ├── DO │ │ │ └── DOY │ │ │ │ └── Try-Tiny-0.22.tar.gz │ │ ├── DP │ │ │ └── DPARIS │ │ │ │ ├── Crypt-DES-2.07.tar.gz │ │ │ │ ├── Crypt-IDEA-1.10.tar.gz │ │ │ │ └── Crypt-Blowfish-2.14.tar.gz │ │ ├── DS │ │ │ ├── DSKOLL │ │ │ │ └── IO-stringy-2.110.tar.gz │ │ │ └── DSTUART │ │ │ │ └── Authen-Krb5-Simple-0.43.tar.gz │ │ ├── DA │ │ │ └── DAGOLDEN │ │ │ │ └── Sub-Uplevel-0.24.tar.gz │ │ └── DR │ │ │ └── DROLSKY │ │ │ ├── Params-Validate-1.13.tar.gz │ │ │ └── Module-Implementation-0.09.tar.gz │ │ ├── L │ │ └── LD │ │ │ └── LDS │ │ │ └── Crypt-CBC-2.33.tar.gz │ │ ├── M │ │ ├── MA │ │ │ ├── MAKAMAKA │ │ │ │ └── JSON-2.90.tar.gz │ │ │ └── MARSCHAP │ │ │ │ └── perl-ldap-0.64.tar.gz │ │ ├── MI │ │ │ ├── MIKEM │ │ │ │ └── Net-SSLeay-1.66.tar.gz │ │ │ ├── MITHALDU │ │ │ │ └── Crypt-DH-0.07.tar.gz │ │ │ └── MIYAGAWA │ │ │ │ └── Class-Trigger-0.14.tar.gz │ │ └── MS │ │ │ └── MSCHILLI │ │ │ ├── Net-HTTP-6.07.tar.gz │ │ │ └── libwww-perl-6.08.tar.gz │ │ ├── A │ │ └── AD │ │ │ └── ADAMK │ │ │ ├── Crypt-DSA-1.17.tar.gz │ │ │ ├── File-Which-1.09.tar.gz │ │ │ └── Test-Script-1.07.tar.gz │ │ ├── P │ │ ├── PE │ │ │ ├── PERRIN │ │ │ │ └── Ima-DBI-0.35.tar.gz │ │ │ ├── PETDANCE │ │ │ │ └── HTML-Tagset-3.20.tar.gz │ │ │ └── PEVANS │ │ │ │ └── IO-Socket-IP-0.33.tar.gz │ │ ├── PJ │ │ │ └── PJACKLAM │ │ │ │ ├── Math-BigInt-1.9993.tar.gz │ │ │ │ └── Math-BigInt-GMP-1.38.tar.gz │ │ └── PO │ │ │ └── PORTAONE │ │ │ └── Authen-Radius-0.24.tar.gz │ │ ├── R │ │ ├── RJ │ │ │ └── RJBS │ │ │ │ └── IPC-Run3-0.048.tar.gz │ │ └── RS │ │ │ └── RSAVAGE │ │ │ └── Crypt-PasswdMD5-1.40.tgz │ │ ├── S │ │ ├── SR │ │ │ └── SRI │ │ │ │ └── Mojolicious-5.65.tar.gz │ │ ├── SO │ │ │ └── SOENKE │ │ │ │ └── String-CRC32-1.5.tar.gz │ │ └── SU │ │ │ └── SULLR │ │ │ └── IO-Socket-SSL-2.006.tar.gz │ │ ├── V │ │ └── VI │ │ │ └── VIPUL │ │ │ ├── Crypt-RSA-1.99.tar.gz │ │ │ ├── Class-Loader-2.03.tar.gz │ │ │ ├── Crypt-Primes-0.50.tar.gz │ │ │ ├── Crypt-Random-1.25.tar.gz │ │ │ ├── Tie-EncryptedHash-1.24.tar.gz │ │ │ └── Convert-ASCII-Armour-1.4.tar.gz │ │ ├── B │ │ ├── BT │ │ │ └── BTROTT │ │ │ │ ├── Convert-PEM-0.08.tar.gz │ │ │ │ ├── Data-Buffer-0.04.tar.gz │ │ │ │ ├── Crypt-DES_EDE3-0.01.tar.gz │ │ │ │ └── Digest-BubbleBabble-0.02.tar.gz │ │ └── BI │ │ │ └── BINGOS │ │ │ └── ExtUtils-MakeMaker-7.02.tar.gz │ │ ├── N │ │ ├── NI │ │ │ └── NIKIP │ │ │ │ └── Authen-PAM-0.16.tar.gz │ │ └── NE │ │ │ └── NEILB │ │ │ └── Sort-Versions-1.60.tar.gz │ │ ├── F │ │ └── FT │ │ │ └── FTASSIN │ │ │ └── Data-HexDump-0.02.tar.gz │ │ ├── K │ │ ├── KA │ │ │ └── KASEI │ │ │ │ ├── Class-Accessor-0.34.tar.gz │ │ │ │ └── UNIVERSAL-moniker-0.08.tar.gz │ │ └── KW │ │ │ └── KWILLIAMS │ │ │ └── Probe-Perl-0.03.tar.gz │ │ ├── Z │ │ └── ZE │ │ │ └── ZEFRAM │ │ │ └── Module-Runtime-0.014.tar.gz │ │ └── I │ │ └── IL │ │ └── ILYAZ │ │ └── modules │ │ └── Math-Pari-2.010808.zip ├── script │ └── kbnauth ├── kbn_auth.conf ├── cpanfile ├── lib │ └── KbnAuth │ │ ├── Inspector.pm │ │ ├── Command │ │ └── migratint.pm │ │ ├── Model │ │ └── Users.pm │ │ ├── Controller │ │ └── Kibana.pm │ │ └── Inspector │ │ └── Example.pm └── templates │ └── kibana │ └── index.html.ep ├── src ├── app │ ├── panels │ │ ├── query │ │ │ ├── editors │ │ │ │ ├── lucene.html │ │ │ │ ├── regex.html │ │ │ │ └── topN.html │ │ │ ├── editor.html │ │ │ ├── helpModal.html │ │ │ ├── help │ │ │ │ ├── regex.html │ │ │ │ ├── topN.html │ │ │ │ └── lucene.html │ │ │ ├── query.css │ │ │ └── meta.html │ │ ├── derivequeries │ │ │ ├── editor.html │ │ │ ├── module.html │ │ │ └── module.js │ │ ├── bettermap │ │ │ ├── module.css │ │ │ ├── leaflet │ │ │ │ ├── images │ │ │ │ │ ├── layers.png │ │ │ │ │ ├── layers-2x.png │ │ │ │ │ ├── marker-icon.png │ │ │ │ │ ├── marker-shadow.png │ │ │ │ │ └── marker-icon-2x.png │ │ │ │ └── leaflet.ie.css │ │ │ ├── module.html │ │ │ └── editor.html │ │ ├── filtering │ │ │ ├── editor.html │ │ │ └── meta.html │ │ ├── fields │ │ │ ├── module.html │ │ │ ├── editor.html │ │ │ ├── module.js │ │ │ └── micropanel.html │ │ ├── dashcontrol │ │ │ └── module.html │ │ ├── timepicker │ │ │ ├── refreshctrl.html │ │ │ └── editor.html │ │ ├── column │ │ │ ├── module.html │ │ │ ├── panelgeneral.html │ │ │ └── editor.html │ │ ├── text │ │ │ ├── module.html │ │ │ └── editor.html │ │ ├── table │ │ │ ├── export.html │ │ │ ├── pagination.html │ │ │ └── modal.html │ │ ├── force │ │ │ ├── module.html │ │ │ └── editor.html │ │ ├── sparklines │ │ │ ├── module.html │ │ │ ├── editor.html │ │ │ └── interval.js │ │ ├── goal │ │ │ ├── module.html │ │ │ └── editor.html │ │ ├── multifieldhistogram │ │ │ ├── meta.html │ │ │ └── interval.js │ │ ├── trends │ │ │ ├── editor.html │ │ │ └── module.html │ │ ├── valuehistogram │ │ │ └── editor.html │ │ ├── histogram │ │ │ └── interval.js │ │ ├── map │ │ │ ├── module.html │ │ │ └── editor.html │ │ ├── hits │ │ │ └── editor.html │ │ ├── stats │ │ │ └── module.html │ │ └── percentiles │ │ │ └── module.html │ ├── controllers │ │ ├── all.js │ │ └── pulldown.js │ ├── partials │ │ ├── load.html │ │ ├── paneladd.html │ │ ├── modal.html │ │ ├── inspector.html │ │ ├── dashLoaderShare.html │ │ ├── paneleditor.html │ │ ├── panelgeneral.html │ │ ├── connectionFailed.html │ │ └── querySelect.html │ ├── services │ │ ├── all.js │ │ ├── timer.js │ │ ├── alertSrv.js │ │ └── panelMove.js │ ├── directives │ │ ├── all.js │ │ ├── ngBlur.js │ │ ├── esVersion.js │ │ ├── tip.js │ │ ├── confirmClick.js │ │ ├── ngModelOnBlur.js │ │ ├── arrayJoin.js │ │ ├── resizable.js │ │ ├── addPanel.js │ │ ├── dashUpload.js │ │ └── configModal.js │ ├── dashboards │ │ └── blank.json │ ├── components │ │ ├── lodash.extended.js │ │ ├── settings.js │ │ └── extend-jquery.js │ └── factories │ │ └── store.js ├── favicon.ico ├── img │ ├── cubes.png │ ├── light.png │ ├── load.gif │ ├── small.png │ ├── kibana.png │ ├── load_big.gif │ ├── annotation-icon.png │ ├── glyphicons-halflings.png │ ├── ui-icons_222222_256x240.png │ └── glyphicons-halflings-white.png ├── font │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ └── fontawesome-webfont.woff ├── vendor │ ├── bootstrap │ │ └── less │ │ │ ├── bootstrap.dark.less │ │ │ ├── bootstrap.light.less │ │ │ ├── layouts.less │ │ │ ├── component-animations.less │ │ │ ├── utilities.less │ │ │ ├── grid.less │ │ │ ├── breadcrumbs.less │ │ │ ├── responsive-768px-979px.less │ │ │ ├── hero-unit.less │ │ │ ├── wells.less │ │ │ ├── responsive-1200px-min.less │ │ │ ├── close.less │ │ │ ├── accordion.less │ │ │ ├── pager.less │ │ │ ├── media.less │ │ │ ├── scaffolding.less │ │ │ ├── responsive.less │ │ │ ├── thumbnails.less │ │ │ ├── code.less │ │ │ ├── alerts.less │ │ │ ├── bootstrap.less │ │ │ ├── responsive-utilities.less │ │ │ └── tooltip.less │ ├── require │ │ ├── tmpl.js │ │ └── css.js │ └── LICENSE.json └── css │ └── jquery.multiselect.css ├── .gitignore ├── tasks ├── server_task.js ├── .jshintrc ├── docs_task.js ├── test_task.js ├── default_task.js ├── options │ ├── git-describe.js │ ├── clean.js │ ├── cssmin.js │ ├── scratchy.js │ ├── copy.js │ ├── meta.js │ ├── htmlmin.js │ ├── uglify.js │ ├── jshint.js │ ├── ngmin.js │ ├── less.js │ ├── s3.js │ └── connect.js ├── distribute_task.js └── build_task.js ├── docs ├── chenryn_img │ ├── force-panel.png │ ├── query-panel.png │ ├── range-panel.jpg │ ├── range-setting.jpg │ ├── script-field.png │ ├── bettermap-gaode.png │ └── hist-notification.png ├── tutorials │ ├── intro │ │ ├── intro.png │ │ ├── query.png │ │ ├── chartdrag.png │ │ ├── charttooltip.png │ │ ├── configicon.png │ │ ├── firsttable.png │ │ ├── indexconfigure.png │ │ └── sample_shakespeare.png │ ├── rows_panels │ │ ├── home.png │ │ ├── addedrow.png │ │ ├── addpanel.png │ │ ├── rowmove.png │ │ ├── Addingrow.png │ │ ├── collapsed.png │ │ ├── firstpanel.png │ │ ├── movepanel.png │ │ ├── rowbuttons.png │ │ ├── roweditor.png │ │ ├── rowpanels.png │ │ ├── buttons_expanded.png │ │ ├── removing_panels.png │ │ ├── terms_settings.png │ │ └── toprowscollapsed.png │ ├── queries_filters │ │ ├── plays.png │ │ ├── remove.png │ │ ├── split.png │ │ ├── Addquery.png │ │ ├── pieslice.png │ │ ├── settings.png │ │ ├── filteradded.png │ │ └── comedyoferrors.png │ ├── saving_loading │ │ ├── savebutton.png │ │ ├── sharelink.png │ │ ├── sharebutton.png │ │ ├── awesome_dashboard.png │ │ └── searchdashboards.png │ ├── dashboard_schema │ │ └── schema_dashboard.png │ └── tutorials.asciidoc ├── kibana │ ├── panels │ │ ├── text.asciidoc │ │ ├── column.asciidoc │ │ ├── goal.asciidoc │ │ ├── map.asciidoc │ │ ├── trends.asciidoc │ │ ├── hits.asciidoc │ │ ├── sparklines.asciidoc │ │ ├── bettermap.asciidoc │ │ ├── terms.asciidoc │ │ └── table.asciidoc │ ├── configuration │ │ └── config.js.asciidoc │ └── panels.asciidoc └── index.asciidoc ├── sample ├── filtered-alias-example │ ├── users.htpasswd │ └── generate-user-aliases.rb ├── lighttpd_basic.conf └── nginx.conf ├── test └── unit │ ├── specs │ ├── .jshintrc │ └── lodash_extensions.js │ └── index.html ├── LICENSE.md ├── .jshintrc ├── Gruntfile.js ├── package.json └── CONTRIBUTING.md /kbnauth/public/css: -------------------------------------------------------------------------------- 1 | ../../src/css -------------------------------------------------------------------------------- /kbnauth/public/font: -------------------------------------------------------------------------------- 1 | ../../src/font -------------------------------------------------------------------------------- /kbnauth/public/img: -------------------------------------------------------------------------------- 1 | ../../src/img/ -------------------------------------------------------------------------------- /kbnauth/public/vendor: -------------------------------------------------------------------------------- 1 | ../../src/vendor/ -------------------------------------------------------------------------------- /src/app/panels/query/editors/lucene.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/panels/query/editors/regex.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /kbnauth/public/app/app.js: -------------------------------------------------------------------------------- 1 | ../../../src/app/app.js -------------------------------------------------------------------------------- /kbnauth/public/app/panels: -------------------------------------------------------------------------------- 1 | ../../../src/app/panels -------------------------------------------------------------------------------- /kbnauth/public/app/filters: -------------------------------------------------------------------------------- 1 | ../../../src/app/filters -------------------------------------------------------------------------------- /kbnauth/public/app/partials: -------------------------------------------------------------------------------- 1 | ../../../src/app/partials -------------------------------------------------------------------------------- /kbnauth/public/app/services: -------------------------------------------------------------------------------- 1 | ../../../src/app/services -------------------------------------------------------------------------------- /src/app/panels/derivequeries/editor.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /kbnauth/public/app/components: -------------------------------------------------------------------------------- 1 | ../../../src/app/components -------------------------------------------------------------------------------- /kbnauth/public/app/controllers: -------------------------------------------------------------------------------- 1 | ../../../src/app/controllers -------------------------------------------------------------------------------- /kbnauth/public/app/directives: -------------------------------------------------------------------------------- 1 | ../../../src/app/directives -------------------------------------------------------------------------------- /kbnauth/public/app/factories: -------------------------------------------------------------------------------- 1 | ../../../src/app/factories -------------------------------------------------------------------------------- /kbnauth/.htpasswd: -------------------------------------------------------------------------------- 1 | sri:$apr1$RlVSIBMC$z97I7qHX9Lw0t1qRDpL/l. 2 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/favicon.ico -------------------------------------------------------------------------------- /src/img/cubes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/cubes.png -------------------------------------------------------------------------------- /src/img/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/light.png -------------------------------------------------------------------------------- /src/img/load.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/load.gif -------------------------------------------------------------------------------- /src/img/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/small.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .aws-config.json 3 | dist 4 | .DS_Store 5 | kbnauth/kbn_auth.conf.sina 6 | -------------------------------------------------------------------------------- /src/img/kibana.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/kibana.png -------------------------------------------------------------------------------- /src/img/load_big.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/load_big.gif -------------------------------------------------------------------------------- /src/app/panels/bettermap/module.css: -------------------------------------------------------------------------------- 1 | /** custom additions **/ 2 | .leaflet-marker-icon { 3 | color: #333; 4 | } -------------------------------------------------------------------------------- /src/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/font/FontAwesome.otf -------------------------------------------------------------------------------- /src/img/annotation-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/annotation-icon.png -------------------------------------------------------------------------------- /tasks/server_task.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.registerTask('server', ['connect:dev']); 3 | }; -------------------------------------------------------------------------------- /docs/chenryn_img/force-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/chenryn_img/force-panel.png -------------------------------------------------------------------------------- /docs/chenryn_img/query-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/chenryn_img/query-panel.png -------------------------------------------------------------------------------- /docs/chenryn_img/range-panel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/chenryn_img/range-panel.jpg -------------------------------------------------------------------------------- /docs/tutorials/intro/intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/intro.png -------------------------------------------------------------------------------- /docs/tutorials/intro/query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/query.png -------------------------------------------------------------------------------- /src/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /tasks/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../.jshintrc", 3 | "node": true, 4 | "browser": false, 5 | "globalstrict": false 6 | } -------------------------------------------------------------------------------- /tasks/docs_task.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.registerTask('docs', ['clean:docs', 'scratchy:docs']); 3 | }; -------------------------------------------------------------------------------- /docs/chenryn_img/range-setting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/chenryn_img/range-setting.jpg -------------------------------------------------------------------------------- /docs/chenryn_img/script-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/chenryn_img/script-field.png -------------------------------------------------------------------------------- /docs/tutorials/intro/chartdrag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/chartdrag.png -------------------------------------------------------------------------------- /src/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /tasks/test_task.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.registerTask('test', [ 3 | 'connect:unit_tests' 4 | ]); 5 | }; -------------------------------------------------------------------------------- /docs/chenryn_img/bettermap-gaode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/chenryn_img/bettermap-gaode.png -------------------------------------------------------------------------------- /docs/tutorials/intro/charttooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/charttooltip.png -------------------------------------------------------------------------------- /docs/tutorials/intro/configicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/configicon.png -------------------------------------------------------------------------------- /docs/tutorials/intro/firsttable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/firsttable.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/home.png -------------------------------------------------------------------------------- /src/app/controllers/all.js: -------------------------------------------------------------------------------- 1 | define([ 2 | './dash', 3 | './dashLoader', 4 | './row', 5 | './pulldown' 6 | ], function () {}); 7 | -------------------------------------------------------------------------------- /src/img/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /docs/chenryn_img/hist-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/chenryn_img/hist-notification.png -------------------------------------------------------------------------------- /docs/tutorials/intro/indexconfigure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/indexconfigure.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/addedrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/addedrow.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/addpanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/addpanel.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/rowmove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/rowmove.png -------------------------------------------------------------------------------- /src/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/plays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/plays.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/remove.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/split.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/Addingrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/Addingrow.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/collapsed.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/firstpanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/firstpanel.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/movepanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/movepanel.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/rowbuttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/rowbuttons.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/roweditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/roweditor.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/rowpanels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/rowpanels.png -------------------------------------------------------------------------------- /kbnauth/public/login/images/login_bg01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/public/login/images/login_bg01.jpg -------------------------------------------------------------------------------- /kbnauth/public/login/images/login_bg02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/public/login/images/login_bg02.jpg -------------------------------------------------------------------------------- /kbnauth/public/login/images/sla_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/public/login/images/sla_icon.png -------------------------------------------------------------------------------- /docs/tutorials/intro/sample_shakespeare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/intro/sample_shakespeare.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/Addquery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/Addquery.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/pieslice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/pieslice.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/settings.png -------------------------------------------------------------------------------- /docs/tutorials/saving_loading/savebutton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/saving_loading/savebutton.png -------------------------------------------------------------------------------- /docs/tutorials/saving_loading/sharelink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/saving_loading/sharelink.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/filteradded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/filteradded.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/buttons_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/buttons_expanded.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/removing_panels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/removing_panels.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/terms_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/terms_settings.png -------------------------------------------------------------------------------- /docs/tutorials/rows_panels/toprowscollapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/rows_panels/toprowscollapsed.png -------------------------------------------------------------------------------- /docs/tutorials/saving_loading/sharebutton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/saving_loading/sharebutton.png -------------------------------------------------------------------------------- /docs/tutorials/queries_filters/comedyoferrors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/queries_filters/comedyoferrors.png -------------------------------------------------------------------------------- /docs/tutorials/dashboard_schema/schema_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/dashboard_schema/schema_dashboard.png -------------------------------------------------------------------------------- /docs/tutorials/saving_loading/awesome_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/saving_loading/awesome_dashboard.png -------------------------------------------------------------------------------- /docs/tutorials/saving_loading/searchdashboards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/docs/tutorials/saving_loading/searchdashboards.png -------------------------------------------------------------------------------- /src/app/panels/bettermap/leaflet/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/app/panels/bettermap/leaflet/images/layers.png -------------------------------------------------------------------------------- /src/app/panels/query/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | No options here 5 |
6 |
7 |
-------------------------------------------------------------------------------- /tasks/default_task.js: -------------------------------------------------------------------------------- 1 | // Lint and build CSS 2 | module.exports = function(grunt) { 3 | grunt.registerTask('default', ['jshint:source', 'less:src', 'docs']); 4 | }; -------------------------------------------------------------------------------- /src/app/panels/bettermap/leaflet/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/app/panels/bettermap/leaflet/images/layers-2x.png -------------------------------------------------------------------------------- /src/app/panels/filtering/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | No options here 5 |
6 |
7 |
-------------------------------------------------------------------------------- /src/app/panels/bettermap/leaflet/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/app/panels/bettermap/leaflet/images/marker-icon.png -------------------------------------------------------------------------------- /src/app/panels/bettermap/leaflet/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/app/panels/bettermap/leaflet/images/marker-shadow.png -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/bootstrap.dark.less: -------------------------------------------------------------------------------- 1 | @import "bootstrap.less"; 2 | @import "bootswatch.dark.less"; 3 | @import "overrides.less"; 4 | @import "variables.dark.less"; 5 | -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/E/ET/ETHER/URI-1.65.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/E/ET/ETHER/URI-1.65.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GARU/Clone-0.37.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GARU/Clone-0.37.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/T/TI/TIMB/DBI-1.632.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/T/TI/TIMB/DBI-1.632.tar.gz -------------------------------------------------------------------------------- /src/app/panels/bettermap/leaflet/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/src/app/panels/bettermap/leaflet/images/marker-icon-2x.png -------------------------------------------------------------------------------- /src/app/partials/load.html: -------------------------------------------------------------------------------- 1 |
2 | type: {{type}}
3 | id: {{id}}
4 |
-------------------------------------------------------------------------------- /src/vendor/bootstrap/less/bootstrap.light.less: -------------------------------------------------------------------------------- 1 | @import "bootstrap.less"; 2 | @import "bootswatch.light.less"; 3 | @import "overrides.less"; 4 | @import "variables.light.less"; 5 | -------------------------------------------------------------------------------- /tasks/options/git-describe.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | me: { 4 | // Target-specific file lists and/or options go here. 5 | } 6 | }; 7 | }; -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CJ/CJM/IO-HTML-1.001.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CJ/CJM/IO-HTML-1.001.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DO/DOY/Try-Tiny-0.22.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DO/DOY/Try-Tiny-0.22.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/E/ES/ESM/Net-NIS-0.44.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/E/ES/ESM/Net-NIS-0.44.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/M/MA/MAKAMAKA/JSON-2.90.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/M/MA/MAKAMAKA/JSON-2.90.tar.gz -------------------------------------------------------------------------------- /src/app/panels/fields/module.html: -------------------------------------------------------------------------------- 1 |
2 |

The 'fields' panel is deprecated.

The table panel now integrates a field selector. 3 |
-------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-MD5-2.53.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-MD5-2.53.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/P/PE/PERRIN/Ima-DBI-0.35.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/P/PE/PERRIN/Ima-DBI-0.35.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/S/SR/SRI/Mojolicious-5.65.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/S/SR/SRI/Mojolicious-5.65.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Crypt-RSA-1.99.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Crypt-RSA-1.99.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/A/AD/ADAMK/File-Which-1.09.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/A/AD/ADAMK/File-Which-1.09.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/A/AD/ADAMK/Test-Script-1.07.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/A/AD/ADAMK/Test-Script-1.07.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Convert-PEM-0.08.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Convert-PEM-0.08.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DP/DPARIS/Crypt-DES-2.07.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DP/DPARIS/Crypt-DES-2.07.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DP/DPARIS/Crypt-IDEA-1.10.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DP/DPARIS/Crypt-IDEA-1.10.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DS/DSKOLL/IO-stringy-2.110.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DS/DSKOLL/IO-stringy-2.110.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-HMAC-1.03.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-HMAC-1.03.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/Encode-Locale-1.03.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/Encode-Locale-1.03.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/File-Listing-6.04.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/File-Listing-6.04.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTML-Parser-3.71.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTML-Parser-3.71.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Cookies-6.01.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Cookies-6.01.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Daemon-6.01.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Daemon-6.01.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Message-6.06.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Message-6.06.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GB/GBARR/Convert-ASN1-0.27.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GB/GBARR/Convert-ASN1-0.27.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/M/MA/MARSCHAP/perl-ldap-0.64.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/M/MA/MARSCHAP/perl-ldap-0.64.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/M/MI/MIKEM/Net-SSLeay-1.66.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/M/MI/MIKEM/Net-SSLeay-1.66.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/M/MI/MITHALDU/Crypt-DH-0.07.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/M/MI/MITHALDU/Crypt-DH-0.07.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/M/MS/MSCHILLI/Net-HTTP-6.07.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/M/MS/MSCHILLI/Net-HTTP-6.07.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/N/NI/NIKIP/Authen-PAM-0.16.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/N/NI/NIKIP/Authen-PAM-0.16.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/S/SO/SOENKE/String-CRC32-1.5.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/S/SO/SOENKE/String-CRC32-1.5.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/T/TM/TMTM/Class-DBI-v3.0.17.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/T/TM/TMTM/Class-DBI-v3.0.17.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/T/TU/TURNSTEP/Math-GMP-2.07.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/T/TU/TURNSTEP/Math-GMP-2.07.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Class-Loader-2.03.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Class-Loader-2.03.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Crypt-Primes-0.50.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Crypt-Primes-0.50.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Crypt-Random-1.25.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Crypt-Random-1.25.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-0.5.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-0.5.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.24.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.24.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/F/FT/FTASSIN/Data-HexDump-0.02.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/F/FT/FTASSIN/Data-HexDump-0.02.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/G/GR/GRANTM/XML-SAX-Base-1.08.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/G/GR/GRANTM/XML-SAX-Base-1.08.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/K/KA/KASEI/Class-Accessor-0.34.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/K/KA/KASEI/Class-Accessor-0.34.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/K/KW/KWILLIAMS/Probe-Perl-0.03.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/K/KW/KWILLIAMS/Probe-Perl-0.03.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/N/NE/NEILB/Sort-Versions-1.60.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/N/NE/NEILB/Sort-Versions-1.60.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/P/PE/PEVANS/IO-Socket-IP-0.33.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/P/PE/PEVANS/IO-Socket-IP-0.33.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.40.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.40.tgz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/S/SU/SULLR/IO-Socket-SSL-2.006.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/S/SU/SULLR/IO-Socket-SSL-2.006.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DP/DPARIS/Crypt-Blowfish-2.14.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DP/DPARIS/Crypt-Blowfish-2.14.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DR/DROLSKY/Params-Validate-1.13.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DR/DROLSKY/Params-Validate-1.13.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/E/EX/EXODIST/Test-Exception-0.35.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/E/EX/EXODIST/Test-Exception-0.35.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/K/KA/KASEI/UNIVERSAL-moniker-0.08.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/K/KA/KASEI/UNIVERSAL-moniker-0.08.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/M/MI/MIYAGAWA/Class-Trigger-0.14.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/M/MI/MIYAGAWA/Class-Trigger-0.14.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/P/PJ/PJACKLAM/Math-BigInt-1.9993.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/P/PJ/PJACKLAM/Math-BigInt-1.9993.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/P/PO/PORTAONE/Authen-Radius-0.24.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/P/PO/PORTAONE/Authen-Radius-0.24.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/T/TU/TURNSTEP/Net-SSH-Perl-1.38.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/T/TU/TURNSTEP/Net-SSH-Perl-1.38.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.014.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.014.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.02.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.02.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-CDBI-0.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-CDBI-0.2.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-DBI-0.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-DBI-0.2.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-HTTP-0.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-HTTP-0.2.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-LDAP-0.3.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-LDAP-0.3.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-NIS-0.3.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-NIS-0.3.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-Net-0.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-Net-0.2.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-PAM-0.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-PAM-0.2.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-SSH-0.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-SSH-0.1.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.010808.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.010808.zip -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/P/PJ/PJACKLAM/Math-BigInt-GMP-1.38.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/P/PJ/PJACKLAM/Math-BigInt-GMP-1.38.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/T/TM/TMTM/DBIx-ContextualFetch-1.03.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/T/TM/TMTM/DBIx-ContextualFetch-1.03.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Digest-BubbleBabble-0.02.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/B/BT/BTROTT/Digest-BubbleBabble-0.02.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-RADIUS-0.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-RADIUS-0.1.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DS/DSTUART/Authen-Krb5-Simple-0.43.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DS/DSTUART/Authen-Krb5-Simple-0.43.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/T/TO/TOKUHIROM/Class-ErrorHandler-0.03.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/T/TO/TOKUHIROM/Class-ErrorHandler-0.03.tar.gz -------------------------------------------------------------------------------- /tasks/options/clean.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | on_start: ['<%= destDir %>', '<%= tempDir %>'], 4 | temp: ['<%= tempDir %>'], 5 | docs: ['<%= docsDir %>/kibana'] 6 | }; 7 | }; -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-Kerberos-0.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/C/CH/CHANSEN/Authen-Simple-Kerberos-0.1.tar.gz -------------------------------------------------------------------------------- /kbnauth/vendor/cache/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenryn/kibana-authorization/HEAD/kbnauth/vendor/cache/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz -------------------------------------------------------------------------------- /src/app/panels/dashcontrol/module.html: -------------------------------------------------------------------------------- 1 |
2 | This panel has been removed. Please use the dashboard controls in the top right and remove this panel from your dashboard 3 |
-------------------------------------------------------------------------------- /sample/filtered-alias-example/users.htpasswd: -------------------------------------------------------------------------------- 1 | buzz:$apr1$4iYkim1n$U1PiI4RnDPatZzIh48BR7/ 2 | shakey:$apr1$TG8F5sYS$.AsfudNpe9bgSm.GY9LNj0 3 | gus:$apr1$hb8zfkZc$8tx1yGAi29A2wQ5J0.aGK0 4 | hotdog:$apr1$HV4yQ.42$vdc4NOzlyQ/XXDC9eeC0k0 5 | -------------------------------------------------------------------------------- /tasks/options/cssmin.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | build: { 4 | expand: true, 5 | cwd: '<%= tempDir %>', 6 | src: '**/*.css', 7 | dest: '<%= tempDir %>' 8 | } 9 | }; 10 | }; -------------------------------------------------------------------------------- /src/app/services/all.js: -------------------------------------------------------------------------------- 1 | define([ 2 | './alertSrv', 3 | './dashboard', 4 | './fields', 5 | './filterSrv', 6 | './kbnIndex', 7 | './querySrv', 8 | './timer', 9 | './monitor', 10 | './panelMove', 11 | './esVersion' 12 | ], 13 | function () {}); 14 | -------------------------------------------------------------------------------- /src/app/partials/paneladd.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
{{tab.title}}
5 |
6 |
-------------------------------------------------------------------------------- /src/app/panels/derivequeries/module.html: -------------------------------------------------------------------------------- 1 |
2 |

This panel has been removed and replaced with the new topN query type. Click the colored dot associated with a query to configure the, much improved, equivilent of a derived query.

3 |
-------------------------------------------------------------------------------- /src/app/directives/all.js: -------------------------------------------------------------------------------- 1 | define([ 2 | './addPanel', 3 | './arrayJoin', 4 | './dashUpload', 5 | './kibanaPanel', 6 | './kibanaSimplePanel', 7 | './ngBlur', 8 | './ngModelOnBlur', 9 | './tip', 10 | './confirmClick', 11 | './esVersion', 12 | './configModal', 13 | './resizable' 14 | ], function () {}); 15 | -------------------------------------------------------------------------------- /docs/tutorials/tutorials.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | include::intro/index.asciidoc[] 3 | 4 | include::queries_filters/index.asciidoc[] 5 | 6 | include::rows_panels/index.asciidoc[] 7 | 8 | include::saving_loading/index.asciidoc[] 9 | 10 | include::dashboard_schema/index.asciidoc[] 11 | 12 | include::templates_scripts/index.asciidoc[] 13 | -------------------------------------------------------------------------------- /docs/kibana/panels/text.asciidoc: -------------------------------------------------------------------------------- 1 | == text 2 | Status: *Stable* 3 | 4 | The text panel is used for displaying static text formated as markdown, sanitized html or as plain 5 | text. 6 | 7 | 8 | === Parameters 9 | 10 | mode:: `html', `markdown' or `text' 11 | content:: The content of your panel, written in the mark up specified in +mode+ 12 | -------------------------------------------------------------------------------- /tasks/options/scratchy.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | docs: { 4 | src: ['src/app/**/*.js','src/config.js'], 5 | dest: config.docsDir+"/kibana", 6 | options: { 7 | unslash: true, 8 | extension: '.asciidoc', 9 | //annotate: '// ' 10 | } 11 | } 12 | } 13 | }; -------------------------------------------------------------------------------- /tasks/options/copy.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | // copy source to temp, we will minify in place for the dist build 4 | almost_everything_to_temp: { 5 | cwd: '<%= srcDir %>', 6 | expand: true, 7 | src: ['**/*', '!**/*.less', '!test/**/*'], 8 | dest: '<%= tempDir %>' 9 | } 10 | }; 11 | }; -------------------------------------------------------------------------------- /kbnauth/script/kbnauth: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | 3 | use strict; 4 | use warnings; 5 | 6 | use FindBin; 7 | BEGIN { unshift @INC, "$FindBin::Bin/../lib" } 8 | 9 | # Allow messages of indefinite size 10 | $ENV{MOJO_MAX_MESSAGE_SIZE} = 0; 11 | 12 | # Start command line interface for application 13 | require Mojolicious::Commands; 14 | Mojolicious::Commands->start_app('KbnAuth'); 15 | -------------------------------------------------------------------------------- /src/app/panels/timepicker/refreshctrl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 |
-------------------------------------------------------------------------------- /tasks/options/meta.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' + 4 | '<%= grunt.template.today("yyyy-mm-dd") %>\n' + 5 | '<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' + 6 | ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + 7 | ' Licensed <%= pkg.license %> */\n\n' 8 | }; 9 | }; -------------------------------------------------------------------------------- /src/app/partials/modal.html: -------------------------------------------------------------------------------- 1 | 5 | 10 | -------------------------------------------------------------------------------- /test/unit/specs/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../.jshintrc", 3 | "browser": true, 4 | "node": true, 5 | "globalstrict": false, 6 | "globals": { 7 | "require": true, 8 | "define": true, 9 | "describe": true, 10 | "it": true, 11 | "before": true, 12 | "beforeEach": true, 13 | "after": true, 14 | "afterEach": true, 15 | "expect": true, 16 | "angular": true 17 | } 18 | } -------------------------------------------------------------------------------- /docs/kibana/panels/column.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == Column 3 | Status: *Stable* 4 | 5 | A pseudo panel that lets you add other panels to be arranged in a column with defined heights. 6 | While the column panel is stable, it does have many limitations, including the inability to drag 7 | and drop panels within its borders. It may be removed in a future release. 8 | 9 | 10 | === Parameters 11 | 12 | panel:: An array of panel objects 13 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/layouts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Layouts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container (centered, fixed-width layouts) 7 | .container { 8 | .container-fixed(); 9 | } 10 | 11 | // Fluid layouts (left aligned, with sidebar, min- & max-width content) 12 | .container-fluid { 13 | padding-right: @gridGutterWidth; 14 | padding-left: @gridGutterWidth; 15 | .clearfix(); 16 | } -------------------------------------------------------------------------------- /src/app/panels/query/helpModal.html: -------------------------------------------------------------------------------- 1 | 5 | 10 | -------------------------------------------------------------------------------- /tasks/options/htmlmin.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | build: { 4 | options:{ 5 | removeComments: true, 6 | collapseWhitespace: true 7 | }, 8 | expand: true, 9 | cwd: '<%= tempDir %>', 10 | src: [ 11 | 'index.html', 12 | 'app/panels/**/*.html', 13 | 'app/partials/**/*.html' 14 | ], 15 | dest: '<%= tempDir %>' 16 | } 17 | }; 18 | }; -------------------------------------------------------------------------------- /src/app/panels/column/module.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
10 |
11 |
12 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | 6 | .fade { 7 | opacity: 0; 8 | .transition(opacity .15s linear); 9 | &.in { 10 | opacity: 1; 11 | } 12 | } 13 | 14 | .collapse { 15 | position: relative; 16 | height: 0; 17 | overflow: hidden; 18 | .transition(height .35s ease); 19 | &.in { 20 | height: auto; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tasks/options/uglify.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | dest: { 4 | expand: true, 5 | src: ['**/*.js', '!config.js', '!app/dashboards/*.js', '!app/dashboards/**/*.js',], 6 | dest: '<%= destDir %>', 7 | cwd: '<%= destDir %>', 8 | options: { 9 | quite: true, 10 | compress: true, 11 | preserveComments: false, 12 | banner: '<%= meta.banner %>' 13 | } 14 | } 15 | }; 16 | }; -------------------------------------------------------------------------------- /src/app/panels/bettermap/module.html: -------------------------------------------------------------------------------- 1 |
2 | 7 | 8 |
9 |
10 |
11 |
-------------------------------------------------------------------------------- /src/app/panels/text/module.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | {{panel.content}} 5 | 6 |

7 |

8 |

9 |

10 |
-------------------------------------------------------------------------------- /src/vendor/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Quick floats 7 | .pull-right { 8 | float: right; 9 | } 10 | .pull-left { 11 | float: left; 12 | } 13 | 14 | // Toggling content 15 | .hide { 16 | display: none; 17 | } 18 | .show { 19 | display: block; 20 | } 21 | 22 | // Visibility 23 | .invisible { 24 | visibility: hidden; 25 | } 26 | 27 | // For Affix plugin 28 | .affix { 29 | position: fixed; 30 | } 31 | -------------------------------------------------------------------------------- /src/app/panels/table/export.html: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /src/vendor/require/tmpl.js: -------------------------------------------------------------------------------- 1 | /*jshint unused:false */ 2 | define(['module'], function (module) { 3 | 'use strict'; 4 | 5 | var masterConfig = (module.config && module.config()) || {}; 6 | 7 | return { 8 | load: function (name, require, onLoad, config) { 9 | var url = require.toUrl(name); 10 | require(['text!'+name], function (text) { 11 | masterConfig.registerTemplate && masterConfig.registerTemplate(url, text); 12 | onLoad(text); 13 | }); 14 | } 15 | }; 16 | 17 | }); -------------------------------------------------------------------------------- /src/app/directives/ngBlur.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular' 3 | ], 4 | function (angular) { 5 | 'use strict'; 6 | 7 | angular 8 | .module('kibana.directives') 9 | .directive('ngBlur', ['$parse', function($parse) { 10 | return function(scope, element, attr) { 11 | var fn = $parse(attr['ngBlur']); 12 | element.bind('blur', function(event) { 13 | scope.$apply(function() { 14 | fn(scope, {$event:event}); 15 | }); 16 | }); 17 | }; 18 | }]); 19 | 20 | }); 21 | -------------------------------------------------------------------------------- /tasks/options/jshint.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | // just lint the source dir 4 | source: { 5 | files: { 6 | src: ['Gruntfile.js', '<%= srcDir %>/app/**/*.js'] 7 | } 8 | }, 9 | options: { 10 | jshintrc: '<%= baseDir %>/.jshintrc', 11 | ignores: [ 12 | 'node_modules/*', 13 | 'dist/*', 14 | 'sample/*', 15 | '<%= srcDir %>/vendor/*', 16 | '<%= srcDir %>/app/panels/*/{lib,leaflet}/*' 17 | ] 18 | } 19 | }; 20 | }; -------------------------------------------------------------------------------- /tasks/options/ngmin.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | build: { 4 | expand:true, 5 | cwd:'<%= tempDir %>', 6 | src: [ 7 | 'app/controllers/**/*.js', 8 | 'app/directives/**/*.js', 9 | 'app/services/**/*.js', 10 | 'app/filters/**/*.js', 11 | 'app/panels/**/*.js', 12 | 'app/app.js', 13 | 'vendor/angular/**/*.js', 14 | 'vendor/elasticjs/elastic-angular-client.js' 15 | ], 16 | dest: '<%= tempDir %>' 17 | } 18 | }; 19 | }; -------------------------------------------------------------------------------- /src/app/partials/inspector.html: -------------------------------------------------------------------------------- 1 | 5 | 13 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Fixed (940px) 7 | #grid > .core(@gridColumnWidth, @gridGutterWidth); 8 | 9 | // Fluid (940px) 10 | #grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth); 11 | 12 | // Reset utility classes due to specificity 13 | [class*="span"].hide, 14 | .row-fluid [class*="span"].hide { 15 | display: none; 16 | } 17 | 18 | [class*="span"].pull-right, 19 | .row-fluid [class*="span"].pull-right { 20 | float: right; 21 | } 22 | -------------------------------------------------------------------------------- /kbnauth/kbn_auth.conf: -------------------------------------------------------------------------------- 1 | { 2 | eshost => 'http://127.0.0.1:9200', 3 | hypnotoad => { 4 | listen => ['http://*:80'] 5 | }, 6 | secret => 'kibana_auth_secret', 7 | authen => { 8 | LDAP => { 9 | host => 'ad.company.com', 10 | binddn => 'proxyuser@company.com', 11 | bindpw => 'secret', 12 | basedn => 'cn=users,dc=company,dc=com', 13 | filter => '(&(objectClass=organizationalPerson)(objectClass=user)(sAMAccountName=%s))' 14 | }, 15 | Passwd => { 16 | path => '.htpasswd' 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/app/panels/column/panelgeneral.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 | 7 |
8 |
9 | 10 |
11 |
-------------------------------------------------------------------------------- /src/app/directives/esVersion.js: -------------------------------------------------------------------------------- 1 | /* 2 | Only show an element if it meets an Elasticsearch version requirement 3 | */ 4 | 5 | define([ 6 | 'angular', 7 | 'app', 8 | ], 9 | function (angular) { 10 | 'use strict'; 11 | 12 | angular 13 | .module('kibana.directives') 14 | .directive('esVersion', function(esVersion) { 15 | return { 16 | restrict: 'A', 17 | link: function(scope, elem, attr) { 18 | if(!esVersion.is(attr.esVersion)) { 19 | elem.hide(); 20 | } 21 | } 22 | }; 23 | }); 24 | }); 25 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: 8px 15px; 8 | margin: 0 0 @baseLineHeight; 9 | list-style: none; 10 | background-color: #f5f5f5; 11 | .border-radius(@baseBorderRadius); 12 | > li { 13 | display: inline-block; 14 | .ie7-inline-block(); 15 | text-shadow: 0 1px 0 @white; 16 | > .divider { 17 | padding: 0 5px; 18 | color: #ccc; 19 | } 20 | } 21 | > .active { 22 | color: @grayLight; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/app/directives/tip.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'kbn' 4 | ], 5 | function (angular, kbn) { 6 | 'use strict'; 7 | 8 | angular 9 | .module('kibana.directives') 10 | .directive('tip', function($compile) { 11 | return { 12 | restrict: 'E', 13 | link: function(scope, elem, attrs) { 14 | var _t = ''; 16 | elem.replaceWith($compile(angular.element(_t))(scope)); 17 | } 18 | }; 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /src/app/panels/force/module.html: -------------------------------------------------------------------------------- 1 |
2 | 21 |
22 |
23 | -------------------------------------------------------------------------------- /src/app/panels/sparklines/module.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 |
6 | {{series.info.alias}}
7 |
8 |
9 | 10 |
-------------------------------------------------------------------------------- /src/vendor/bootstrap/less/responsive-768px-979px.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Tablet to desktop 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 768px) and (max-width: 979px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth768, @gridGutterWidth768); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth768, @gridGutterWidth768); 16 | 17 | // No need to reset .thumbnails here since it's the same @gridGutterWidth 18 | 19 | } 20 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2012-2013 Elasticsearch BV 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you 4 | may not use this file except in compliance with the License. You may 5 | obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 12 | implied. See the License for the specific language governing 13 | permissions and limitations under the License. 14 | -------------------------------------------------------------------------------- /docs/index.asciidoc: -------------------------------------------------------------------------------- 1 | = Kibana 2 | 3 | == Introduction 4 | 5 | Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for 6 | ElasticSearch. Kibana is a snap to setup and start using. Written entirely in HTML and Javascript 7 | it requires only a plain webserver, Kibana requires no fancy server side components. 8 | Kibana strives to be easy to get started with, while also being flexible and powerful, just like 9 | Elasticsearch. 10 | 11 | include::./tutorials/tutorials.asciidoc[] 12 | 13 | include::./kibana/configuration/config.js.asciidoc[] 14 | 15 | include::./kibana/panels.asciidoc[] -------------------------------------------------------------------------------- /src/app/panels/query/help/regex.html: -------------------------------------------------------------------------------- 1 | The regex query allows you to use regular expressions to match terms in the _all field. 2 | 3 | A detailed overview of lucene's regex engine is available here: Regular expressions in Elasticsearch 4 | 5 |
A note on anchoring
6 | Lucene’s patterns are always anchored. The pattern provided must match the entire string. For string "abcde": 7 |

8 | ab.* will match
9 | abcd will not match
10 | 11 | -------------------------------------------------------------------------------- /src/app/panels/query/editors/topN.html: -------------------------------------------------------------------------------- 1 |

2 |
3 | 4 |

5 |
6 | 7 |

8 |
9 | 12 |

13 | -------------------------------------------------------------------------------- /src/app/partials/dashLoaderShare.html: -------------------------------------------------------------------------------- 1 | 5 | 9 | 12 | -------------------------------------------------------------------------------- /src/app/dashboards/blank.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "New Dashboard", 3 | "services": { 4 | "query": { 5 | "list": { 6 | "0": { 7 | "query": "*", 8 | "alias": "", 9 | "color": "#7EB26D", 10 | "id": 0 11 | } 12 | }, 13 | "ids": [ 14 | 0 15 | ] 16 | }, 17 | "filter": { 18 | "list": {}, 19 | "ids": [] 20 | } 21 | }, 22 | "rows": [ 23 | ], 24 | "editable": true, 25 | "failover": false, 26 | "index": { 27 | "interval": "none", 28 | "pattern": "[logstash-]YYYY.MM.DD", 29 | "default": "_all", 30 | "warm_fields": false 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/hero-unit.less: -------------------------------------------------------------------------------- 1 | // 2 | // Hero unit 3 | // -------------------------------------------------- 4 | 5 | 6 | .hero-unit { 7 | padding: 60px; 8 | margin-bottom: 30px; 9 | font-size: 18px; 10 | font-weight: 200; 11 | line-height: @baseLineHeight * 1.5; 12 | color: @heroUnitLeadColor; 13 | background-color: @heroUnitBackground; 14 | .border-radius(6px); 15 | h1 { 16 | margin-bottom: 0; 17 | font-size: 60px; 18 | line-height: 1; 19 | color: @heroUnitHeadingColor; 20 | letter-spacing: -1px; 21 | } 22 | li { 23 | line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /kbnauth/public/dashboards/blank.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "New Dashboard", 3 | "services": { 4 | "query": { 5 | "list": { 6 | "0": { 7 | "query": "*", 8 | "alias": "", 9 | "color": "#7EB26D", 10 | "id": 0 11 | } 12 | }, 13 | "ids": [ 14 | 0 15 | ] 16 | }, 17 | "filter": { 18 | "list": {}, 19 | "ids": [] 20 | } 21 | }, 22 | "rows": [ 23 | ], 24 | "editable": true, 25 | "failover": false, 26 | "index": { 27 | "interval": "none", 28 | "pattern": "[logstash-]YYYY.MM.DD", 29 | "default": "_all", 30 | "warm_fields": false 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/app/panels/filtering/meta.html: -------------------------------------------------------------------------------- 1 |
2 | 7 | × 8 |
Query Alias
9 |
10 | 11 |
12 | 13 |
14 |
15 |
-------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": true, 3 | 4 | "bitwise":false, 5 | "curly": true, 6 | "eqnull": true, 7 | "globalstrict": true, 8 | "devel": true, 9 | "eqeqeq": true, 10 | "forin": false, 11 | "immed": true, 12 | "supernew": true, 13 | "expr": true, 14 | "indent": 2, 15 | "latedef": true, 16 | "newcap": true, 17 | "noarg": true, 18 | "noempty": true, 19 | "undef": true, 20 | "boss": true, 21 | "trailing": false, 22 | "laxbreak": true, 23 | "laxcomma": true, 24 | "sub": true, 25 | "unused": true, 26 | 27 | "maxlen": 140, 28 | 29 | "globals": { 30 | "define": true, 31 | "require": true, 32 | "Chromath": false, 33 | "jsonPath": false 34 | } 35 | } -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @wellBackground; 12 | border: 1px solid darken(@wellBackground, 7%); 13 | .border-radius(@baseBorderRadius); 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-large { 23 | padding: 24px; 24 | .border-radius(@borderRadiusLarge); 25 | } 26 | .well-small { 27 | padding: 9px; 28 | .border-radius(@borderRadiusSmall); 29 | } 30 | -------------------------------------------------------------------------------- /test/unit/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mocha Tests 6 | 7 | 8 | 9 |
10 | 11 | 12 | 15 | 16 | 17 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/responsive-1200px-min.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Large desktop and up 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 1200px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); 16 | 17 | // Thumbnails 18 | .thumbnails { 19 | margin-left: -@gridGutterWidth1200; 20 | } 21 | .thumbnails > li { 22 | margin-left: @gridGutterWidth1200; 23 | } 24 | .row-fluid .thumbnails { 25 | margin-left: 0; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/app/directives/confirmClick.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'kbn' 4 | ], 5 | function (angular) { 6 | 'use strict'; 7 | 8 | var module = angular.module('kibana.directives'); 9 | 10 | module.directive('confirmClick', function() { 11 | return { 12 | restrict: 'A', 13 | link: function(scope, elem, attrs) { 14 | elem.bind('click', function() { 15 | var message = attrs.confirmation || "Are you sure you want to do that?"; 16 | if (window.confirm(message)) { 17 | var action = attrs.confirmClick; 18 | if (action) { 19 | scope.$apply(scope.$eval(action)); 20 | } 21 | } 22 | }); 23 | }, 24 | }; 25 | }); 26 | }); 27 | -------------------------------------------------------------------------------- /src/app/directives/ngModelOnBlur.js: -------------------------------------------------------------------------------- 1 | define(['angular'], 2 | function (angular) { 3 | 'use strict'; 4 | 5 | angular 6 | .module('kibana.directives') 7 | .directive('ngModelOnblur', function() { 8 | return { 9 | restrict: 'A', 10 | require: 'ngModel', 11 | link: function(scope, elm, attr, ngModelCtrl) { 12 | if (attr.type === 'radio' || attr.type === 'checkbox') { 13 | return; 14 | } 15 | 16 | elm.unbind('input').unbind('keydown').unbind('change'); 17 | elm.bind('blur', function() { 18 | scope.$apply(function() { 19 | ngModelCtrl.$setViewValue(elm.val()); 20 | }); 21 | }); 22 | } 23 | }; 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /src/app/panels/fields/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
Popup Position
3 | 4 |
5 |
List Arrangement
6 | 7 |
8 |
Font Size
9 | 10 |
11 | -------------------------------------------------------------------------------- /kbnauth/cpanfile: -------------------------------------------------------------------------------- 1 | requires "perl", "5.10.0"; 2 | requires "Digest::SHA"; 3 | requires "Mojolicious"; 4 | requires "Authen::Simple"; 5 | requires "Authen::Simple::Passwd"; 6 | requires "Authen::Simple::ActiveDirectory"; 7 | requires "Authen::Simple::CDBI"; 8 | requires "Authen::Simple::DBI"; 9 | requires "Authen::Simple::FTP"; 10 | requires "Authen::Simple::HTTP"; 11 | requires "Authen::Simple::Kerberos"; 12 | requires "Authen::Simple::LDAP"; 13 | requires "Authen::Simple::NIS"; 14 | requires "Authen::Simple::PAM"; 15 | requires "Authen::Simple::POP3"; 16 | requires "Authen::Simple::RADIUS"; 17 | requires "Authen::Simple::SMTP"; 18 | requires "Authen::Simple::SSH"; 19 | 20 | #feature "smb", "authen for smb" => sub { 21 | # requires "Authen::Smb"; 22 | # requires "Authen::Simple::SMB"; 23 | #}; 24 | 25 | -------------------------------------------------------------------------------- /src/vendor/require/css.js: -------------------------------------------------------------------------------- 1 | /** `css` is a requirejs plugin 2 | that loads a css file and inject it into a page. 3 | note that this loader will return immediately, 4 | regardless of whether the browser had finished parsing the stylesheet. 5 | this css loader is implemented for file optimization and depedency managment 6 | */ 7 | 8 | define({ 9 | load: function (name, require, load, config) { 10 | function inject(filename) 11 | { 12 | var head = document.getElementsByTagName('head')[0]; 13 | var link = document.createElement('link'); 14 | link.href = filename; 15 | link.rel = 'stylesheet'; 16 | link.type = 'text/css'; 17 | head.appendChild(link); 18 | } 19 | inject(requirejs.toUrl(name)); 20 | load(true); 21 | }, 22 | pluginBuilder: '../vendor/require/css-build' 23 | }); 24 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: 20px; 9 | font-weight: bold; 10 | line-height: @baseLineHeight; 11 | color: @black; 12 | text-shadow: 0 1px 0 rgba(255,255,255,1); 13 | .opacity(20); 14 | &:hover, 15 | &:focus { 16 | color: @black; 17 | text-decoration: none; 18 | cursor: pointer; 19 | .opacity(40); 20 | } 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button.close { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/accordion.less: -------------------------------------------------------------------------------- 1 | // 2 | // Accordion 3 | // -------------------------------------------------- 4 | 5 | 6 | // Parent container 7 | .accordion { 8 | margin-bottom: @baseLineHeight; 9 | } 10 | 11 | // Group == heading + body 12 | .accordion-group { 13 | margin-bottom: 2px; 14 | border: 1px solid #e5e5e5; 15 | .border-radius(@baseBorderRadius); 16 | } 17 | .accordion-heading { 18 | border-bottom: 0; 19 | } 20 | .accordion-heading .accordion-toggle { 21 | display: block; 22 | padding: 8px 15px; 23 | } 24 | 25 | // General toggle styles 26 | .accordion-toggle { 27 | cursor: pointer; 28 | } 29 | 30 | // Inner needs the styles because you can't animate properly with any styles on the element 31 | .accordion-inner { 32 | padding: 9px 15px; 33 | border-top: 1px solid #e5e5e5; 34 | } 35 | -------------------------------------------------------------------------------- /docs/kibana/panels/goal.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == Goal 3 | Status: *Stable* 4 | 5 | The goal panel display progress towards a fixed goal on a pie chart 6 | 7 | 8 | === Parameters 9 | donut:: Draw a hole in the middle of the pie, creating a tasty donut. 10 | tilt:: Tilt the pie back into an oval shape 11 | legend:: The location of the legend, above, below or none 12 | labels:: Set to false to disable drawing labels inside the pie slices 13 | spyable:: Set to false to disable the inspect function. 14 | 15 | ==== Query 16 | 17 | query object:: 18 | query.goal::: the fixed goal for goal mode 19 | 20 | ==== Queries 21 | 22 | queries object:: This object describes the queries to use on this panel. 23 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 24 | queries.ids::: In +selected+ mode, which query ids are selected. 25 | -------------------------------------------------------------------------------- /src/app/services/timer.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'lodash' 4 | ], 5 | function (angular, _) { 6 | 'use strict'; 7 | 8 | var module = angular.module('kibana.services'); 9 | 10 | module.service('timer', function($timeout) { 11 | // This service really just tracks a list of $timeout promises to give us a 12 | // method for cancelling them all when we need to 13 | 14 | var timers = []; 15 | 16 | this.register = function(promise) { 17 | timers.push(promise); 18 | return promise; 19 | }; 20 | 21 | this.cancel = function(promise) { 22 | timers = _.without(timers,promise); 23 | $timeout.cancel(promise); 24 | }; 25 | 26 | this.cancel_all = function() { 27 | _.each(timers, function(t){ 28 | $timeout.cancel(t); 29 | }); 30 | timers = []; 31 | }; 32 | }); 33 | 34 | }); -------------------------------------------------------------------------------- /src/app/directives/arrayJoin.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'app', 4 | 'lodash' 5 | ], 6 | function (angular, app, _) { 7 | 'use strict'; 8 | 9 | angular 10 | .module('kibana.directives') 11 | .directive('arrayJoin', function() { 12 | return { 13 | restrict: 'A', 14 | require: 'ngModel', 15 | link: function(scope, element, attr, ngModel) { 16 | 17 | function split_array(text) { 18 | return (text || '').split(','); 19 | } 20 | 21 | function join_array(text) { 22 | if(_.isArray(text)) { 23 | return (text || '').join(','); 24 | } else { 25 | return text; 26 | } 27 | } 28 | 29 | ngModel.$parsers.push(split_array); 30 | ngModel.$formatters.push(join_array); 31 | } 32 | }; 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /src/app/panels/goal/module.html: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 | {{query.label}} ({{query.data[0][1]}}) 7 |
8 |
9 | 10 |
11 | 12 |
13 | {{query.label}} ({{query.data[0][1]}}) 14 |
15 |
-------------------------------------------------------------------------------- /sample/lighttpd_basic.conf: -------------------------------------------------------------------------------- 1 | $HTTP["host"] =~ "kibana" { 2 | 3 | server.document-root = "/var/ww/kibana/src" 4 | auth.backend = "plain" 5 | auth.backend.plain.userfile = "/etc/lighttpd/kibanapassword" 6 | 7 | index-file.names = ( "index.html", "index.htm" ) 8 | 9 | auth.require = ( "/" => ( 10 | "method" => "basic", 11 | "realm" => "Password Protected", 12 | "require" => "valid-user" 13 | ) 14 | ) 15 | 16 | $HTTP["url"] =~ "^/kibana-int/(dashboard/|temp).*$" { 17 | proxy.balance = "hash" 18 | proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "9200" ) ) ) 19 | } 20 | $HTTP["url"] =~ "^.*/_(mapping|search|nodes|aliases)$" { 21 | proxy.balance = "hash" 22 | proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "9200" ) ) ) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /docs/kibana/panels/map.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == Map 3 | Status: *Stable* 4 | 5 | The map panel translates 2 letter country or state codes into shaded regions on a map. Currently 6 | available maps are world, usa and europe. 7 | 8 | 9 | === Parameters 10 | 11 | map:: Map to display. world, usa, europe 12 | colors:: An array of colors to use to shade the map. If 2 colors are specified, shades 13 | between them will be used. For example [`#A0E2E2', `#265656'] 14 | size:: Max number of regions to shade 15 | exclude:: exclude this array of regions. For example [`US',`BR',`IN'] 16 | spyable:: Setting spyable to false disables the inspect icon. 17 | 18 | ==== Queries 19 | queries object:: This object describes the queries to use on this panel. 20 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 21 | queries.ids::: In +selected+ mode, which query ids are selected. 22 | -------------------------------------------------------------------------------- /tasks/distribute_task.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | // build, then zip and upload to s3 4 | grunt.registerTask('distribute', [ 5 | 'distribute:load_s3_config', 6 | 'build', 7 | 'compress:zip', 8 | 'compress:tgz', 9 | 's3:dist', 10 | 'clean:temp' 11 | ]); 12 | 13 | // build, then zip and upload to s3 14 | grunt.registerTask('release', [ 15 | 'distribute:load_s3_config', 16 | 'build', 17 | 'compress:zip_release', 18 | 'compress:tgz_release', 19 | 's3:release', 20 | 'clean:temp' 21 | ]); 22 | 23 | // collect the key and secret from the .aws-config.json file, finish configuring the s3 task 24 | grunt.registerTask('distribute:load_s3_config', function () { 25 | var config = grunt.file.readJSON('.aws-config.json'); 26 | grunt.config('s3.options', { 27 | key: config.key, 28 | secret: config.secret 29 | }); 30 | }); 31 | } -------------------------------------------------------------------------------- /src/app/components/lodash.extended.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'lodash-src' 3 | ], 4 | function (_) { 5 | 'use strict'; 6 | 7 | /* 8 | Mixins :) 9 | */ 10 | _.mixin({ 11 | move: function (array, fromIndex, toIndex) { 12 | array.splice(toIndex, 0, array.splice(fromIndex, 1)[0] ); 13 | return array; 14 | }, 15 | remove: function (array, index) { 16 | array.splice(index, 1); 17 | return array; 18 | }, 19 | // If variable is value, then return alt. If variable is anything else, return value; 20 | toggle: function (variable, value, alt) { 21 | return variable === value ? alt : value; 22 | }, 23 | toggleInOut: function(array,value) { 24 | if(_.contains(array,value)) { 25 | array = _.without(array,value); 26 | } else { 27 | array.push(value); 28 | } 29 | return array; 30 | } 31 | }); 32 | 33 | return _; 34 | }); 35 | -------------------------------------------------------------------------------- /src/app/panels/fields/module.js: -------------------------------------------------------------------------------- 1 | /* 2 | ## Fields (DEPRECATED) 3 | */ 4 | define([ 5 | 'angular', 6 | 'app', 7 | 'lodash' 8 | ], 9 | function (angular, app, _) { 10 | 'use strict'; 11 | 12 | var module = angular.module('kibana.panels.fields', []); 13 | app.useModule(module); 14 | 15 | module.controller('fields', function($scope) { 16 | 17 | $scope.panelMeta = { 18 | status : "Deprecated", 19 | description : "You should not use this table, it does not work anymore. The table panel now"+ 20 | "integrates a field selector. This module will soon be removed." 21 | }; 22 | 23 | 24 | // Set and populate defaults 25 | var _d = { 26 | style : {}, 27 | arrange : 'vertical', 28 | micropanel_position : 'right', 29 | }; 30 | _.defaults($scope.panel,_d); 31 | 32 | $scope.init = function() { 33 | // Place holder until I remove this 34 | }; 35 | 36 | }); 37 | }); -------------------------------------------------------------------------------- /docs/kibana/panels/trends.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == trends 3 | Status: *Beta* 4 | 5 | A stock-ticker style representation of how queries are moving over time. For example, if the 6 | time is 1:10pm, your time picker was set to "Last 10m", and the "Time Ago" parameter was set to 7 | "1h", the panel would show how much the query results have changed since 12:00-12:10pm 8 | 9 | 10 | === Parameters 11 | 12 | ago:: A date math formatted string describing the relative time period to compare the 13 | queries to. 14 | arrangement:: `horizontal' or `vertical' 15 | reverse:: true or false. If true, use red for positive, green for negative 16 | spyable:: Set to false to disable the inspect icon 17 | 18 | ==== Queries 19 | queries object:: This object describes the queries to use on this panel. 20 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 21 | queries.ids::: In +selected+ mode, which query ids are selected. 22 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | margin: @baseLineHeight 0; 8 | list-style: none; 9 | text-align: center; 10 | .clearfix(); 11 | } 12 | .pager li { 13 | display: inline; 14 | } 15 | .pager li > a, 16 | .pager li > span { 17 | display: inline-block; 18 | padding: 5px 14px; 19 | background-color: #fff; 20 | border: 1px solid #ddd; 21 | .border-radius(15px); 22 | } 23 | .pager li > a:hover, 24 | .pager li > a:focus { 25 | text-decoration: none; 26 | background-color: #f5f5f5; 27 | } 28 | .pager .next > a, 29 | .pager .next > span { 30 | float: right; 31 | } 32 | .pager .previous > a, 33 | .pager .previous > span { 34 | float: left; 35 | } 36 | .pager .disabled > a, 37 | .pager .disabled > a:hover, 38 | .pager .disabled > a:focus, 39 | .pager .disabled > span { 40 | color: @grayLight; 41 | background-color: #fff; 42 | cursor: default; 43 | } -------------------------------------------------------------------------------- /tasks/options/less.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | // this is the only task, other than copy, that runs on the src directory, since we don't really need 4 | // the less files in the dist. Everything else runs from on temp, and require copys everything 5 | // from temp -> dist 6 | dist:{ 7 | expand: true, 8 | cwd:'<%= srcDir %>/vendor/bootstrap/less/', 9 | src: ['bootstrap.dark.less', 'bootstrap.light.less'], 10 | dest: '<%= tempDir %>/css/', 11 | }, 12 | // Compile in place when not building 13 | src:{ 14 | options: { 15 | paths: ["<%= srcDir %>/vendor/bootstrap/less"], 16 | yuicompress:true 17 | }, 18 | files: { 19 | "<%= srcDir %>/css/bootstrap.dark.min.css": "<%= srcDir %>/vendor/bootstrap/less/bootstrap.dark.less", 20 | "<%= srcDir %>/css/bootstrap.light.min.css": "<%= srcDir %>/vendor/bootstrap/less/bootstrap.light.less" 21 | } 22 | } 23 | }; 24 | }; -------------------------------------------------------------------------------- /src/app/directives/resizable.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | ], 4 | function (angular) { 5 | 'use strict'; 6 | 7 | angular 8 | .module('kibana.directives') 9 | .directive('resizable', function() { 10 | return { 11 | restrict: 'A', 12 | link: function(scope, elem) { 13 | 14 | var getOpts = function() { 15 | return { 16 | maxWidth: elem.parent().width(), 17 | grid: elem.parent().width()/12, 18 | handles: 'e' 19 | }; 20 | }; 21 | 22 | // Re-render if the window is resized 23 | angular.element(window).bind('resize', function(){ 24 | elem.resizable(getOpts()); 25 | }); 26 | 27 | elem.resizable(getOpts()); 28 | elem.resize(function (event, ui) { 29 | scope.panel.span = Math.round(((ui.size.width / elem.parent().width()) * 100) * 1.2 / 10); 30 | }); 31 | } 32 | }; 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /src/app/panels/force/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
Source Field Field containing the source of the transaction (source IP address, source device, etc.)
5 | 6 |
7 |
8 | 9 |
10 |
11 |
Target Field Field containing the destination of the transactions (destination IP address, destination device, etc.)
12 | 13 |
14 |
15 | 16 |
17 |
18 |
Size How many IP addresses you want to fetch
19 | 20 |
21 |
22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/kibana/panels/hits.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == Hits 3 | Status: *Stable* 4 | 5 | The hits panel displays the number of hits for each of the queries on the dashboard in a 6 | configurable format specified by the `chart' property. 7 | 8 | 9 | === Parameters 10 | 11 | arrangement:: The arrangement of the legend. horizontal or vertical 12 | chart:: bar, pie or none 13 | counter_pos:: The position of the legend, above or below 14 | donut:: If the chart is set to pie, setting donut to true will draw a hole in the midle of it 15 | tilt:: If the chart is set to pie, setting tilt to true will tilt it back into an oval 16 | labels:: If the chart is set to pie, setting labels to true will draw labels in the slices 17 | spyable:: Setting spyable to false disables the inspect icon. 18 | 19 | ==== Queries 20 | queries object:: This object describes the queries to use on this panel. 21 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 22 | queries.ids::: In +selected+ mode, which query ids are selected. 23 | -------------------------------------------------------------------------------- /docs/kibana/panels/sparklines.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == Sparklines 3 | Status: *Experimental* 4 | 5 | The sparklines panel shows tiny time charts. The purpose of these is not to give an exact value, 6 | but rather to show the shape of the time series in a compact manner 7 | 8 | 9 | === Parameters 10 | mode:: Value to use for the y-axis. For all modes other than count, +value_field+ must be 11 | defined. Possible values: count, mean, max, min, total. 12 | time_field:: x-axis field. This must be defined as a date type in Elasticsearch. 13 | value_field:: y-axis field if +mode+ is set to mean, max, min or total. Must be numeric. 14 | interval:: Sparkline intervals are computed automatically as long as there is a time filter 15 | present. In the absence of a time filter, use this interval. 16 | spyable:: Show inspect icon 17 | 18 | ==== Queries 19 | queries object:: This object describes the queries to use on this panel. 20 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 21 | queries.ids::: In +selected+ mode, which query ids are selected. 22 | -------------------------------------------------------------------------------- /src/app/components/settings.js: -------------------------------------------------------------------------------- 1 | define(['lodash'], 2 | function (_) { 3 | "use strict"; 4 | 5 | return function Settings (options) { 6 | /** 7 | * To add a setting, you MUST define a default. Also, 8 | * THESE ARE ONLY DEFAULTS. 9 | * They are overridden by config.js in the root directory 10 | * @type {Object} 11 | */ 12 | var defaults = { 13 | elasticsearch : "http://"+window.location.hostname+":9200", 14 | api_version : "1.0", 15 | sniff : true, 16 | request_timeout : 30000, 17 | panel_names : [], 18 | kibana_index : 'kibana-int', 19 | default_route : '/dashboard/file/default.json' 20 | }; 21 | 22 | // This initializes a new hash on purpose, to avoid adding parameters to 23 | // config.js without providing sane defaults 24 | var settings = {}; 25 | _.each(defaults, function(value, key) { 26 | settings[key] = typeof options[key] !== 'undefined' ? options[key] : defaults[key]; 27 | }); 28 | 29 | return settings; 30 | }; 31 | }); 32 | -------------------------------------------------------------------------------- /src/app/panels/multifieldhistogram/meta.html: -------------------------------------------------------------------------------- 1 |
2 | 7 | 8 |
9 | 10 | 11 |
12 | 13 |
14 |
15 | 16 |
17 | 18 |
19 | Remove color 20 | 21 |
22 |
23 | -------------------------------------------------------------------------------- /kbnauth/lib/KbnAuth/Inspector.pm: -------------------------------------------------------------------------------- 1 | package KbnAuth::Inspector; 2 | use strict; 3 | use warnings; 4 | use Mojo::Base -base; 5 | 6 | has from => 'now-1d'; 7 | has prefix => 'logstash-'; 8 | has interval => 300; 9 | has content => ''; 10 | 11 | sub determine { 12 | my ( $self, $data ) = @_; 13 | return "Warning", $data; 14 | } 15 | 16 | sub begin { 17 | my ($self) = @_; 18 | if ( $self->from =~ m/-(\d+)(\w)$/ ) { 19 | if ( $2 eq 'h' ) { 20 | return ('minus_hours', $1); 21 | } 22 | elsif ( $2 eq 'd' ) { 23 | return ('minus_days', $1); 24 | } 25 | elsif ( $2 eq 'w' ) { 26 | return ('minus_weeks', $1); 27 | } 28 | else { 29 | warn "You really need so large time range?!"; 30 | } 31 | } 32 | } 33 | 34 | sub jsoncontent { 35 | my ($self) = @_; 36 | my $from = $self->from; 37 | ( my $content = $self->content ) =~ s/\"from\": \d{13}/\"from\": \"$from\"/; 38 | $content =~ s/\"to\": \d{13}/\"to\": \"now\"/; 39 | return $content; 40 | } 41 | 42 | 1; 43 | -------------------------------------------------------------------------------- /src/app/panels/text/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 |
7 | 8 |
9 |
10 | 11 | 15 | 16 |
-------------------------------------------------------------------------------- /kbnauth/lib/KbnAuth/Command/migratint.pm: -------------------------------------------------------------------------------- 1 | package KbnAuth::Command::migratint; 2 | use strict; 3 | use warnings; 4 | use Mojo::Base 'Mojolicious::Command'; 5 | use Mojo::UserAgent; 6 | 7 | has usage => "usage: $0 migratint [username] [dashboards...]\n"; 8 | has description => "kibana-int index migration for auth users\n"; 9 | 10 | sub run { 11 | my ( $self, $user, @dashboards ) = @_; 12 | my $eshost = $self->app->config('eshost'); 13 | my $ua = Mojo::UserAgent->new; 14 | my $ret = $ua->get("$eshost/kibana-auth/indices/$user/_source")->res->json; 15 | die "No $user in kibana-auth!" unless $ret; 16 | my $userhost = $ret->{'server'} || $eshost; 17 | for my $dashboard (@dashboards) { 18 | my $dash = $ua->get("$userhost/kibana-int/dashboard/$dashboard/_source") 19 | ->res->json; 20 | say "No $dashboard exists." and next unless $dash; 21 | my $tx = $ua->post( 22 | "$userhost/kibana-int-$user/dashboard/$dashboard" => json => 23 | $dash ); 24 | say "$dashboard migration " . $tx->res->message; 25 | } 26 | } 27 | 28 | 1; 29 | -------------------------------------------------------------------------------- /src/app/partials/paneleditor.html: -------------------------------------------------------------------------------- 1 | 19 | 20 | -------------------------------------------------------------------------------- /src/app/panels/bettermap/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
Coordinate Field geoJSON array! Long,Lat NOT Lat,Long
5 | 6 |
7 |
8 |
9 |
10 |
Map providers
11 | 12 |
13 |
14 |
15 |
16 |
Tooltip Field
17 | 18 |
19 |
20 |
Max Points
21 | 22 |
23 |
24 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | *overflow: visible; 14 | zoom: 1; 15 | } 16 | 17 | // Proper spacing between instances of .media 18 | .media, 19 | .media .media { 20 | margin-top: 15px; 21 | } 22 | .media:first-child { 23 | margin-top: 0; 24 | } 25 | 26 | // For images and videos, set to block 27 | .media-object { 28 | display: block; 29 | } 30 | 31 | // Reset margins on headings for tighter default spacing 32 | .media-heading { 33 | margin: 0 0 5px; 34 | } 35 | 36 | 37 | // Media image alignment 38 | // ------------------------- 39 | 40 | .media > .pull-left { 41 | margin-right: 10px; 42 | } 43 | .media > .pull-right { 44 | margin-left: 10px; 45 | } 46 | 47 | 48 | // Media list variation 49 | // ------------------------- 50 | 51 | // Undo default ul/ol styles 52 | .media-list { 53 | margin-left: 0; 54 | list-style: none; 55 | } 56 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/scaffolding.less: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | 6 | // Body reset 7 | // ------------------------- 8 | 9 | body { 10 | margin: 0; 11 | font-family: @baseFontFamily; 12 | font-size: @baseFontSize; 13 | line-height: @baseLineHeight; 14 | color: @textColor; 15 | background-color: @bodyBackground; 16 | } 17 | 18 | 19 | // Links 20 | // ------------------------- 21 | 22 | a { 23 | color: @linkColor; 24 | text-decoration: none; 25 | } 26 | a:hover, 27 | a:focus { 28 | color: @linkColorHover; 29 | text-decoration: underline; 30 | } 31 | 32 | 33 | // Images 34 | // ------------------------- 35 | 36 | // Rounded corners 37 | .img-rounded { 38 | .border-radius(6px); 39 | } 40 | 41 | // Add polaroid-esque trim 42 | .img-polaroid { 43 | padding: 4px; 44 | background-color: #fff; 45 | border: 1px solid #ccc; 46 | border: 1px solid rgba(0,0,0,.2); 47 | .box-shadow(0 1px 3px rgba(0,0,0,.1)); 48 | } 49 | 50 | // Perfect circle 51 | .img-circle { 52 | .border-radius(500px); // crank the border-radius so it works with most reasonably sized images 53 | } 54 | -------------------------------------------------------------------------------- /tasks/options/s3.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | dist: { 4 | bucket: 'download.elasticsearch.org', 5 | access: 'private', 6 | // debug: true, // uncommment to prevent actual upload 7 | upload: [ 8 | { 9 | src: '<%= tempDir %>/<%= pkg.name %>-latest.zip', 10 | dest: 'kibana/kibana/<%= pkg.name %>-latest.zip', 11 | }, 12 | { 13 | src: '<%= tempDir %>/<%= pkg.name %>-latest.tar.gz', 14 | dest: 'kibana/kibana/<%= pkg.name %>-latest.tar.gz', 15 | } 16 | ] 17 | }, 18 | release: { 19 | bucket: 'download.elasticsearch.org', 20 | access: 'private', 21 | // debug: true, // uncommment to prevent actual upload 22 | upload: [ 23 | { 24 | src: '<%= tempDir %>/<%= pkg.name %>-<%= pkg.version %>.zip', 25 | dest: 'kibana/kibana/<%= pkg.name %>-<%= pkg.version %>.zip', 26 | }, 27 | { 28 | src: '<%= tempDir %>/<%= pkg.name %>-<%= pkg.version %>.tar.gz', 29 | dest: 'kibana/kibana/<%= pkg.name %>-<%= pkg.version %>.tar.gz', 30 | } 31 | ] 32 | } 33 | }; 34 | }; -------------------------------------------------------------------------------- /src/app/directives/addPanel.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'app', 4 | 'lodash' 5 | ], 6 | function (angular, app, _) { 7 | 'use strict'; 8 | 9 | angular 10 | .module('kibana.directives') 11 | .directive('addPanel', function($compile) { 12 | return { 13 | restrict: 'A', 14 | link: function($scope, elem) { 15 | 16 | $scope.$on("$destroy",function() { 17 | elem.remove(); 18 | }); 19 | 20 | $scope.$watch('panel.type', function() { 21 | var _type = $scope.panel.type; 22 | $scope.reset_panel(_type); 23 | if(!_.isUndefined($scope.panel.type)) { 24 | $scope.panel.loadingEditor = true; 25 | $scope.require(['panels/'+$scope.panel.type.replace(".","/") +'/module'], function () { 26 | var template = '
'; 27 | elem.html($compile(angular.element(template))($scope)); 28 | $scope.panel.loadingEditor = false; 29 | }); 30 | } 31 | }); 32 | } 33 | }; 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /src/app/panels/trends/editor.html: -------------------------------------------------------------------------------- 1 |
2 |

Settings

3 |
4 |
5 | 6 | 7 |
8 |
9 | 10 | 11 |
12 |
13 | 14 | 15 |
16 |
17 | 18 | 19 |
20 |
21 |
22 | -------------------------------------------------------------------------------- /kbnauth/lib/KbnAuth/Model/Users.pm: -------------------------------------------------------------------------------- 1 | package KbnAuth::Model::Users; 2 | use Mojo::Base -base; 3 | use Mojo::Cache; 4 | use Mojo::UserAgent; 5 | use Authen::Simple; 6 | 7 | has ua => sub { Mojo::UserAgent->new }; 8 | has cache => sub { Mojo::Cache->new }; 9 | has config => sub { {} }; 10 | has host => sub { shift->config->{'eshost'} // 'http://127.0.0.1:9200' }; 11 | has authen => sub { 12 | my $config = shift->config; 13 | my @adapters; 14 | for my $adapter ( keys %{ $config->{'authen'} } ) { 15 | my $sub_pm = "Authen::Simple::$adapter"; 16 | eval "use $sub_pm"; 17 | push @adapters, $sub_pm->new( %{ $config->{'authen'}->{$adapter} } ); 18 | } 19 | Authen::Simple->new(@adapters); 20 | }; 21 | 22 | sub check { 23 | my ( $self, $user, $pass ) = @_; 24 | if ( $self->authen->authenticate( $user, $pass ) ) { 25 | $self->rset($user); 26 | return 1; 27 | } 28 | } 29 | 30 | sub rset { 31 | my ( $self, $user ) = @_; 32 | my $host = $self->host; 33 | my $ret = 34 | $self->ua->new->get("$host/kibana-auth/indices/$user/_source") 35 | ->res->json; 36 | $self->cache->set( $user, $ret ); 37 | } 38 | 39 | 1; 40 | -------------------------------------------------------------------------------- /kbnauth/lib/KbnAuth/Controller/Kibana.pm: -------------------------------------------------------------------------------- 1 | package KbnAuth::Controller::Kibana; 2 | use Mojo::Base 'Mojolicious::Controller'; 3 | 4 | sub webui { 5 | my $self = shift; 6 | $self->render; 7 | } 8 | 9 | sub config { 10 | my $self = shift; 11 | $self->stash( route => $self->user('route') 12 | // '/dashboard/file/default.json' ); 13 | $self->render( format => 'js' ); 14 | } 15 | 16 | sub dashboard { 17 | my $self = shift; 18 | my $file = $self->param('file'); 19 | $self->reply->static("dashboards/$file"); 20 | } 21 | 22 | sub index { 23 | my $self = shift; 24 | my $user = $self->param('user') // ''; 25 | my $pass = $self->param('pass') // ''; 26 | return $self->render unless $self->users->check( $user, $pass ); 27 | $self->session( user => $user ); 28 | $self->redirect_to('webui'); 29 | } 30 | 31 | sub logged_in { 32 | my $self = shift; 33 | return 1 if $self->session('user'); 34 | $self->redirect_to('index'); 35 | return undef; 36 | } 37 | 38 | sub logout { 39 | my $self = shift; 40 | delete $self->users->cache->{$self->session('user')}; 41 | $self->session( expires => 1 ); 42 | $self->redirect_to('index'); 43 | } 44 | 45 | 1; 46 | -------------------------------------------------------------------------------- /src/app/panels/timepicker/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 |
7 |
8 | 9 | 10 |
11 |
12 | 13 | 14 |
15 |
16 | 17 | 21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /src/app/controllers/pulldown.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'app', 4 | 'lodash' 5 | ], 6 | function (angular, app, _) { 7 | 'use strict'; 8 | 9 | var module = angular.module('kibana.controllers'); 10 | 11 | module.controller('PulldownCtrl', function($scope, $rootScope, $timeout,ejsResource, querySrv) { 12 | var _d = { 13 | collapse: false, 14 | notice: false, 15 | enable: true 16 | }; 17 | 18 | _.defaults($scope.pulldown,_d); 19 | 20 | $scope.init = function() { 21 | $scope.querySrv = querySrv; 22 | 23 | // Provide a combined skeleton for panels that must interact with panel and row. 24 | // This might create name spacing issues. 25 | $scope.panel = $scope.pulldown; 26 | $scope.row = $scope.pulldown; 27 | }; 28 | 29 | $scope.toggle_pulldown = function(pulldown) { 30 | pulldown.collapse = pulldown.collapse ? false : true; 31 | if (!pulldown.collapse) { 32 | $timeout(function() { 33 | $scope.$broadcast('render'); 34 | }); 35 | } else { 36 | $scope.row.notice = false; 37 | } 38 | }; 39 | 40 | $scope.init(); 41 | 42 | } 43 | ); 44 | 45 | }); 46 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | /* jshint node:true */ 2 | 'use strict'; 3 | module.exports = function (grunt) { 4 | 5 | var config = { 6 | pkg: grunt.file.readJSON('package.json'), 7 | baseDir: '.', 8 | srcDir: 'src', 9 | destDir: 'dist', 10 | tempDir: 'tmp', 11 | docsDir: 'docs/', 12 | unitTests: 'test/unit/specs/**/*.js', 13 | unitTestDir: 'test/unit/' 14 | }; 15 | 16 | // load plugins 17 | require('load-grunt-tasks')(grunt); 18 | 19 | // load task definitions 20 | grunt.loadTasks('tasks'); 21 | 22 | // Utility function to load plugin settings into config 23 | function loadConfig(config,path) { 24 | require('glob').sync('*', {cwd: path}).forEach(function(option) { 25 | var key = option.replace(/\.js$/,''); 26 | // If key already exists, extend it. It is your responsibility to avoid naming collisions 27 | config[key] = config[key] || {}; 28 | grunt.util._.extend(config[key], require(path + option)(config,grunt)); 29 | }); 30 | // technically not required 31 | return config; 32 | } 33 | 34 | // Merge that object with what with whatever we have here 35 | loadConfig(config,'./tasks/options/'); 36 | 37 | // pass the config to grunt 38 | grunt.initConfig(config); 39 | 40 | }; -------------------------------------------------------------------------------- /src/app/partials/panelgeneral.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{panelMeta.status}} // 4 |
5 |
6 |
7 |
8 |
9 | 10 |
11 |
12 | 13 |
14 |
15 | 16 |
17 |
18 | 21 | 22 |
23 |
24 |
-------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "name": "Rashid Khan", 4 | "company": "Elasticsearch BV" 5 | }, 6 | "name": "kibana", 7 | "version": "3.1.0", 8 | "repository": { 9 | "type": "git", 10 | "url": "http://github.com/elasticsearch/kibana.git" 11 | }, 12 | "devDependencies": { 13 | "rjs-build-analysis": "0.0.3", 14 | "grunt": "~0.4.0", 15 | "grunt-s3": "~0.2.0-alpha.2", 16 | "grunt-ngmin": "0.0.3", 17 | "grunt-contrib": "~0.8.0", 18 | "grunt-contrib-less": "~0.7.0", 19 | "grunt-contrib-copy": "~0.4.1", 20 | "grunt-git-describe": "~2.3.2", 21 | "grunt-contrib-clean": "~0.5.0", 22 | "grunt-contrib-cssmin": "~0.6.1", 23 | "grunt-contrib-jshint": "~0.6.0", 24 | "grunt-string-replace": "~0.2.4", 25 | "grunt-contrib-htmlmin": "~0.1.3", 26 | "grunt-contrib-requirejs": "~0.4.1", 27 | "grunt-angular-templates": "~0.3.12", 28 | "grunt-contrib-compress": "~0.5.2", 29 | "grunt-contrib-uglify": "~0.2.4", 30 | "load-grunt-tasks": "~0.2.0", 31 | "grunt-contrib-connect": "~0.5.0", 32 | "grunt-scratchy": "git://github.com/rashidkpc/grunt-scratchy.git", 33 | "glob": "~3.2.8", 34 | "kat": "~0.2.2", 35 | "expect.js": "~0.2.0" 36 | }, 37 | "license": "Apache License" 38 | } 39 | -------------------------------------------------------------------------------- /src/app/panels/goal/editor.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |
Parameters
5 |
6 |
7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
View Options
15 |
16 | 17 |
18 |
19 | 20 |
21 |
22 | 23 |
24 |
25 | 26 | 27 |
28 |
29 | 30 |
-------------------------------------------------------------------------------- /src/app/panels/fields/micropanel.html: -------------------------------------------------------------------------------- 1 | × 2 |

3 | Micro Analysis of {{micropanel.field}} 4 | 5 | 6 |
{{micropanel.count}} events in the table set 7 |

8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 22 | 23 | 24 |
{{micropanel.field}}ActionIn set
{{{true: "__blank__",false:field[0]}[field[0] == ""]}} 18 | 19 | 20 | {{field[1]}}
25 | {{field}} ({{Math.round((count / micropanel.count) * 100)}}%), -------------------------------------------------------------------------------- /src/app/panels/table/pagination.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
Show Controls
5 |
6 |
7 |
Overflow
8 | 9 |
10 |
11 | 12 |
13 |
14 |
Per Page
15 | 16 |
17 |
18 |
 
19 |
20 |
21 |
22 |
Page limit
23 | 24 |
25 |
26 |
Pageable
27 | = {{panel.size * panel.pages}} 28 |
29 |
30 | 31 |
32 | 33 | -------------------------------------------------------------------------------- /src/app/panels/trends/module.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 9 | 10 |
11 | 12 | 22 | {{query.percent}}% 23 | 24 | ({{query.info.alias}}) 25 |
26 |
-------------------------------------------------------------------------------- /src/app/panels/table/modal.html: -------------------------------------------------------------------------------- 1 | 38 | 39 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/responsive.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.3.2 3 | * 4 | * Copyright 2013 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world by @mdo and @fat. 9 | */ 10 | 11 | 12 | // Responsive.less 13 | // For phone and tablet devices 14 | // ------------------------------------------------------------- 15 | 16 | 17 | // REPEAT VARIABLES & MIXINS 18 | // ------------------------- 19 | // Required since we compile the responsive stuff separately 20 | 21 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 22 | @import "mixins.less"; 23 | 24 | 25 | // RESPONSIVE CLASSES 26 | // ------------------ 27 | 28 | @import "responsive-utilities.less"; 29 | 30 | 31 | // MEDIA QUERIES 32 | // ------------------ 33 | 34 | // Large desktops 35 | @import "responsive-1200px-min.less"; 36 | 37 | // Tablets to regular desktops 38 | @import "responsive-768px-979px.less"; 39 | 40 | // Phones to portrait tablets and narrow desktops 41 | @import "responsive-767px-max.less"; 42 | 43 | 44 | // RESPONSIVE NAVBAR 45 | // ------------------ 46 | 47 | // From 979px and below, show a button to toggle navbar contents 48 | @import "responsive-navbar.less"; 49 | -------------------------------------------------------------------------------- /sample/filtered-alias-example/generate-user-aliases.rb: -------------------------------------------------------------------------------- 1 | require 'elasticsearch' 2 | require 'hashie' 3 | 4 | # Connect to the ElasticSearch cluster 5 | client = Elasticsearch::Client.new 6 | 7 | # Get all the users and map them to an array 8 | resp = Hashie::Mash.new client.search index: "logstash-*", 9 | body: { 10 | size: 0, 11 | facets: { users: { terms: { field: 'user' } } } 12 | } 13 | users = resp.facets.users.terms.to_a.map { |f| f.term } 14 | 15 | # Get a list of all the indexes and aliases 16 | aliases = Hashie::Mash.new client.indices.get_aliases 17 | aliases.each_pair do |index,aliases| 18 | # Match the all the Logstash indexes and get the Logstash 19 | # date stamp from the index name. 20 | matches = /logstash-(\d{4}.\d{2}.\d{2})/.match index 21 | if matches 22 | # Loop through each user and check to see if the index exists 23 | # if it doesn't then create the new alias and add a term filter. 24 | users.each do |user| 25 | aliasName = "#{user}-#{matches[1]}" 26 | unless aliases.aliases[aliasName] 27 | puts "Creating alias #{aliasName} for #{index}" 28 | client.indices.put_alias index: index, name: aliasName, 29 | body: { 30 | filter: { term: { user: user } } 31 | } 32 | end 33 | end 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /tasks/build_task.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | // Concat and Minify the src directory into dist 4 | grunt.registerTask('build', [ 5 | 'jshint:source', 6 | 'clean:on_start', 7 | 'less:dist', 8 | 'copy:almost_everything_to_temp', 9 | 'htmlmin:build', 10 | 'cssmin:build', 11 | 'ngmin:build', 12 | 'requirejs:build', 13 | 'clean:temp', 14 | 'build:write_revision', 15 | 'uglify:dest' 16 | ]); 17 | 18 | // run a string replacement on the require config, using the latest revision number as the cache buster 19 | grunt.registerTask('build:write_revision', function() { 20 | grunt.event.once('git-describe', function (desc) { 21 | grunt.config('string-replace.config', { 22 | files: { 23 | '<%= destDir %>/app/components/require.config.js': '<%= destDir %>/app/components/require.config.js', 24 | '<%= destDir %>/app/app.js': '<%= destDir %>/app/app.js' 25 | }, 26 | 27 | options: { 28 | replacements: [ 29 | { 30 | pattern: /@REV@/g, 31 | replacement: grunt.config.data.pkg.version +"-"+ desc.object 32 | } 33 | ] 34 | } 35 | }); 36 | grunt.task.run('string-replace:config'); 37 | }); 38 | grunt.task.run('git-describe'); 39 | }); 40 | }; -------------------------------------------------------------------------------- /src/app/panels/sparklines/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
Values
4 |
5 | 6 | 7 |
8 |
9 | 10 | 11 |
12 |
13 | 14 | 15 |
16 |
17 |
18 |
Transform Series
19 |
20 | 21 |
22 |
23 |
-------------------------------------------------------------------------------- /docs/kibana/panels/bettermap.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == Bettermap 3 | Status: *Experimental* 4 | 5 | Bettermap is called bettermap for lack of a better name. Bettermap uses geographic coordinates to 6 | create clusters of markers on map and shade them orange, yellow and green depending on the 7 | density of the cluster. 8 | 9 | To drill down, click on a cluster. The map will be zoomed and the cluster broken into smaller cluster. 10 | When it no longer makes visual sense to cluster, individual markers will be displayed. Hover over 11 | a marker to see the tooltip value/ 12 | 13 | IMPORTANT: bettermap requires an internet connection to download its map panels. 14 | 15 | === Parameters 16 | 17 | field:: The field that contains the coordinates, in geojson format. GeoJSON is 18 | +[longitude,latitude]+ in an array. This is different from most implementations, which use 19 | latitude, longitude. 20 | size:: The number of documents to use when drawing the map 21 | spyable:: Should the `inspect` icon be shown? 22 | tooltip:: Which field to use for the tooltip when hovering over a marker 23 | 24 | ==== Queries 25 | queries object:: This object describes the queries to use on this panel. 26 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 27 | queries.ids::: In +selected+ mode, which query ids are selected. 28 | -------------------------------------------------------------------------------- /src/app/panels/query/help/topN.html: -------------------------------------------------------------------------------- 1 | The topN query uses an Elasticsearch terms facet to find the most common terms in a field and build queries from the result. The topN query uses LUCENE query string syntax 2 | 3 |

Parameters

4 | -------------------------------------------------------------------------------- /src/app/panels/bettermap/leaflet/leaflet.ie.css: -------------------------------------------------------------------------------- 1 | .leaflet-vml-shape { 2 | width: 1px; 3 | height: 1px; 4 | } 5 | .lvml { 6 | behavior: url(#default#VML); 7 | display: inline-block; 8 | position: absolute; 9 | } 10 | 11 | .leaflet-control { 12 | display: inline; 13 | } 14 | 15 | .leaflet-popup-tip { 16 | width: 21px; 17 | _width: 27px; 18 | margin: 0 auto; 19 | _margin-top: -3px; 20 | 21 | filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); 22 | -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; 23 | } 24 | .leaflet-popup-tip-container { 25 | margin-top: -1px; 26 | } 27 | .leaflet-popup-content-wrapper, .leaflet-popup-tip { 28 | border: 1px solid #999; 29 | } 30 | .leaflet-popup-content-wrapper { 31 | zoom: 1; 32 | } 33 | 34 | .leaflet-control-zoom, 35 | .leaflet-control-layers { 36 | border: 3px solid #999; 37 | } 38 | .leaflet-control-layers-toggle { 39 | } 40 | .leaflet-control-attribution, 41 | .leaflet-control-layers, 42 | .leaflet-control-scale-line { 43 | background: white; 44 | } 45 | .leaflet-zoom-box { 46 | filter: alpha(opacity=50); 47 | } 48 | .leaflet-control-attribution { 49 | border-top: 1px solid #bbb; 50 | border-left: 1px solid #bbb; 51 | } 52 | -------------------------------------------------------------------------------- /src/app/panels/query/query.css: -------------------------------------------------------------------------------- 1 | .short-query { 2 | display:inline-block; 3 | margin-right: 10px; 4 | } 5 | .short-query input.search-query { 6 | width: 280px; 7 | } 8 | .begin-query { 9 | position:absolute; 10 | left:10px; 11 | top:5px; 12 | } 13 | .end-query { 14 | position:absolute; 15 | right:10px; 16 | top:5px; 17 | } 18 | 19 | .end-query i, .begin-query i { 20 | margin: 0px; 21 | } 22 | 23 | .panel-query { 24 | padding-left: 25px !important; 25 | height: 31px !important; 26 | -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */ 27 | -moz-box-sizing: border-box; /* Firefox, other Gecko */ 28 | box-sizing: border-box; /* Opera/IE 8+ */ 29 | } 30 | 31 | .query-disabled { 32 | opacity: 0.3; 33 | } 34 | 35 | .form-search:hover .has-remove { 36 | padding-left: 40px !important; 37 | } 38 | .remove-query { 39 | opacity: 0; 40 | } 41 | .last-query { 42 | padding-right: 45px !important; 43 | } 44 | .form-search:hover .remove-query { 45 | opacity: 1; 46 | } 47 | .query-panel .pinned { 48 | margin-right: 5px; 49 | } 50 | 51 | .myinput { 52 | height: 24px; 53 | background-color: #4D4D4D; 54 | border: 1px solid #666666; 55 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset; 56 | transition: border 0.2s linear 0s, box-shadow 0.2s linear 0s; 57 | color: #ADAFAE; 58 | position:relative;top:-4px; 59 | } 60 | -------------------------------------------------------------------------------- /src/app/services/alertSrv.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'lodash' 4 | ], 5 | function (angular, _) { 6 | 'use strict'; 7 | 8 | var module = angular.module('kibana.services'); 9 | 10 | module.service('alertSrv', function($timeout) { 11 | var self = this; 12 | 13 | // List of all alert objects 14 | this.list = []; 15 | 16 | this.set = function(title,text,severity,timeout) { 17 | var 18 | _a = { 19 | title: title || '', 20 | text: text || '', 21 | severity: severity || 'info', 22 | }, 23 | _ca = angular.toJson(_a), 24 | _clist = _.map(self.list,function(alert){return angular.toJson(alert);}); 25 | 26 | // If we already have this alert, remove it and add a new one 27 | // Why do this instead of skipping the add because it resets the timer 28 | if(_.contains(_clist,_ca)) { 29 | _.remove(self.list,_.indexOf(_clist,_ca)); 30 | } 31 | 32 | self.list.push(_a); 33 | if (timeout > 0) { 34 | $timeout(function() { 35 | self.list = _.without(self.list,_a); 36 | }, timeout); 37 | } 38 | return(_a); 39 | }; 40 | 41 | this.clear = function(alert) { 42 | self.list = _.without(self.list,alert); 43 | }; 44 | 45 | this.clearAll = function() { 46 | self.list = []; 47 | }; 48 | }); 49 | }); -------------------------------------------------------------------------------- /src/app/components/extend-jquery.js: -------------------------------------------------------------------------------- 1 | define(['jquery'], 2 | function ($) { 3 | 'use strict'; 4 | 5 | /** 6 | * jQuery extensions 7 | */ 8 | var $win = $(window); 9 | 10 | $.fn.place_tt = (function () { 11 | var defaults = { 12 | offset: 5, 13 | css: { 14 | position : 'absolute', 15 | top : -1000, 16 | left : 0, 17 | color : "#c8c8c8", 18 | padding : '10px', 19 | 'font-size': '11pt', 20 | 'font-weight' : 200, 21 | 'background-color': '#1f1f1f', 22 | 'border-radius': '5px', 23 | 'z-index': 9999 24 | } 25 | }; 26 | 27 | return function (x, y, opts) { 28 | opts = $.extend(true, {}, defaults, opts); 29 | return this.each(function () { 30 | var $tooltip = $(this), width, height; 31 | 32 | $tooltip.css(opts.css); 33 | if (!$.contains(document.body, $tooltip[0])) { 34 | $tooltip.appendTo(document.body); 35 | } 36 | 37 | width = $tooltip.outerWidth(true); 38 | height = $tooltip.outerHeight(true); 39 | 40 | $tooltip.css('left', x + opts.offset + width > $win.width() ? x - opts.offset - width : x + opts.offset); 41 | $tooltip.css('top', y + opts.offset + height > $win.height() ? y - opts.offset - height : y + opts.offset); 42 | }); 43 | }; 44 | })(); 45 | 46 | return $; 47 | }); 48 | -------------------------------------------------------------------------------- /docs/kibana/configuration/config.js.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == Configuration 3 | config.js is where you will find the core Kibana configuration. This file contains parameter that 4 | must be set before kibana is run for the first time. 5 | 6 | === Parameters 7 | 8 | ==== elasticsearch 9 | 10 | The URL to your elasticsearch server. You almost certainly don't 11 | want +http://localhost:9200+ here. Even if Kibana and Elasticsearch are on 12 | the same host. By default this will attempt to reach ES at the same host you have 13 | kibana installed on. You probably want to set it to the FQDN of your 14 | elasticsearch host 15 | 16 | ==== api_version 17 | 18 | The elasticsearch api version you want to use. This must match the version of your elasticsearch server. 19 | 20 | Valid version: 0.9, 1.0, 1.1, 1.2 21 | 22 | ==== default_route 23 | 24 | This is the default landing page when you don't specify a dashboard to load. You can specify 25 | files, scripts or saved dashboards here. For example, if you had saved a dashboard called 26 | `WebLogs' to elasticsearch you might use: 27 | 28 | default_route: '/dashboard/elasticsearch/WebLogs', 29 | 30 | ==== kibana-int 31 | 32 | The default ES index to use for storing Kibana specific object 33 | such as stored dashboards 34 | 35 | ==== panel_name 36 | 37 | An array of panel modules available. Panels will only be loaded when they are defined in the 38 | dashboard, but this list is used in the "add panel" interface. 39 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files 7 | 8 | // Make wrapper ul behave like the grid 9 | .thumbnails { 10 | margin-left: -@gridGutterWidth; 11 | list-style: none; 12 | .clearfix(); 13 | } 14 | // Fluid rows have no left margin 15 | .row-fluid .thumbnails { 16 | margin-left: 0; 17 | } 18 | 19 | // Float li to make thumbnails appear in a row 20 | .thumbnails > li { 21 | float: left; // Explicity set the float since we don't require .span* classes 22 | margin-bottom: @baseLineHeight; 23 | margin-left: @gridGutterWidth; 24 | } 25 | 26 | // The actual thumbnail (can be `a` or `div`) 27 | .thumbnail { 28 | display: block; 29 | padding: 4px; 30 | line-height: @baseLineHeight; 31 | border: 1px solid #ddd; 32 | .border-radius(@baseBorderRadius); 33 | .box-shadow(0 1px 3px rgba(0,0,0,.055)); 34 | .transition(all .2s ease-in-out); 35 | } 36 | // Add a hover/focus state for linked versions only 37 | a.thumbnail:hover, 38 | a.thumbnail:focus { 39 | border-color: @linkColor; 40 | .box-shadow(0 1px 4px rgba(0,105,214,.25)); 41 | } 42 | 43 | // Images and captions 44 | .thumbnail > img { 45 | display: block; 46 | max-width: 100%; 47 | margin-left: auto; 48 | margin-right: auto; 49 | } 50 | .thumbnail .caption { 51 | padding: 9px; 52 | color: @gray; 53 | } 54 | -------------------------------------------------------------------------------- /kbnauth/lib/KbnAuth/Inspector/Example.pm: -------------------------------------------------------------------------------- 1 | package KbnAuth::Inspector::Example; 2 | use strict; 3 | use warnings; 4 | use Mojo::Base 'KbnAuth::Inspector'; 5 | 6 | has prefix => 'logstash-mweibo-'; 7 | has interval=> 5; 8 | has content => <<'EOF'; 9 | { 10 | "facets": { 11 | "terms": { 12 | "terms": { 13 | "field": "jsoncontent.errmsg.raw", 14 | "size": 10, 15 | "order": "count", 16 | "exclude": [] 17 | }, 18 | "facet_filter": { 19 | "fquery": { 20 | "query": { 21 | "filtered": { 22 | "query": { 23 | "bool": { 24 | "should": [ 25 | { 26 | "query_string": { 27 | "query": "*" 28 | } 29 | } 30 | ] 31 | } 32 | }, 33 | "filter": { 34 | "bool": { 35 | "must": [ 36 | { 37 | "range": { 38 | "@timestamp": { 39 | "from": 1419459071110, 40 | "to": 1419502271111 41 | } 42 | } 43 | } 44 | ] 45 | } 46 | } 47 | } 48 | } 49 | } 50 | } 51 | } 52 | }, 53 | "size": 0 54 | } 55 | EOF 56 | 57 | sub determine { 58 | 59 | } 60 | 61 | 1; 62 | -------------------------------------------------------------------------------- /test/unit/specs/lodash_extensions.js: -------------------------------------------------------------------------------- 1 | describe('Lodash mixins', function () { 2 | var _; 3 | 4 | before(function (done) { 5 | // load modules using require.js once we are ready to being 6 | require(['lodash'], function (__) { 7 | _ = __; 8 | done(); 9 | }); 10 | }); 11 | 12 | describe('#move', function () { 13 | it('moves the specified element within the array', function() { 14 | var arr = [1,2,3]; 15 | _.move(arr, 0, 1); 16 | 17 | expect(arr[0]).to.be(2); 18 | expect(arr[1]).to.be(1); 19 | }); 20 | }); 21 | 22 | describe('#remove', function () { 23 | it('removes an element from the array', function () { 24 | var arr = [1,2,3]; 25 | _.remove(arr, 2); 26 | expect(arr).to.eql([1,2]); 27 | }); 28 | }); 29 | 30 | describe('#toggle', function () { 31 | it('returns either value or alt based on if the variable matches the standard value', function () { 32 | expect(_.toggle(1, 1, true)).to.be.ok(); 33 | expect(_.toggle(1, 2, 1)).to.be(2); 34 | }); 35 | }); 36 | 37 | describe('#toggleInOut', function () { 38 | it('adds the value to an array if it is not already present', function () { 39 | var arr = _.toggleInOut([1,2,3,5,6], 4); 40 | expect(_.contains(arr, 4)).to.ok(); 41 | }); 42 | it('removes the value from an array if it is already present', function () { 43 | var arr = _.toggleInOut([1,2,3,4,5,6], 4); 44 | expect(_.contains(arr, 4)).to.not.be.ok(); 45 | }); 46 | }); 47 | }); -------------------------------------------------------------------------------- /src/app/panels/derivequeries/module.js: -------------------------------------------------------------------------------- 1 | /* 2 | ## Derivequeries 3 | 4 | ### Parameters 5 | * label :: The label to stick over the field 6 | * query :: A string to use as a filter for the terms facet 7 | * field :: the field to facet on 8 | * rest :: include a filter that matches all other terms, 9 | * size :: how many queries to generate 10 | * fields :: a list of fields known to us 11 | * query_mode :: how to create query 12 | 13 | */ 14 | define([ 15 | 'angular', 16 | 'app', 17 | 'lodash' 18 | ], 19 | function (angular, app, _) { 20 | 'use strict'; 21 | 22 | var module = angular.module('kibana.panels.derivequeries', []); 23 | app.useModule(module); 24 | 25 | module.controller('derivequeries', function($scope) { 26 | $scope.panelMeta = { 27 | status : "Deprecated", 28 | description : "This panel has been replaced with the 'topN' mode in the query pull down." 29 | }; 30 | 31 | // Set and populate defaults 32 | var _d = { 33 | loading : false, 34 | label : "Search", 35 | query : "*", 36 | ids : [], 37 | field : '_type', 38 | fields : [], 39 | spyable : true, 40 | rest : false, 41 | size : 5, 42 | mode : 'terms only', 43 | exclude : [], 44 | history : [], 45 | remember: 10 // max: 100, angular strap can't take a variable for items param 46 | }; 47 | _.defaults($scope.panel,_d); 48 | 49 | $scope.init = function() { 50 | $scope.editing = false; 51 | }; 52 | }); 53 | }); -------------------------------------------------------------------------------- /docs/kibana/panels.asciidoc: -------------------------------------------------------------------------------- 1 | [[panels]] 2 | = Panels 3 | 4 | [partintro] 5 | -- 6 | *Kibana* dashboards are made up of blocks called +panels+. Panels are organized into rows 7 | and can serve many purposes, though most are designed to provide the results of a query or 8 | multiple queries as a visualization. Other panels may show collections of documents or 9 | allow you to insert instructions for your users. 10 | 11 | Panels can be configured easily via the Kibana web interface. For more advanced usage, such 12 | as templated or scripted dashboards, documentation of panel properties is available in this 13 | section. You may find settings here which are not exposed via the web interface. 14 | 15 | Each panel type has its own properties, hover there are several that are shared. 16 | 17 | span:: A number, 1-12, that describes the width of the panel. 18 | editable:: Enable or disable the edit button the the panel 19 | type:: The type of panel this object contains. Each panel type will require additional 20 | properties. See the panel types list to the right. 21 | -- 22 | 23 | include::panels/bettermap.asciidoc[] 24 | 25 | include::panels/column.asciidoc[] 26 | 27 | include::panels/goal.asciidoc[] 28 | 29 | include::panels/histogram.asciidoc[] 30 | 31 | include::panels/hits.asciidoc[] 32 | 33 | include::panels/map.asciidoc[] 34 | 35 | include::panels/sparklines.asciidoc[] 36 | 37 | include::panels/table.asciidoc[] 38 | 39 | include::panels/terms.asciidoc[] 40 | 41 | include::panels/text.asciidoc[] 42 | 43 | include::panels/trends.asciidoc[] 44 | -------------------------------------------------------------------------------- /src/app/panels/valuehistogram/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
Values
4 |
5 | 6 | 7 |
8 |
9 | 10 | 11 |
12 |
13 |
14 |
Transform Series
15 |
16 | 17 | 18 |
19 |
20 |
21 |
Horizontal Options
22 |
23 |
24 | 25 | 26 |
27 |
28 | 29 | 30 |
31 |
32 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and blocK) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | pre { 9 | padding: 0 3px 2px; 10 | #font > #family > .monospace; 11 | font-size: @baseFontSize - 2; 12 | color: @grayDark; 13 | .border-radius(3px); 14 | } 15 | 16 | // Inline code 17 | code { 18 | padding: 2px 4px; 19 | color: #d14; 20 | background-color: #f7f7f9; 21 | border: 1px solid #e1e1e8; 22 | white-space: nowrap; 23 | } 24 | 25 | // Blocks of code 26 | pre { 27 | display: block; 28 | padding: (@baseLineHeight - 1) / 2; 29 | margin: 0 0 @baseLineHeight / 2; 30 | font-size: @baseFontSize - 1; // 14px to 13px 31 | line-height: @baseLineHeight; 32 | word-break: break-all; 33 | word-wrap: break-word; 34 | white-space: pre; 35 | white-space: pre-wrap; 36 | background-color: #f5f5f5; 37 | border: 1px solid #ccc; // fallback for IE7-8 38 | border: 1px solid rgba(0,0,0,.15); 39 | .border-radius(@baseBorderRadius); 40 | 41 | // Make prettyprint styles more spaced out for readability 42 | &.prettyprint { 43 | margin-bottom: @baseLineHeight; 44 | } 45 | 46 | // Account for some code outputs that place code tags in pre tags 47 | code { 48 | padding: 0; 49 | color: inherit; 50 | white-space: pre; 51 | white-space: pre-wrap; 52 | background-color: transparent; 53 | border: 0; 54 | } 55 | } 56 | 57 | // Enable scrollable blocks of code 58 | .pre-scrollable { 59 | max-height: 340px; 60 | overflow-y: scroll; 61 | } -------------------------------------------------------------------------------- /src/app/directives/dashUpload.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular' 3 | ], 4 | function (angular) { 5 | 'use strict'; 6 | 7 | var module = angular.module('kibana.directives'); 8 | 9 | module.directive('dashUpload', function(timer, dashboard, alertSrv){ 10 | return { 11 | restrict: 'A', 12 | link: function(scope) { 13 | function file_selected(evt) { 14 | var files = evt.target.files; // FileList object 15 | var readerOnload = function() { 16 | return function(event) { 17 | try { 18 | dashboard.dash_load(JSON.parse(event.target.result)); 19 | } 20 | catch (err) { 21 | alertSrv.set('Oops','The dashboard file you want to upload is malformed, please correct it and retry.','error'); 22 | } 23 | scope.$apply(); 24 | }; 25 | }; 26 | for (var i = 0, f; f = files[i]; i++) { 27 | var reader = new FileReader(); 28 | reader.onload = (readerOnload)(f); 29 | reader.readAsText(f); 30 | } 31 | } 32 | // Check for the various File API support. 33 | if (window.File && window.FileReader && window.FileList && window.Blob) { 34 | // Something 35 | document.getElementById('dashupload').addEventListener('change', file_selected, false); 36 | } else { 37 | alertSrv.set('Oops','Sorry, the HTML5 File APIs are not fully supported in this browser.','error'); 38 | } 39 | } 40 | }; 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /src/app/partials/connectionFailed.html: -------------------------------------------------------------------------------- 1 | 2 |

3 |

4 |
5 |
6 |
7 |

Connection Failed

8 | 9 |
Possibility #1: Your elasticsearch server is down or unreachable
10 | This can be caused by a network outage, or a failure of the Elasticsearch process. If you have recently run a query that required a terms aggregation to be executed it is possible the process has run out of memory and stopped. Be sure to check your Elasticsearch logs for any sign of memory pressure. 11 |
Possibility #2: You are running Elasticsearch 1.4 or higher
12 | Elasticsearch 1.4 ships with a security setting that prevents Kibana from connecting. You will need to set the following in your elasticsearch.yml: 13 |

14 |

    15 |
  1. http.cors.enabled: true
  2. 16 |
  3. http.cors.allow-origin to the correct protocol, hostname, and port (if not 80) that your access Kibana from. Note that if you are running Kibana in a sub-url, you should exclude the sub-url path and only include the protocol, hostname and port. For example, http://mycompany.com:8080, not http://mycompany.com:8080/kibana.
  4. 17 |
18 |

19 |
Click back, or the home button, when you have resolved the connection issue
20 | 21 |
22 |
23 |
24 |
25 |

26 | -------------------------------------------------------------------------------- /src/app/partials/querySelect.html: -------------------------------------------------------------------------------- 1 |
2 | 13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 | 21 | {{querySrv.list()[id].alias || querySrv.list()[id].query}} 22 |
23 | 24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /tasks/options/connect.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | return { 3 | dev: { 4 | options: { 5 | port: 5601, 6 | base: config.srcDir, 7 | keepalive: true 8 | } 9 | }, 10 | unit_tests: { 11 | options: { 12 | port: 5602, 13 | keepalive: true, 14 | middleware: function (connect) { 15 | return [ 16 | // mainly just for index.html 17 | connect.static(config.unitTestDir), 18 | // for the modules to test 19 | connect.static(config.srcDir), 20 | // contains mocha.js 21 | connect.static('node_modules/mocha'), 22 | // contains expect.js 23 | connect.static('node_modules/expect.js'), 24 | // bundle the spec files into one file that changes when needed 25 | function (req, resp, next) { 26 | if (req.url !== '/specs.js') { 27 | return next(); 28 | } 29 | 30 | var Kat = require('kat'); 31 | resp.statusCode = 200; 32 | resp.setHeader('Content-Type', 'application/javascript'); 33 | var read = new Kat(); 34 | require('glob')(config.unitTests, function (err, files) { 35 | if (err) { 36 | next(err); 37 | return; 38 | } 39 | 40 | files.forEach(function (file) { 41 | read.add(file); 42 | }); 43 | read.pipe(resp); 44 | }); 45 | } 46 | ]; 47 | } 48 | } 49 | } 50 | }; 51 | }; -------------------------------------------------------------------------------- /src/app/directives/configModal.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'lodash' 4 | ], 5 | function (angular,_) { 6 | 'use strict'; 7 | 8 | angular 9 | .module('kibana.directives') 10 | .directive('configModal', function($modal,$q) { 11 | return { 12 | restrict: 'A', 13 | link: function(scope, elem, attrs) { 14 | var 15 | model = attrs.kbnModel, 16 | partial = attrs.configModal; 17 | 18 | 19 | // create a new modal. Can't reuse one modal unforunately as the directive will not 20 | // re-render on show. 21 | elem.bind('click',function(){ 22 | 23 | // Create a temp scope so we can discard changes to it if needed 24 | var tmpScope = scope.$new(); 25 | tmpScope[model] = angular.copy(scope[model]); 26 | 27 | tmpScope.editSave = function(panel) { 28 | // Correctly set the top level properties of the panel object 29 | _.each(panel,function(v,k) { 30 | scope[model][k] = panel[k]; 31 | }); 32 | }; 33 | 34 | var panelModal = $modal({ 35 | //template: './app/partials/paneleditor.html', 36 | template: partial, 37 | persist: true, 38 | show: false, 39 | scope: tmpScope, 40 | keyboard: false 41 | }); 42 | 43 | // and show it 44 | $q.when(panelModal).then(function(modalEl) { 45 | modalEl.modal('show'); 46 | }); 47 | scope.$apply(); 48 | }); 49 | } 50 | }; 51 | }); 52 | }); 53 | -------------------------------------------------------------------------------- /docs/kibana/panels/terms.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == terms 3 | Status: *Stable* 4 | 5 | A table, bar chart or pie chart based on the results of an Elasticsearch terms facet. 6 | 7 | === Parameters 8 | 9 | field:: The field on which to computer the facet 10 | exclude:: terms to exclude from the results 11 | missing:: Set to false to disable the display of a counter showing how much results are 12 | missing the field 13 | other:: Set to false to disable the display of a counter representing the aggregate of all 14 | values outside of the scope of your +size+ property 15 | size:: Show this many terms 16 | order:: In terms mode: count, term, reverse_count or reverse_term, 17 | in terms_stats mode: term, reverse_term, count, reverse_count, 18 | total, reverse_total, min, reverse_min, max, reverse_max, mean or reverse_mean 19 | donut:: In pie chart mode, draw a hole in the middle of the pie to make a tasty donut. 20 | tilt:: In pie chart mode, tilt the chart back to appear as more of an oval shape 21 | lables:: In pie chart mode, draw labels in the pie slices 22 | arrangement:: In bar or pie mode, arrangement of the legend. horizontal or vertical 23 | chart:: table, bar or pie 24 | counter_pos:: The location of the legend in respect to the chart, above, below, or none. 25 | spyable:: Set spyable to false to disable the inspect button 26 | 27 | ==== Queries 28 | queries object:: This object describes the queries to use on this panel. 29 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 30 | queries.ids::: In +selected+ mode, which query ids are selected. 31 | tmode:: Facet mode: terms or terms_stats 32 | tstat:: Terms_stats facet stats field 33 | valuefield:: Terms_stats facet value field 34 | -------------------------------------------------------------------------------- /src/app/panels/histogram/interval.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'kbn' 3 | ], 4 | function (kbn) { 5 | 'use strict'; 6 | 7 | /** 8 | * manages the interval logic 9 | * @param {[type]} interval_string An interval string in the format '1m', '1y', etc 10 | */ 11 | function Interval(interval_string) { 12 | this.string = interval_string; 13 | 14 | var info = kbn.describe_interval(interval_string); 15 | this.type = info.type; 16 | this.ms = Math.ceil(info.sec * 1000 * info.count); 17 | 18 | // does the length of the interval change based on the current time? 19 | if (this.type === 'y' || this.type === 'M') { 20 | // we will just modify this time object rather that create a new one constantly 21 | this.get = this.get_complex; 22 | this.date = new Date(0); 23 | } else { 24 | this.get = this.get_simple; 25 | } 26 | } 27 | 28 | Interval.prototype = { 29 | toString: function () { 30 | return this.string; 31 | }, 32 | after: function(current_ms) { 33 | return this.get(current_ms, 1); 34 | }, 35 | before: function (current_ms) { 36 | return this.get(current_ms, -1); 37 | }, 38 | get_complex: function (current, delta) { 39 | this.date.setTime(current); 40 | switch(this.type) { 41 | case 'M': 42 | this.date.setUTCMonth(this.date.getUTCMonth() + delta); 43 | break; 44 | case 'y': 45 | this.date.setUTCFullYear(this.date.getUTCFullYear() + delta); 46 | break; 47 | } 48 | return this.date.getTime(); 49 | }, 50 | get_simple: function (current, delta) { 51 | return current + (delta * this.ms); 52 | } 53 | }; 54 | 55 | return Interval; 56 | 57 | }); -------------------------------------------------------------------------------- /src/app/panels/sparklines/interval.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'kbn' 3 | ], 4 | function (kbn) { 5 | 'use strict'; 6 | 7 | /** 8 | * manages the interval logic 9 | * @param {[type]} interval_string An interval string in the format '1m', '1y', etc 10 | */ 11 | function Interval(interval_string) { 12 | this.string = interval_string; 13 | 14 | var info = kbn.describe_interval(interval_string); 15 | this.type = info.type; 16 | this.ms = Math.ceil(info.sec * 1000 * info.count); 17 | 18 | // does the length of the interval change based on the current time? 19 | if (this.type === 'y' || this.type === 'M') { 20 | // we will just modify this time object rather that create a new one constantly 21 | this.get = this.get_complex; 22 | this.date = new Date(0); 23 | } else { 24 | this.get = this.get_simple; 25 | } 26 | } 27 | 28 | Interval.prototype = { 29 | toString: function () { 30 | return this.string; 31 | }, 32 | after: function(current_ms) { 33 | return this.get(current_ms, 1); 34 | }, 35 | before: function (current_ms) { 36 | return this.get(current_ms, -1); 37 | }, 38 | get_complex: function (current, delta) { 39 | this.date.setTime(current); 40 | switch(this.type) { 41 | case 'M': 42 | this.date.setUTCMonth(this.date.getUTCMonth() + delta); 43 | break; 44 | case 'y': 45 | this.date.setUTCFullYear(this.date.getUTCFullYear() + delta); 46 | break; 47 | } 48 | return this.date.getTime(); 49 | }, 50 | get_simple: function (current, delta) { 51 | return current + (delta * this.ms); 52 | } 53 | }; 54 | 55 | return Interval; 56 | 57 | }); -------------------------------------------------------------------------------- /src/app/panels/multifieldhistogram/interval.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'kbn' 3 | ], 4 | function (kbn) { 5 | 'use strict'; 6 | 7 | /** 8 | * manages the interval logic 9 | * @param {[type]} interval_string An interval string in the format '1m', '1y', etc 10 | */ 11 | function Interval(interval_string) { 12 | this.string = interval_string; 13 | 14 | var info = kbn.describe_interval(interval_string); 15 | this.type = info.type; 16 | this.ms = Math.ceil(info.sec * 1000 * info.count); 17 | 18 | // does the length of the interval change based on the current time? 19 | if (this.type === 'y' || this.type === 'M') { 20 | // we will just modify this time object rather that create a new one constantly 21 | this.get = this.get_complex; 22 | this.date = new Date(0); 23 | } else { 24 | this.get = this.get_simple; 25 | } 26 | } 27 | 28 | Interval.prototype = { 29 | toString: function () { 30 | return this.string; 31 | }, 32 | after: function(current_ms) { 33 | return this.get(current_ms, 1); 34 | }, 35 | before: function (current_ms) { 36 | return this.get(current_ms, -1); 37 | }, 38 | get_complex: function (current, delta) { 39 | this.date.setTime(current); 40 | switch(this.type) { 41 | case 'M': 42 | this.date.setUTCMonth(this.date.getUTCMonth() + delta); 43 | break; 44 | case 'y': 45 | this.date.setUTCFullYear(this.date.getUTCFullYear() + delta); 46 | break; 47 | } 48 | return this.date.getTime(); 49 | }, 50 | get_simple: function (current, delta) { 51 | return current + (delta * this.ms); 52 | } 53 | }; 54 | 55 | return Interval; 56 | 57 | }); -------------------------------------------------------------------------------- /src/app/panels/map/module.html: -------------------------------------------------------------------------------- 1 |
2 | 62 |
63 |
-------------------------------------------------------------------------------- /src/css/jquery.multiselect.css: -------------------------------------------------------------------------------- 1 | .ui-multiselect { padding:2px 5px 2px 4px; text-align:left; margin-bottom: 10px;width: 500px} 2 | .ui-multiselect span.ui-icon { float:right } 3 | .ui-multiselect-single .ui-multiselect-checkboxes input { position:absolute !important; top: auto !important; left:-9999px; } 4 | .ui-multiselect-single .ui-multiselect-checkboxes label { padding:5px !important } 5 | 6 | .ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px } 7 | .ui-multiselect-header ul { font-size:0.9em } 8 | .ui-multiselect-header ul li { float:left; padding:0 10px 0 0 } 9 | .ui-multiselect-header a { text-decoration:none } 10 | .ui-multiselect-header a:hover { text-decoration:underline } 11 | .ui-multiselect-header span.ui-icon { float:left } 12 | .ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0 } 13 | 14 | .ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000; text-align: left } 15 | .ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:auto } 16 | .ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px;color: #262626} 17 | .ui-multiselect-checkboxes label input { position:relative; top:1px } 18 | .ui-multiselect-checkboxes li { clear:both; font-size:0.9em; padding-right:3px } 19 | .ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid } 20 | .ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none } 21 | 22 | /* remove label borders in IE6 because IE6 does not support transparency */ 23 | * html .ui-multiselect-checkboxes label { border:none } 24 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: 8px 35px 8px 14px; 11 | margin-bottom: @baseLineHeight; 12 | text-shadow: 0 1px 0 rgba(255,255,255,.5); 13 | background-color: @warningBackground; 14 | border: 1px solid @warningBorder; 15 | .border-radius(@baseBorderRadius); 16 | } 17 | .alert, 18 | .alert h4 { 19 | // Specified for the h4 to prevent conflicts of changing @headingsColor 20 | color: @warningText; 21 | } 22 | .alert h4 { 23 | margin: 0; 24 | } 25 | 26 | // Adjust close link position 27 | .alert .close { 28 | position: relative; 29 | top: -2px; 30 | right: -21px; 31 | line-height: @baseLineHeight; 32 | } 33 | 34 | 35 | // Alternate styles 36 | // ------------------------- 37 | 38 | .alert-success { 39 | background-color: @successBackground; 40 | border-color: @successBorder; 41 | color: @successText; 42 | } 43 | .alert-success h4 { 44 | color: @successText; 45 | } 46 | .alert-danger, 47 | .alert-error { 48 | background-color: @errorBackground; 49 | border-color: @errorBorder; 50 | color: @errorText; 51 | } 52 | .alert-danger h4, 53 | .alert-error h4 { 54 | color: @errorText; 55 | } 56 | .alert-info { 57 | background-color: @infoBackground; 58 | border-color: @infoBorder; 59 | color: @infoText; 60 | } 61 | .alert-info h4 { 62 | color: @infoText; 63 | } 64 | 65 | 66 | // Block alerts 67 | // ------------------------- 68 | 69 | .alert-block { 70 | padding-top: 14px; 71 | padding-bottom: 14px; 72 | } 73 | .alert-block > p, 74 | .alert-block > ul { 75 | margin-bottom: 0; 76 | } 77 | .alert-block p + p { 78 | margin-top: 5px; 79 | } 80 | -------------------------------------------------------------------------------- /src/app/panels/map/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
Parameters
4 |
5 | 6 | 7 |
8 |
9 | 10 | 11 |
12 |
13 | 14 | 15 |
16 |
17 | 18 | 19 |
20 |
21 | 22 | 23 |
24 |
25 | 26 | 27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /kbnauth/templates/kibana/index.html.ep: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 登录错误日志分析系统 6 | 7 | 8 | 9 | 10 | 11 |
12 | 22 |
23 | 24 | 25 | 47 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/bootstrap.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v2.3.2 3 | * 4 | * Copyright 2013 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world by @mdo and @fat. 9 | */ 10 | 11 | // Core variables and mixins 12 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 13 | @import "mixins.less"; 14 | 15 | // CSS Reset 16 | @import "reset.less"; 17 | 18 | // Grid system and page structure 19 | @import "scaffolding.less"; 20 | @import "grid.less"; 21 | @import "layouts.less"; 22 | 23 | // Base CSS 24 | @import "type.less"; 25 | @import "code.less"; 26 | @import "forms.less"; 27 | @import "tables.less"; 28 | 29 | // Components: common 30 | @import "sprites.less"; 31 | @import "dropdowns.less"; 32 | @import "wells.less"; 33 | @import "component-animations.less"; 34 | @import "close.less"; 35 | 36 | // Components: Buttons & Alerts 37 | @import "buttons.less"; 38 | @import "button-groups.less"; 39 | @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less 40 | 41 | // Components: Nav 42 | @import "navs.less"; 43 | @import "navbar.less"; 44 | @import "breadcrumbs.less"; 45 | @import "pagination.less"; 46 | @import "pager.less"; 47 | 48 | // Components: Popovers 49 | @import "modals.less"; 50 | @import "tooltip.less"; 51 | @import "popovers.less"; 52 | 53 | // Components: Misc 54 | @import "thumbnails.less"; 55 | @import "media.less"; 56 | @import "labels-badges.less"; 57 | @import "progress-bars.less"; 58 | @import "accordion.less"; 59 | @import "carousel.less"; 60 | @import "hero-unit.less"; 61 | 62 | // Utility classes 63 | @import "utilities.less"; // Has to be last to override when necessary 64 | -------------------------------------------------------------------------------- /src/app/panels/column/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Add Panel to Column

4 | 5 | Select Type 6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |

Panels

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
TitleTypeHeightDeleteMoveHide
{{app.title}}{{app.type}}
34 |
35 |
36 |
37 | -------------------------------------------------------------------------------- /src/app/panels/query/meta.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 8 | 9 |
10 |   About the {{dashboard.current.services.query.list[id].type}} query 13 | 14 |
15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 | 23 |
24 |
25 | 26 |
27 | 28 | 29 |
30 | Deactivate 31 | Pin 32 | 33 |
34 |
-------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | If you have a bugfix or new feature that you would like to contribute to Kibana, please **find or open an issue about it before you start working on it.** Talk about what you would like to do. It may be that somebody is already working on it, or that there are particular issues that you should know about before implementing the change. 2 | 3 | We enjoy working with contributors to get their code accepted. There are many approaches to fixing a problem and it is important to find the best approach before writing too much code. 4 | 5 | The process for contributing to any of the Elasticsearch repositories is similar. 6 | 7 | 1. Sign the contributor license agreement 8 | Please make sure you have signed the [Contributor License Agreement](http://www.elasticsearch.org/contributor-agreement/). We are not asking you to assign copyright to us, but to give us the right to distribute your code without restriction. We ask this of all contributors in order to assure our users of the origin and continuing existence of the code. You only need to sign the CLA once. 9 | 10 | 2. Run the grunt build process and ensure it completes without errors with your changes. 11 | 12 | 3. Rebase your changes 13 | Update your local repository with the most recent code from the main Kibana repository, and rebase your branch on top of the latest master branch. We prefer your changes to be squashed into a single commit. 14 | 15 | 4. Submit a pull request 16 | Push your local changes to your forked copy of the repository and submit a pull request. In the pull request, describe what your changes do and mention the number of the issue where discussion has taken place, eg “Closes #123″. 17 | 18 | Then sit back and wait. There will probably be discussion about the pull request and, if any changes are needed, we would love to work with you to get your pull request merged into Kibana. 19 | 20 | -------------------------------------------------------------------------------- /src/app/panels/hits/editor.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 |
7 |
8 | 9 | 10 |
11 |
12 | 13 | 14 |
15 |
16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 |
25 |
26 | 27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/responsive-utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // IE10 Metro responsive 7 | // Required for Windows 8 Metro split-screen snapping with IE10 8 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ 9 | @-ms-viewport{ 10 | width: device-width; 11 | } 12 | 13 | // Hide from screenreaders and browsers 14 | // Credit: HTML5 Boilerplate 15 | .hidden { 16 | display: none; 17 | visibility: hidden; 18 | } 19 | 20 | // Visibility utilities 21 | 22 | // For desktops 23 | .visible-phone { display: none !important; } 24 | .visible-tablet { display: none !important; } 25 | .hidden-phone { } 26 | .hidden-tablet { } 27 | .hidden-desktop { display: none !important; } 28 | .visible-desktop { display: inherit !important; } 29 | 30 | // Tablets & small desktops only 31 | @media (min-width: 768px) and (max-width: 979px) { 32 | // Hide everything else 33 | .hidden-desktop { display: inherit !important; } 34 | .visible-desktop { display: none !important ; } 35 | // Show 36 | .visible-tablet { display: inherit !important; } 37 | // Hide 38 | .hidden-tablet { display: none !important; } 39 | } 40 | 41 | // Phones only 42 | @media (max-width: 767px) { 43 | // Hide everything else 44 | .hidden-desktop { display: inherit !important; } 45 | .visible-desktop { display: none !important; } 46 | // Show 47 | .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior 48 | // Hide 49 | .hidden-phone { display: none !important; } 50 | } 51 | 52 | // Print utilities 53 | .visible-print { display: none !important; } 54 | .hidden-print { } 55 | 56 | @media print { 57 | .visible-print { display: inherit !important; } 58 | .hidden-print { display: none !important; } 59 | } 60 | -------------------------------------------------------------------------------- /src/app/panels/query/help/lucene.html: -------------------------------------------------------------------------------- 1 | The lucene query type uses LUCENE query string syntax to find matching documents or events within Elasticsearch. 2 | 3 |

Examples

4 | 15 | 16 |

Wildcard searches can be run on individual terms, using ? to replace 17 | a single character, and * to replace zero or more characters:

18 |
qu?ck bro*
19 | 20 | 31 | -------------------------------------------------------------------------------- /src/app/factories/store.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'lodash' 4 | ], 5 | function (angular, _) { 6 | 'use strict'; 7 | 8 | var module = angular.module('kibana.factories'); 9 | module.factory('storeFactory', function() { 10 | 11 | return function storeFactory($scope, name, defaults) { 12 | if (!_.isFunction($scope.$watch)) { 13 | throw new TypeError('Invalid scope.'); 14 | } 15 | if (!_.isString(name)) { 16 | throw new TypeError('Invalid name, expected a string that the is unique to this store.'); 17 | } 18 | if (defaults && !_.isPlainObject(defaults)) { 19 | throw new TypeError('Invalid defaults, expected a simple object or nothing'); 20 | } 21 | 22 | defaults = defaults || {}; 23 | 24 | // get the current value, parse if it exists 25 | var current = localStorage.getItem(name); 26 | if (current != null) { 27 | try { 28 | current = JSON.parse(current); 29 | } catch (e) { 30 | current = null; 31 | } 32 | } 33 | 34 | if (current == null) { 35 | current = _.clone(defaults); 36 | } else if (_.isPlainObject(current)) { 37 | _.defaults(current, defaults); 38 | } else { 39 | throw new TypeError('Invalid store value' + current); 40 | } 41 | 42 | $scope[name] = current; 43 | 44 | // listen for changes and store them in localStorage. 45 | // delete the value to reset to the defaults, ie. `delete $scope[name]` -> digest cycle -> `$scope[name] == defaults` 46 | $scope.$watch(name, function (val) { 47 | if (val === void 0) { 48 | localStorage.removeItem(name); 49 | $scope[name] = _.clone(defaults); 50 | } else { 51 | localStorage.setItem(name, JSON.stringify(val)); 52 | } 53 | }, true); 54 | 55 | return current; 56 | }; 57 | }); 58 | 59 | }); 60 | -------------------------------------------------------------------------------- /docs/kibana/panels/table.asciidoc: -------------------------------------------------------------------------------- 1 | 2 | == table 3 | Status: *Stable* 4 | 5 | The table panel contains a sortable, pagable view of documents that. It can be arranged into 6 | defined columns and offers several interactions, such as performing adhoc terms aggregations. 7 | 8 | === Parameters 9 | 10 | size:: The number of hits to show per page 11 | pages:: The number of pages available 12 | offset:: The current page 13 | sort:: An array describing the sort order of the table. For example [`@timestamp',`desc'] 14 | overflow:: The css overflow property. `min-height' (expand) or `auto' (scroll) 15 | fields:: the fields used a columns of the table, in an array. 16 | highlight:: The fields on which to highlight, in an array 17 | sortable:: Set sortable to false to disable sorting 18 | header:: Set to false to hide the table column names 19 | paging:: Set to false to hide the paging controls of the table 20 | field_list:: Set to false to hide the list of fields. The user will be able to expand it, 21 | but it will be hidden by default 22 | all_fields:: Set to true to show all fields in the mapping, not just the current fields in 23 | the table. 24 | trimFactor:: The trim factor is the length at which to truncate fields takinging into 25 | consideration the number of columns in the table. For example, a trimFactor of 100, with 5 26 | columns in the table, would trim each column at 20 character. The entirety of the field is 27 | still available in the expanded view of the event. 28 | localTime:: Set to true to adjust the timeField to the browser's local time 29 | timeField:: If localTime is set to true, this field will be adjusted to the browsers local time 30 | spyable:: Set to false to disable the inspect icon 31 | 32 | ==== Queries 33 | queries object:: This object describes the queries to use on this panel. 34 | queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+ 35 | queries.ids::: In +selected+ mode, which query ids are selected. 36 | -------------------------------------------------------------------------------- /src/app/panels/stats/module.html: -------------------------------------------------------------------------------- 1 |
2 | 13 | 14 |

{{data.value|formatstats:panel.format}} {{panel.unit}} ({{panel.mode}})

15 | 16 | 17 | 18 | 19 | 20 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
{{panel.label_name}} 21 | 24 | {{stat}} 25 | 26 |
{{item.label}}{{item.value[stat]|formatstats:panel.format}} {{panel.unit}}
37 |
38 | -------------------------------------------------------------------------------- /src/app/panels/percentiles/module.html: -------------------------------------------------------------------------------- 1 |
2 | 13 | 14 |

{{data.value|formatstats:panel.format}} {{panel.unit}} ({{panel.mode}})

15 | 16 | 17 | 18 | 19 | 20 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
{{panel.label_name}} 21 | 24 | {{stat}}% 25 | 26 |
{{item.label}}{{item.value[stat]|formatstats:panel.format}} {{panel.unit}}
37 |
38 | -------------------------------------------------------------------------------- /src/app/services/panelMove.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'angular', 3 | 'lodash' 4 | ], 5 | function (angular, _) { 6 | 'use strict'; 7 | 8 | var module = angular.module('kibana.services'); 9 | 10 | module.service('panelMove', function(dashboard, $rootScope) { 11 | 12 | /* each of these can take event,ui,data parameters */ 13 | 14 | this.onStart = function() { 15 | dashboard.panelDragging = true; 16 | $rootScope.$apply(); 17 | }; 18 | 19 | this.onOver = function() { 20 | $rootScope.$apply(); 21 | }; 22 | 23 | this.onOut = function() { 24 | $rootScope.$apply(); 25 | }; 26 | 27 | /* 28 | Use our own drop logic. the $parent.$parent this is ugly. 29 | */ 30 | this.onDrop = function(event,ui,data) { 31 | var 32 | dragRow = data.draggableScope.$parent.$parent.row.panels, 33 | dropRow = data.droppableScope.$parent.$parent.row.panels, 34 | dragIndex = data.dragSettings.index, 35 | dropIndex = data.dropSettings.index; 36 | 37 | // Remove panel from source row if the model we were passed is not a panel 38 | if(!data.dragSettings.embedded) { 39 | dragRow.splice(dragIndex,1); 40 | } 41 | 42 | // Add to destination row 43 | if(!_.isUndefined(dropRow)) { 44 | dropRow.splice(dropIndex,0,angular.fromJson(angular.toJson(data.dragItem))); 45 | } 46 | 47 | dashboard.panelDragging = false; 48 | // Cleanup nulls/undefined left behind 49 | cleanup(); 50 | $rootScope.$apply(); 51 | $rootScope.$broadcast('render'); 52 | }; 53 | 54 | this.onStop = function() { 55 | dashboard.panelDragging = false; 56 | cleanup(); 57 | $rootScope.$apply(); 58 | }; 59 | 60 | var cleanup = function () { 61 | _.each(dashboard.current.rows, function(row) { 62 | row.panels = _.without(row.panels,{}); 63 | row.panels = _.compact(row.panels); 64 | }); 65 | }; 66 | 67 | }); 68 | 69 | }); -------------------------------------------------------------------------------- /src/vendor/bootstrap/less/tooltip.less: -------------------------------------------------------------------------------- 1 | // 2 | // Tooltips 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .tooltip { 8 | position: absolute; 9 | z-index: @zindexTooltip; 10 | display: block; 11 | visibility: visible; 12 | font-size: 11px; 13 | line-height: 1.4; 14 | .opacity(0); 15 | &.in { .opacity(80); } 16 | &.top { margin-top: -3px; padding: 5px 0; } 17 | &.right { margin-left: 3px; padding: 0 5px; } 18 | &.bottom { margin-top: 3px; padding: 5px 0; } 19 | &.left { margin-left: -3px; padding: 0 5px; } 20 | } 21 | 22 | // Wrapper for the tooltip content 23 | .tooltip-inner { 24 | max-width: 200px; 25 | padding: 8px; 26 | color: @tooltipColor; 27 | text-align: center; 28 | text-decoration: none; 29 | background-color: @tooltipBackground; 30 | .border-radius(@baseBorderRadius); 31 | } 32 | 33 | // Arrows 34 | .tooltip-arrow { 35 | position: absolute; 36 | width: 0; 37 | height: 0; 38 | border-color: transparent; 39 | border-style: solid; 40 | } 41 | .tooltip { 42 | &.top .tooltip-arrow { 43 | bottom: 1px; 44 | left: 50%; 45 | margin-left: -@tooltipArrowWidth; 46 | border-width: @tooltipArrowWidth @tooltipArrowWidth 0; 47 | border-top-color: @tooltipArrowColor; 48 | } 49 | &.right .tooltip-arrow { 50 | top: 50%; 51 | left: 1px; 52 | margin-top: -@tooltipArrowWidth; 53 | border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0; 54 | border-right-color: @tooltipArrowColor; 55 | } 56 | &.left .tooltip-arrow { 57 | top: 50%; 58 | right: 1px; 59 | margin-top: -@tooltipArrowWidth; 60 | border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth; 61 | border-left-color: @tooltipArrowColor; 62 | } 63 | &.bottom .tooltip-arrow { 64 | top: 1px; 65 | left: 50%; 66 | margin-left: -@tooltipArrowWidth; 67 | border-width: 0 @tooltipArrowWidth @tooltipArrowWidth; 68 | border-bottom-color: @tooltipArrowColor; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /sample/nginx.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Nginx proxy for Elasticsearch + Kibana 3 | # 4 | # In this setup, we are password protecting the saving of dashboards. You may 5 | # wish to extend the password protection to all paths. 6 | # 7 | # Even though these paths are being called as the result of an ajax request, the 8 | # browser will prompt for a username/password on the first request 9 | # 10 | # If you use this, you'll want to point config.js at http://FQDN:80/ instead of 11 | # http://FQDN:9200 12 | # 13 | server { 14 | listen *:80 ; 15 | 16 | server_name kibana.myhost.org; 17 | access_log /var/log/nginx/kibana.myhost.org.access.log; 18 | 19 | location / { 20 | root /usr/share/kibana3; 21 | index index.html index.htm; 22 | } 23 | 24 | location ~ ^/_aliases$ { 25 | proxy_pass http://127.0.0.1:9200; 26 | proxy_read_timeout 90; 27 | } 28 | location ~ ^/.*/_aliases$ { 29 | proxy_pass http://127.0.0.1:9200; 30 | proxy_read_timeout 90; 31 | } 32 | location ~ ^/_nodes$ { 33 | proxy_pass http://127.0.0.1:9200; 34 | proxy_read_timeout 90; 35 | } 36 | location ~ ^/.*/_search$ { 37 | proxy_pass http://127.0.0.1:9200; 38 | proxy_read_timeout 90; 39 | } 40 | location ~ ^/.*/_mapping { 41 | proxy_pass http://127.0.0.1:9200; 42 | proxy_read_timeout 90; 43 | } 44 | 45 | # Password protected end points 46 | location ~ ^/kibana-int/dashboard/.*$ { 47 | proxy_pass http://127.0.0.1:9200; 48 | proxy_read_timeout 90; 49 | limit_except GET { 50 | proxy_pass http://127.0.0.1:9200; 51 | auth_basic "Restricted"; 52 | auth_basic_user_file /etc/nginx/conf.d/kibana.myhost.org.htpasswd; 53 | } 54 | } 55 | location ~ ^/kibana-int/temp.*$ { 56 | proxy_pass http://127.0.0.1:9200; 57 | proxy_read_timeout 90; 58 | limit_except GET { 59 | proxy_pass http://127.0.0.1:9200; 60 | auth_basic "Restricted"; 61 | auth_basic_user_file /etc/nginx/conf.d/kibana.myhost.org.htpasswd; 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/vendor/LICENSE.json: -------------------------------------------------------------------------------- 1 | { 2 | "angular": { 3 | "version":"1.1.5", 4 | "license":"MIT" 5 | }, 6 | "angular-dragdrop": { 7 | "version":"1.0.4", 8 | "license":"MIT" 9 | }, 10 | "angular-strap": { 11 | "version":"0.7.5", 12 | "license":"MIT" 13 | }, 14 | "bindonce": { 15 | "version":"0.2.1", 16 | "license":"MIT" 17 | }, 18 | "datepicker": { 19 | "version":"12/3/2013", 20 | "license":"Apache 2.0" 21 | }, 22 | "timepicker": { 23 | "version":"0.2.6", 24 | "license":"MIT" 25 | }, 26 | "bootstrap": { 27 | "version":"2.3.2", 28 | "license":"Apache 2.0" 29 | }, 30 | "elasticjs": { 31 | "version":"1.1.1", 32 | "license":"MIT" 33 | }, 34 | "jquery": { 35 | "version":"1.8.0", 36 | "license":"MIT" 37 | }, 38 | "jquery-ui": { 39 | "version":"1.10.3", 40 | "license":"MIT" 41 | }, 42 | "jsonpath": { 43 | "version":"0.8.0", 44 | "license":"MIT" 45 | }, 46 | "flot": { 47 | "version":"0.8.1", 48 | "license":"MIT" 49 | }, 50 | "require": { 51 | "version":"2.1.8", 52 | "license":"MIT" 53 | }, 54 | "chromath": { 55 | "version":"0.0.5", 56 | "license":"MIT" 57 | }, 58 | "blob": { 59 | "version":"2013-06-20", 60 | "license":"MIT" 61 | }, 62 | "filesaver": { 63 | "version":"2013-01-23", 64 | "license":"MIT" 65 | }, 66 | "modernizr": { 67 | "version":"2.6.1", 68 | "license":"MIT" 69 | }, 70 | "moment": { 71 | "version":"2.1.0", 72 | "license":"MIT" 73 | }, 74 | "numeral": { 75 | "version":"1.5.2", 76 | "license":"MIT" 77 | }, 78 | "timezone": { 79 | "version":"2010", 80 | "license":"Apache 2" 81 | }, 82 | "lodash": { 83 | "version":"2.4.1", 84 | "license":"https://github.com/lodash/lodash/blob/2.4.1/LICENSE.txt" 85 | }, 86 | "leaflet": { 87 | "version":"0.6", 88 | "license":"https://github.com/Leaflet/Leaflet/blob/v0.6/LICENSE" 89 | }, 90 | "jvectormap": { 91 | "version":"1.2.2", 92 | "license":"MIT" 93 | } 94 | } 95 | --------------------------------------------------------------------------------