La mise à jour vers la version 2.9.0.beta5 cause un problème avec mon plugin de tableau de bord. Quelque chose déclenche une erreur sur une vue du 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'
Cela semble se produire uniquement dans la vue index de mon plugin, pas sur d’autres pages du plugin ou de Discourse. Je ne sais pas où chercher. Je suis tellement content d’avoir d’abord exécuté la mise à niveau sur mon site de staging !
Ce qui précède m’a suggéré que cela avait à voir avec le plugin de chat, mais cela se produit sur mon instance de développement sans le chat installé.
Wow, et chercher sur Google ActiveSupport::MessageEncryptor::InvalidMessage "fast_attributes" ne renvoie que ce sujet !
Y a-t-il un moyen, à votre connaissance, que je puisse ignorer ce changement dans mon plugin existant avec une ligne évidente une fois qu’on la connaît dans mon plugin.rb ?
Ou peut-être vais-je devoir comprendre ce que cela signifie.
EDIT : mais sur dev, ajouter cette ligne à config/application.rb n’est pas une solution miracle.
Désolé. J’ai lu un peu plus loin :
Donc, peut-être que cela résoudra mon problème immédiat. Merci encore pour votre aide ! Peut-être que je vais y arriver cette fois.
Eh bien, la clé que je génère pour rails 6 et rails 7 ressemble à ceci :
mais ils chiffrent les choses différemment. J’espérais que hash_digest_class était le problème, mais il semble au moins être le même sur les deux, mais la chaîne chiffrée est différente.
Oh. Zut. Non, ce n’est pas ça. Mon site de production qui fonctionne est sur 7.0.3 et le site de staging qui est cassé est aussi sur 7.0.3. Il chiffre les choses différemment. Je ne peux pas dire, et je ne sais pas comment dire, si c’est le sérialiseur qui est différent ou le chiffrement qui est différent.
Pendant ce temps, j’ai appris que 7.0 prend en charge le chiffrement des champs, ce qui me permettra de supprimer du code personnalisé si seulement je parviens à accéder à mes clés API chiffrées. Ou peut-être que je vais simplement les supprimer et les régénérer.
Depuis la dernière version, j’obtiens des chiffrements comme => "SUNBZlRURThEZjdVUG8wTzV1eWk0dz09LS1uRGVSQWtPRU9rc1ZCa1Y1d2pyeU5nPT0=--43eab316e6a9ebafc72d4982347abd9c7f6605db"
avec 2.9.0.beta4, ils ressemblent à "FwL/GGvrDHOpQ1bnGiI=--kCLbUxMf/XeMaeWF--/feRN+/l1q3EFdKgyIo+7Q=="
k = ActiveSupport::MessageEncryptor.new(KEY, cipher: "aes-256-cbc")
Je ne comprends toujours pas pourquoi les deux instances qui prétendent toutes deux exécuter 7.0.3 donnent des résultats différents, mais une bonne lecture de la documentation de mise à niveau a été d’une grande aide. Merci, Gerhard ! C’était le coup de pouce dont j’avais besoin.