summary refs log tree commit diff
path: root/modules/software-templates/synapse-workers/lib.nix
blob: c99e2eff52276c97be94e1da6b978c1988d59b48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
{
  workerRoutes = {
    sync.client = [
      "~ ^/_matrix/client/(v2_alpha|r0|v3)/sync$"
      "~ ^/_matrix/client/(api/v1|v2_alpha|r0|v3)/events$"
      "~ ^/_matrix/client/(api/v1|r0|v3)/initialSync$"
      "~ ^/_matrix/client/(api/v1|r0|v3)/rooms/[^/]+/initialSync$"
      "~ ^/_matrix/client/unstable/org.matrix.simplified_msc3575/sync$"
    ];

    clientReader.client = [
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/publicRooms$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/joined_members$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/context/.*$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/members$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state(/|$)"
      "~ ^/_matrix/client/v1/rooms/.*/hierarchy$"
      "~ ^/_matrix/client/(v1|unstable)/rooms/.*/relations/"
      "~ ^/_matrix/client/v1/rooms/.*/threads$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/messages$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/event"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/joined_rooms"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable/.*)/rooms/.*/aliases"
      "~ ^/_matrix/client/v1/rooms/.*/timestamp_to_event$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/search"
      "~ ^/_matrix/client/(r0|v3|unstable)/user/.*/filter(/|$)"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/directory/room/.*$"
      "~ ^/_matrix/client/(r0|v3|unstable)/notifications$"
      # e2ee
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/keys/query$"

      # unstable
      "~ ^/_matrix/client/unstable/im.nheko.summary/rooms/.*/summary$"

      # auth
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/login$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/account/3pid$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/account/whoami$"
      "~ ^/_matrix/client/versions$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/voip/turnServer$"
      "~ ^/_matrix/client/(r0|v3|unstable)/register$"
      "~ ^/_matrix/client/(r0|v3|unstable)/register/available$"
      "~ ^/_matrix/client/(r0|v3|unstable)/auth/.*/fallback/web$"
      "~ ^/_matrix/client/(r0|v3|unstable)/password_policy$"
      "~ ^/_matrix/client/(r0|v3|unstable)/capabilities$"
    ];

    eventCreator.client = [
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/send"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/(join|invite|leave|ban|unban|kick)$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/join/"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/knock/"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/profile/"
    ];

    federationInbound.federation = [
      "~ ^/_matrix/federation/(v1|v2)/send/"
    ];

    federationReader.federation = [
      "~ ^/_matrix/federation/(v1|v2)/event/"
      "~ ^/_matrix/federation/(v1|v2)/state/"
      "~ ^/_matrix/federation/(v1|v2)/state_ids/"
      "~ ^/_matrix/federation/(v1|v2)/backfill/"
      "~ ^/_matrix/federation/(v1|v2)/get_missing_events/"
      "~ ^/_matrix/federation/(v1|v2)/publicRooms"
      "~ ^/_matrix/federation/(v1|v2)/query/"
      "~ ^/_matrix/federation/(v1|v2)/make_join/"
      "~ ^/_matrix/federation/(v1|v2)/make_leave/"
      "~ ^/_matrix/federation/(v1|v2)/send_join/"
      "~ ^/_matrix/federation/(v1|v2)/send_leave/"
      "~ ^/_matrix/federation/v1/make_knock/"
      "~ ^/_matrix/federation/v1/send_knock/"
      "~ ^/_matrix/federation/(v1|v2)/invite/" # Needs special handling, define manually
      "~ ^/_matrix/federation/(v1|v2)/query_auth/"
      "~ ^/_matrix/federation/(v1|v2)/event_auth/"
      "~ ^/_matrix/federation/v1/timestamp_to_event/"
      "~ ^/_matrix/federation/(v1|v2)/exchange_third_party_invite/"
      "~ ^/_matrix/federation/(v1|v2)/user/devices/"
      "~ ^/_matrix/federation/(v1|v2)/get_groups_publicised$"
      "~ ^/_matrix/key/v2/query"
      # extra
      "~ ^/_matrix/key/v2/server$"
    ];

    mediaRepo.media = [
      "~ ^/_matrix/client/v1/media/"
      "~ ^/_matrix/federation/v1/media/"
      "~ ^/_synapse/admin/v1/purge_media_cache$"
      "~ ^/_synapse/admin/v1/room/.*/media.*$"
      "~ ^/_synapse/admin/v1/user/.*/media.*$"
      "~ ^/_synapse/admin/v1/users/.*/media$"
      "~ ^/_synapse/admin/v1/media/.*$"
      "~ ^/_synapse/admin/v1/quarantine_media/.*$"
      "~ ^/_matrix/media/"
    ];

    auth.client = [
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/login$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/account/3pid$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/account/whoami$"
      "~ ^/_matrix/client/versions$"
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/voip/turnServer$"
      "~ ^/_matrix/client/(r0|v3|unstable)/register$"
      "~ ^/_matrix/client/(r0|v3|unstable)/register/available$"
      "~ ^/_matrix/client/(r0|v3|unstable)/auth/.*/fallback/web$"
      "~ ^/_matrix/client/(r0|v3|unstable)/password_policy$"
      "~ ^/_matrix/client/(r0|v3|unstable)/capabilities$"
    ];

    typing.client = [
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/typing"
    ];

    toDevice.client = [
      "~ ^/_matrix/client/(r0|v3|unstable)/sendToDevice/"
    ];

    receipts.client = [
      "~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/receipt"
      "~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/read_markers"
    ];

    pushRules.client = [
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/pushrules/"
    ];

    presence.client = [
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/presence/"
    ];
    
    accountData.client = [
      "~ ^/_matrix/client/(r0|v3|unstable)/account_data"
      "~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/account_data"
      "~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/tags"
    ];
    
    userDirectory.client = [
      "~ ^/_matrix/client/(api/v1|r0|v3|unstable)/user_directory/search$"
      
      #profile
      "~ ^/_matrix/client/v3/profile/.*$"
      "~ ^/_matrix/client/v3/profile/.*/(displayname|avatar_url)$"
    ];
  };
}