Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • 12-9-stable
  • 12-7-stable
  • 12-6-stable
  • 12-8-stable
  • github/fork/Kloppi313/patch-1
  • 12-5-stable
  • 12-4-stable
  • github/fork/ramalokesh8477/master
  • 12-1-stable
  • 12-2-stable
  • 12-0-stable
  • 12-3-stable
  • 42-42-stable
  • github/fork/hussamgit398/patch-2
  • 12-3-auto-deploy-20190911
  • 12-3-auto-deploy-20190916
  • 12-3-auto-deploy-20190908
  • 12-3-auto-deploy-20190901
  • 12-3-auto-deploy-20190901-32664
  • v12.10.0.pre
  • v12.9.0
  • v12.9.0-rc42
  • v12.8.7
  • v12.8.6
  • v12.8.5
  • v12.8.4
  • v12.8.3
  • v12.6.8
  • v12.7.7
  • v12.8.2
  • v12.8.1
  • v12.9.0.pre
  • v12.8.0
  • v12.8.0-rc42
  • v12.5.10
  • v12.7.6
  • v12.6.7
  • v12.7.5
  • v12.5.9
40 results

application_setting.rb

  • Arturo Herrero's avatar
    cc9a30c7
    Encrypt application settings with pre and post deployments · cc9a30c7
    Arturo Herrero authored
    We had concerns about the cached values on Redis with the previous two
    releases strategy:
    
    First release (this commit):
      - Create new encrypted fields in the database.
      - Start populating new encrypted fields, read the encrypted fields or
        fallback to the plaintext fields.
      - Backfill the data removing the plaintext fields to the encrypted
        fields.
    Second release:
      - Remove the virtual attribute (created in step 2).
      - Drop plaintext columns from the database (empty columns after
        step 3).
    
    We end up with a better strategy only using migration scripts in one
    release:
      - Pre-deployment migration: Add columns required for storing encrypted
        values.
      - Pre-deployment migration: Store the encrypted values in the new
        columns.
      - Post-deployment migration: Remove the old unencrypted columns
    cc9a30c7
    History
    Encrypt application settings with pre and post deployments
    Arturo Herrero authored
    We had concerns about the cached values on Redis with the previous two
    releases strategy:
    
    First release (this commit):
      - Create new encrypted fields in the database.
      - Start populating new encrypted fields, read the encrypted fields or
        fallback to the plaintext fields.
      - Backfill the data removing the plaintext fields to the encrypted
        fields.
    Second release:
      - Remove the virtual attribute (created in step 2).
      - Drop plaintext columns from the database (empty columns after
        step 3).
    
    We end up with a better strategy only using migration scripts in one
    release:
      - Pre-deployment migration: Add columns required for storing encrypted
        values.
      - Pre-deployment migration: Store the encrypted values in the new
        columns.
      - Post-deployment migration: Remove the old unencrypted columns