Skip to content
Snippets Groups Projects
  • John Swanson's avatar
    25089c87
    Api key migrations (#36316) · 25089c87
    John Swanson authored
    
    * Part 1: Add `core_user.type`
    
    With the addition of API keys and "api key users", we want to add a `type` field to users to easily distinguish
    between "regular" users and API key users.
    
    The one non-standard user we have right now is the "internal" Metabase user. We don't actually need this field for
    that one (because we fix that user's ID to `13371338`), but we might as well set the `type` correctly anyway.
    
    * Part 2: API Key table
    
    Create an API Key table to contain, uh, API keys.
    
    The table has the following fields:
    
    - id
    
    - user_id (the associated API key user, who this API key "acts as")
    
    - key (the hash of the API key itself)
    
    - key_prefix (the first 7 digits of the *raw* API key, beginning with `mb_XXXX`)
    
    - created_by (the user that created the API key)
    
    - created_at
    
    - updated_at
    
    * Part 3: Set the type of the internal user
    
    The internal user is actually identified by the ID, but we might as well set the type correctly.
    
    
    Finally: don't condition view recompilation on is-prod? since Cypress actually runs the backend in prod mode
    
    ---------
    
    Co-authored-by: default avatarNoah Moss <noahbmoss@gmail.com>
    Api key migrations (#36316)
    John Swanson authored
    
    * Part 1: Add `core_user.type`
    
    With the addition of API keys and "api key users", we want to add a `type` field to users to easily distinguish
    between "regular" users and API key users.
    
    The one non-standard user we have right now is the "internal" Metabase user. We don't actually need this field for
    that one (because we fix that user's ID to `13371338`), but we might as well set the `type` correctly anyway.
    
    * Part 2: API Key table
    
    Create an API Key table to contain, uh, API keys.
    
    The table has the following fields:
    
    - id
    
    - user_id (the associated API key user, who this API key "acts as")
    
    - key (the hash of the API key itself)
    
    - key_prefix (the first 7 digits of the *raw* API key, beginning with `mb_XXXX`)
    
    - created_by (the user that created the API key)
    
    - created_at
    
    - updated_at
    
    * Part 3: Set the type of the internal user
    
    The internal user is actually identified by the ID, but we might as well set the type correctly.
    
    
    Finally: don't condition view recompilation on is-prod? since Cypress actually runs the backend in prod mode
    
    ---------
    
    Co-authored-by: default avatarNoah Moss <noahbmoss@gmail.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.