Mattermost Plugin: mm-importer
When to use
- •Editing plugin server code under
infra/plugin/server/ - •Updating plugin API endpoints or behavior
- •Changing attachment streaming (
/attachment_from_url) or size validation - •Building and packaging the plugin bundle for deployment
Key rules
- •Do not use legacy build scripts. Use the multi-stage Docker build helper:
- •
bash infra/plugin/build-docker.sh
- •
- •If you change plugin code, bump the version in
infra/plugin/plugin.jsonfollowing SemVer.
Build (canonical)
From repo root:
- •
bash infra/plugin/build-docker.sh
Expected output:
- •
infra/plugin/dist/mm-importer-<version>.tar.gz
Deploy / enable via backend
Backend management endpoints are exposed in two equivalent forms:
- •
/plugin/*(legacy, used by some scripts) - •
/api/plugin/*(documented in the root README)
Common endpoints:
- •
GET /plugin/status(orGET /api/plugin/status) - •
POST /plugin/ensure(orPOST /api/plugin/ensure) — idempotent deploy+enable - •
POST /plugin/deploy(orPOST /api/plugin/deploy) - •
POST /plugin/enable(orPOST /api/plugin/enable) - •
POST /plugin/reinstall(orPOST /api/plugin/reinstall)
Typical flow:
- •Ensure backend is healthy:
curl http://localhost:8000/healthcheck - •Ensure plugin installed+enabled:
curl -X POST http://localhost:8000/plugin/ensure - •Verify plugin responds (example):
http://localhost:8065/plugins/mm-importer/api/v1/hello
Related docs
- •Plugin API + build/deploy strategy: infra/plugin/README.md
- •Backend API routes overview: backend/app/api/README.md
- •Backend plugin endpoint implementation: backend/app/api/plugin.py
- •Public API examples: README.md