A atualização para 2.9.0.beta5 está causando um problema com meu plugin de painel. Algo está gerando um erro em uma visualização do plugin:
Started GET "/pfaffmanager/servers" for 73.147.117.173 at 2022-06-14 17:53:31 +0000
Processing by Pfaffmanager::ServersController#index as HTML
Rendered default/empty.html.erb within layouts/application (Duration: 0.1ms | Allocations: 29)
Rendered layout layouts/application.html.erb (Duration: 21.6ms | Allocations: 7109)
Completed 200 OK in 142ms (Views: 23.0ms | ActiveRecord: 0.0ms | Allocations: 37464)
Started GET "/chat/chat_channels.json" for 73.147.117.173 at 2022-06-14 17:53:31 +0000
Processing by DiscourseChat::ChatChannelsController#index as JSON
Started GET "/presence/get?channels%5B%5D=%2Fchat-user%2Fchat%2F1&channels%5B%5D=%2Fchat-user%2Fcore%2F1" for 73.147.117.173 at 2022-06-14 17:53:31 +0000
Processing by PresenceController#get as JSON
Parameters: {"channels"=>["/chat-user/chat/1", "/chat-user/core/1"]}
Completed 200 OK in 44ms (Views: 1.9ms | ActiveRecord: 0.0ms | Allocations: 5134)
Started GET "/pfaffmanager/servers" for 73.147.117.173 at 2022-06-14 17:53:31 +0000
Completed 200 OK in 94ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 22124)
Processing by Pfaffmanager::ServersController#index as JSON
Completed 500 Internal Server Error in 113ms (ActiveRecord: 0.0ms | Allocations: 15487)
ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)
(eval):9:in `_fast_attributes'
app/controllers/application_controller.rb:543:in `render_json_dump'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'
Isso parece estar ocorrendo apenas na visualização de índice do meu plugin, não em outras páginas do plugin ou do Discourse. Não tenho certeza onde procurar. Ainda bem que executei a atualização primeiro no meu site de staging!
O acima me sugeriu que isso tem a ver com o plugin de chat, mas está acontecendo na minha instância de desenvolvimento sem o chat instalado.
Nossa, e pesquisar no Google por ActiveSupport::MessageEncryptor::InvalidMessage "fast_attributes" retorna apenas este tópico!
Existe alguma maneira que você conheça de imediato que eu possa ignorar essa alteração no meu plugin existente com uma linha óbvia-depois-que-você-sabe-disso no meu plugin.rb?
Ou talvez eu tenha que descobrir o que isso significa.
EDIT: mas em dev adicionar essa linha a config/application.rb não é uma correção mágica.
Desculpe. Li um pouco mais:
Então, talvez isso resolva meu problema imediato. Obrigado novamente pela sua ajuda! Talvez eu consiga desta vez.
Bem, a chave que gero para rails 6 e rails 7 se parece com isto:
mas eles criptografam as coisas de forma diferente. Eu esperava que o hash_digest_class fosse o problema, mas pelo menos parece que é o mesmo em ambos, mas a string criptografada é diferente.
Ah. Droga. Não, não é isso. Meu site de produção que está funcionando está na versão 7.0.3 e o site de staging que está quebrado também está na versão 7.0.3. Ele está criptografando as coisas de forma diferente. Não consigo dizer, e não sei como dizer, se é que o serializador é diferente ou se o cifrador é diferente.
Enquanto isso, aprendi que o 7.0 suporta a criptografia de campos, o que me permitirá remover algum código personalizado se eu conseguir descobrir como acessar minhas chaves de API criptografadas. Ou talvez eu simplesmente as exclua e gere novamente.
No momento, estou recebendo criptografias como => "SUNBZlRURThEZjdVUG8wTzV1eWk0dz09LS1uRGVSQWtPRU9rc1ZCa1Y1d2pyeU5nPT0=--43eab316e6a9ebafc72d4982347abd9c7f6605db"
com a versão 2.9.0.beta4, elas se parecem com "FwL/GGvrDHOpQ1bnGiI=--kCLbUxMf/XeMaeWF--/feRN+/l1q3EFdKgyIo+7Q=="
k = ActiveSupport::MessageEncryptor.new(KEY, cipher: "aes-256-cbc")
Ainda não entendo por que as duas instâncias que afirmam estar executando 7.0.3 têm resultados diferentes, mas uma boa leitura do manual (RTFM) da documentação de atualização foi de grande ajuda. Obrigado, Gerhard! Foi o empurrãozinho que eu precisava.