Cells: Term Agreements

Term agreements will be cell-local. As a result, users migrated to another cell will be prompted to re-accept the terms and conditions.

1. Definition

GitLab allows administrators to require all users to accept terms of service before they can use the instance. Acceptance is recorded as a term agreement associated with the user.

2. Data flow

Term agreements are stored per-cell. When a user accepts terms on a given cell, that acceptance is only recorded locally on that cell. There is no cluster-wide record of term acceptance.

3. Proposal

3.1. Cell-local term agreements

Term agreements will remain cell-local. When a user is migrated to a new cell, their term agreement from the source cell is not transferred. The user will be prompted to re-accept terms on the destination cell before they can proceed.

This approach is consistent with keeping user-facing compliance actions scoped to the cell the user is currently operating on. See issue #595225 for the decision rationale.

4. Evaluation

We choose Cell-local term agreements.

4.1. Pros

  • No cross-cell synchronization of term agreement state is required.
  • Term acceptance remains auditable and enforceable per-cell.

4.2. Cons

  • Users migrated to another cell must re-accept terms, which may be unexpected.