Skip to content

E2e test for provisioning secrets manager and creating secret permissions

What does this MR do and why?

Issue link: #569616 and #575589

This MR adds end-to-end testing infrastructure and tests for GitLab's Secrets Manager feature, which integrates with OpenBao. It introduces a GraphQL health check endpoint, helper utilities, and comprehensive test coverage for provisioning and managing secrets manager permissions.

Key Changes

GraphQL API Enhancements:

  • Added openbaoHealth query to check if the OpenBao instance is healthy and reachable
  • Implemented OpenbaoHealthResolver that verifies OpenBao is initialized and unsealed
  • Added check_health method to SecretsManagerClient for health status validation

QA Test Infrastructure:

  • Created SecretsManagerHelper module with utilities for:
    • Deprovisioning secrets manager via GraphQL
    • Checking OpenBao health status
  • Added page objects for managing secrets manager settings and permissions in project visibility settings
  • Implemented methods to add and verify user, role, and group permissions with specific scopes (create, read, update, delete)

E2E Test Coverage:

  • Added test for enabling/disabling the secrets manager feature
  • Includes OpenBao health check before running tests
  • Tests provisioning workflow and deprovisioning via GraphQL

Configuration & Fixes:

  • Enabled OpenBao in GDK configuration (qa/gdk/gdk.yml)
  • Fixed module include paths across multiple QA resource files (changed Support::Dates to QA::Support::Dates)

This provides the foundation for testing secrets management workflows and ensures the OpenBao integration is properly validated in the QA environment.

Edited by Shabini Rajadas

Merge request reports

Loading