Skip to content

Persist projects configured to use an Agent

Tiger Watson requested to merge 323708-agent-authorized-projects into master

What does this MR do?

  • Creates a new model to represent projects that have been configured in an Agent configuration project.
  • Expands the existing auth refreshing logic (currently works in the same way, but at the group level) to include authorized projects.

Further details can be found in !68023 (merged), which added the same model/logic for the group level functionality.

Migrations

== 20210913010411 CreateAgentProjectAuthorizations: migrating =================
-- create_table(:agent_project_authorizations)
   -> 0.0268s
== 20210913010411 CreateAgentProjectAuthorizations: migrated (0.0268s) ========

== 20210913010432 AddAgentProjectAuthorizationsForeignKeys: migrating =========
-- transaction_open?()
   -> 0.0000s
-- foreign_keys(:agent_project_authorizations)
   -> 0.0044s
-- execute("ALTER TABLE agent_project_authorizations\nADD CONSTRAINT fk_1d30bb4987\nFOREIGN KEY (project_id)\nREFERENCES projects (id)\nON DELETE CASCADE\nNOT VALID;\n")
   -> 0.0046s
-- execute("SET statement_timeout TO 0")
   -> 0.0006s
-- execute("ALTER TABLE agent_project_authorizations VALIDATE CONSTRAINT fk_1d30bb4987;")
   -> 0.0099s
-- execute("RESET statement_timeout")
   -> 0.0014s
-- transaction_open?()
   -> 0.0000s
-- foreign_keys(:agent_project_authorizations)
   -> 0.0047s
-- execute("ALTER TABLE agent_project_authorizations\nADD CONSTRAINT fk_b7fe9b4777\nFOREIGN KEY (agent_id)\nREFERENCES cluster_agents (id)\nON DELETE CASCADE\nNOT VALID;\n")
   -> 0.0024s
-- execute("ALTER TABLE agent_project_authorizations VALIDATE CONSTRAINT fk_b7fe9b4777;")
   -> 0.0075s
== 20210913010432 AddAgentProjectAuthorizationsForeignKeys: migrated (0.0481s)
== 20210913010432 AddAgentProjectAuthorizationsForeignKeys: reverting =========
-- foreign_keys(:agent_project_authorizations)
   -> 0.0064s
-- remove_foreign_key(:agent_project_authorizations, {:column=>:project_id})
   -> 0.0068s
-- foreign_keys(:agent_project_authorizations)
   -> 0.0029s
-- remove_foreign_key(:agent_project_authorizations, {:column=>:agent_id})
   -> 0.0049s
== 20210913010432 AddAgentProjectAuthorizationsForeignKeys: reverted (0.0556s)

== 20210913010411 CreateAgentProjectAuthorizations: reverting =================
-- drop_table(:agent_project_authorizations)
   -> 0.0056s
== 20210913010411 CreateAgentProjectAuthorizations: reverted (0.0116s) ========

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 #323708 (closed)

Closes #327411 (closed)

Edited by Mikhail Mazurskiy

Merge request reports