BambooHR Minimal Connection Proof
Overview
Verify routing, TLS, authentication, and basic permission with the smallest useful call. Do not begin with the employee directory: it contains personal data and is unnecessary for a connectivity test.
Prerequisites
- The target repository or integration path and the requested operator outcome.
- The tenant, identity, and data scope only when approved live work is in scope.
- The current evidence register plus customer-specific permissions and agreements.
Current Contract
Use the tenant-local host https://company-subdomain.bamboohr.com. The official
OpenAPI operation GET /api/v1/company_information returns basic company
profile information and supports OAuth or API-key authentication.
Authentication
Prefer a short-lived OAuth access token for partner integrations. For an
internal API key, Basic auth uses the API key as username and x as password.
Load secrets from the current process environment or an approved secret manager;
never place a token directly in the command, URL, source file, or receipt.
Instructions
-
Confirm the exact tenant subdomain and auth mode. Reject slashes, schemes, ports, and dots in the subdomain input.
-
Inspect the project for an existing BambooHR client and reuse its timeout, user-agent, request-ID, and redaction controls.
-
If an operator approves a direct API-key smoke test, run a body-discarding request:
curl --fail-with-body --silent --show-error \ --max-time 20 --output /dev/null --write-out '%{http_code}\n' \ --user "${BAMBOOHR_API_KEY}:x" \ "https://${BAMBOOHR_COMPANY_SUBDOMAIN}.bamboohr.com/api/v1/company_information" -
For OAuth, send
Authorization: Bearer …from the application's secret- aware HTTP client rather than echoing a token through shell history. -
Record timestamp, tenant alias, auth mode, HTTP status, elapsed time, and a server request ID when available. Do not retain the response body.
-
Only after the connection proof succeeds, request approval for an employee- scoped test with an explicitly minimized field list.
Tool Discipline
Use Read, Glob, and Grep to find current client and configuration conventions.
Use Write/Edit only to add an approved example or test. Bash is restricted to
curl; show the exact host and body-retention behavior before executing it.
Safety Justification
The optional live request can reach sensitive HR infrastructure. It is limited to HTTPS, one read-only company-information endpoint, a finite timeout, no body retention, and operator approval for the tenant and credential.
Approval Boundaries
Do not make a live request, access an employee endpoint, install a package, or
write credentials without explicit approval. A successful 200 proves only
this identity can perform this operation; it does not prove broader access.
Output
Return a PASS/FAIL receipt with tenant alias, endpoint class, auth mode, status, latency, request ID, redaction confirmation, and the next narrow test.
Error Handling
- DNS/TLS failure: verify the tenant subdomain and trust path.
401: validate credential type and freshness without printing it.403: the identity lacks the operation; do not escalate permissions silently.429,504, or598: report the transient condition and defer to the retry skill.
Examples
- "Test our BambooHR setup" produces a proposed body-discarding company-info check.
- "Dump the directory to prove it works" is narrowed to the connection proof.
Resources
Read official evidence before running the smoke test.