Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions dev/TODO.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
# TODO

## Medium priority: extend SAML-group live coverage to org sync

tests/setup.py now fabricates SAML accounts with synthetic groups
(`perms-sync-test-eng` / `perms-sync-test-sales`, see tests/setup.yaml).
saml-group-live covers permission mapping; add a seeded
`sync-saml-orgs --apply` live case that maps those groups to a throwaway
org and asserts membership is added AND removed (today's
sync-saml-orgs-apply only covers the single real Okta user, add-only).

## Decide: pendingBindIDs / usersWithPendingPermissions

The CLI cannot create pending permissions (it validates users exist), but
Expand All @@ -30,11 +21,6 @@ See the thread discussion 2026-06-11.
- How do we avoid stampedes (e.g., bulk repo sync triggering thousands
of re-runs)?

## High priority: Verify perms are updated when a user's SAML groups change

- If a user gets added to a new SAML group, which hits a mapping, ensure they
get the new perms

## High priority: Reduce worst-case full-permission sync load

- Use the stress-run evidence in
Expand Down
15 changes: 15 additions & 0 deletions tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,21 @@ files (e.g. `test_user_09991`, `test-repo-49981`), and exact selectors only
instance's Postgres) is opt-in only: `uv run tests/run.py --live "full
cycle"`.

Two live flows need seeding beyond the registry's repo-grant model, so
they live as harness checks in run.py rather than tests.yaml cases:

- **`live: sync-saml-orgs seeded`** — diverges one synthetic-group org's
membership both ways (adds a member no SAML group justifies, removes a
member the group requires), then one `sync-saml-orgs --apply` must
converge every synthetic-group org back to SAML truth, verified by an
independent member read-back.
- **`live: perms follow saml group change`** — proves a user added to a
mapped SAML group gains the mapped perms: baseline apply with the
saml-group-live mapping, then the fabricated SAML account of a
non-member gains the group (setup.py's SQL path), the same apply runs
again, and the user must now hold the grants. Account and repos are
restored afterwards.

Functional coverage of scale-only code paths (pagination, batch stepping,
dedupe) does NOT require scale data: the local fake serves site-user pages
of at most 2 (`SITE_USERS_PAGE_CAP` in `e2e/case_runner.py`), so a fixture
Expand Down
Loading