Conversation
9f684e3 to
f678b92
Compare
agarciamontoro
left a comment
There was a problem hiding this comment.
Nice! I left a couple of nits below, and I have a general suggestion that can actually be applied to the other plugins PRs: can we add a check like the one proposed for the server to verify the FIPS builds?
ifeq ($(FIPS_ENABLED),true)
cp $(GOBIN_HOST)/$(MM_BIN_NAME) $(GOBIN_HOST)/$(MMCTL_BIN_NAME) $(DIST_PATH_GENERIC)/bin # from native bin dir, not cross-compiled
@# FIPS verification checks
@echo "Verifying FIPS build settings..."
$(GO) version -m $(GOBIN_HOST)/$(MM_BIN_NAME) | grep -q "GOEXPERIMENT=systemcrypto" || (echo "ERROR: FIPS binary missing GOEXPERIMENT=systemcrypto" && exit 1)
$(GO) version -m $(GOBIN_HOST)/$(MM_BIN_NAME) | grep -q "\-tags=requirefips" || (echo "ERROR: FIPS binary missing -tags=requirefips" && exit 1)
@echo "Verifying OpenSSL integration..."
$(GO) tool nm $(GOBIN_HOST)/$(MM_BIN_NAME) | grep -q "func_go_openssl_OpenSSL_version" || (echo "ERROR: FIPS binary missing OpenSSL integration" && exit 1)
@echo "FIPS verification checks passed"
elseThere was a problem hiding this comment.
I'm not opposed to this, but it seems out of scope for this PR.
There was a problem hiding this comment.
@agarciamontoro @crspeller While I understand dependabot is out of scope for this specific PR, I believe it should remain for the following security and maintenance reasons:
Security Posture Benefits:
- Automated vulnerability detection: Dependabot automatically identifies and creates PRs for security vulnerabilities in our GitHub Actions dependencies
- Reduces manual oversight: Eliminates the need for manual monitoring of security advisories across multiple action repositories
- Timely updates: Ensures we stay current with security patches without relying on manual processes
Operational Benefits:
- Consistency with Mattermost practices: Other Mattermost repositories use dependabot for the same security benefits
- Low maintenance overhead: Weekly schedule with limited open PRs (max 10) prevents spam while maintaining security
- Team ownership: Configured with
mattermost/ai-frameworkas reviewers/assignees for proper oversight
The security benefits of keeping our CI dependencies current significantly outweigh the minor addition to this PR. This follows security best practices and aligns with our responsibility to maintain a secure CI/CD pipeline.
cc @esarafianou
I used this PR as opportunity to improve security posture and I did the same in the push-proxy one.
|
|
||
| ## Builds both normal and FIPS distributions. | ||
| .PHONY: dist-all | ||
| dist-all: clean |
There was a problem hiding this comment.
Why depend on clean here?
agarciamontoro
left a comment
There was a problem hiding this comment.
(I meant to Request changes, sorry)
|
|
||
| ## Builds the server with FIPS compliance using Docker (requires Docker) | ||
| .PHONY: server-fips | ||
| server-fips: generate |
There was a problem hiding this comment.
This is a lot of complexity to add to the Makefile. If we need to support fips is there some reason for having fips and non-fips builds? Why not just have all builds be fips?
If we do need to add this complexity, maybe we can have a separate makefile with all of this extra complexity contained in there.
There was a problem hiding this comment.
@crspeller FIPS builds require a specialized runtime, which we provide in our FIPS docker image. FIPS-only would mean that customers deploying Matteermost via a tar.gz would need to have their runtime configured, even if they don't care about FIPS.
That's why we're taking the dual approach across Mattermost Server, plugins and other services.
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
a83ccea to
dd8b0c1
Compare
|
Rebased this branch on top of the |
|
This PR has been automatically labelled "stale" because it hasn't had recent activity. |
|
@crspeller, can we keep this open until we ship proper FIPS support in the plugin? We're using this PR to build FIPS-compliant versions with each release (a manual effort @agarciamontoro has been kind enough to juggle). |
Bumping mattermost-plugin-agents to Minor version 1.4.0
|
Merged up to the |
Bumping mattermost-plugin-agents to Minor version 1.6.0 # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEPRP5d5L03rt/wvKse019lts08b8FAmkUzusACgkQe019lts0 # 8b9vDg/+I4JGs2tD7Spbi2bEvQ96hMn8CGiTl4Kf2lDryevWamOQ+pQpxERf2LAQ # 10jPhGdkONodJ3v2YytS/z1y+rHXMeQXRZF+TeZ0xdCLS4qrFXnLjXz+L9l4U9Ju # 8QykVKc5qGlkLK/BXZQt2yvjVGMW26wDTbXZRnfmCMzLfTDcNMmp5s5s3CySzZFW # jU+4eVqqyIuQGKzVEq/3OBqKuDvhLXbe5psr/uFmyXjHv1atv3sJ7ggL77eU5BCi # MbT8yvTPncynsFxyy1OQiG4DqOIwKHU8Ik8nJ9Ck/xQKHtgTM7ElJ0PlvZmYXNqm # GCWPIp2wk7M34ln1uyPDUdWwPPbidJXnknovyKU1awV95QiW5uUoM8eJzqZuGguT # NyOle5ipqJI2sXQ6+NdWXuRVEVyNW+LVz3m4qUodBAu7cSWeLStv3gVjB4jORYKU # wOA7ay656ylS0YwNz+GA8EzZhqkYZnZNJDa6aD5cZibfu73EvHk8g05mJM0xg0Ty # 5n3wADbEyDFizH2sptUDvILgCYyqkSdjnbddYMtdj5lgR0+Op/26LbrGOKgEvUe/ # zWw1R1uaSmfiLizVrEveTrXx6a3pjreXRV9EwFRXbYmjgEVh8XxHJIfw+0c0Hr4q # FoTTgW8Nt+JXNrVKkv8t+ueuJav1JTwRbLzvrNdcIVZ7XMY0mao= # =AhbM # -----END PGP SIGNATURE----- # gpg: Signature made mié 12 nov 2025 19:16:11 CET # gpg: using RSA key 3D13F97792F4DEBB7FC2F2AC7B4D7D96DB34F1BF # gpg: Can't check signature: No public key
|
Merged up to the |
Bumping mattermost-plugin-agents to Patch version 1.6.1 # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEPRP5d5L03rt/wvKse019lts08b8FAmkeDnAACgkQe019lts0 # 8b+3mRAAvehfZs7NoAdzWzHQCiYWZlbJ5NYIXPJ2GodktbEQ24xVVPWWlD+uY/Ay # UM5mm/VroUXlA9f314eC6PwWLkk20uIU+w7jEnJNACzd5PHd5W0H3Gx2uM2B8ZeS # ifhvJqtXXlBDBgOtoD+oVosB1gTZoUI1uAnW+PcDIU45vs0/QhDPKgFYrOwWklUZ # m38jZv3gnQ2eMNqQlK/Ohxci/v96Qt8IFLjqcmBBgt5xQqsZeJyhYzno1kY0F18N # epVjZsVJRt62x8JRCVB4fNM12wIbRPydZhira0Xkxk0kNBqpyGPzuJ0t/xYsjTSu # pCYbkypjQhmzpVJ7zNN3nUHoB6nCnl1NNWMc8anhyd/XwZo+SZvnfq3Uwb7co714 # HmOlAq3Luv5LC5zh8AzJQb9Uvryg/QHjbR8UZpD/9v4AoLrtaOYjFI8R3JA/eJ+r # McQCCD7oC7HwuLdRhX5ZXa55Ry9ZqyRIFTHrPKPQtajD9fZVfk1tRZnJCESW4xgK # PpvuWEUrEIgmm5pYB3UwsFF64LFBe/+KFSl4igebgR7qszhQIJgti4FVbDp7O3EC # +VAq4IdOWTbqwg6M/TlqTKxOWL53DxLm0/asUI3GDOYF/xYGIYegPcr2nOqSD/9C # QWNGqPEQ7HhC9WBPMtnd0UBI64rEeGQn6dsETsfbv5d2jVgedaU= # =luQL # -----END PGP SIGNATURE----- # gpg: Signature made mié 19 nov 2025 19:37:36 CET # gpg: using RSA key 3D13F97792F4DEBB7FC2F2AC7B4D7D96DB34F1BF # gpg: Can't check signature: No public key
|
Aaaaand merged up to the |
When there were no bots AND no old services to migrate, migrateServicesToBots() was incorrectly returning true, causing unnecessary config saves and potential infinite OnConfigurationChange loops. Added early return when old services array is empty.
Bumping mattermost-plugin-agents to Patch version 1.6.2
|
Merged up to the |
Bumping mattermost-plugin-agents to Minor version 1.7.0
🤖 LLM Evaluation ResultsOpenAI✅ Overall: 20/20 tests passed (100.0%)
Anthropic✅ Overall: 21/21 tests passed (100.0%)
Azure OpenAI✅ Overall: 17/17 tests passed (100.0%)
Mistral✅ Overall: 15/15 tests passed (100.0%)
AWS Bedrock✅ Overall: 18/18 tests passed (100.0%)
This comment was automatically generated by the eval CI pipeline. |
Bumping mattermost-plugin-agents to Patch version 1.7.1 # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEPRP5d5L03rt/wvKse019lts08b8FAmk68X8ACgkQe019lts0 # 8b+TWRAAsyOmWx6ut89xQWq98HYAFBSLxy+rPD/WRd3tG1HCLshzL8htQYnalySV # fQqwKgHMoThKR66EksXKt7fXqr35BYC3xMOaa1a100n6jS58FPxHVPw6UrGYiu1J # 99prtnekpB85Pv0TjbOeRmqpFBqXavtIDsGl/5/lFaKYkQlBwCHhX48OCLZOUc8x # SRcSp0LZF3j3eEGXEBXXDcK+S9M++Tsd6zQQAwSdECViSa3Xysf3+mOYIMADi5Qj # wCQ0OYENa40ZoZDjtEUu1XQwTQiIyi/Fm3qejvL1wAMNIeagLPM0P80397aEtfxm # xi/JHAPTLfVmwzFMiO0RHj+cQj2nkmPJ8vCoUcmiHi24UUcvjrVYhG5sBiUIUAYD # kgNUNu+wifFmr+a1JPEoJ8La3hZav2tkMtUIqsYzDdvyBSQb8p5/xt6eq/Ejyhd9 # WnvStFJ9UQ9ix1GSlI2CiO9eYNPYbxUqs6RGh7fOtfWwNskUNYLtB5y/i75xKJfv # urdp6zcwFB3GpOGvJbw4GQIKmcL2Ucn385RdkTjO4UucW3TsoLEDk+Us0q3w7NW+ # lXxBDLBKAhjtCLILa5iVqEpI7HKdPpQRD6zi0Gjo34r3yV90LHQlH7han3+ZypRD # W0eQE8yErXOO/GCRBvC9P5AyFrQHGy9Mr1hAtyOy/rR5PJ13oLk= # =JPmp # -----END PGP SIGNATURE----- # gpg: Signature made jue 11 dic 2025 17:29:51 CET # gpg: using RSA key 3D13F97792F4DEBB7FC2F2AC7B4D7D96DB34F1BF # gpg: Can't check signature: No public key
|
Merged up to the |
Add FIPS Compliance to Agents Plugin
Summary
This PR adds Federal Information Processing Standards (FIPS) compliance support to the Mattermost Agents Plugin, enabling the plugin to be deployed in FIPS-compliant environments such as government agencies, financial institutions, and other regulated industries.
🎯 What's Changed
Core FIPS Support
make dist-fipscommand to build FIPS-compliant plugin distributionscgr.dev/mattermost.com/go-msft-fips:1.24.4) for buildingBuild System Enhancements
CI/CD Improvements
🔧 Technical Details
FIPS Build Process
The FIPS build process:
-fipssuffixNew Make Targets
make dist-fips- Builds FIPS-compliant plugin distributionmake dist-all- Builds both standard and FIPS distributionsmake server-fips- Builds only the FIPS-compliant server binariesFile Structure
dist/ # Standard plugin distribution
dist-fips/ # FIPS-compliant plugin distribution
├── plugin-linux-amd64-fips
└── plugin.json
🚀 Usage
Building FIPS Plugin
Deployment
Both plugin versions are automatically built in CI and available as release artifacts. The FIPS version can be deployed to FIPS-compliant environments while maintaining the standard version for regular deployments.
🧪 Testing
📋 Checklist
🔒 Security & Compliance
This change enables the plugin to meet FIPS 140-2 compliance requirements by:
�� Related
🎉 Impact
This enhancement significantly expands the plugin's deployment capabilities, making it suitable for:
The change maintains full backward compatibility while adding enterprise-grade compliance features.