Files
computer-playbook/cli/build/docs/integration_matrix/data.py
T
kevinveenbirkenbachandClaude Opus 5.5 267d193961 fix(docs): follow GitLab's move of the Mattermost notifications page
docs.gitlab.com/user/project/integrations/mattermost_notifications/ now
answers 404, which fails test_urls_reachable in test-external on every
pull request (job 126163816094 on #1358). GitLab serves the same page,
titled "Mattermost notifications", under .../integrations/mattermost/.
Both EDGES copies point there, and `make integration-matrix` regenerated
the one cell of 027-integration-matrix.md that carries the link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 21:47:23 +01:00

526 lines
14 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# nocheck: file-size: curated edge data table; one obvious home for the
# matrix's source-of-truth lists, splitting it only adds indirection.
"""Data tables for the role×role integration matrix generator.
Kept as a sibling importable module so the generator entrypoint stays small
and the curated edge data has one obvious home. The generator reads:
* ``WEB_APP`` / ``WEB_SVC``: the entity-name axes (role suffix of every
``web-app-*`` / ``web-svc-*`` role);
* ``FRAMEWORK``: top-level ``meta/services.yml`` integration keys mapped to
the in-axis target entity they wire the role into (the infinito-native,
group-gated service flags), distinct from the curated upstream edges;
* ``EDGES``: the curated, web-verified upstream app↔app plugin/integration
pages, each ``(source, target, url, kind)`` with ``kind`` in
``{"check", "coin"}``.
"""
from __future__ import annotations
FRAMEWORK: dict[str, str] = {
"sso": "keycloak",
"matomo": "matomo",
"prometheus": "prometheus",
"email": "mailu",
"dashboard": "dashboard",
"css": "css",
"logout": "logout",
"cdn": "cdn",
"coturn": "coturn",
"collabora": "collabora",
"onlyoffice": "onlyoffice",
"libretranslate": "libretranslate",
}
WEB_APP: list[str] = [
"akaunting",
"baserow",
"bigbluebutton",
"bluesky",
"bookwyrm",
"bridgy-fed",
"chess",
"confluence",
"dashboard",
"decidim",
"discourse",
"erpnext",
"espocrm",
"fediwall",
"fider",
"flowise",
"friendica",
"funkwhale",
"fusiondirectory",
"gitea",
"gitlab",
"hugo",
"jenkins",
"jira",
"jitsi",
"joomla",
"keycloak",
"kix",
"lam",
"listmonk",
"littlejs",
"magento",
"mailu",
"mastodon",
"matomo",
"matrix",
"mattermost",
"mediawiki",
"mig",
"minio",
"mini-qr",
"mobilizon",
"moodle",
"navigator",
"nextcloud",
"odoo",
"opencloud",
"openproject",
"opentalk",
"openwebui",
"peertube",
"pgadmin",
"phpldapadmin",
"phpmyadmin",
"pixelfed",
"postmarks",
"pretix",
"prometheus",
"roulette-wheel",
"shopware",
"snipe-it",
"socialhome",
"sphinx",
"suitecrm",
"taiga",
"wordpress",
"xwiki",
"yourls",
"zammad",
]
WEB_SVC: list[str] = [
"asset",
"cdn",
"collabora",
"coturn",
"css",
"file",
"html",
"legal",
"libretranslate",
"logout",
"onlyoffice",
"simpleicons",
"xmpp",
]
ENTITIES: list[str] = WEB_APP + WEB_SVC
EDGES: list[tuple[str, str, str, str]] = [
(
"nextcloud",
"openproject",
"https://github.com/nextcloud/integration_openproject",
"check",
),
("nextcloud", "gitlab", "https://github.com/nextcloud/integration_gitlab", "check"),
(
"nextcloud",
"discourse",
"https://github.com/nextcloud/integration_discourse",
"check",
),
(
"nextcloud",
"mattermost",
"https://github.com/nextcloud/integration_mattermost",
"check",
),
("nextcloud", "matrix", "https://github.com/nextcloud/integration_matrix", "check"),
("nextcloud", "jira", "https://github.com/nextcloud/integration_jira", "check"),
("nextcloud", "zammad", "https://github.com/nextcloud/integration_zammad", "check"),
(
"nextcloud",
"openwebui",
"https://github.com/nextcloud/integration_openai",
"check",
),
(
"nextcloud",
"flowise",
"https://github.com/nextcloud/integration_openai",
"check",
),
(
"nextcloud",
"mastodon",
"https://github.com/nextcloud/integration_mastodon",
"check",
),
(
"nextcloud",
"peertube",
"https://github.com/nextcloud/integration_peertube",
"check",
),
("nextcloud", "moodle", "https://github.com/nextcloud/integration_moodle", "check"),
(
"nextcloud",
"suitecrm",
"https://github.com/eneiluj/integration_suitecrm",
"check",
),
("nextcloud", "bigbluebutton", "https://apps.nextcloud.com/apps/bbb", "check"),
("nextcloud", "xwiki", "https://apps.nextcloud.com/apps/xwiki", "check"),
("nextcloud", "collabora", "https://github.com/nextcloud/richdocuments", "check"),
(
"nextcloud",
"onlyoffice",
"https://github.com/ONLYOFFICE/onlyoffice-nextcloud",
"check",
),
("nextcloud", "keycloak", "https://github.com/nextcloud/user_oidc", "check"),
("nextcloud", "matomo", "https://apps.nextcloud.com/apps/matomo", "check"),
(
"mattermost",
"gitlab",
"https://github.com/mattermost/mattermost-plugin-gitlab",
"check",
),
(
"mattermost",
"jira",
"https://github.com/mattermost/mattermost-plugin-jira",
"check",
),
(
"mattermost",
"jenkins",
"https://github.com/mattermost/mattermost-plugin-jenkins",
"check",
),
(
"mattermost",
"jitsi",
"https://github.com/mattermost-community/mattermost-plugin-jitsi",
"check",
),
(
"mattermost",
"openwebui",
"https://github.com/mattermost/mattermost-plugin-agents",
"check",
),
(
"mattermost",
"prometheus",
"https://github.com/cpanato/mattermost-plugin-alertmanager",
"check",
),
(
"mattermost",
"keycloak",
"https://docs.mattermost.com/administration-guide/onboard/sso-saml.html",
"coin",
),
(
"gitlab",
"mattermost",
"https://docs.gitlab.com/user/project/integrations/mattermost/",
"check",
),
("gitlab", "jira", "https://docs.gitlab.com/integration/jira/", "check"),
("gitlab", "jenkins", "https://docs.gitlab.com/integration/jenkins/", "check"),
(
"gitlab",
"matrix",
"https://docs.gitlab.com/user/project/integrations/matrix/",
"check",
),
(
"gitlab",
"confluence",
"https://docs.gitlab.com/user/project/integrations/confluence/",
"check",
),
("gitlab", "keycloak", "https://docs.gitlab.com/integration/saml/", "check"),
(
"discourse",
"mattermost",
"https://github.com/discourse/discourse-chat-integration",
"check",
),
(
"discourse",
"matrix",
"https://github.com/discourse/discourse-chat-integration",
"check",
),
(
"discourse",
"prometheus",
"https://github.com/discourse/discourse-prometheus",
"check",
),
(
"discourse",
"bigbluebutton",
"https://github.com/discourse/discourse-bbb",
"check",
),
("discourse", "jitsi", "https://github.com/discourse/discourse-jitsi", "check"),
("discourse", "openwebui", "https://github.com/discourse/discourse-ai", "check"),
(
"discourse",
"matomo",
"https://github.com/discourse/discourse-matomo-analytics",
"check",
),
(
"discourse",
"keycloak",
"https://github.com/discourse/discourse-openid-connect",
"check",
),
(
"discourse",
"mastodon",
"https://github.com/discourse/discourse-activity-pub",
"check",
),
("matrix", "gitlab", "https://github.com/matrix-org/matrix-hookshot", "check"),
("matrix", "jira", "https://github.com/matrix-org/matrix-hookshot", "check"),
(
"matrix",
"keycloak",
"https://matrix-org.github.io/synapse/latest/openid.html",
"check",
),
(
"matrix",
"prometheus",
"https://matrix-org.github.io/synapse/latest/metrics-howto.html",
"check",
),
(
"matrix",
"jitsi",
"https://github.com/element-hq/element-web/blob/develop/docs/jitsi.md",
"check",
),
(
"moodle",
"bigbluebutton",
"https://moodle.org/plugins/mod_bigbluebuttonbn",
"check",
),
("moodle", "nextcloud", "https://moodle.org/plugins/repository_owncloud", "check"),
("moodle", "matrix", "https://docs.moodle.org/en/Matrix", "check"),
("moodle", "keycloak", "https://moodle.org/plugins/auth_oidc", "check"),
("moodle", "jitsi", "https://moodle.org/plugins/mod_jitsi", "check"),
("moodle", "matomo", "https://moodle.org/plugins/tool_webanalytics", "check"),
("moodle", "openwebui", "https://moodle.org/plugins/aiprovider_openwebui", "check"),
("jenkins", "gitlab", "https://plugins.jenkins.io/gitlab-plugin", "check"),
("jenkins", "gitea", "https://plugins.jenkins.io/gitea/", "check"),
("jenkins", "mattermost", "https://plugins.jenkins.io/mattermost/", "check"),
("jenkins", "prometheus", "https://plugins.jenkins.io/prometheus", "check"),
("jenkins", "keycloak", "https://plugins.jenkins.io/oic-auth/", "check"),
(
"openproject",
"nextcloud",
"https://www.openproject.org/docs/system-admin-guide/integrations/nextcloud/",
"check",
),
(
"openproject",
"gitlab",
"https://www.openproject.org/docs/system-admin-guide/integrations/gitlab-integration/",
"check",
),
(
"openproject",
"keycloak",
"https://www.openproject.org/docs/system-admin-guide/authentication/openid-providers/",
"coin",
),
("wordpress", "matomo", "https://wordpress.org/plugins/matomo/", "check"),
("wordpress", "mastodon", "https://wordpress.org/plugins/activitypub/", "check"),
("wordpress", "discourse", "https://wordpress.org/plugins/wp-discourse/", "check"),
(
"wordpress",
"keycloak",
"https://wordpress.org/plugins/daggerhart-openid-connect-generic/",
"check",
),
(
"wordpress",
"listmonk",
"https://wordpress.org/plugins/integration-for-listmonk-mailing-list-and-newsletter-manager/",
"check",
),
(
"wordpress",
"bigbluebutton",
"https://wordpress.org/plugins/video-conferencing-with-bbb/",
"check",
),
(
"wordpress",
"peertube",
"https://wordpress.org/plugins/video-manager-for-peertube/",
"check",
),
(
"mediawiki",
"keycloak",
"https://www.mediawiki.org/wiki/Extension:OpenID_Connect",
"check",
),
("mediawiki", "matomo", "https://www.mediawiki.org/wiki/Extension:Matomo", "check"),
(
"mediawiki",
"discourse",
"https://www.mediawiki.org/wiki/Extension:DiscourseSsoConsumer",
"check",
),
(
"mediawiki",
"peertube",
"https://www.mediawiki.org/wiki/Extension:PeerTubeEmbed",
"check",
),
(
"mediawiki",
"libretranslate",
"https://www.mediawiki.org/wiki/Extension:MachineTranslation",
"check",
),
("mediawiki", "minio", "https://www.mediawiki.org/wiki/Extension:AWS", "check"),
(
"mediawiki",
"openwebui",
"https://www.mediawiki.org/wiki/Extension:AIEditingAssistant",
"check",
),
(
"xwiki",
"keycloak",
"https://extensions.xwiki.org/xwiki/bin/view/Extension/OpenID%20Connect/",
"check",
),
(
"xwiki",
"matomo",
"https://extensions.xwiki.org/xwiki/bin/view/Extension/Piwiki%20Integration",
"check",
),
(
"joomla",
"keycloak",
"../../roles/web-app-joomla/files/joomla-oidc-plugin/",
"check",
),
(
"joomla",
"matomo",
"https://extensions.joomla.org/extension/itcs-matomo/",
"check",
),
("friendica", "matomo", "https://github.com/friendica/friendica-addons", "check"),
(
"pretix",
"keycloak",
"https://docs.pretix.eu/en/latest/admin/installation/index.html",
"check",
),
(
"peertube",
"keycloak",
"https://www.npmjs.com/package/peertube-plugin-auth-openid-connect",
"check",
),
(
"bigbluebutton",
"keycloak",
"https://docs.bigbluebutton.org/greenlight/v3/external-authentication/",
"check",
),
(
"zammad",
"keycloak",
"https://admin-docs.zammad.org/en/latest/settings/security/third-party/saml.html",
"check",
),
(
"zammad",
"mailu",
"https://admin-docs.zammad.org/en/latest/channels/email/index.html",
"check",
),
("espocrm", "keycloak", "https://docs.espocrm.com/administration/oidc/", "check"),
(
"espocrm",
"mailu",
"https://docs.espocrm.com/user-guide/imap-smtp-configuration/",
"check",
),
(
"suitecrm",
"keycloak",
"https://docs.suitecrm.com/8.x/admin/configuration/saml/8.7.0-saml-configuration/",
"check",
),
(
"suitecrm",
"mailu",
"https://github.com/SuiteCRM/SuiteCRM",
"check",
),
(
"odoo",
"keycloak",
"https://github.com/OCA/server-auth/tree/16.0/auth_oidc",
"check",
),
(
"odoo",
"mailu",
"https://www.odoo.com/documentation/latest/applications/general/email_communication.html",
"check",
),
(
"odoo",
"nextcloud",
"https://apps.odoo.com/apps/modules/19.0/nextcloud_odoo_integration",
"coin",
),
(
"erpnext",
"keycloak",
"https://docs.frappe.io/framework/user/en/guides/integration/openid_connect_and_frappe_social_login",
"check",
),
(
"erpnext",
"mailu",
"https://docs.frappe.io/erpnext/user/manual/en/setting-up-email-account",
"check",
),
(
"baserow",
"keycloak",
"https://baserow.io/user-docs/configure-openid-connect-for-oauth-2-sso",
"coin",
),
(
"taiga",
"keycloak",
"https://github.com/taigaio/taiga-contrib-oidc-auth",
"check",
),
]