Skip to content

Split inactive profile state#1295

Draft
codenem wants to merge 3 commits into
mainfrom
cursor/profile-pending-state-21a4
Draft

Split inactive profile state#1295
codenem wants to merge 3 commits into
mainfrom
cursor/profile-pending-state-21a4

Conversation

@codenem

@codenem codenem commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Replace profile INACTIVE semantics with PENDING, ACTIVE, and DEACTIVATED, including activation/deactivation timestamps and data migration classification from invitation recency.
  • Update profile lifecycle transitions for create, invite/reinvite, activation, archive/deactivate, SCIM, SAML, sessions, and trust-center activation.
  • Add multi-state profile filters across coredata, GraphQL, MCP, and console owner pickers so assets/data/risks can assign active or pending members.

Verification

  • go generate ./pkg/server/api/connect/v1 && go generate ./pkg/server/api/console/v1 && go generate ./pkg/server/api/mcp/v1
  • make relay
  • make go-fmt
  • go test ./pkg/coredata ./pkg/iam ./pkg/server/api/console/v1 ./pkg/server/api/connect/v1 ./pkg/server/api/mcp/v1 ./pkg/trust ./pkg/cmd/user/list
  • npm --workspace @probo/console run check
  • npm --workspace @probo/n8n-nodes-probo run lint

Linear Issue: ENG-450

Open in Web Open in Cursor 

Summary by cubic

Split the old INACTIVE profile state into PENDING, ACTIVE, and DEACTIVATED so pending members can be assigned assets/data/risks. Adds activation/deactivation timestamps, migrates existing data, and updates filters, APIs, services, and UI to match. Addresses Linear ENG-450.

Coredata +159 -12

  • Added PENDING/ACTIVE/DEACTIVATED and helpers (MarkPending/Active/Deactivated).
  • Added activated_at/deactivated_at fields and queries.
  • Migration converts prior states, classifies pending from recent invites, and backfills timestamps.
  • Profile filter supports multi-state queries.

Service +50 -29

  • Updated IAM, session, SCIM, SAML, trust, and org creation to new states; manual create defaults to PENDING; re-invite moves DEACTIVATED to PENDING.
  • Block DEACTIVATED from starting sessions; activation/deactivation set timestamps.
  • Deactivation still cancels outstanding signature requests.

GraphQL API +17 -5

  • Schemas expose PENDING/ACTIVE/DEACTIVATED and a states[] filter.
  • Resolvers pass multi-state filters through.

MCP +13 -3

  • Spec and resolvers updated for new states and states[] filtering.

prb (CLI) +2 -2

  • list --state accepts PENDING, ACTIVE, DEACTIVATED and updates help text.

App: console +12 -7

  • People list/person page reflect DEACTIVATED; badges show ACTIVE vs others.
  • PeopleGraph filters to ["ACTIVE","PENDING"] for assignments.

Package: n8n-node +2 -1

  • Signature filtering options include Pending and Deactivated.

Tests +1 -1

  • E2E assertions updated to expect DEACTIVATED.

Written for commit c225817. Summary will update on new commits.

Review in cubic

@codenem codenem force-pushed the cursor/profile-pending-state-21a4 branch from 7a0c952 to 0cc3bd5 Compare June 3, 2026 15:04
cursoragent and others added 2 commits June 3, 2026 17:11
Add pending and deactivated profile states so inactive invited users can remain assignable before activation. The migration classifies existing inactive profiles from invitation recency, tracks activation/deactivation timestamps, and updates lifecycle transitions for invites, account activation, SCIM, SAML, and archive flows.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>
Signed-off-by: Émile Ré <emile@probo.com>
@codenem codenem force-pushed the cursor/profile-pending-state-21a4 branch from c1edb38 to a9e8c1e Compare June 3, 2026 15:12
Signed-off-by: Émile Ré <emile@probo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants