mattermost/server/channels
Daniel Espino 8975ec3cf9 Cleanups
2026-05-22 18:53:08 +02:00
..
api4 Merge branch 'master' into interactiveMessages 2026-05-21 17:03:51 +02:00
app Cleanups 2026-05-22 18:53:08 +02:00
audit [MM-64686] Expose audit logging functionality via plugin API (#31204) 2025-06-25 20:37:32 -04:00
db Add "last used" field for incoming webhooks (#36416) 2026-05-19 15:22:04 +02:00
doc/help Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
jobs MM-68150: Upgrade golangci-lint to v2.12.2 (#36554) 2026-05-14 17:29:37 -04:00
manualtesting MM-28765: Fix errcheck issues in server/channels/manualtesting/manual_testing.go (#30613) 2025-04-09 11:41:56 +02:00
store [MM-68693] Resource level permission policies and new simulation (#36472) 2026-05-21 14:40:05 +02:00
testlib MM-68762: Discoverable Private Channels — Server data layer (#36539) 2026-05-15 21:04:32 +02:00
utils MM-68150: Upgrade golangci-lint to v2.12.2 (#36554) 2026-05-14 17:29:37 -04:00
web Add "last used" field for incoming webhooks (#36416) 2026-05-19 15:22:04 +02:00
wsapi Add audits for accessing posts without membership (#31266) 2026-01-20 10:38:27 +01:00
README.md simplify CODEOWNERS (#35770) 2026-04-01 13:03:36 +00:00

Server Channels Review Guidelines

When reviewing or writing code in the server channels package, focus on SQL query performance and API layer efficiency.

SQL Store Layer

  • Run EXPLAIN ANALYZE on new or modified queries against a large dataset before merging. A query that performs well on a 12M-post database may degrade significantly at 100M+ posts.
  • Watch for sequential scans on large tables. Ensure appropriate indexes exist for new query patterns.
  • When adding new queries to the store, check whether an existing query already fetches the needed data. Avoid duplicate round trips to the database.

API Layer

  • Minimize database round trips. If an endpoint calls a Get followed by a Delete on the same row, consider using DELETE ... RETURNING to combine them into a single query.
  • Don't add queries that are unnecessary for the operation. The most efficient work is the work you don't do.
  • When adding new API endpoints, add them to the load test tooling so performance can be validated under realistic concurrency.

Permissions and Security

  • Verify that new endpoints enforce appropriate permissions. Rely on the dedicated security review for thorough coverage, but flag anything obviously missing (e.g., an endpoint that skips permission checks entirely).