Files
computer-playbook/docs/requirements/integration_matrix_data.py
T
kevinveenbirkenbachandClaude Opus 5 5137465c6f style: delete every comment the comments-valid policy rejects
3529 invalid comments in 528 files, grandfathered in while the linter
only saw the working-tree diff. Removal ran through the linter's own
collectors, so detection and deletion cannot drift: a comment whose
opener line is blank before it and whose closer line is blank after it
loses all its lines, anything else loses only the comment region, and a
line left holding a bare delimiter goes with it.

Five files keep their comments behind a nocheck marker instead. Four are
upstream configs whose inline docs are upstream's own (mautrix, systemd
journald, nextcloud-oidc-login, MediaWiki). In littlejs the
commented-out entries ARE the deactivation mechanism for an example
tile, so deleting them would delete configuration.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 03:22:02 +02: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/onboard/sso-saml.html",
"coin",
),
(
"gitlab",
"mattermost",
"https://docs.gitlab.com/user/project/integrations/mattermost_notifications/",
"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",
),
]