Skip to content

Commit 14815e9

Browse files
committed
chore(credential-sets): cleanup feature
1 parent 6d5ac58 commit 14815e9

103 files changed

Lines changed: 16881 additions & 5388 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/commands/add-trigger.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ export const {service}PollingHandler: PollingProviderHandler = {
374374

375375
try {
376376
// For OAuth services:
377-
const accessToken = await resolveOAuthCredential(webhookData, '{service}', requestId, logger)
377+
const accessToken = await resolveOAuthCredential(webhookData, '{service}', requestId)
378378
const config = webhookData.providerConfig as unknown as {Service}WebhookConfig
379379

380380
// First poll: seed state, emit nothing
@@ -421,7 +421,7 @@ export const {service}PollingTrigger: TriggerConfig = {
421421
polling: true, // REQUIRED — routes to polling infrastructure
422422

423423
subBlocks: [
424-
{ id: 'triggerCredentials', type: 'oauth-input', title: 'Credentials', serviceId: '{service}', requiredScopes: [], required: true, mode: 'trigger', supportsCredentialSets: true },
424+
{ id: 'triggerCredentials', type: 'oauth-input', title: 'Credentials', serviceId: '{service}', requiredScopes: [], required: true, mode: 'trigger' },
425425
// ... service-specific config fields (dropdowns, inputs, switches) ...
426426
{ id: 'triggerInstructions', type: 'text', title: 'Setup Instructions', hideFromPreview: true, mode: 'trigger', defaultValue: '...' },
427427
],

.claude/rules/sim-queries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Next.js rewrites **every** export of a `'use client'` module into a *client refe
3434
So any **query-key factory, standalone `requestJson` fetcher, mapper, or constant** that a server module imports must live in a **non-`'use client'`** module:
3535

3636
- key factories → `hooks/queries/utils/<entity>-keys.ts` (see `folder-keys.ts`, `table-keys.ts`, `credential-keys.ts`)
37-
- standalone fetchers/mappers → `hooks/queries/utils/fetch-*.ts` / `*-list-query.ts` (see `fetch-workflow-envelope.ts`, `fetch-credential-set.ts`)
37+
- standalone fetchers/mappers → `hooks/queries/utils/fetch-*.ts` / `*-list-query.ts` (see `fetch-workflow-envelope.ts`, `fetch-workspace-credentials.ts`)
3838

3939
The `'use client'` hook module then imports these back for its hooks. **Never** define a server-imported factory/fetcher directly in a `'use client'` hooks file — it crashes SSR (this caused the tables-page crash). Enforced for prefetch/route/trigger/block files by `scripts/check-client-boundary-imports.ts` (`bun run check:client-boundary`, run in CI). Escape hatch for a genuinely browser-only path: `// client-boundary-allow: <reason>` on the line above the import.
4040

.claude/rules/sim-settings-pages.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ pairing is:
117117
This is not a stylistic guess — it is the tokenized form of the literal-pixel
118118
pairing (`text-[14px] text-[var(--text-body)]` / `text-[12px]
119119
text-[var(--text-muted)]`) already used for this exact row shape across
120-
`member-list.tsx`, `api-keys.tsx`, `mcp.tsx`, `billing.tsx`, `credential-sets.tsx`,
120+
`member-list.tsx`, `api-keys.tsx`, `mcp.tsx`, `billing.tsx`,
121121
`workflow-mcp-servers.tsx`, and others — keep new rows consistent with it rather
122122
than inventing a new size pairing.
123123

@@ -203,7 +203,7 @@ changes" modal:
203203
## Detail sub-views
204204

205205
A drill-down view reached from a list row (selected MCP server, workflow MCP
206-
server, credential set, permission group, retention policy) renders through
206+
server, permission group, retention policy) renders through
207207
`SettingsPanel` like a list page: pass `back={{ text, icon: ArrowLeft, onSelect }}`
208208
for the left back chip, `title` (the entity name), and the header `actions`, then
209209
render the body. Do NOT hand-roll a shell or header bar; a tab bar renders as the

.cursor/commands/add-trigger.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ export const {service}PollingHandler: PollingProviderHandler = {
369369

370370
try {
371371
// For OAuth services:
372-
const accessToken = await resolveOAuthCredential(webhookData, '{service}', requestId, logger)
372+
const accessToken = await resolveOAuthCredential(webhookData, '{service}', requestId)
373373
const config = webhookData.providerConfig as unknown as {Service}WebhookConfig
374374

375375
// First poll: seed state, emit nothing
@@ -416,7 +416,7 @@ export const {service}PollingTrigger: TriggerConfig = {
416416
polling: true, // REQUIRED — routes to polling infrastructure
417417

418418
subBlocks: [
419-
{ id: 'triggerCredentials', type: 'oauth-input', title: 'Credentials', serviceId: '{service}', requiredScopes: [], required: true, mode: 'trigger', supportsCredentialSets: true },
419+
{ id: 'triggerCredentials', type: 'oauth-input', title: 'Credentials', serviceId: '{service}', requiredScopes: [], required: true, mode: 'trigger' },
420420
// ... service-specific config fields (dropdowns, inputs, switches) ...
421421
{ id: 'triggerInstructions', type: 'text', title: 'Setup Instructions', hideFromPreview: true, mode: 'trigger', defaultValue: '...' },
422422
],

apps/docs/content/docs/de/enterprise/index.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ Für selbst gehostete Bereitstellungen können Enterprise-Funktionen über Umgeb
7979
| Variable | Beschreibung |
8080
|----------|-------------|
8181
| `SSO_ENABLED`, `NEXT_PUBLIC_SSO_ENABLED` | Single Sign-On mit SAML/OIDC |
82-
| `CREDENTIAL_SETS_ENABLED`, `NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | Polling-Gruppen für E-Mail-Trigger |
8382
| `DISABLE_INVITATIONS`, `NEXT_PUBLIC_DISABLE_INVITATIONS` | Workspace-/Organisations-Einladungen global deaktivieren |
8483

8584
<Callout type="warn">

apps/docs/content/docs/de/triggers/index.mdx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ Verwende den Start-Block für alles, was aus dem Editor, deploy-to-API oder depl
3333
<Card title="RSS Feed" href="/triggers/rss">
3434
RSS- und Atom-Feeds auf neue Inhalte überwachen
3535
</Card>
36-
<Card title="Email Polling Groups" href="#email-polling-groups">
37-
Team-Gmail- und Outlook-Postfächer überwachen
38-
</Card>
3936
</Cards>
4037

4138
## Schneller Vergleich
@@ -46,7 +43,6 @@ Verwende den Start-Block für alles, was aus dem Editor, deploy-to-API oder depl
4643
| **Schedule** | Timer, der im Schedule-Block verwaltet wird |
4744
| **Webhook** | Bei eingehender HTTP-Anfrage |
4845
| **RSS Feed** | Neues Element im Feed veröffentlicht |
49-
| **Email Polling Groups** | Neue E-Mail in Team-Gmail- oder Outlook-Postfächern empfangen |
5046

5147
> Der Start-Block stellt immer `input`, `conversationId` und `files` Felder bereit. Füge benutzerdefinierte Felder zum Eingabeformat für zusätzliche strukturierte Daten hinzu.
5248

apps/docs/content/docs/en/integrations/index.mdx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,6 @@ Open a connection from the **Connected** list to manage it:
110110
If you disconnect an integration that is used in a workflow, that workflow will fail at any block referencing it. Update blocks before disconnecting.
111111
</Callout>
112112

113-
## Email polling groups
114-
115-
The Gmail and Outlook email triggers can watch several team members' inboxes through a single trigger, called an **email polling group** (Team and Enterprise plans). An admin creates a group under **Settings → Email Polling**, picks Gmail or Outlook, and invites members by email; each invitee connects their own inbox through a link. On an email trigger, select the group from the credentials dropdown instead of a single account, and the trigger routes everyone's mail through the workflow.
116-
117-
Inviting someone to a group grants inbox access for that trigger only, which is separate from workspace membership.
118-
119113
<FAQ items={[
120114
{ question: "Does Sim handle OAuth token refresh automatically?", answer: "Yes. When an integration is used during execution, Sim checks whether the access token has expired and automatically refreshes it using the stored refresh token before making the API call. You do not need to handle token refresh manually." },
121115
{ question: "Can I connect multiple accounts for the same service?", answer: "Yes. You can connect multiple accounts per service (for example, two separate Gmail accounts). Each block lets you select which account to use from the account dropdown. This is useful when different workflows need different identities or permissions." },

apps/docs/content/docs/en/platform/enterprise/index.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ Self-hosted deployments enable enterprise features via environment variables ins
8686
| `AUDIT_LOGS_ENABLED`, `NEXT_PUBLIC_AUDIT_LOGS_ENABLED` | Audit logging |
8787
| `NEXT_PUBLIC_DATA_RETENTION_ENABLED` | Data retention configuration |
8888
| `DATA_DRAINS_ENABLED`, `NEXT_PUBLIC_DATA_DRAINS_ENABLED` | Data drains |
89-
| `CREDENTIAL_SETS_ENABLED`, `NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | Polling groups for email triggers |
9089
| `INBOX_ENABLED`, `NEXT_PUBLIC_INBOX_ENABLED` | Sim Mailer inbox |
9190
| `DISABLE_INVITATIONS`, `NEXT_PUBLIC_DISABLE_INVITATIONS` | Disable invitations; manage membership via Admin API |
9291

apps/docs/content/docs/es/enterprise/index.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ Para implementaciones self-hosted, las funciones enterprise se pueden activar me
7979
| Variable | Descripción |
8080
|----------|-------------|
8181
| `SSO_ENABLED`, `NEXT_PUBLIC_SSO_ENABLED` | Inicio de sesión único con SAML/OIDC |
82-
| `CREDENTIAL_SETS_ENABLED`, `NEXT_PUBLIC_CREDENTIAL_SETS_ENABLED` | Grupos de sondeo para activadores de correo electrónico |
8382
| `DISABLE_INVITATIONS`, `NEXT_PUBLIC_DISABLE_INVITATIONS` | Desactivar globalmente invitaciones a espacios de trabajo/organizaciones |
8483

8584
<Callout type="warn">

apps/docs/content/docs/es/triggers/index.mdx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ Utiliza el bloque Start para todo lo que se origina desde el editor, despliegue
3333
<Card title="RSS Feed" href="/triggers/rss">
3434
Monitorea feeds RSS y Atom para detectar contenido nuevo
3535
</Card>
36-
<Card title="Email Polling Groups" href="#email-polling-groups">
37-
Monitorea bandejas de entrada de Gmail y Outlook del equipo
38-
</Card>
3936
</Cards>
4037

4138
## Comparación rápida
@@ -46,7 +43,6 @@ Utiliza el bloque Start para todo lo que se origina desde el editor, despliegue
4643
| **Schedule** | Temporizador gestionado en el bloque de programación |
4744
| **Webhook** | Al recibir una solicitud HTTP entrante |
4845
| **RSS Feed** | Nuevo elemento publicado en el feed |
49-
| **Email Polling Groups** | Nuevo correo electrónico recibido en bandejas de entrada de Gmail o Outlook del equipo |
5046

5147
> El bloque Start siempre expone los campos `input`, `conversationId` y `files`. Añade campos personalizados al formato de entrada para datos estructurados adicionales.
5248

0 commit comments

Comments
 (0)