Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _docs/v0.57/configuring-metabase/environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -1638,7 +1638,7 @@ Used for encrypting and checking whether SDK requests are signed.
- Default: `null`

When using the appdb engine against postgresql, override the language used for stemming in to_tsvector.
Value must be a valid configured langauge option in your database such as 'english' or 'simple'.
Value must be a valid configured language option in your database such as 'english' or 'simple'.

### `MB_SEARCH_TYPEAHEAD_ENABLED`

Expand Down
2 changes: 1 addition & 1 deletion _docs/v0.57/configuring-metabase/localization.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,4 @@ This setting doesn't affect [SQL queries](../questions/native-editor/writing-sql

## Localizing embedded Metabase

You can tranlate both Metabase UI elements (like button labels) and content (like dashboard names) in static embeds. See [Setting the language for static embeds](../embedding/static-embedding-parameters#setting-the-language-for-a-static-embed) and [Translating embedded dashboards and questions](../embedding/translations).
You can translate both Metabase UI elements (like button labels) and content (like dashboard names) in static embeds. See [Setting the language for static embeds](../embedding/static-embedding-parameters#setting-the-language-for-a-static-embed) and [Translating embedded dashboards and questions](../embedding/translations).
2 changes: 1 addition & 1 deletion _docs/v0.57/data-modeling/json-unfolding.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ If performance degrades, or you'd rather keep the JSON contained in the original
4. Select the database that contains the field you want to update.
5. Select the table that contains the field.
6. Select the field containing the original JSON
7. In the **Behavior** section, locate the **Unfold JSON** option and select **Yes** or **No**. If the column was unfolded, Metabase will have hidden this JSON columnn from view, so if you want the JSON column to be visible again, you'll need to change the column's visibility to **Everywhere**.
7. In the **Behavior** section, locate the **Unfold JSON** option and select **Yes** or **No**. If the column was unfolded, Metabase will have hidden this JSON column from view, so if you want the JSON column to be visible again, you'll need to change the column's visibility to **Everywhere**.
8. Scroll to the top and click the **Filter values** button and select **Re-scan this field**.

![Unfolded JSON setting](./images/unfold-json-setting.png)
Expand Down
2 changes: 1 addition & 1 deletion _docs/v0.57/databases/ssl-certificates.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ You'll add an ampersand (`&`) to separate each parameter. For example, In the **
sslmode=verify-full&sslrootcert=/path/to/certificate.pem
```

Replace `/path/to/certifcate.pem` with the full path for the certificate you downloaded from your provider.
Replace `/path/to/certificate.pem` with the full path for the certificate you downloaded from your provider.

You can learn more about [SSL support for PostgreSQL](https://www.postgresql.org/docs/current/libpq-ssl.html).

Expand Down
2 changes: 1 addition & 1 deletion _docs/v0.57/databases/users-roles-privileges.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ GRANT analytics TO metabase;
-- GRANT SELECT ON "your_table" IN SCHEMA "your_schema" TO analytics;
```

Depending on how you use Metabase, you can also additonally grant:
Depending on how you use Metabase, you can also additionally grant:

- `TEMPORARY` privileges to create temp tables.
- `EXECUTE` privileges to use stored procedures or user-defined functions.
Expand Down
2 changes: 1 addition & 1 deletion _docs/v0.57/developers-guide/api-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ layout: new-docs
- `POST /api/user/:id/send_invite` has been removed.
- `GET /:id/fields` now includes the Table ID.

- APIs under `/api/pulse` and `/api/alert` will be removed in a future version as we're tranitioning to a new architecture.
- APIs under `/api/pulse` and `/api/alert` will be removed in a future version as we're transitioning to a new architecture.

## Metabase 0.51.0

Expand Down
2 changes: 1 addition & 1 deletion _docs/v0.57/developers-guide/devenv.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ several properties that can be set as environment variables or in a `deps.edn`.
"-Dmb.db.pass="]}}}
```

You could also pass a full conection string in as the `mb.db.connection.uri`:
You could also pass a full connection string in as the `mb.db.connection.uri`:

```
"-Dmb.db.connection.uri=postgres://<user>:<password>@localhost:5432/<dbname>"
Expand Down
12 changes: 6 additions & 6 deletions _docs/v0.57/developers-guide/driver-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,13 +164,13 @@ layout: new-docs

## Metabase 0.54.11

