mattermost/server/einterfaces
Christopher Poile 03f2eaaa0b
[MM-68400] Four plugin hooks and ChannelGuard enforcement (#36152)
* allow workflow_dispatch trigger for Server CI (for plugins CI)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [MM-68402] MBE Phase 2: declare four generic plugin hooks (#36291)

* new hooks-only phase 2

* remove ChannelWillBeMoved

* remove RecapWillBeProcessed and MessageWillBeRewrittenByAI

Drop the AI/recap hooks from the new-hook surface; AI-LLM paths
remain uncovered in tech preview and are documented as residuals.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [MM-68403] MBE Phase 3: ChannelGuards primitive (storage + cache + plugin API) (#36365)

* phase 3

* phase 3: register ChannelGuard mock in test setup helper

NewChannels' startup-time call to reloadGuardCache invokes
s.ChannelGuard().GetAll(); without an expectation on the mock store,
every test that sets up the server with GetMockStoreForSetupFunctions
panics during init.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* phase 3: register ChannelGuard mock in retrylayer test

retrylayer.New walks every store getter to wrap it; without the mock
expectation on ChannelGuard, TestRetry panics during layer construction.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* use rctx properly in the store methods

* phase 3: match rctx arg in testlib ChannelGuard mock

GetAll now takes request.CTX, so the testify expectation must include
mock.Anything; otherwise the call panics under the mocked store.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* phase 3: set api.ctx in TestChannelGuardLowercaseNormalization

The test constructs PluginAPI directly without a ctx, which used to
work when App.RegisterChannelGuard built its own EmptyContext. Now
that the App methods take rctx from the caller, the nil ctx panics
inside RequestContextWithMaster.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [MM-68404] MBE Phase 4: App-layer plugin hook wiring (#36407)

* phase 4

* Fix nil rctx in TestChannelGuardLowercaseNormalization

The PluginAPI struct literal was missing ctx: rctx after a refactor
moved the rctx declaration below the struct construction, leaving
api.ctx as nil. This caused a nil pointer dereference in reloadGuardCache
when RegisterChannelGuard called store.RequestContextWithMaster(nil).

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* Remove ChannelWillBeMoved hook call from MoveChannel (phase 4)

The hook and its ID were removed from mbe-phase-2 but the call site in
MoveChannel and its i18n string were not cleaned up during the rebase.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* remove channel will be moved test

* Remove RecapWillBeProcessed and MessageWillBeRewrittenByAI hook calls (phase 4)

The hooks and their IDs were removed from mbe-phase-2 but the call sites
in ProcessRecapChannel and RewriteMessage, their i18n strings, and their
tests were not cleaned up during the rebase.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Revert channel_id plumbing on rewrite endpoint (phase 4)

The channel_id field on RewriteRequest was added in phase 4 to feed the
synthetic post passed to MessageWillBeRewrittenByAI. With that hook
removed from mbe-phase-2, channel_id has no consumer; revert the field,
the api4 validation, the app.RewriteMessage parameter, and the
corresponding webapp client + hook plumbing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [MM-68555] MBE Phase 5: Channel-guard enforcement + two-phase dispatch (#36473)

* phase 5

* Bake plugin counter-file paths into source instead of env vars

t.Setenv panics when an ancestor test calls t.Parallel, so the two
channel-guard tests broke under ENABLE_FULLY_PARALLEL_TESTS in CI.
Build each plugin source per-subtest with its temp file path embedded
as a Go literal — same pattern as TestPluginUploadsAPI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Remove guarded helpers and tests for dropped hooks (phase 5)

The runGuardedRecapWillBeProcessed and runGuardedMessageWillBeRewrittenByAI
helpers were never wired (their app-layer call sites were already removed
in the phase-4 cleanup), and the corresponding sub-tests across panic /
allow / reject / partial plugins reference hooks that no longer exist.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [MM-68405] MBE Phase 6: fire MessagesWillBeConsumed on the edit path (#36475)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* rebase onto master

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 18:16:05 +00:00
..
jobs Standardize request.CTX parameter naming to rctx (#33499) 2025-09-10 15:11:32 +02:00
mocks [MM-68400] Four plugin hooks and ChannelGuard enforcement (#36152) 2026-05-21 18:16:05 +00:00
.mockery.yaml Migrate mockery to packages feature (#29013) 2024-11-07 12:48:11 +01:00
access_control.go [MM-61756] Attribute Based Access Control - Phase 1 (#30785) 2025-05-15 11:33:08 +02:00
account_migration.go Standardize request.CTX parameter naming to rctx (#33499) 2025-09-10 15:11:32 +02:00
autotranslation.go Add the ability to patch channel autotranslations (#35078) 2026-02-06 18:19:06 +01:00
cloud.go [MM-67030] Remove newsletter signup and replace with terms/privacy agreement (#34801) 2026-01-23 18:24:27 +00:00
cluster.go Standardize request.CTX parameter naming to rctx (#33499) 2025-09-10 15:11:32 +02:00
compliance.go [MM-54435] Use annotated logger to capture compliance export logs (#24791) 2023-10-23 10:20:32 +02:00
data_retention.go MM-53032: Fix module path after repo rename (#23689) 2023-06-11 10:54:35 +05:30
intune.go feat: Add Microsoft Intune MAM authentication support (#34577) 2025-12-10 08:31:53 +02:00
ip_filtering.go [CLD-6324] Cloud IP Filtering (#24726) 2023-11-14 09:12:04 -05:00
ldap.go Standardize request.CTX parameter naming to rctx (#33499) 2025-09-10 15:11:32 +02:00
license.go [CLD-9487] Support for Entry + updates to Edition & License screen (#33672) 2025-08-27 10:05:39 -04:00
message_export.go MM-59966 - Compliance Export overhaul - feature branch (#29789) 2025-01-10 16:56:02 -05:00
metrics.go [MM-65979] Add Prometheus metrics for plugin webapp performance (#35075) 2026-02-13 18:07:54 +05:30
notification.go Standardize request.CTX parameter naming to rctx (#33499) 2025-09-10 15:11:32 +02:00
oauthproviders.go [MM-66838] Update throttled library to v2.15.0 with Go modules support (#34657) 2026-03-19 11:36:19 +01:00
outgoing_oauth_connection.go Webapp - Outgoing OAuth Connections (#25507) 2024-02-09 14:49:49 -05:00
pap.go [MM-68693] Resource level permission policies and new simulation (#36472) 2026-05-21 14:40:05 +02:00
pdp.go [MM-61756] Attribute Based Access Control - Phase 1 (#30785) 2025-05-15 11:33:08 +02:00
push_proxy.go Push Proxy Authentication (#34211) 2025-11-12 20:16:44 +02:00
saml.go Standardize request.CTX parameter naming to rctx (#33499) 2025-09-10 15:11:32 +02:00
saml_diagnostic.go [MM-68576] Add SAML connectivity status to support packet diagnostics (#36321) 2026-05-21 10:21:34 +02:00