Skip to content

feat(integrations): emit per-user rows from the Google Workspace employee-access check - #3352

Merged
tofikwest merged 3 commits into
mainfrom
tofik/gw-employee-access-per-user
Jul 6, 2026
Merged

feat(integrations): emit per-user rows from the Google Workspace employee-access check#3352
tofikwest merged 3 commits into
mainfrom
tofik/gw-employee-access-per-user

Conversation

@tofikwest

@tofikwest tofikwest commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

What

The Google Workspace employee-access check now emits one result row per personresourceType: 'user', resourceId = lowercased email, with role/name/status details in each row's evidence — instead of a single org-level row with the whole roster buried in one evidence blob.

Why

Person-scoped features join check results to org members by email (the People-tab 2FA column already works this way). The Employee Access task feeds the upcoming per-member Access view, which needs per-person rows to match people deterministically. This aligns the check with the same shape the 2FA checks use.

Notes

  • Role resolution (Super Admin / Delegated Admin / assigned roles), org-unit + sync-email filtering, and pagination are unchanged.
  • A run that matches zero users still emits one org-level summary row, so a run never stores zero results.
  • Access rows are an inventory — every person row emits as pass; task pass/fail behavior is unchanged.
  • No existing code reads the old evidence.employees[] shape (checked both repos).

Tests

New employee-access.test.ts — per-user emission, lowercased email keying, role evidence, suspended-user filtering, zero-user summary row. Full package suite: 421 pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_013WLGUUjG6uLd6xvNhUpge1


Summary by cubic

Google Workspace employee-access now emits one row per user (resourceType: 'user', resourceId = lowercased email) with role/name/status in evidence. Docs in check-results-service now inline the standard person-scoped result shape; zero-user runs still emit a single org-level summary.

  • New Features
    • Role evidence normalized to Super Admin / Delegated Admin / User; task pass/fail unchanged.
    • Suspended users are filtered; role resolution and pagination unchanged.

Written for commit 4027d4a. Summary will update on new commits.

Review in cubic

…oyee-access check

One row per person (resourceType 'user', resourceId = lowercased email)
instead of a single org-level row with the roster buried in evidence —
person-scoped features join check results to org members by email.
Role resolution, filtering, and pagination unchanged; a zero-user run
still emits one org-level summary row.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013WLGUUjG6uLd6xvNhUpge1
@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app Ready Ready Preview, Comment Jul 6, 2026 2:32am
comp-framework-editor Ready Ready Preview, Comment Jul 6, 2026 2:32am
portal Ready Ready Preview, Comment Jul 6, 2026 2:32am

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

…k-results-service

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013WLGUUjG6uLd6xvNhUpge1

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread .claude/skills/check-results-service/SKILL.md Outdated
The section referenced a skill file that lives outside the repo; inline
the normative definition instead so the cross-reference isn't broken for
repo readers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013WLGUUjG6uLd6xvNhUpge1
@tofikwest

Copy link
Copy Markdown
Contributor Author

Fixed — the referenced skill file lives outside this repo, so the section is now self-contained: the shape contract is defined inline and the broken cross-references are removed.

@tofikwest
tofikwest merged commit 0b54252 into main Jul 6, 2026
11 checks passed
@tofikwest
tofikwest deleted the tofik/gw-employee-access-per-user branch July 6, 2026 02:32
claudfuen pushed a commit that referenced this pull request Jul 6, 2026
# [3.97.0](v3.96.1...v3.97.0) (2026-07-06)

### Bug Fixes

* **people:** polish the redesigned People tab (requirement columns, filters, per-employee 2FA) ([#3347](#3347)) ([75758ec](75758ec))

### Features

* **integrations:** emit per-user rows from the Google Workspace employee-access check ([#3352](#3352)) ([0b54252](0b54252))
* **people:** access tab on member details, per connected integration ([#3349](#3349)) ([83f188c](83f188c)), closes [#2](https://github.com/trycompai/comp/issues/2)
@claudfuen

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.97.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants