Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

updateSiteConfig mutation does not check lastID #35428

@michaellzc

Description

@michaellzc

Context

The updateSiteConfiguration mutation is expecting a lastID to prevent race condition, but the site config id returns from query { site { configuration { id } }} is always 0 instead of the actual id of the latest entry in the critical_and_site_config table.

https://sourcegraph.com/github.com/sourcegraph/sourcegraph@52625b180109d12847f8f635ca04deae5c563bb5/-/blob/cmd/frontend/graphqlbackend/site.go?L183-186
The implementation to validate lastID was never finished

The problem

It's been fine for the past years and worst-case scenario people just redo the changes.

However, @sourcegraph/cloud-devops has been working on automation lately that are programmatically changing the site config, such as, https://github.com/sourcegraph/deploy-sourcegraph-managed/blob/main/util/cmd/mg_mute_alert.go#L45-L90

Moreover, when cloud v2 comes, I expect most changes to the current site config will be done through machines instead of humans (we would like to minimize the surface are to users since right now changing the site-config could potentially break the deployment). It is reasonable to add validation to lastID to avoid concurrent edit.

original thread: https://sourcegraph.slack.com/archives/C07KZF47K/p1652374598098269

Metadata

Metadata

Assignees

Labels

debtTechnical debt.p2Priority 2

Type

No type
No fields configured for issues without a type.

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions