diff --git a/app/models/coinbase_account.rb b/app/models/coinbase_account.rb index 82809cf51..c66423feb 100644 --- a/app/models/coinbase_account.rb +++ b/app/models/coinbase_account.rb @@ -1,5 +1,11 @@ class CoinbaseAccount < ApplicationRecord - include CurrencyNormalizable + include CurrencyNormalizable, Encryptable + + # Encrypt raw payloads if ActiveRecord encryption is configured + if encryption_ready? + encrypts :raw_payload + encrypts :raw_transactions_payload + end belongs_to :coinbase_item diff --git a/app/models/coinstats_account.rb b/app/models/coinstats_account.rb index 71c54b5a3..86231321f 100644 --- a/app/models/coinstats_account.rb +++ b/app/models/coinstats_account.rb @@ -1,7 +1,13 @@ # Represents a single crypto token/coin within a CoinStats wallet. # Each wallet address may have multiple CoinstatsAccounts (one per token). class CoinstatsAccount < ApplicationRecord - include CurrencyNormalizable + include CurrencyNormalizable, Encryptable + + # Encrypt raw payloads if ActiveRecord encryption is configured + if encryption_ready? + encrypts :raw_payload + encrypts :raw_transactions_payload + end belongs_to :coinstats_item diff --git a/app/models/mercury_account.rb b/app/models/mercury_account.rb index 43577ecc5..a4635cfc7 100644 --- a/app/models/mercury_account.rb +++ b/app/models/mercury_account.rb @@ -1,5 +1,11 @@ class MercuryAccount < ApplicationRecord - include CurrencyNormalizable + include CurrencyNormalizable, Encryptable + + # Encrypt raw payloads if ActiveRecord encryption is configured + if encryption_ready? + encrypts :raw_payload + encrypts :raw_transactions_payload + end belongs_to :mercury_item diff --git a/app/models/snaptrade_account.rb b/app/models/snaptrade_account.rb index 6e888cb1d..40ceb4f9f 100644 --- a/app/models/snaptrade_account.rb +++ b/app/models/snaptrade_account.rb @@ -1,7 +1,15 @@ class SnaptradeAccount < ApplicationRecord - include CurrencyNormalizable + include CurrencyNormalizable, Encryptable include SnaptradeAccount::DataHelpers + # Encrypt raw payloads if ActiveRecord encryption is configured + if encryption_ready? + encrypts :raw_payload + encrypts :raw_transactions_payload + encrypts :raw_holdings_payload + encrypts :raw_activities_payload + end + belongs_to :snaptrade_item # Association through account_providers for linking to Sure accounts diff --git a/lib/tasks/security_backfill.rake b/lib/tasks/security_backfill.rake index 3b79ecc8f..ee2a26191 100644 --- a/lib/tasks/security_backfill.rake +++ b/lib/tasks/security_backfill.rake @@ -56,6 +56,10 @@ namespace :security do results[:simplefin_accounts] = backfill_model(SimplefinAccount, %i[raw_payload raw_transactions_payload raw_holdings_payload], batch_size, dry_run) results[:lunchflow_accounts] = backfill_model(LunchflowAccount, %i[raw_payload raw_transactions_payload], batch_size, dry_run) results[:enable_banking_accounts] = backfill_model(EnableBankingAccount, %i[raw_payload raw_transactions_payload], batch_size, dry_run) + results[:snaptrade_accounts] = backfill_model(SnaptradeAccount, %i[raw_payload raw_transactions_payload raw_holdings_payload raw_activities_payload], batch_size, dry_run) + results[:coinbase_accounts] = backfill_model(CoinbaseAccount, %i[raw_payload raw_transactions_payload], batch_size, dry_run) + results[:coinstats_accounts] = backfill_model(CoinstatsAccount, %i[raw_payload raw_transactions_payload], batch_size, dry_run) + results[:mercury_accounts] = backfill_model(MercuryAccount, %i[raw_payload raw_transactions_payload], batch_size, dry_run) puts({ ok: true,