Skip to content
Snippets Groups Projects
  • Kyle Doherty's avatar
    a5f12a5a
    Merge master fixes into release-0.31 (#8899) · a5f12a5a
    Kyle Doherty authored
    * Default wrapper  padding left & right
    
    For show cards padding on mobile view
    
    * restructure visualization settings markup to fix label wrapping (#8816)
    
    * Change query result hashing to convert integers to floats first
    
    When the FE returns the query result metadata, any integer values will
    be converted to a floating point number. Those doubles hash different
    than the original integers which causes the hashes not to match and
    the query to be reran when saving the question. This commit just
    converts the integer to a double before computing the hash.
    
    Fixes #8824
    
    * Ensure queries to compute metadata include user information
    
    When saving a question and the included metadata is incorrect or
    different we will execute another query to compute that metadata. This
    commit adds the `:info` map needed to include the user and query hash
    information we use in the SQL remark.
    
    Fixes #8825
    
    * Metastore code SHOULD NOT barf it API response includes unrecognized keys
    
    * Fix minification
    
    * Update copyright year (#8711)
    
    * Update copyright year
    
    * 2018 year
    
    * Could the admin nav bar use a little color? (#8819)
    
    * purple admin nav bar
    
    * decouple admin navbar color from accent7
    
    * filter out hidden tables in table entity (#8831)
    
    * Dropped tables should appear in a schema's data browse page
    
    When the database had only a single schema, the dropped tables were
    being hidden correctly. When multiple schemas were present, viewing
    those tables their the schema route caused the inactive tables to
    appear in the result.
    
    Fixes #8822 fixes #8363
    
    * Ensure consistent ordering of maps/sets when hashing metadata
    
    This commit will ensure all hashes and sets are ordered before
    serializing them to JSON and hashing that string. This will prevent
    surprising behavior when the number of items in a map reach 9 or if
    the order of elements changes between machines or JDK versions.
    
    Fixes #8826
    
    * Far-future cache header for JS/CSS files with cache-busting query strings
    
    * Fix import on TableSettings page (#8829)
    
    * fix import
    
    * clean up nav
    
    * Fix test checksum test failure on MySQL [ci drivers]
    
    The newly added checksum tests fail when running on MySQL in
    Circle. The MySQL tests include a secret key for encryption which are
    used when computing the checksum. Because of that encryption, the
    checksum string is different every time (it must be decrypted before
    compared). The test isn't covering the encryption code but is only
    concerned with ensure the datastructure hashes consitently. This
    commit uses a `with-redefs` to set that secret key to `nil` so that
    encryption won't be used on those two tests.
    
    * Add better error messages to loading GeoJSON files
    
    Previously the only error message was a schema validation failure. The
    same error would be given for an unreachable host, unparsable JSON,
    bad URL etc. This commit attempts to separate that out and provide a
    better message in the failure case.
    
    Fixes #8793
    
    * Only include a CSV attachment for pulses when XLS is not selected
    
    Previously we would always include a CSV attachment when there were
    more rows/columns than would be included in the table. This ended up
    being redundant for users that would prefer an XLS attachment and have
    indicated that the pulse should include an XLS attachment. This commit
    will only not attach a CSV if the user has select an XLS attachment
    for that pulse.
    
    Fixes #7302
    
    * Add a C3P0 exclusion to Quartzite [ci drivers]
    
    * Merge release 0.31.0 into master (#8858)
    
    * Dash card display fixes (#8777)
    
    * fix scalar long title ellipsification and description
    
    * fix table simple in night mode
    
    * check for description
    
    * v0.31.0-RC1
    
    * add scroll to outer container for database / schema selector (#8782)
    
    add scroll to outer container for database / schema selector
    
    * Fix minification
    
    * Far-future cache header for JS/CSS files with cache-busting query strings
    
    * Add Snowflake to list of supported databases in dox [ci skip]
    
    * scroll table selector (#8857)
    
    * Use compressed bytes for caching size comparison
    
    Previously we would serialize rows as strings and use that as an
    estimate for how big the cache would be. This commit changes that to
    use actual compressed bytes to determine size.
    
    * Switch to a stream based cache serialization/compression
    
    This commit switches to a stream based nippy
    compression/serialization. This has the benefit of being able to stop
    serialization once the threshold for cache size has been reached.
    
    Fixes #7479
    
    * Bump the `java.classpath` and `tools.namespace` versions
    
    Bumping `java.classpath` to `0.3.0` fixes the `classpath` function on
    JDK 9+.
    
    * Don't strip insights from response in public links
    
    * update tests
    
    * Bump Jetty server version
    
    * Better-organized HTTP client used for tests and add full-response option.
    
    * Use middleware impl for test util fn bind-current-user
    
    * Add some i18n tags and wrap in str where missing
    
    * Namespace form & indentation cleanup; docstring improvments
    
    * Remove dead code in tests :skull:
    
    * MBQL schema tweaks; make SQL QP nested-query-level available to public
    
    * Ignore results_metadata in revision tests
    
    * Add test for updating permissions graph from API :white_check_mark:
    
    * Add u/hexadecimal-string? util fn
    
    * Add query-perms/can-run-query? helper fn :closed_lock_with_key:
    
    * Record database_id in QueryExecution; record query in Query :page_with_curl:
    
    * Add a few util fns; other minor code tweaks
    
    * Change query perms-set fn to take kwargs for opts :white_check_mark:
    
    * Support backslashes in DB/schema/table names for permissions checks
    
    * Bump docstring checker -> 1.0.3
    
    * Fix bug where Snowflake driver used wrong DB name to filter tables [ci snowflake]
    
    * Add new bird-count dataset; fix division by zero in MBQL expressions
    
    * Add test profiling info & don't suppress dataset load output [ci drivers]
    
    * Remove unused default-schema; share Presto catalog for all test data [ci drivers]
    
    * Add format-name for SparkSQL test extensions [ci drivers]
    
    * Fix presto tests :wrench: [ci presto]
    
    * handle smaller smart scalar cards better (#8897)
    
    * handle smaller cards better
    
    * handle automatic dashboard sidebar case
    
    * make more specific
    
    * Fix presto test [ci presto] (#8900)
    Merge master fixes into release-0.31 (#8899)
    Kyle Doherty authored
    * Default wrapper  padding left & right
    
    For show cards padding on mobile view
    
    * restructure visualization settings markup to fix label wrapping (#8816)
    
    * Change query result hashing to convert integers to floats first
    
    When the FE returns the query result metadata, any integer values will
    be converted to a floating point number. Those doubles hash different
    than the original integers which causes the hashes not to match and
    the query to be reran when saving the question. This commit just
    converts the integer to a double before computing the hash.
    
    Fixes #8824
    
    * Ensure queries to compute metadata include user information
    
    When saving a question and the included metadata is incorrect or
    different we will execute another query to compute that metadata. This
    commit adds the `:info` map needed to include the user and query hash
    information we use in the SQL remark.
    
    Fixes #8825
    
    * Metastore code SHOULD NOT barf it API response includes unrecognized keys
    
    * Fix minification
    
    * Update copyright year (#8711)
    
    * Update copyright year
    
    * 2018 year
    
    * Could the admin nav bar use a little color? (#8819)
    
    * purple admin nav bar
    
    * decouple admin navbar color from accent7
    
    * filter out hidden tables in table entity (#8831)
    
    * Dropped tables should appear in a schema's data browse page
    
    When the database had only a single schema, the dropped tables were
    being hidden correctly. When multiple schemas were present, viewing
    those tables their the schema route caused the inactive tables to
    appear in the result.
    
    Fixes #8822 fixes #8363
    
    * Ensure consistent ordering of maps/sets when hashing metadata
    
    This commit will ensure all hashes and sets are ordered before
    serializing them to JSON and hashing that string. This will prevent
    surprising behavior when the number of items in a map reach 9 or if
    the order of elements changes between machines or JDK versions.
    
    Fixes #8826
    
    * Far-future cache header for JS/CSS files with cache-busting query strings
    
    * Fix import on TableSettings page (#8829)
    
    * fix import
    
    * clean up nav
    
    * Fix test checksum test failure on MySQL [ci drivers]
    
    The newly added checksum tests fail when running on MySQL in
    Circle. The MySQL tests include a secret key for encryption which are
    used when computing the checksum. Because of that encryption, the
    checksum string is different every time (it must be decrypted before
    compared). The test isn't covering the encryption code but is only
    concerned with ensure the datastructure hashes consitently. This
    commit uses a `with-redefs` to set that secret key to `nil` so that
    encryption won't be used on those two tests.
    
    * Add better error messages to loading GeoJSON files
    
    Previously the only error message was a schema validation failure. The
    same error would be given for an unreachable host, unparsable JSON,
    bad URL etc. This commit attempts to separate that out and provide a
    better message in the failure case.
    
    Fixes #8793
    
    * Only include a CSV attachment for pulses when XLS is not selected
    
    Previously we would always include a CSV attachment when there were
    more rows/columns than would be included in the table. This ended up
    being redundant for users that would prefer an XLS attachment and have
    indicated that the pulse should include an XLS attachment. This commit
    will only not attach a CSV if the user has select an XLS attachment
    for that pulse.
    
    Fixes #7302
    
    * Add a C3P0 exclusion to Quartzite [ci drivers]
    
    * Merge release 0.31.0 into master (#8858)
    
    * Dash card display fixes (#8777)
    
    * fix scalar long title ellipsification and description
    
    * fix table simple in night mode
    
    * check for description
    
    * v0.31.0-RC1
    
    * add scroll to outer container for database / schema selector (#8782)
    
    add scroll to outer container for database / schema selector
    
    * Fix minification
    
    * Far-future cache header for JS/CSS files with cache-busting query strings
    
    * Add Snowflake to list of supported databases in dox [ci skip]
    
    * scroll table selector (#8857)
    
    * Use compressed bytes for caching size comparison
    
    Previously we would serialize rows as strings and use that as an
    estimate for how big the cache would be. This commit changes that to
    use actual compressed bytes to determine size.
    
    * Switch to a stream based cache serialization/compression
    
    This commit switches to a stream based nippy
    compression/serialization. This has the benefit of being able to stop
    serialization once the threshold for cache size has been reached.
    
    Fixes #7479
    
    * Bump the `java.classpath` and `tools.namespace` versions
    
    Bumping `java.classpath` to `0.3.0` fixes the `classpath` function on
    JDK 9+.
    
    * Don't strip insights from response in public links
    
    * update tests
    
    * Bump Jetty server version
    
    * Better-organized HTTP client used for tests and add full-response option.
    
    * Use middleware impl for test util fn bind-current-user
    
    * Add some i18n tags and wrap in str where missing
    
    * Namespace form & indentation cleanup; docstring improvments
    
    * Remove dead code in tests :skull:
    
    * MBQL schema tweaks; make SQL QP nested-query-level available to public
    
    * Ignore results_metadata in revision tests
    
    * Add test for updating permissions graph from API :white_check_mark:
    
    * Add u/hexadecimal-string? util fn
    
    * Add query-perms/can-run-query? helper fn :closed_lock_with_key:
    
    * Record database_id in QueryExecution; record query in Query :page_with_curl:
    
    * Add a few util fns; other minor code tweaks
    
    * Change query perms-set fn to take kwargs for opts :white_check_mark:
    
    * Support backslashes in DB/schema/table names for permissions checks
    
    * Bump docstring checker -> 1.0.3
    
    * Fix bug where Snowflake driver used wrong DB name to filter tables [ci snowflake]
    
    * Add new bird-count dataset; fix division by zero in MBQL expressions
    
    * Add test profiling info & don't suppress dataset load output [ci drivers]
    
    * Remove unused default-schema; share Presto catalog for all test data [ci drivers]
    
    * Add format-name for SparkSQL test extensions [ci drivers]
    
    * Fix presto tests :wrench: [ci presto]
    
    * handle smaller smart scalar cards better (#8897)
    
    * handle smaller cards better
    
    * handle automatic dashboard sidebar case
    
    * make more specific
    
    * Fix presto test [ci presto] (#8900)
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

Metabase

Metabase is the easy, open source way for everyone in your company to ask questions and learn from data.

Metabase Product Screenshot

Latest Release GitHub license Circle CI Gitter chat

Features

  • 5 minute setup (We're not kidding)
  • Let anyone on your team ask questions without knowing SQL
  • Rich beautiful dashboards with auto refresh and fullscreen
  • SQL Mode for analysts and data pros
  • Create canonical segments and metrics for your team to use
  • Send data to Slack or email on a schedule with Pulses
  • View data in Slack anytime with MetaBot
  • Humanize data for your team by renaming, annotating and hiding fields

For more information check out metabase.com

Supported databases

  • Postgres
  • MySQL
  • Druid
  • SQL Server
  • Redshift
  • MongoDB
  • Google BigQuery
  • SQLite
  • H2
  • CrateDB
  • Oracle
  • Vertica
  • Presto
  • Snowflake

Don't see your favorite database? File an issue to let us know.

Installation

Metabase can be run just about anywhere so checkout our Installation Guides for detailed instructions for various deployments. Here's the TLDR:

Docker

To run Metabase via Docker, just type

docker run -d -p 3000:3000 --name metabase metabase/metabase

JVM Jar

To run the jar you will need to have a Java Runtime installed. As a quick check to see if you system already has one, try

java -version

If you see something like

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

you are good to go. Otherwise, download the Java Runtime Environment at http://java.com/

Go to the Metabase Download Page and download the current build. Place the downloaded jar into a newly created directory (as it will create some files when it is run), and run it on the command line:

java -jar metabase.jar

Now, open a browser and go to http://localhost:3000 , and you will be asked a set of questions that will set up a user account, and then you can add a database connection. For this to work you will need to get some information about which database you want to connect to, such as the Host Name and Port that it is running on, the Database Name and the User and Password that you will be using.

Once you have added this connection, you will be taken into the app and you'll be ready to ask your first question.

For a more detailed walkthrough, check out our Getting Started guide.

Frequently Asked Questions

Some questions come up over and over again. Check here first: FAQ

Security Disclosure

Security is very important to us. If you discover any issue regarding security, please disclose the information responsibly by sending an email to security@metabase.com and not by creating a GitHub issue.

Contributing

To get started with a development installation of the Metabase, follow the instructions at our Developers Guide.

Then take a look at our Contribution Guide for information about our process and where you can fit in!

Talk to other contributors in our Gitter room.

Internationalization

We want Metabase to be avaliable in as many languages as possible. See what translations are avaliable and help contribute to internationalization using our project over at POEditor

Extending and Deep Integrations

Metabase also allows you to hit our Query API directly from Javascript to integrate the simple analytics we provide with your own application or third party services to do things like:

  • Build moderation interfaces
  • Export subsets of your users to third party marketing automation software
  • Provide a specialized customer lookup application for the people in your company

Danger zone

The button below will deploy the branch where this README.md lives onto Heroku. Metabase developers use it to deploy branches of Metabase to test our PRs, etc. We DO NOT recommend you using this for production. Instead, please use a stable build.

Deploy

License

Unless otherwise noted, all Metabase source files are made available under the terms of the GNU Affero General Public License (AGPL).

See LICENSE.txt for details and exceptions.

Unless otherwise noted, all files © 2018 Metabase, Inc.