Se você só precisa armazenar um único ID de Tópico (como um valor configurável), a maneira mais simples nativa do Discourse é usando uma SiteSetting (Configuração do Site).
Você também obtém uma interface de administração integrada automaticamente.
config/settings.yml:
plugins:
my_plugin_enabled:
default: true
client: false
my_plugin_topic_id:
default: 0
client: false
type: topic # fornece um seletor de tópico na interface de administração
No seu código de plugin Ruby:
topic_id = SiteSetting.my_plugin_topic_id
topic = Topic.find_by(id: topic_id)
Se você preferir armazená-lo programaticamente (não exposto como uma configuração), o PluginStore também serve para um único par chave-valor:
store = PluginStore.new("my_plugin")
store.set("topic_id", some_topic_id)
topic_id = store.get("topic_id")