✨ Add Rippling provider (company / workforce / org structure)#7695
Open
tas50 wants to merge 2 commits into
Open
✨ Add Rippling provider (company / workforce / org structure)#7695tas50 wants to merge 2 commits into
tas50 wants to merge 2 commits into
Conversation
Contributor
Test Results6 030 tests ±0 6 026 ✅ ±0 3m 13s ⏱️ -9s For more details on these failures, see this check. Results for commit d856125. ± Comparison against base commit 629c9c2. ♻️ This comment has been updated with latest results. |
d856125 to
c535b8e
Compare
846108c to
b2f07f8
Compare
Member
Author
|
/review |
3a29d73 to
6c5d436
Compare
Adds providers/rippling, a new SaaS provider that exposes the company profile, workforce, and org structure of a Rippling-managed company. Auth is a Rippling Platform API token via --token or RIPPLING_API_TOKEN. Resources: rippling, rippling.company, rippling.employee, rippling.department, rippling.team, rippling.workLocation, rippling.group. Compensation, benefits, and payroll-mechanics fields are intentionally not modeled — the provider is scoped to identity, org structure, and access auditing. Lightweight in-repo HTTP client over the Rippling Platform REST API (no Go SDK exists). Pagination handled via limit/offset query parameters; the math is covered by a unit test. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6c5d436 to
e0e1ebd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
providers/rippling, a new SaaS provider that exposes the company profile, workforce, and org structure of a Rippling-managed company. Auth is OAuth 2.0 — the provider takes a client ID, client secret, and refresh token via--client-id/--client-secret/--refresh-token(orRIPPLING_CLIENT_ID/RIPPLING_CLIENT_SECRET/RIPPLING_REFRESH_TOKEN).rippling,rippling.company,rippling.employee,rippling.department,rippling.team,rippling.workLocation,rippling.group. Compensation, benefits, and payroll-mechanics fields are intentionally not modeled — the provider is scoped to identity, org structure, and access auditing.limit/offsetquery parameters; covered by a unit test on the pagination math.Authentication
golang.org/x/oauth2; the access token is refreshed automatically as it expires. No static API token is involved.What you can audit
terminated=trueand no remaining manager reportsAdmin,Finance, …) has a bounded membershiproleStatusvalues stay within the documented set (ACTIVE,TERMINATED,LEAVE_OF_ABSENCE)Files of interest
providers/rippling/resources/rippling.lr— schemaproviders/rippling/connection/client.go— REST client + paginatorproviders/rippling/connection/client_test.go— pagination math unit testproviders/rippling/connection/connection.go— OAuth credential handling and asset identifierproviders/rippling/provider/provider.go— flag handling and asset detectionNotes for review
rippling.companies()is always a one-element list (kept plural to match the rest of the schema and avoid a name clash withrippling.company).Test plan
make providers/build/ripplingsucceedsmake providers/install/rippling && mql shell rippling --client-id $RIPPLING_CLIENT_ID --client-secret $RIPPLING_CLIENT_SECRET --refresh-token $RIPPLING_REFRESH_TOKENrippling.companies { name legalName }rippling.employees.where(terminated == false) { workEmail department { name } }rippling.departments { name parent { name } }rippling.workLocations { nickname city state }rippling.groups { name members.length }--api-baseoverride works for a custom Rippling base URL🤖 Generated with Claude Code