title: config.yaml type: object required: [ access_token, user_id, base_url, synapse_base_url, keyring, policy_rooms, actions ] properties: base_url: type: string example: http://127.0.0.1:3080/_matrix format: uri pattern: ^https?://.+/_matrix$ synapse_base_url: type: string example: http://127.0.0.1:3880/_synapse format: uri pattern: ^https?://.+/_synapse$ keyring: type: string example: ./keyring.gpg access_token: type: string dry_run: type: boolean user_id: comment: 'The user_id tied to the access_token. Used for room shutdowns' type: string pattern: '@[\w\-]+:.+' policy_rooms: type: array items: type: string pattern: '![\w\-]+:.+' actions: type: array items: type: object oneOf: - required: [ tag ] properties: tag: { type: string, pattern: ^\w+$ } - required: [ tags ] properties: tags: type: array items: [ { type: string, pattern: ^\w+$ } ] anyOf: - required: [ user ] - required: [ room ] properties: user: properties: archive: properties: media: comment: 'Save a copy of the identifiers for the last 255 media uploads by this user to disk. This does not save the actual uploads' type: boolean rooms: comment: 'Save a copy of all rooms this user was participating in to disk.' type: boolean deactivate: type: boolean comment: 'Deactivate the User' notify: comment: 'Create an audit log in the audit room about the user.' type: boolean quarantine: comment: 'Quarantine all media uploaded by the user.' type: boolean # TODO: Add mjolnir list forwarding room: properties: archive: properties: media: comment: 'Save a copy of the identifiers for the last 255 media uploads in this room to disk. This does not save the actual uploads' type: boolean members: comment: 'Save a copy of all users that were participating in this room to disk.' type: boolean delist: comment: 'Remove the room from the room directory.' type: boolean notify: comment: 'Create an audit log in the audit room about this room.' type: boolean reason: comment: 'For shutdown. A publically visible reason.' type: string shutdown: comment: 'Shutdown the room' type: boolean silent: comment: 'For shutdown. If a notice room should not be created for the closed room.' type: boolean quarantine: comment: 'Quarantine all media uploaded in the room.' type: boolean