Skip to content

Draft: Add disable_joins for has_one through: cross-joins

What does this MR do?

These has_one ... through: join between non ci_* tables and ci_* tables which will not be allowed when ci_* tables are moved to a separate database. Using the disable_joins feature we patched in from !66400 (merged) .

Queries

Security::Finding#build

Before:

After:

SELECT "security_scans"."build_id" FROM "security_scans" WHERE "security_scans"."id" = 13 

SELECT "ci_builds".* FROM "ci_builds" WHERE "ci_builds"."id" = 19 AND "ci_builds"."type" = 'Ci::Build' ORDER BY "ci_builds"."id" ASC LIMIT 1

Environment#last_deployable

Before:

After:

Environment#last_visible_deployable

Before:

After:

Environment#last_visible_pipeline

Before:

After:

SELECT "deployments"."deployable_id" FROM "deployments" WHERE "deployments"."environment_id" = 21 AND "deployments"."status" IN (1, 2, 3, 4) AND "deployments"."deployable_type" = 'CommitStatus' ORDER BY environment_id, deployments.id DESC /*application:test,correlation_id:a340443deeb2f579dc9edb943f44fe3e*/

SELECT "ci_builds"."commit_id" FROM "ci_builds" WHERE "ci_builds"."id" = 21 /*application:test,correlation_id:a340443deeb2f579dc9edb943f44fe3e*/

SELECT "ci_pipelines".* FROM "ci_pipelines" WHERE "ci_pipelines"."id" = 21 ORDER BY "ci_pipelines"."id" ASC LIMIT 1 /*application:test,correlation_id:a340443deeb2f579dc9edb943f44fe3e*/

How to setup and validate locally (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Related to #338006 (closed)

Merge request reports