- The multimethods `metabase.driver.sql-jdbc.sync.interface/active-tables` and `metabase.driver.sql-jdbc.sync.interface/filtered-syncable-schemas`, aswell as the functions
- The multimethods `metabase.driver.sql-jdbc.sync.interface/active-tables` and `metabase.driver.sql-jdbc.sync.interface/filtered-syncable-schemas`, as well as the functions
`metabase.driver.sql-jdbc.sync.describe_database/fast-active-tables`, `metabase.driver.sql-jdbc.sync.describe_database/have-select-privilege-fn` and `metabase.driver.sql-jdbc.sync.describe_database/db-tables` now take a database spec instead of a `java.sql.Connection` object.

## Metabase 0.54.10

- Add `metabase.driver/table-known-to-not-exist?` for drivers to test if an exception is due to a query on a table that no longer exists
- Add `metabase.driver.sql-jdbc/impl-table-known-to-not-exist?` for JDBC drivers. This is the implemenation of table-known-to-not-exist for jdbc and allows testing directly against `java.sql.SQLException` throwables without worrying about the exception cause chain.
- Add `metabase.driver.sql-jdbc/impl-table-known-to-not-exist?` for JDBC drivers. This is the implementation of table-known-to-not-exist for jdbc and allows testing directly against `java.sql.SQLException` throwables without worrying about the exception cause chain.

## Metabase 0.54.0

Expand Down Expand Up @@ -202,7 +202,7 @@ layout: new-docs
## Metabase 0.53.12

- Add `metabase.driver/query-canceled?` for drivers to test if an exception is due to a query being canceled due to user action
- Add `metabase.driver.sql-jdbc/impl-query-canceled?` for JDBC drivers. This is the implemenation of query-canceled for jdbc and allows testing directly against `java.sql.SQLException` throwables without worrying about the exception cause chain.
- Add `metabase.driver.sql-jdbc/impl-query-canceled?` for JDBC drivers. This is the implementation of query-canceled for jdbc and allows testing directly against `java.sql.SQLException` throwables without worrying about the exception cause chain.

## Metabase 0.53.10

Expand Down Expand Up @@ -648,7 +648,7 @@ layout: new-docs
to be assigned to specific database roles which are set before any queries are executed, so that access to tables can
be restricted at the database level instead of (or in conjunction with) Metabase's built-in permissions system.

- The multimethod `metabase.driver.sql-jdbc.sync.describe-table/get-table-pks` is changed to return a vector instea
- The multimethod `metabase.driver.sql-jdbc.sync.describe-table/get-table-pks` is changed to return a vector instead
of a set.

- The function `metabase.query-processor.timezone/report-timezone-id-if-supported` has been updated to take an additional
Expand Down Expand Up @@ -846,8 +846,8 @@ differences between the library versions.

**Note: we expect these breaking changes to be fixed before 0.46.0 ships. This will be updated if they are.**

The classes `metabase.util.honeysql_extensions.Identifer` and `metabase.util.honeysql_extensions.TypedHoneySQLForm`
have been moved to `metabase.util.honey_sql_1.Identifer` and `metabase.util.honey_sql_1.TypedHoneySQLForm`,
The classes `metabase.util.honeysql_extensions.Identifier` and `metabase.util.honeysql_extensions.TypedHoneySQLForm`
have been moved to `metabase.util.honey_sql_1.Identifier` and `metabase.util.honey_sql_1.TypedHoneySQLForm`,
respectively. On the off chance that your driver directly referencing these class names, you may need to update things
to use the new class names.

Expand Down
4 changes: 2 additions & 2 deletions _docs/v0.57/developers-guide/drivers/driver-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ You'll almost certainly be running your database in a local Docker container. Ra

Tells Metabase to look for the environment variable `MB_MYSQL_TEST_USER`; if not found, default to `"root"`. The name of the environment variable follows the pattern `MB_<driver>_TEST_<property>`, as passed into the function as first and second args, respectively. You don't need to specify a default value for `tx/db-test-env-var`; perhaps `user` is an optional parameter; and if `MB_MYSQL_TEST_USER` isn't specified, you don't need to specify it in the connection details.

But what about properties you want to require, but do not have sane defaults? In those cases, you can use `tx/db-test-env-var-or-throw`. It the corresponding enviornment variable isn't set, these will throw an Exception, ultimately causing tests to fail.
But what about properties you want to require, but do not have sane defaults? In those cases, you can use `tx/db-test-env-var-or-throw`. It the corresponding environment variable isn't set, these will throw an Exception, ultimately causing tests to fail.

