Skip to content

Contributions & Community

For details on contributing, community standards, and licensing, see:

Checklist when adding a new engine

Engine Implementation

  • Make sure the engine is added to engines/engine_name.py (use engines/abuseipdb.py as a template).
  • Make sure the engine is added to engines/__init__.py.
  • Make sure that your engine config/secret variable (if relevant) is added to utils/config.py.

Configuration & Secrets

  • Make sure any API key or configuration needed for the engine is added to secrets_sample.json and .env.sample.
  • Make sure you can save secrets using the config.html page.
  • Make sure that the templating of variables in docker-compose.yml is correct.

UI & Frontend

  • Make sure the engine result can be copied to clipboard using the GUI in static/format_results.js.
  • Make sure every template in templates/ has corresponding engine result template in templates/engines_layouts/ - engine_card.html and engine_table.html.
  • Make sure the engine is added in display_cards.html and display_table.html.
  • Make sure the engine is in the GUI form index.html with relevant description - alphabetic order.
  • Make sure the engine is usable in the graph view in graph.html.

Documentation

  • Make sure the engine is documented in docs/api-keys/Get-Engine-API-key.md if relevant.
  • Make sure to add the link to the API key guide in docs/index.md if relevant.
  • Make sure the engine is documented in docs/quick-start/API-usage-and-engine-names.md.
  • Make sure to add the page to the sidebar in mkdocs.yml.
  • Make sure the engine is documented in docs/quick-start/Quick-start-&-Installation.md in the secrets.json example.
  • Make sure to add any environment variable needed to docs/quick-start/Advanced-options-for-deployment.md in the docker compose example.
  • Make sure to add references in the README.md (secrets.json example and URL of the new engine in the "API and third-party services" section).

Note: if you use an LLM to code, just make sure to use this list as a checklist to verify everything is covered (if something is missing, add it!).