Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Aug 28, 2024
  2. Aug 27, 2024
  3. Aug 26, 2024
    • appleby's avatar
    • Chris Truter's avatar
      Track query analysis failures (#47216) · f984a3e0
      Chris Truter authored
      f984a3e0
    • John Swanson's avatar
      Don't encrypt boolean settings (by default) (#47179) · da2a0a1b
      John Swanson authored
      * Don't encrypt boolean settings (by default)
      
      We have tooling to disable encryption on settings even when the
      `MB_ENCRYPTION_SECRET_KEY` is set. Turn it on by default for all boolean
      settings, which don't need to be encrypted.
      
      I also optimized the code that decrypts settings on startup because I
      didn't want to delay startup if someone had set a bunch of boolean
      settings. With 20 set, the old version added about 200+ ms to startup,
      about 10ms per boolean setting, whether or not it was encrypted or in
      the DB already. The optimized version selects all the never-encrypt
      values from the database at once (a bit silly, but we also just exclude
      raw `true` and `false` values so we don't bother checking them) and
      updates them if they're encrypted - this adds ~40ms to startup with 20
      encrypted boolean settings (about 2ms per boolean setting) and ~5ms to
      startup on subsequent runs, when no encrypted values are in the DB.
      da2a0a1b
    • Braden Shepherdson's avatar
      [MBQL lib] Disable expression type checking entirely (#47245) · 13983247
      Braden Shepherdson authored
      This testing is too strict to support some legitimate use cases that
      have no workaround at present. We can bring back this type-checking
      eventually, once it's possible to correctly express things like
      automatic coercion of strings to numbers in `SUM` aggregations.
      
      Fixes #44431.
      13983247
    • Uladzimir Havenchyk's avatar
      fix import order in the files with disabled rules (#47217) · f28ea99c
      Uladzimir Havenchyk authored
      * fix import order in the files with disabled rules
      
      * remove hack
      
      * minor
      f28ea99c
    • Jeff Bruemmer's avatar
      42caad57
    • Alex Yarosh's avatar
      docs: serialization clarification (#45480) · e8904acf
      Alex Yarosh authored
      
      * serialization clarification
      
      * Update docs/installation-and-operation/serialization.md
      
      Co-authored-by: default avatarJeff Bruemmer <jeff.bruemmer@gmail.com>
      
      * Update docs/installation-and-operation/serialization.md
      
      Co-authored-by: default avatarJeff Bruemmer <jeff.bruemmer@gmail.com>
      
      * Update docs/installation-and-operation/serialization.md
      
      Co-authored-by: default avatarJeff Bruemmer <jeff.bruemmer@gmail.com>
      
      * Update docs/installation-and-operation/serialization.md
      
      Co-authored-by: default avatarJeff Bruemmer <jeff.bruemmer@gmail.com>
      
      ---------
      
      Co-authored-by: default avatarJeff Bruemmer <jeff.bruemmer@gmail.com>
      e8904acf
    • Paul Leclercq's avatar
    • Daksh Shah's avatar
      aceaac27
    • Bruno Ferreira's avatar
      Adds missing `glue:GetCatalogImportStatus` (#41388) · 151334aa
      Bruno Ferreira authored
      Seems that `glue:GetCatalogImportStatus` is also needed for the integration with Amazon Athena because there's multiple AccessDenied on cloudtrail if this permission is missing:
      ```
      {
          "eventVersion": "1.09",
          "userIdentity": {
              "type": "IAMUser",
              "principalId": "***********************",
              "arn": "arn:aws:iam::*************:user/metabase",
              "accountId": "**********************",
              "accessKeyId": "*******************",
              "userName": "metabase"
          },
          "eventTime": "2024-04-11T08:29:00Z",
          "eventSource": "glue.amazonaws.com",
          "eventName": "GetCatalogImportStatus",
          "awsRegion": "eu-west-1",
          "sourceIPAddress": "***********",
          "userAgent": "DriverVersion/02.00.35.1001/JDBCVersion/4.2/PluginName/IAM, aws-sdk-java/1.12.339 Linux/5.10.213-201.855.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/11.0.22+7 java/11.0.22 clojure/1.11.1 vendor/Eclipse_Adoptium cfg/retry-mode/legacy",
          "errorCode": "AccessDenied",
          "errorMessage": "An unknown error occurred",
          "requestParameters": null,
          "responseElements": null,
          "requestID": "*************************************",
          "eventID": "*************************************",
          "readOnly": true,
          "eventType": "AwsApiCall",
          "managementEvent": true,
          "recipientAccountId": "*************************************",
          "eventCategory": "Management",
          "tlsDetails": {
              "tlsVersion": "TLSv1.3",
              "cipherSuite": "TLS_AES_128_GCM_SHA256",
              "clientProvidedHostHeader": "glue.eu-west-1.amazonaws.com"
          }
      }
      ```
      151334aa
    • Tony-metabase's avatar
      Update appearance.md (#36538) · 565f70c7
      Tony-metabase authored
      
      * Update appearance.md
      
      Adding information about how colors are selected by Metabase because there is the confusion that the order in which you select colors is the order you get on the chart
      
      * Update appearance.md
      
      Removed code reference and tried to simplify the context
      
      * Update docs/configuring-metabase/appearance.md
      
      Co-authored-by: default avatarJeff Bruemmer <jeff.bruemmer@gmail.com>
      
      ---------
      
      Co-authored-by: default avatarJeff Bruemmer <jeff.bruemmer@gmail.com>
      565f70c7
    • İbrahim Gurses's avatar
    • Raphael Krut-Landau's avatar
      fix(dashboard): In dashboard value source modal, after closing question picker... · 45d8be7e
      Raphael Krut-Landau authored
      fix(dashboard): In dashboard value source modal, after closing question picker modal, don't also close the first modal (#47242)
      
      45d8be7e
    • John Swanson's avatar
      Much better collection permission performance (#46942) · af6d6e7f
      John Swanson authored
      There are a few separate changes here:
      
      - Migrations: add and populate indexed columns perm_value, perm_type, and collection_id to permissions
      
      These fields allows us to efficiently run queries based on collection permissions in the DB without string manipulation. Keeping the table as permissions allows us to do this migration in-place. Note that in some cases collections may have been deleted from the database without deleting the associated permissions row (since there was no foreign key before). We need to be defensive here: if we have a permissions row without a corresponding collection, delete the row before running the rest of the migration.
      
      - Write perm_value, perm_type, and collection_id for new collection permissions
      
      A very simple before-insert method sets these fields before a collection permission is written to the DB.
      
      - Replace collection/permissions-set->visible-collection-ids and collection/visible-collection-ids->honeysql-filter-clause with collection/honeysql-filter-clause
      
      Previously, just about everywhere we used permissions-set->visible-collection-ids, what we were essentially doing was an in-app join: select all the collection IDs you have permission on, then convert it to a SQL clause like WHERE collection_id IN ( all of those collection IDs).
      
      Replace both of these with honeysql-filter-clause, which uses the new fields we added to permissions above to construct a honeysql filter representing "all the collections I have permissions on", without needing to round-trip them to the application and back to the DB.
      
      Of course, we can then write a function visible-collection-ids, which uses honeysql-filter-clause, for those cases where we do actually need the whole bunch in the application (we use this, for example, when constructing the effective-location for a collection).
      
      I also added one more toggle to the VisibilityConfig that's passed into the honeysql-filter-clause (and used to be passed to permissions-set->visible-collection-ids), allowing you to select only the effective children of some collection.
      af6d6e7f
Loading