(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Rocket.Chat】LDAP等の設定情報の保管場所

スポンサーリンク

はじめに

以下記事ではメッセージの保管場所について紹介しましたが

本記事ではブラウザ上にて以下のように「管理」から設定できる項目がデータベースのどこに保管されるかについて調査した際のメモです。

f:id:mtiit:20200515223344p:plain
管理にて設定を編集できる

結論から言えば「rocketchat」データベースの「rocketchat_settings」コレクションです。

環境情報
  • Rocket.Chat Version: 3.2.2

MongoDBのコレクション一覧

初回ログオン直後のMongoDBのコレクションとドキュメント数の一覧は以下でした。

rs0:PRIMARY> db.getCollectionNames().forEach(function(v){print(v , db.getCollection(v).count());});
_raix_push_app_tokens 0
instances 1
meteor_accounts_loginServiceConfiguration 0
meteor_oauth_pendingCredentials 0
meteor_oauth_pendingRequestTokens 0
migrations 1
rocketchat__trash 0
rocketchat_analytics 0
rocketchat_apps 0
rocketchat_apps_logs 0
rocketchat_apps_persistence 0
rocketchat_avatars 1
rocketchat_avatars.chunks 1
rocketchat_avatars.files 1
rocketchat_canned_response 0
rocketchat_credential_tokens 0
rocketchat_cron_history 12
rocketchat_custom_emoji 0
rocketchat_custom_sounds 0
rocketchat_custom_user_status 0
rocketchat_export_operations 0
rocketchat_federation_dns_cache 0
rocketchat_federation_keys 2
rocketchat_federation_room_events 0
rocketchat_federation_servers 0
rocketchat_import 0
rocketchat_integration_history 0
rocketchat_integrations 0
rocketchat_invites 0
rocketchat_livechat_agent_activity 0
rocketchat_livechat_custom_field 0
rocketchat_livechat_department 0
rocketchat_livechat_department_agents 0
rocketchat_livechat_external_message 0
rocketchat_livechat_inquiry 0
rocketchat_livechat_office_hour 7
rocketchat_livechat_page_visited 0
rocketchat_livechat_priority 0
rocketchat_livechat_tag 0
rocketchat_livechat_trigger 0
rocketchat_livechat_unit_monitors 0
rocketchat_livechat_visitor 0
rocketchat_message 1
rocketchat_message_read_receipt 0
rocketchat_notification_queue 0
rocketchat_oauth_apps 1
rocketchat_oembed_cache 0
rocketchat_permissions 993
rocketchat_reports 0
rocketchat_roles 11
rocketchat_room 1
rocketchat_sessions 1
rocketchat_settings 894
rocketchat_smarsh_history 0
rocketchat_statistics 1
rocketchat_subscription 1
rocketchat_uploads 0
rocketchat_user_data_files 0
rocketchat_webdav_accounts 0
system.views 1
ufsTokens 0
users 2
usersSessions 1
view_livechat_queue_status 0

上記を見れば分かりますが以下のコレクションに情報が大量に保管されています。

rocketchat_settings 894

このコレクションにあたりをつけて中身を確認すると情報が格納されていました。

rocketchat_settingの該当部分

例えばLDAP周りの情報(ホスト名や接続ポート)は以下のように格納されています。

{ "_id" : "LDAP_Host", "_updatedAt" : ISODate("xx"), "autocomplete" : true, "blocked" : false, "createdAt" : ISODate("xx"), "enableQuery" : "{\"_id\":\"LDAP_Enable\",\"value\":true}", "group" : "LDAP", "hidden" : false, "i18nDescription" : "LDAP_Host_Description", "i18nLabel" : "LDAP_Host", "packageValue" : "", "secret" : false, "sorter" : 3, "ts" : ISODate("xx"), "type" : "string", "value" : "HOSTNAME", "valueSource" : "packageValue" }
{ "_id" : "LDAP_Port", "_updatedAt" : ISODate("xx"), "autocomplete" : true, "blocked" : false, "createdAt" : ISODate("xx"), "enableQuery" : "{\"_id\":\"LDAP_Enable\",\"value\":true}", "group" : "LDAP", "hidden" : false, "i18nDescription" : "LDAP_Port_Description", "i18nLabel" : "LDAP_Port", "packageValue" : "389", "secret" : false, "sorter" : 4, "ts" : ISODate("xx"), "type" : "string", "value" : "389", "valueSource" : "packageValue" }

今回はIP/ホスト名の箇所を「HOSTNAME」ポート番号を「389」としていました。

"value" : "HOSTNAME"
"packageValue" : 389"

他の情報に関しても同様の形式で確認できます。
ちなみにドキュメントをfind()にて全量表示する際はデータベースに負荷がかかる点はご注意ください。

終わりに

設定情報のみを移したければ上記のコレクションに対して以下の記事でバックアップを移行が可能です。

なかなかDBの実体を意識することはないですが、気になる方はぜひ中身を覗いてみてください。