Capabilities
The connector syncs Island users and groups and the user → group memberships derived from them. See Synced resource types below for how each set is fetched.
Gather Island credentials
1
Sign in to the Island Management Console for your tenant’s region.
2
Navigate to Modules → Platform Settings → System Settings → Integrations → API.
3
Mint a new API key with the Read-Only role.
4
Store the key securely. The connector sends it verbatim as the lowercase HTTP header
api-key: <key> (no Bearer prefix).Regions
Island operates five public regions. Setbase-url to the regional console URL for your tenant; the connector does not auto-detect region.
The US and EU URLs are verified against public Island documentation. The UK, CA, and AU subdomain pattern is plausible but unconfirmed at the time of this PR — the field is free-form on purpose so operators can configure the exact URL their tenant uses.
Configuration fields
Synced resource types
- Users: Island users from
GET /api/external/v1/users. PII surface includesuser_source,email_verified,expiration_date,last_seen,connection_name,invitation_date, andallowed_tenants_ids. - Groups: derived from distinct
user.groups[]values across the Users walker. Island does not expose a public/groupslist endpoint; the connector materializes the Group resource set in-walker. - Memberships: emitted as user → group grants, one row per
(user.id, groups[i])pair.
Special notes
- Pagination is PascalCase on the wire. Island Users paginate via
?Offset=<n>&Limit=<n>&SortBy=CreatedDate&SortDirection=Asc. The connector defines a dedicatedislandPaginationconstant — it does not reuse Clerk’s lowercase offset/limit helper. - Cross-tenant scope guard. Island Users carry an
allowed_tenants_idsarray. The connector verifies tenant-scope at startup and falls back to a composite(tenant_id, group_name)Group stable id if the API key spans multiple tenants. - Empty
groups[]degrades silently.null, missing, or[]produces zero memberships and contributes zero entries to the derived Group set, with no warning or error logged. This is the normal state for SCIM-provisioned users with no group assignments. - Group names are not normalized. Stable ids are the literal byte-for-byte string from
user.groups[]. The connector does not apply.toLowerCase(),.trim(), or Unicode NFC. - Rate limits are undocumented. The connector honors HTTP 429 responses with exponential backoff (1s → 30s, jittered) and honors
Retry-Afterwhen present.
Configure the Island connector
Follow your organization’s standard connector setup flow for cloud-hosted or self-hosted runtime. Supply thebase-url for your region and the read-only api-key minted in the steps above.