Original discussion/planning issue: Ability to disable project integrations for high compliance requirement customers

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

This issue has been turned into Ability to disable integrations through admin s... (&15666), see that epic for a high-level description of the feature.

This issue has been kept as a record of the discussion.

Click to show original description

Problem

The presence of project integrations (like Jira, Jenkins, Datadog) as abstractions to transfer data to other platforms (or more minor functionality), by nature, is concerning security and compliance teams of high-compliance customers.

Customer feedback: "being able to disable by default and then pick what to re-enable would be ideal, and that behaviour wouldn't break in-use integrations so we could close the barn door and then be selective and allow security review on what integrations are enabled."

Proposed solution

Allow instance Admins to explicitly disable/enable chosen integrations for the instance from UI.

Radio button with two mutually exclusive options:

  • Allow all integrations
  • Allow only integrations on this allowlist

When the option "Allow only integrations on this allowlist" we show a list of all integrations with checkboxes, default to un-checked.

By default, all instances will have "Allow all integrations" option enabled.

If the Admin had chosen the "Allow only integrations on this allowlist" option, and had not enabled any integrations, we interpret that as the entire feature of integrations is disabled on the instance and remove the Settings > Integrations link from the sidenav on group and project levels, and 404 the integrations settings page.

If the Admin had chosen the "Allow only integrations on this allowlist" option, and had enabled at least one integration, we keep the Settings > Integrations link in the sidenav on group and project levels and grey out integrations not enabled by the Admin in UI on group and project level and show a tooltip with a message along the lines of "This integration has been disabled by your Administrator. Contact them to use it." for disabled integrations.

Attempting to edit a disabled integration would result in a 404.

When integrations are removed from the allow list, we will not set their active properties to false. But they must no longer be triggered. This means if the integration was to be later added to the allow list, these integrations would be active immediately.

In case Admin attempts to disable integration that is currently in use, a modal with a warning that this integration is in use and disabling it would break existing workflows should pop up.

Possible implementation

#437656 (comment 1728299610) - cascading setting from instance level

Edited by 🤖 GitLab Bot 🤖