```clj
;; If MB_SQLSERVER_TEST_USER is unset, the test suite will quit with a message saying something like
Expand All @@ -197,7 +197,7 @@ Besides `tx/db-test-env-var`, `metabase.test.data.interface` has several other h

There's a few other things Metabase needs to know when comparing test results. For example, different databases name tables and columns in different ways; methods exist to let Metabase know it should expect something like the `venues` table in the `test-data` Database Definition to come back as `VENUES` for a database that uppercases everything. (We consider such minor variations in naming to still mean the same thing.) Take a look at `tx/format-name` and other methods like that and see which ones you need to implement.

## What about DBMSes that don't let you create new databases programatically?
## What about DBMSes that don't let you create new databases programmatically?

This is actually a common problem, and luckily we have figured out how to work around it. The solution is usually something like using different _schemas_ in place of different databases, or prefixing table names with the database name, and creating everything in the same database. For SQL-based databases, you can implement `sql.tx/qualified-name-components` to have tests use a different identifier instead of what they would normally use, for example `"shared_db"."test-data_venues".id` instead of `"test-data".venues.id`. The SQL Server and Oracle test extensions are good examples of such black magic in action.

Expand Down
2 changes: 1 addition & 1 deletion _docs/v0.57/developers-guide/drivers/plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ driver:

# Whether loading this driver can be deferred until the first
# attempt to connect to a database of this type. Default: true. Only
# set this to false if absolutely neccesary.
# set this to false if absolutely necessary.
lazy-load: true

# Parent driver, if any.
Expand Down
12 changes: 5 additions & 7 deletions _docs/v0.57/developers-guide/e2e-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ layout: new-docs

# End-to-end tests with Cypress

Metabase uses Cypress for “end-to-end testing”, that is, tests that are executed against the application as a whole, including the frontend, backend, and application database. These tests are essentially scripts written in JavaScript that run in the web browser: visit different URLs, click various UI elements, type text, and assert that things happen as expected (for example, an element appearing on screen, or a network request occuring).
Metabase uses Cypress for “end-to-end testing”, that is, tests that are executed against the application as a whole, including the frontend, backend, and application database. These tests are essentially scripts written in JavaScript that run in the web browser: visit different URLs, click various UI elements, type text, and assert that things happen as expected (for example, an element appearing on screen, or a network request occurring).

_Please, get familiar with the [Cypress best practices](https://docs.cypress.io/app/core-concepts/best-practices) before you proceed._

Expand Down Expand Up @@ -162,17 +162,15 @@ export MB_SNOWPLOW_URL=http://localhost:9090

We have a few helpers for dealing with tests involving snowplow

1. You can use `describeWithSnowplow` (or `describeWithSnowplowEE` for EE edition) method to define tests that only
run when a Snowplow instance is running
1. Use `resetSnowplow()` test helper before each test to clear the queue of processed events.
1. Use `expectSnowplowEvent({ ...payload }, count=n)` to assert that exactly `count` snowplow events match (partially)
2. Use `expectSnowplowEvent({ ...payload }, count=n)` to assert that exactly `count` snowplow events match (partially)
the payload provided (count defaults to 1)
1. Use `expectUnstructuredSnowplowEvent` to assert that exactly `count` snowplow events are unstructured events that
3. Use `expectUnstructuredSnowplowEvent` to assert that exactly `count` snowplow events are unstructured events that
partial-match the payload provided. This is simply a convenience function for comparing
`event.unstruct_event.data.data` rather than the entire `event`. Most of our events are unstructured events, so this is handy.
1. Use `assertNoUnstructuredSnowplowEvent({ ...eventData })` is the inverse of `expectUnstructuredSnowplowEvent`, and asserts that
4. Use `assertNoUnstructuredSnowplowEvent({ ...eventData })` is the inverse of `expectUnstructuredSnowplowEvent`, and asserts that
_no_ unstructured events match the payload.
1. Use `expectNoBadSnowplowEvents()` after each test to assert that no invalid events have been sent.
5. Use `expectNoBadSnowplowEvents()` after each test to assert that no invalid events have been sent.

### Running tests that require SMTP server

Expand Down
Loading