async-matrix 0.1.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +131 -0
  3. data/data/discord-api-spec/openapi.json +40404 -0
  4. data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
  5. data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
  6. data/data/matrix-spec/api/client-server/admin.yaml +512 -0
  7. data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
  8. data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
  9. data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
  10. data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
  11. data/data/matrix-spec/api/client-server/banning.yaml +177 -0
  12. data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
  13. data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
  14. data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
  15. data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
  16. data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
  17. data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
  18. data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
  19. data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
  20. data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
  21. data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
  22. data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
  23. data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
  24. data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
  25. data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
  26. data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
  27. data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
  28. data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
  29. data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
  30. data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
  31. data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
  32. data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
  33. data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
  34. data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
  35. data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
  36. data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
  37. data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
  38. data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
  39. data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
  40. data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
  41. data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
  42. data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
  43. data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
  44. data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
  45. data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
  46. data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
  47. data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
  48. data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
  49. data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
  50. data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
  51. data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
  52. data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
  53. data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
  54. data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
  55. data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
  56. data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
  57. data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
  58. data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
  59. data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
  60. data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
  61. data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
  62. data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
  63. data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
  64. data/data/matrix-spec/api/client-server/directory.yaml +318 -0
  65. data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
  66. data/data/matrix-spec/api/client-server/filter.yaml +224 -0
  67. data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
  68. data/data/matrix-spec/api/client-server/joining.yaml +238 -0
  69. data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
  70. data/data/matrix-spec/api/client-server/keys.yaml +482 -0
  71. data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
  72. data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
  73. data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
  74. data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
  75. data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
  76. data/data/matrix-spec/api/client-server/login.yaml +321 -0
  77. data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
  78. data/data/matrix-spec/api/client-server/logout.yaml +86 -0
  79. data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
  80. data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
  81. data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
  82. data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
  83. data/data/matrix-spec/api/client-server/openid.yaml +98 -0
  84. data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
  85. data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
  86. data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
  87. data/data/matrix-spec/api/client-server/presence.yaml +169 -0
  88. data/data/matrix-spec/api/client-server/profile.yaml +366 -0
  89. data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
  90. data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
  91. data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
  92. data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
  93. data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
  94. data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
  95. data/data/matrix-spec/api/client-server/registration.yaml +488 -0
  96. data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
  97. data/data/matrix-spec/api/client-server/relations.yaml +382 -0
  98. data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
  99. data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
  100. data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
  101. data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
  102. data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
  103. data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
  104. data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
  105. data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
  106. data/data/matrix-spec/api/client-server/search.yaml +385 -0
  107. data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
  108. data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
  109. data/data/matrix-spec/api/client-server/support.yaml +142 -0
  110. data/data/matrix-spec/api/client-server/sync.yaml +692 -0
  111. data/data/matrix-spec/api/client-server/tags.yaml +183 -0
  112. data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
  113. data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
  114. data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
  115. data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
  116. data/data/matrix-spec/api/client-server/typing.yaml +103 -0
  117. data/data/matrix-spec/api/client-server/users.yaml +136 -0
  118. data/data/matrix-spec/api/client-server/versions.yaml +108 -0
  119. data/data/matrix-spec/api/client-server/voip.yaml +93 -0
  120. data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
  121. data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
  122. data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
  123. data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
  124. data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
  125. data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
  126. data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
  127. data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
  128. data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
  129. data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
  130. data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
  131. data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
  132. data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
  133. data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
  134. data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
  135. data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
  136. data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
  137. data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
  138. data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
  139. data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
  140. data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
  141. data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
  142. data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
  143. data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
  144. data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
  145. data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
  146. data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
  147. data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
  148. data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
  149. data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
  150. data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
  151. data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
  152. data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
  153. data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
  154. data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
  155. data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
  156. data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
  157. data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
  158. data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
  159. data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
  160. data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
  161. data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
  162. data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
  163. data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
  164. data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
  165. data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
  166. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
  167. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
  168. data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
  169. data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
  170. data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
  171. data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
  172. data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
  173. data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
  174. data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
  175. data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
  176. data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
  177. data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
  178. data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
  179. data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
  180. data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
  181. data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
  182. data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
  183. data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
  184. data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
  185. data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
  186. data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
  187. data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
  188. data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
  189. data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
  190. data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
  191. data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
  192. data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
  193. data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
  194. data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
  195. data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
  196. data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
  197. data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
  198. data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
  199. data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
  200. data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
  201. data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
  202. data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
  203. data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
  204. data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
  205. data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
  206. data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
  207. data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
  208. data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
  209. data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
  210. data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
  211. data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
  212. data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
  213. data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
  214. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
  215. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
  216. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
  217. data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
  218. data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
  219. data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
  220. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
  221. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
  222. data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
  223. data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
  224. data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
  225. data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
  226. data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
  227. data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
  228. data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
  229. data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
  230. data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
  231. data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
  232. data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
  233. data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
  234. data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
  235. data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
  236. data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
  237. data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
  238. data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
  239. data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
  240. data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
  241. data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
  242. data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
  243. data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
  244. data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
  245. data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
  246. data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
  247. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
  248. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
  249. data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
  250. data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
  251. data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
  252. data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
  253. data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
  254. data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
  255. data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
  256. data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
  257. data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
  258. data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
  259. data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
  260. data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
  261. data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
  262. data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
  263. data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
  264. data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
  265. data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
  266. data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
  267. data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
  268. data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
  269. data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
  270. data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
  271. data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
  272. data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
  273. data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
  274. data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
  275. data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
  276. data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
  277. data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
  278. data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
  279. data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
  280. data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
  281. data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
  282. data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
  283. data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
  284. data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
  285. data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
  286. data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
  287. data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
  288. data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
  289. data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
  290. data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
  291. data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
  292. data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
  293. data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
  294. data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
  295. data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
  296. data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
  297. data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
  298. data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
  299. data/lib/async/discord/api/path_tree.rb +130 -0
  300. data/lib/async/discord/api.rb +156 -0
  301. data/lib/async/discord/client.rb +286 -0
  302. data/lib/async/discord/error.rb +88 -0
  303. data/lib/async/discord/gateway.rb +362 -0
  304. data/lib/async/discord.rb +16 -0
  305. data/lib/async/matrix/api/chain.rb +584 -0
  306. data/lib/async/matrix/api/concat.rb +105 -0
  307. data/lib/async/matrix/api/path_tree.rb +208 -0
  308. data/lib/async/matrix/api.rb +204 -0
  309. data/lib/async/matrix/application_service/bot.rb +235 -0
  310. data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
  311. data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
  312. data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
  313. data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
  314. data/lib/async/matrix/application_service/config/schema/config.json +61 -0
  315. data/lib/async/matrix/application_service/config/schema/database.json +38 -0
  316. data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
  317. data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
  318. data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
  319. data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
  320. data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
  321. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
  322. data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
  323. data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
  324. data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
  325. data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
  326. data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
  327. data/lib/async/matrix/application_service/config/vivify.rb +113 -0
  328. data/lib/async/matrix/application_service/config.rb +214 -123
  329. data/lib/async/matrix/application_service/dispatcher.rb +115 -113
  330. data/lib/async/matrix/application_service/error_response.rb +26 -26
  331. data/lib/async/matrix/application_service/event.rb +206 -1
  332. data/lib/async/matrix/application_service/server.rb +286 -215
  333. data/lib/async/matrix/application_service/transaction.rb +52 -52
  334. data/lib/async/matrix/application_service/transaction_store.rb +62 -62
  335. data/lib/async/matrix/bridge/discord/db/connection.rb +143 -0
  336. data/lib/async/matrix/bridge/discord/db/file.rb +120 -0
  337. data/lib/async/matrix/bridge/discord/db/guild.rb +122 -0
  338. data/lib/async/matrix/bridge/discord/db/message.rb +162 -0
  339. data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +14 -0
  340. data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +14 -0
  341. data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +23 -0
  342. data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +19 -0
  343. data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +20 -0
  344. data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +19 -0
  345. data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +18 -0
  346. data/lib/async/matrix/bridge/discord/db/portal.rb +152 -0
  347. data/lib/async/matrix/bridge/discord/db/puppet.rb +130 -0
  348. data/lib/async/matrix/bridge/discord/db/reaction.rb +167 -0
  349. data/lib/async/matrix/bridge/discord/db/user.rb +114 -0
  350. data/lib/async/matrix/bridge/discord/db.rb +140 -0
  351. data/lib/async/matrix/client.rb +919 -179
  352. data/lib/async/matrix/connection.rb +8 -8
  353. data/lib/async/matrix/double_puppet_client.rb +84 -0
  354. data/lib/async/matrix/endpoint.rb +45 -45
  355. data/lib/async/matrix/error.rb +49 -43
  356. data/lib/async/matrix/media_client.rb +173 -0
  357. data/lib/async/matrix/notifier.rb +92 -92
  358. data/lib/async/matrix/schema/registry.rb +355 -0
  359. data/lib/async/matrix/schema/validation_error.rb +226 -0
  360. data/lib/async/matrix/schema.rb +174 -0
  361. data/lib/async/matrix/server.rb +8 -7
  362. data/lib/async/matrix/stream.rb +7 -7
  363. data/lib/async/matrix/version.rb +1 -1
  364. data/lib/async/matrix.rb +4 -2
  365. metadata +419 -1
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "appservice.json",
4
+ "description": "Application service registration and network settings. Maps to mautrix bridgev2/bridgeconfig.AppserviceConfig.",
5
+ "type": "object",
6
+ "properties": {
7
+ "address": {
8
+ "type": "string",
9
+ "description": "The full public address of the appservice (e.g. http://bridge:29318)."
10
+ },
11
+ "public_address": {
12
+ "type": "string",
13
+ "description": "Public-facing address if different from address."
14
+ },
15
+ "hostname": {
16
+ "type": "string",
17
+ "default": "0.0.0.0",
18
+ "description": "Hostname to bind the appservice listener to."
19
+ },
20
+ "port": {
21
+ "type": "integer",
22
+ "minimum": 0,
23
+ "maximum": 65535,
24
+ "default": 29318,
25
+ "description": "Port to bind the appservice listener to."
26
+ },
27
+ "id": {
28
+ "type": "string",
29
+ "description": "Unique appservice ID, used in the registration file."
30
+ },
31
+ "bot": {
32
+ "$ref": "#/$defs/BotUserConfig"
33
+ },
34
+ "as_token": {
35
+ "type": "string",
36
+ "minLength": 1,
37
+ "description": "Appservice token used to authenticate requests to the homeserver."
38
+ },
39
+ "hs_token": {
40
+ "type": "string",
41
+ "minLength": 1,
42
+ "description": "Homeserver token used to authenticate requests from the homeserver."
43
+ },
44
+ "ephemeral_events": {
45
+ "type": "boolean",
46
+ "default": false,
47
+ "description": "Receive ephemeral events (typing, receipts) via appservice transactions."
48
+ },
49
+ "async_transactions": {
50
+ "type": "boolean",
51
+ "default": false,
52
+ "description": "Send transaction responses before processing (Hungry-specific)."
53
+ },
54
+ "username_template": {
55
+ "type": "string",
56
+ "description": "Go text/template for generating ghost user localparts. Receives the remote username as {{.}}."
57
+ }
58
+ },
59
+ "required": ["as_token", "hs_token"],
60
+ "additionalProperties": false,
61
+ "$defs": {
62
+ "BotUserConfig": {
63
+ "description": "Configuration for the appservice bot user. Maps to mautrix BotUserConfig.",
64
+ "type": "object",
65
+ "properties": {
66
+ "username": {
67
+ "type": "string",
68
+ "description": "Localpart of the bot user (e.g. 'bot' for @bot:example.com)."
69
+ },
70
+ "displayname": {
71
+ "type": "string",
72
+ "description": "Display name to set for the bot user."
73
+ },
74
+ "avatar": {
75
+ "type": "string",
76
+ "description": "Avatar mxc:// URI for the bot user. Set to 'remove' to remove the avatar."
77
+ }
78
+ },
79
+ "additionalProperties": false
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "backfill.json",
4
+ "description": "Message backfill settings. Maps to mautrix bridgev2/bridgeconfig.BackfillConfig.",
5
+ "type": "object",
6
+ "properties": {
7
+ "enabled": {
8
+ "type": "boolean",
9
+ "default": false,
10
+ "description": "Enable message backfilling from the remote network."
11
+ },
12
+ "max_initial_messages": {
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "default": 50,
16
+ "description": "Maximum number of messages to backfill in a newly created portal."
17
+ },
18
+ "max_catchup_messages": {
19
+ "type": "integer",
20
+ "minimum": 0,
21
+ "default": 500,
22
+ "description": "Maximum number of messages to backfill when catching up on missed messages."
23
+ },
24
+ "unread_hours_threshold": {
25
+ "type": "integer",
26
+ "minimum": 0,
27
+ "default": 720,
28
+ "description": "Number of hours of unread messages before switching to catchup backfill."
29
+ },
30
+ "threads": {
31
+ "$ref": "#/$defs/BackfillThreadsConfig"
32
+ },
33
+ "queue": {
34
+ "$ref": "#/$defs/BackfillQueueConfig"
35
+ }
36
+ },
37
+ "additionalProperties": false,
38
+ "$defs": {
39
+ "BackfillThreadsConfig": {
40
+ "type": "object",
41
+ "properties": {
42
+ "max_initial_messages": {
43
+ "type": "integer",
44
+ "minimum": 0,
45
+ "default": 20,
46
+ "description": "Maximum number of messages to backfill in a thread."
47
+ }
48
+ },
49
+ "additionalProperties": false
50
+ },
51
+ "BackfillQueueConfig": {
52
+ "type": "object",
53
+ "properties": {
54
+ "enabled": {
55
+ "type": "boolean",
56
+ "default": false,
57
+ "description": "Enable the backfill queue for processing large backfills in batches."
58
+ },
59
+ "manual": {
60
+ "type": "boolean",
61
+ "default": false,
62
+ "description": "Require manual triggering of queued backfills."
63
+ },
64
+ "batch_size": {
65
+ "type": "integer",
66
+ "minimum": 1,
67
+ "default": 100,
68
+ "description": "Number of messages per backfill batch."
69
+ },
70
+ "batch_delay": {
71
+ "type": "integer",
72
+ "minimum": 0,
73
+ "default": 20,
74
+ "description": "Delay in seconds between backfill batches."
75
+ },
76
+ "max_batches": {
77
+ "type": "integer",
78
+ "minimum": 0,
79
+ "default": 0,
80
+ "description": "Maximum number of batches to process. 0 means unlimited."
81
+ },
82
+ "max_batches_override": {
83
+ "type": "object",
84
+ "additionalProperties": { "type": "integer" },
85
+ "description": "Per-portal overrides for max_batches, keyed by portal name."
86
+ }
87
+ },
88
+ "additionalProperties": false
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,209 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "bridge.json",
4
+ "description": "Core bridge behavior settings. Maps to mautrix bridgev2/bridgeconfig.BridgeConfig.",
5
+ "type": "object",
6
+ "properties": {
7
+ "command_prefix": {
8
+ "type": "string",
9
+ "description": "Prefix for bridge commands in the management room."
10
+ },
11
+ "personal_filtering_spaces": {
12
+ "type": "boolean",
13
+ "default": false,
14
+ "description": "Enable personal filtering spaces for portal rooms."
15
+ },
16
+ "private_chat_portal_meta": {
17
+ "type": "boolean",
18
+ "default": false,
19
+ "description": "Set portal room metadata (name/avatar) in private chats."
20
+ },
21
+ "async_events": {
22
+ "type": "boolean",
23
+ "default": false,
24
+ "description": "Process Matrix events asynchronously."
25
+ },
26
+ "split_portals": {
27
+ "type": "boolean",
28
+ "default": false,
29
+ "description": "Create separate portal rooms per user login."
30
+ },
31
+ "resend_bridge_info": {
32
+ "type": "boolean",
33
+ "default": false,
34
+ "description": "Resend bridge info state events on startup."
35
+ },
36
+ "no_bridge_info_state_key": {
37
+ "type": "boolean",
38
+ "default": false,
39
+ "description": "Don't include the bridge info state key in portal rooms."
40
+ },
41
+ "bridge_status_notices": {
42
+ "type": "string",
43
+ "default": "",
44
+ "description": "Control bridge status notices behavior."
45
+ },
46
+ "unknown_error_auto_reconnect": {
47
+ "type": "string",
48
+ "default": "",
49
+ "description": "Duration to wait before auto-reconnecting after an unknown error (Go duration, e.g. '1m')."
50
+ },
51
+ "unknown_error_max_auto_reconnects": {
52
+ "type": "integer",
53
+ "minimum": 0,
54
+ "default": 0,
55
+ "description": "Maximum number of auto-reconnect attempts after unknown errors."
56
+ },
57
+ "bridge_matrix_leave": {
58
+ "type": "boolean",
59
+ "default": false,
60
+ "description": "Bridge Matrix leave events to the remote network."
61
+ },
62
+ "bridge_notices": {
63
+ "type": "boolean",
64
+ "default": false,
65
+ "description": "Bridge m.notice messages to the remote network."
66
+ },
67
+ "tag_only_on_create": {
68
+ "type": "boolean",
69
+ "default": false,
70
+ "description": "Only set room tags when creating a portal, not on updates."
71
+ },
72
+ "only_bridge_tags": {
73
+ "type": "array",
74
+ "items": { "type": "string" },
75
+ "description": "Only bridge rooms with these tags."
76
+ },
77
+ "mute_only_on_create": {
78
+ "type": "boolean",
79
+ "default": false,
80
+ "description": "Only set mute status when creating a portal, not on updates."
81
+ },
82
+ "deduplicate_matrix_messages": {
83
+ "type": "boolean",
84
+ "default": false,
85
+ "description": "Deduplicate Matrix messages before bridging to avoid double-sends."
86
+ },
87
+ "cross_room_replies": {
88
+ "type": "boolean",
89
+ "default": false,
90
+ "description": "Support replies across different portal rooms."
91
+ },
92
+ "outgoing_message_re_id": {
93
+ "type": "boolean",
94
+ "default": false,
95
+ "description": "Re-identify outgoing messages with the remote network ID."
96
+ },
97
+ "revert_failed_state_changes": {
98
+ "type": "boolean",
99
+ "default": false,
100
+ "description": "Revert Matrix state changes that failed to bridge."
101
+ },
102
+ "kick_matrix_users": {
103
+ "type": "boolean",
104
+ "default": false,
105
+ "description": "Kick Matrix users from portal rooms when they are removed on the remote network."
106
+ },
107
+ "enable_send_state_requests": {
108
+ "type": "boolean",
109
+ "default": false,
110
+ "description": "Enable handling send-state requests."
111
+ },
112
+ "phone_numbers_in_profile": {
113
+ "type": "boolean",
114
+ "default": false,
115
+ "description": "Include phone numbers in ghost user profiles."
116
+ },
117
+ "cleanup_on_logout": {
118
+ "$ref": "#/$defs/CleanupOnLogouts"
119
+ },
120
+ "relay": {
121
+ "$ref": "relay.json"
122
+ },
123
+ "portal_create_filter": {
124
+ "$ref": "#/$defs/PortalCreateFilter"
125
+ },
126
+ "permissions": {
127
+ "type": "object",
128
+ "additionalProperties": {
129
+ "$ref": "permissions.json"
130
+ },
131
+ "description": "User/server permission map. Keys are '*' (wildcard), 'example.com' (server), or '@user:example.com' (user)."
132
+ },
133
+ "backfill": {
134
+ "$ref": "backfill.json"
135
+ }
136
+ },
137
+ "additionalProperties": false,
138
+ "$defs": {
139
+ "CleanupAction": {
140
+ "type": "string",
141
+ "enum": ["", "nothing", "kick", "unbridge", "delete"],
142
+ "description": "Action to take on portal rooms during cleanup."
143
+ },
144
+ "CleanupOnLogout": {
145
+ "type": "object",
146
+ "properties": {
147
+ "private": { "$ref": "#/$defs/CleanupAction" },
148
+ "relayed": { "$ref": "#/$defs/CleanupAction" },
149
+ "shared_no_users": { "$ref": "#/$defs/CleanupAction" },
150
+ "shared_has_users": { "$ref": "#/$defs/CleanupAction" }
151
+ },
152
+ "additionalProperties": false
153
+ },
154
+ "CleanupOnLogouts": {
155
+ "type": "object",
156
+ "properties": {
157
+ "enabled": {
158
+ "type": "boolean",
159
+ "default": false,
160
+ "description": "Enable cleanup of portal rooms on logout."
161
+ },
162
+ "manual": {
163
+ "$ref": "#/$defs/CleanupOnLogout",
164
+ "description": "Cleanup behavior when a user manually logs out."
165
+ },
166
+ "bad_credentials": {
167
+ "$ref": "#/$defs/CleanupOnLogout",
168
+ "description": "Cleanup behavior when credentials become invalid."
169
+ }
170
+ },
171
+ "additionalProperties": false
172
+ },
173
+ "PortalCreateFilter": {
174
+ "type": "object",
175
+ "properties": {
176
+ "mode": {
177
+ "type": "string",
178
+ "enum": ["allow", "deny", ""],
179
+ "default": "",
180
+ "description": "Filter mode: 'allow' only allows listed items, 'deny' blocks listed items."
181
+ },
182
+ "list": {
183
+ "type": "array",
184
+ "items": {
185
+ "oneOf": [
186
+ { "type": "string" },
187
+ {
188
+ "type": "object",
189
+ "properties": {
190
+ "id": { "type": "string" },
191
+ "receiver": { "type": "string" }
192
+ },
193
+ "required": ["id"],
194
+ "additionalProperties": false
195
+ }
196
+ ]
197
+ },
198
+ "description": "Portal IDs to allow/deny. Each item is a portal ID string or an object with id and optional receiver."
199
+ },
200
+ "always_deny_from_login": {
201
+ "type": "array",
202
+ "items": { "type": "string" },
203
+ "description": "User login IDs that are always denied portal creation."
204
+ }
205
+ },
206
+ "additionalProperties": false
207
+ }
208
+ }
209
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "config.json",
4
+ "title": "Mautrix Bridge Configuration",
5
+ "description": "Root configuration schema for mautrix bridgev2-compatible bridges. Maps to mautrix bridgev2/bridgeconfig.Config.",
6
+ "type": "object",
7
+ "properties": {
8
+ "network": {
9
+ "type": "object",
10
+ "description": "Bridge-specific network configuration. Opaque to the framework — validated by each bridge implementation."
11
+ },
12
+ "homeserver": {
13
+ "$ref": "homeserver.json"
14
+ },
15
+ "appservice": {
16
+ "$ref": "appservice.json"
17
+ },
18
+ "bridge": {
19
+ "$ref": "bridge.json"
20
+ },
21
+ "database": {
22
+ "$ref": "database.json"
23
+ },
24
+ "matrix": {
25
+ "$ref": "matrix.json"
26
+ },
27
+ "encryption": {
28
+ "$ref": "encryption.json"
29
+ },
30
+ "backfill": {
31
+ "$ref": "backfill.json"
32
+ },
33
+ "analytics": {
34
+ "$ref": "analytics.json"
35
+ },
36
+ "provisioning": {
37
+ "$ref": "provisioning.json"
38
+ },
39
+ "public_media": {
40
+ "$ref": "public_media.json"
41
+ },
42
+ "direct_media": {
43
+ "$ref": "direct_media.json"
44
+ },
45
+ "double_puppet": {
46
+ "$ref": "double_puppet.json"
47
+ },
48
+ "management_room_texts": {
49
+ "$ref": "management_room_texts.json"
50
+ },
51
+ "logging": {
52
+ "$ref": "logging.json"
53
+ },
54
+ "env_config_prefix": {
55
+ "type": "string",
56
+ "description": "Prefix for environment variable overrides (e.g. 'MAUTRIX_SIGNAL')."
57
+ }
58
+ },
59
+ "required": ["homeserver", "appservice"],
60
+ "additionalProperties": false
61
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "database.json",
4
+ "description": "Database connection settings. Maps to go.mau.fi/util/dbutil.Config.",
5
+ "type": "object",
6
+ "properties": {
7
+ "type": {
8
+ "type": "string",
9
+ "enum": ["sqlite3-fk-wal", "postgres"],
10
+ "description": "Database engine type. 'sqlite3-fk-wal' is SQLite with foreign keys and WAL mode."
11
+ },
12
+ "uri": {
13
+ "type": "string",
14
+ "description": "Database connection URI (e.g. file:bridge.db?_txlock=immediate or postgres://...)."
15
+ },
16
+ "max_open_conns": {
17
+ "type": "integer",
18
+ "minimum": 0,
19
+ "default": 5,
20
+ "description": "Maximum number of open database connections."
21
+ },
22
+ "max_idle_conns": {
23
+ "type": "integer",
24
+ "minimum": 0,
25
+ "default": 1,
26
+ "description": "Maximum number of idle database connections."
27
+ },
28
+ "max_conn_idle_time": {
29
+ "type": "string",
30
+ "description": "Maximum time a connection can be idle (Go duration, e.g. '30m')."
31
+ },
32
+ "max_conn_lifetime": {
33
+ "type": "string",
34
+ "description": "Maximum lifetime of a connection (Go duration, e.g. '1h')."
35
+ }
36
+ },
37
+ "additionalProperties": false
38
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "direct_media.json",
4
+ "description": "Direct media access settings. Maps to mautrix bridgev2/bridgeconfig.DirectMediaConfig.",
5
+ "type": "object",
6
+ "properties": {
7
+ "enabled": {
8
+ "type": "boolean",
9
+ "default": false,
10
+ "description": "Enable direct media access via federation-style media endpoints."
11
+ },
12
+ "media_id_prefix": {
13
+ "type": "string",
14
+ "description": "Prefix for generated media IDs."
15
+ },
16
+ "server_name": {
17
+ "type": "string",
18
+ "description": "Server name for the media proxy (inlined from mediaproxy.BasicConfig)."
19
+ },
20
+ "server_key": {
21
+ "type": "string",
22
+ "description": "Signing key for federation. Set to 'generate' for auto-generation."
23
+ },
24
+ "well_known_response": {
25
+ "type": ["string", "null"],
26
+ "description": "Custom .well-known response for the media server."
27
+ },
28
+ "allow_proxy": {
29
+ "type": "boolean",
30
+ "default": false,
31
+ "description": "Allow proxying media through the homeserver if direct download fails."
32
+ }
33
+ },
34
+ "additionalProperties": false
35
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "double_puppet.json",
4
+ "description": "Double-puppeting settings. Maps to mautrix bridgev2/bridgeconfig.DoublePuppetConfig.",
5
+ "type": "object",
6
+ "properties": {
7
+ "servers": {
8
+ "type": "object",
9
+ "additionalProperties": { "type": "string" },
10
+ "description": "Map of server name to homeserver URL for double-puppeting."
11
+ },
12
+ "allow_discovery": {
13
+ "type": "boolean",
14
+ "default": false,
15
+ "description": "Allow discovering double-puppet homeservers via .well-known."
16
+ },
17
+ "secrets": {
18
+ "type": "object",
19
+ "additionalProperties": { "type": "string" },
20
+ "description": "Map of server name to shared secret for automatic double-puppet login."
21
+ }
22
+ },
23
+ "additionalProperties": false
24
+ }