This project is mirrored from https://github.com/metabase/metabase.
Pull mirroring updated .
- May 15, 2024
-
-
Nick Fitzpatrick authored
* replace search bar with command palette toggle * e2e test part one * onboarding suite * green e2e * unit tests * delete shame
-
John Swanson authored
3 TODOs were removed here: - "a way to SET Database-local values." More like TODONE :haaa: - "we should probably also bind this [that is, *database-local-values*] in sync contexts e.g. functions in [[metabase.sync]]" I think we don't need to do this. The full set of maybe-database-local settings right now is `aggregated-query-row-limit`, `unaggregated-query-row-limit`, `database-enable-actions`, and `persist-models-enabled`. None of these need to be set when `sync`ing. If at some point we do add a db-local setting that should affect the way syncing works, we will need to do this - but I don't think this TODO will help figure that out. - "settings sent via an env var aren't returned for security purposes. It is an open question whether we should obfuscate them and still show the last two characters like we do for sensitive values that are set via the UI." I think if it's been this way for 5 years, it no longer qualifies as an "open question." We can reopen if down the road if this is something we want.
-
adam-james authored
* PoC Pivot table exporting. Works so far! This just hacks a couple things in. I added the :query via format_rows, which should instead have its own proper middleware Pivot export should probably not just be in the middleware namespace but in qp.pivot. Should not break the streaming results writer for non-pivots... obviously this breaks ordinary results, so that needs to be handled properly. Better documentation about how the logic actually works. Pivot tables are hard to remember/easy to forget, so some very clear diagrams/examples would probably be good. * adjust csv export to export a pivot table when pivot options exist * post processing of pivot table rows for card/dashcard downloads * WIP on getting pivot exports to work with unsaved questions * WIP getting pivot exports working on unsaved questions The dataset POST /pivot endpoint is used to get the pivot data to the frontend, but also to get the pivot query. The query that is returned by the POST comes from the json_query, which is populated by the userland-query stuff with the last run query. The pivot qp runs mulitple queries and each query runs through the regular userland query qp, so we'll 1. see lots of executions recorded and 2. end up with the wrong query in the POST return. It'll look mostly correct, but due to how the pivot qp works won't necessarily have all of the fields. That incorrect pivot query is passed to the /:export-format endpoint and we don't end up seeing correct results. Since that json_query gets fed back to the backend when doing an export, we do need it to be correct, like the query that was sent to /pivot in the first place. Since this is a WIP, I've just passed the query as a string to :original-query in :info, and if that exists, use that to fill the :json_query key. Then, also add a :was-pivot flag so that the dataset download endpoint can look at it and use the pivot qp instead of the regular qp. Even if we have the correct 'top level' query, we need to run it through the pivot qp to get the full, correct pivoted results. * Pivot Export Test Here I've added a pivot export test that has various assertions trying to capture the correct output from the pivot csv export. I've done my best to explain the tests with comments, but have also left a (comment ) form with a function `explore-pivot` to help *show* rather than tell what the expected pivot output should be. I've created this new namespace to first capture this pivot export test with the intent to add tests that can improve our confidence that ALL exports/downloads in ALL places behave as we expect in the future. It just seemed nice to start fresh here with the pivot export test first. * Don't need to make this public. * Add lots of comments to hopefully make this a bit easier to follow * Added an explore-raw-pivot fn in comment form * Update test/metabase/api/downloads_exports_test.clj Co-authored-by:
Cam Saul <1455846+camsaul@users.noreply.github.com> * begin addressing feedback - finish an unfinished docstring - merge info instead of assoc - use a native query to build the pivot data instead of using a custom dataset, to keep test speed ok * Create a new ns for the pivot post processing utils Separate the post processing fns into their own namespace. This means I can easily add a test namespace for the post processing specifically as well. * Add pivot postprocessing test ns, not complete, but decent start * fix mistake in endpoint. Only add original query to first pivot q * Figured out how to keep the original query without storing as a string * Perhaps this'll fix things properly? --------- Co-authored-by:
Cam Saul <1455846+camsaul@users.noreply.github.com>
-
Raphael Krut-Landau authored
-
Alexander Solovyov authored
this lowers memory usage 100x for 50kb strings (our limit before this change) and speeds up parsing by an order of magnitude. For example, results for parsing 42kb string (already in memory): Before: Time per call: 6.32 ms Alloc per call: 8,732,850b After: Time per call: 55.16 us Alloc per call: 83,254b
-
Ngoc Khuat authored
An one time job to init send-pulse trigger and migration down to clean up send-pulse triggers (#42316) * Add a job to init send pulse trigger only once * Send pulse triggers should respect report timezone (#42502)
-
- May 14, 2024
-
-
Braden Shepherdson authored
Follow up to #42424. This enforces that all drills do not appear on native stages. Also fixes one more drill on top of the two in #42424 that were wrongly showing up for native queries.
-
Braden Shepherdson authored
- `:metadata/key-constraints` for those databases which formally track PK and FK key constraints. Some databases (eg. Presto/Athena/Starburst family) don't support constraints like that, but do support querying based on foreign keys (which is the `:foreign-keys` feature). - `:connection/multiple-databases` for databases where a single connection can connect to many databases. This is the case for Athena, since it connects to an S3 bucket and exposes all files in the bucket as databases through that single connection. - Also removed a troublesome "all DBs except a huge list" case in the SSH tunnel tests with a shorter list of supported drivers.
-
bryan authored
* handle recent view for non-existant entity * test that recent views works with missing entities - just doesn't return them. * dont count on there being entities in the app-db
-
Ngoc Khuat authored
-
Ngoc Khuat authored
-
Chris Truter authored
-
- May 13, 2024
-
-
bryan authored
* wip * adds more collection-touch events * remove sneaky dep that slipped in * cleaning up, and adding tests * respond to review comments + mini bug reports * make it official * double official * cleanup + return recent-views/Item for `GET activity/popular_items` * get popular_items returning the proper shape * compare doesn't what I thought * add display_name to tables * table.database.name should be the db name, not the table name * add table.database.initial_sync_status * improve call to toucan2 * light renaming + many text fixes * include moderated_status in cards and datasets * look up Dashboard permissions for Dashboards * stop double-querying for `can-write?` checks - also include some debug logging * fix card <-> model dispatching also gets tests passing locally * let the test runner run the tests * fix gc test * adds description * description can be null * better tests no more nils passed through the app * debugging test * fix tests and skip archived * mysql finesse * ellide inactive tables * wip * adds more collection-touch events * remove sneaky dep that slipped in * cleaning up, and adding tests * respond to review comments + mini bug reports * make it official * double official * cleanup + return recent-views/Item for `GET activity/popular_items` * get popular_items returning the proper shape * compare doesn't what I thought * add display_name to tables * table.database.name should be the db name, not the table name * add table.database.initial_sync_status * improve call to toucan2 * light renaming + many text fixes * include moderated_status in cards and datasets * look up Dashboard permissions for Dashboards * stop double-querying for `can-write?` checks - also include some debug logging * fix card <-> model dispatching also gets tests passing locally * let the test runner run the tests * fix gc test * adds description * description can be null * better tests no more nils passed through the app * debugging test * fix tests and skip archived * mysql finesse * New Recents + Popular API Format - Frontend (#42305) * fix tests * new API payload format for recents and populars * update url generation * update recents components * update tests * only show 5 recents in command palette * remove unused types * update tests * obey the linter * type updates * fix unit test * change where we filter recents --------- Co-authored-by:
Bryan Maass <bryan.maass@gmail.com> * fix modelToUrl types * respond to review comments * post merge test fix --------- Co-authored-by:
Ryan Laurie <30528226+iethree@users.noreply.github.com> Co-authored-by:
Ryan Laurie <iethree@gmail.com>
-
adam-james authored
* Don't use the slugify util for filenames * Fix tests that looked for incorrect filenames * add a test * fix filename in pulse test util
-
Noah Moss authored
-
Ngoc Khuat authored
-
Nemanja Glumac authored
-
Ngoc Khuat authored
-
Nicolò Pretto authored
-
- May 10, 2024
-
-
adam-james authored
* Format Rows toggle also applies to Column Names Fixes: #42500 When format-rows is false, we want to also pass that true/false value to the title column formatting. That is, if a column is renamed and formatting is applied, we want to use that column's name. But, if a column is renamed and the user exports unformatted csv or json, the custom column name should NOT be used, as was the behaviour in prior versions. * write a better test explanation
-
Braden Shepherdson authored
These params were failing to match. This matches them up and puts the options in the correct place. (`[:contains x y opts]` but `[:contains opts x y z]`).
-
Ngoc Khuat authored
-
Cam Saul authored
* Remove unused `metabase.api.transform` * Copy the deps graph improvements from my other PR * New combined X-Rays API namespace * Fix kondo error
-
Cal Herries authored
-
- May 09, 2024
-
-
Ngoc Khuat authored
-
Cam Saul authored
* Squashed commit * Update config * Backport the kondo ignore stuff from other PR. * Metabot API namespace
-
Braden Shepherdson authored
-
Cam Saul authored
* Squashed commit * Update config * Backport the kondo ignore stuff from other PR.
-
Braden Shepherdson authored
They don't work correctly on a native stage.
-
Ryan Laurie authored
* add upload management API * add upload management interface * remove trailing slash * add e2e upload management test * add upload management to token_features * jsdoc cleanup * fixes tests - include :upload_management in session_test - fix list-url in upload management - ensure local tests have upload management disabled (causes tests locally to 422 instead of 402: it has sufficient permissions from a local token to try to delete the table but the table is not an upload table, so you get a 422) * add card archive param * update tests * use common component * add success/error toasts * test success/error notifications * update e2e tests * address review comments * make sure we have fresh data --------- Co-authored-by:
dan sutton <dan@dpsutton.com>
-
Cam Saul authored
-
Ngoc Khuat authored
* fix malli error in defendpoint * fix a couple more error print-outs --------- Co-authored-by:
Bryan Maass <bryan.maass@gmail.com>
-
- May 08, 2024
-
-
Raphael Krut-Landau authored
-
bryan authored
* convert `SocketChannelEndpoint` to `SocketChannel` * Remove fatal logging (used for debugging) * check for nil channel + log on unknown type * only log unexpected transport types once
-
Cam Saul authored
* Cam's module linter 5000 * Get Kondo passing * Revert changes to usage of mdb.setup/setup-db! * Check ns shapes * Add ns :require shape linter; PR feedback * Linter fixes
-
Noah Moss authored
-
adam-james authored
* Dashboard Param Values Common Impl for Embedding/Preview Embedding Refactor the embedding api namespace to allow a bit of reuse between the embedding api and the embedding preview api. In some cases, the implementations are not identical (in terms of the shape of data expected/endpoints available), so this is a first step to making them the same. Related: https://www.notion.so/metabase/Make-embedding-preview-behave-consistently-with-actual-static-embeds-855353d8e5e8411d8164c7ac563c7d2f * Add a test to verify that preview-embed param-values endpoint works * Use preview embed endpoint and fix relevant tests * Add tests * Change name to reflect what actually happens in the function --------- Co-authored-by:
Mahatthana Nomsawadi <mahatthana.n@gmail.com>
-
Cal Herries authored
-
Ngoc Khuat authored
-
Alexander Solovyov authored
-