mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-12 21:56:21 +00:00
supported_version and minimum_version sat in 24 roles and were read by no template, no task and no lookup. Their only consumer was the audit report version column, which turned false the moment an automated image bump ran: qdrant reported a verified version nobody had verified, two releases long. Both leave MCP_KEYS, so a role that declares them again fails the schema lint instead of carrying a field with no effect. Requirement 025 mandated minimum_version as a MUST and 035 carried it in an example; both are corrected here, otherwise the repository would contradict its own code. The gate then surfaced five dead docs.mattermost.com links. Mattermost moved to /administration-guide/ and /deployment-guide/, and every replacement was probed for 200 rather than guessed. The MCP page is gone with no successor, so mattermost now points at mcpserver/README.md in the Agents repository, the source rather than a rendered mirror. Both concerns share three files - mattermost's meta/mcp.yml, requirement 025, and the generated audit.md, which derives from a source of each - so splitting them would commit an artifact that does not match its sources. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
526 lines
14 KiB
Python
526 lines
14 KiB
Python
# 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_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",
|
||
),
|
||
]
|