Contributing
Create a focused branch from the current main branch, keep each change scoped,
and include tests and documentation for user-visible behavior. Do not commit
.env, generated private keys, databases, email output, or production event
data.
Before opening a pull request:
- Install
requirements.txtandrequirements-docs.txtin a virtual environment. - Run Django checks and the complete test suite.
- When API behavior changes, generate the OpenAPI schema.
- Run the environment-reference checker and
mkdocs build --strict. - When browser assets or templates change, run
collectstatic. - Explain the user impact, security implications, and migration needs in the pull request.
- Explain the manual checks that you completed.
Use Django includes and app static JavaScript for frontend work. Update vendored
dependencies with tools/vendor_assets.py --update. Make sure that the checksums
are correct. Then commit the updated manifest and assets together.
Preserve the role-specific settings split. Put shared defaults in
SIEMatic/settings/base.py. Put role-only behavior in web.py, agent.py,
indexer.py, or crawler.py. Give new extension points stable import paths and
clear configuration. Their failure messages must not disclose secrets.