28 lines
1,008 B
Ruby
28 lines
1,008 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class EncryptFeatureFlagsClientsTokens < ActiveRecord::Migration[5.1]
|
||
|
DOWNTIME = false
|
||
|
|
||
|
class FeatureFlagsClient < ActiveRecord::Base
|
||
|
self.table_name = 'operations_feature_flags_clients'
|
||
|
end
|
||
|
|
||
|
def up
|
||
|
say_with_time("Encrypting tokens from operations_feature_flags_clients") do
|
||
|
FeatureFlagsClient.where('token_encrypted is NULL AND token IS NOT NULL').find_each do |feature_flags_client|
|
||
|
token_encrypted = Gitlab::CryptoHelper.aes256_gcm_encrypt(feature_flags_client.token)
|
||
|
feature_flags_client.update!(token_encrypted: token_encrypted)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
say_with_time("Decrypting tokens from operations_feature_flags_clients") do
|
||
|
FeatureFlagsClient.where('token_encrypted IS NOT NULL AND token IS NULL').find_each do |feature_flags_client|
|
||
|
token = Gitlab::CryptoHelper.aes256_gcm_decrypt(feature_flags_client.token_encrypted)
|
||
|
feature_flags_client.update!(token: token)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|