Slop Facts
1 provider per chat server
Serving size41 resources
Amount per release
Written by machines100%
% verified
- Read by humans
- 0
- 0%
- Acceptance tests against a real server in Docker
- 43
- 100%
- Test functions
- 246
- 100%
- API operations classified 600 documented, none unaccounted for
- 600
- 100%
- Lint findings every linter enabled
- 0
- 0%
- Data sources
- 32
- Statement coverage
- 91%
- API quirks documented
- 29
- Go, hand-written
- 0 lines
Coverage is 88% with no server at all and 91% against a live one. Two
gates keep the suite honest: one fails if any attribute is never
written, the other if any registered configuration is never applied.
Every run sweeps the server clean afterwards, whether it passed or not.
A Terraform provider for Mattermost — teams and channels, users, bots and
their tokens, webhooks and slash commands, permission schemes, groups,
and the system configuration.
The configuration has several hundred settings across four dozen
sections, so the resource takes the ones you want as a JSON document and
manages exactly those, restoring what it found on destroy. Writing it
turned up twenty-nine places where Mattermost accepts something and quietly
does nothing with it: a team's contact address, a user's verified flag,
a token's expiry. The last one matters — asking for a token that expires
and getting a permanent one is not a difference to discover later — so
the provider checks what came back and fails.
Guests can be invited with a magic link — a mail that signs them in
without a password. Mattermost asks for that with a query parameter
its own Go client does not pass, so calling the obvious method sends
an ordinary signup link instead and tells you nothing. The provider
builds that request itself. Proving it works meant putting a mail
catcher in the test stack: the link exists only inside the email, and
a test that trusted the API's 200 would pass either way.
Install
terraform {
required_providers {
mattermost = {
source = "slop-place/mattermost"
version = "~> 0.1"
}
}
}
Read the source
Where the API disagrees with its docs