diff --git a/packages/backend/src/adapters/adapters.service.ts b/packages/backend/src/adapters/adapters.service.ts index 2484f82..5a4baa2 100644 --- a/packages/backend/src/adapters/adapters.service.ts +++ b/packages/backend/src/adapters/adapters.service.ts @@ -82,6 +82,9 @@ export class AdaptersService { headers: resolvedHeaders as any, envVars: envVarsToPersist as any, instructions: adapter.instructions || null, + // Persist the source adapter slug so the UI can resolve the brand + // logo (via resolveAdapterIcon) even after the connector is renamed. + config: { adapterSlug: slug }, }, }); diff --git a/packages/backend/src/connectors/connector-icon.util.ts b/packages/backend/src/connectors/connector-icon.util.ts new file mode 100644 index 0000000..458d9bc --- /dev/null +++ b/packages/backend/src/connectors/connector-icon.util.ts @@ -0,0 +1,47 @@ +import { listAdapters, getAdapter } from '../adapters/catalog'; + +/** + * Resolve the adapter icon for a given Connector row. + * + * Preference order: + * 1. `connector.config.adapterSlug` (set at import time by AdaptersService) + * — survives connector renames. + * 2. Reverse lookup by `connector.name`. Works for connectors created + * before adapterSlug tracking was added, and for any future import + * that forgets to set the slug. Renaming the connector breaks this + * fallback (the UI gracefully degrades to the generic type badge). + * + * Returns the adapter's `icon` field (e.g. "wordpress", "woocommerce") + * which the frontend maps to `/logos/connectors/.svg`. Returns null + * if no match. + */ + +// Built once at module load. Module-level so we don't iterate the catalog +// on every request. +const nameToIcon: Map = (() => { + const map = new Map(); + for (const meta of listAdapters()) { + const adapter = getAdapter(meta.slug); + if (!adapter?.icon) continue; + const connName = (adapter.connector as { name?: string }).name; + if (connName && !map.has(connName)) { + map.set(connName, adapter.icon); + } + } + return map; +})(); + +export function resolveAdapterIcon(connector: { + name: string; + config?: unknown; +}): string | null { + // 1) Explicit slug from config (set at import time) + const cfg = connector.config as Record | null | undefined; + const slugFromConfig = cfg && typeof cfg.adapterSlug === 'string' ? cfg.adapterSlug : null; + if (slugFromConfig) { + const adapter = getAdapter(slugFromConfig); + if (adapter?.icon) return adapter.icon; + } + // 2) Fallback: name match + return nameToIcon.get(connector.name) ?? null; +} diff --git a/packages/backend/src/connectors/connectors.service.ts b/packages/backend/src/connectors/connectors.service.ts index b403475..8168d9c 100644 --- a/packages/backend/src/connectors/connectors.service.ts +++ b/packages/backend/src/connectors/connectors.service.ts @@ -9,6 +9,7 @@ import { DatabaseEngine } from './engines/database.engine'; import { McpClientEngine } from './engines/mcp-client.engine'; import { encrypt, decrypt } from '../common/crypto/encryption.util'; import { getRequiredSecret } from '../common/secrets.util'; +import { resolveAdapterIcon } from './connector-icon.util'; @Injectable() export class ConnectorsService { @@ -48,17 +49,18 @@ export class ConnectorsService { async findByOrg( organizationId: string, opts?: { limit?: number; offset?: number }, - ): Promise { - return this.prisma.connector.findMany({ + ): Promise> { + const rows = await this.prisma.connector.findMany({ where: { organizationId }, include: { tools: true }, orderBy: { createdAt: 'desc' }, ...(opts?.limit !== undefined ? { take: opts.limit } : {}), ...(opts?.offset !== undefined ? { skip: opts.offset } : {}), }); + return rows.map((c) => ({ ...c, icon: resolveAdapterIcon(c) })); } - async findById(id: string): Promise { + async findById(id: string): Promise { const connector = await this.prisma.connector.findUnique({ where: { id }, include: { tools: true, resources: true, prompts: true, mcpServers: { select: { mcpServerId: true } } }, @@ -66,7 +68,7 @@ export class ConnectorsService { if (!connector) { throw new NotFoundException(`Connector ${id} not found`); } - return connector; + return { ...connector, icon: resolveAdapterIcon(connector) }; } async findByIdInternal(id: string): Promise { diff --git a/packages/frontend/public/logos/connectors/adyen.svg b/packages/frontend/public/logos/connectors/adyen.svg new file mode 100644 index 0000000..b355ac6 --- /dev/null +++ b/packages/frontend/public/logos/connectors/adyen.svg @@ -0,0 +1 @@ +Adyen \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/airtable.svg b/packages/frontend/public/logos/connectors/airtable.svg new file mode 100644 index 0000000..adb9cf1 --- /dev/null +++ b/packages/frontend/public/logos/connectors/airtable.svg @@ -0,0 +1 @@ +Airtable \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/apollo.svg b/packages/frontend/public/logos/connectors/apollo.svg new file mode 100644 index 0000000..8057efe --- /dev/null +++ b/packages/frontend/public/logos/connectors/apollo.svg @@ -0,0 +1 @@ +Apollo GraphQL \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/asana.svg b/packages/frontend/public/logos/connectors/asana.svg new file mode 100644 index 0000000..fcc1674 --- /dev/null +++ b/packages/frontend/public/logos/connectors/asana.svg @@ -0,0 +1 @@ +Asana \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/basecamp.svg b/packages/frontend/public/logos/connectors/basecamp.svg new file mode 100644 index 0000000..2210a61 --- /dev/null +++ b/packages/frontend/public/logos/connectors/basecamp.svg @@ -0,0 +1 @@ +Basecamp \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/bigcommerce.svg b/packages/frontend/public/logos/connectors/bigcommerce.svg new file mode 100644 index 0000000..73d82ba --- /dev/null +++ b/packages/frontend/public/logos/connectors/bigcommerce.svg @@ -0,0 +1 @@ +BigCommerce \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/billomat.svg b/packages/frontend/public/logos/connectors/billomat.svg new file mode 100644 index 0000000..5f22886 --- /dev/null +++ b/packages/frontend/public/logos/connectors/billomat.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/bluesky.svg b/packages/frontend/public/logos/connectors/bluesky.svg new file mode 100644 index 0000000..1113f94 --- /dev/null +++ b/packages/frontend/public/logos/connectors/bluesky.svg @@ -0,0 +1 @@ +Bluesky \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/box.svg b/packages/frontend/public/logos/connectors/box.svg new file mode 100644 index 0000000..f0c83f2 --- /dev/null +++ b/packages/frontend/public/logos/connectors/box.svg @@ -0,0 +1 @@ +Box \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/brevo.svg b/packages/frontend/public/logos/connectors/brevo.svg new file mode 100644 index 0000000..6c5fecd --- /dev/null +++ b/packages/frontend/public/logos/connectors/brevo.svg @@ -0,0 +1 @@ +Brevo \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/buffer.svg b/packages/frontend/public/logos/connectors/buffer.svg new file mode 100644 index 0000000..762d33b --- /dev/null +++ b/packages/frontend/public/logos/connectors/buffer.svg @@ -0,0 +1 @@ +Buffer \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/bundesbank.svg b/packages/frontend/public/logos/connectors/bundesbank.svg new file mode 100644 index 0000000..0c8679f --- /dev/null +++ b/packages/frontend/public/logos/connectors/bundesbank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/calendly.svg b/packages/frontend/public/logos/connectors/calendly.svg new file mode 100644 index 0000000..8f074b6 --- /dev/null +++ b/packages/frontend/public/logos/connectors/calendly.svg @@ -0,0 +1 @@ +Calendly \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/clickup.svg b/packages/frontend/public/logos/connectors/clickup.svg new file mode 100644 index 0000000..b1f675f --- /dev/null +++ b/packages/frontend/public/logos/connectors/clickup.svg @@ -0,0 +1 @@ +ClickUp \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/clockify.svg b/packages/frontend/public/logos/connectors/clockify.svg new file mode 100644 index 0000000..88a1fd4 --- /dev/null +++ b/packages/frontend/public/logos/connectors/clockify.svg @@ -0,0 +1 @@ +Clockify \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/coda.svg b/packages/frontend/public/logos/connectors/coda.svg new file mode 100644 index 0000000..ae78f2f --- /dev/null +++ b/packages/frontend/public/logos/connectors/coda.svg @@ -0,0 +1 @@ +Coda \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/convertkit.svg b/packages/frontend/public/logos/connectors/convertkit.svg new file mode 100644 index 0000000..17828c4 --- /dev/null +++ b/packages/frontend/public/logos/connectors/convertkit.svg @@ -0,0 +1 @@ +Kit \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/datadog.svg b/packages/frontend/public/logos/connectors/datadog.svg new file mode 100644 index 0000000..ab43731 --- /dev/null +++ b/packages/frontend/public/logos/connectors/datadog.svg @@ -0,0 +1 @@ +Datadog \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/datev.svg b/packages/frontend/public/logos/connectors/datev.svg new file mode 100644 index 0000000..02c2320 --- /dev/null +++ b/packages/frontend/public/logos/connectors/datev.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/db.svg b/packages/frontend/public/logos/connectors/db.svg new file mode 100644 index 0000000..e188143 --- /dev/null +++ b/packages/frontend/public/logos/connectors/db.svg @@ -0,0 +1 @@ +db_em_rgb_100px \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/destatis.svg b/packages/frontend/public/logos/connectors/destatis.svg new file mode 100644 index 0000000..9ea504c --- /dev/null +++ b/packages/frontend/public/logos/connectors/destatis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/dhl.svg b/packages/frontend/public/logos/connectors/dhl.svg new file mode 100644 index 0000000..3a9af0b --- /dev/null +++ b/packages/frontend/public/logos/connectors/dhl.svg @@ -0,0 +1,55 @@ + +image/svg+xml + + + diff --git a/packages/frontend/public/logos/connectors/discord-bot.svg b/packages/frontend/public/logos/connectors/discord-bot.svg new file mode 100644 index 0000000..ef25142 --- /dev/null +++ b/packages/frontend/public/logos/connectors/discord-bot.svg @@ -0,0 +1 @@ +Discord \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/discord.svg b/packages/frontend/public/logos/connectors/discord.svg new file mode 100644 index 0000000..ef25142 --- /dev/null +++ b/packages/frontend/public/logos/connectors/discord.svg @@ -0,0 +1 @@ +Discord \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/dpd.svg b/packages/frontend/public/logos/connectors/dpd.svg new file mode 100644 index 0000000..aecda6a --- /dev/null +++ b/packages/frontend/public/logos/connectors/dpd.svg @@ -0,0 +1,560 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/drive.svg b/packages/frontend/public/logos/connectors/drive.svg new file mode 100644 index 0000000..7263ef3 --- /dev/null +++ b/packages/frontend/public/logos/connectors/drive.svg @@ -0,0 +1 @@ +Google Drive \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/dropbox.svg b/packages/frontend/public/logos/connectors/dropbox.svg new file mode 100644 index 0000000..2fc2686 --- /dev/null +++ b/packages/frontend/public/logos/connectors/dropbox.svg @@ -0,0 +1 @@ +Dropbox \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/etsy.svg b/packages/frontend/public/logos/connectors/etsy.svg new file mode 100644 index 0000000..f4e9cd2 --- /dev/null +++ b/packages/frontend/public/logos/connectors/etsy.svg @@ -0,0 +1 @@ +Etsy \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/fastbill.svg b/packages/frontend/public/logos/connectors/fastbill.svg new file mode 100644 index 0000000..36b999d --- /dev/null +++ b/packages/frontend/public/logos/connectors/fastbill.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/fathom.svg b/packages/frontend/public/logos/connectors/fathom.svg new file mode 100644 index 0000000..38dab7b --- /dev/null +++ b/packages/frontend/public/logos/connectors/fathom.svg @@ -0,0 +1 @@ +Fathom \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/ghost.svg b/packages/frontend/public/logos/connectors/ghost.svg new file mode 100644 index 0000000..e5887c9 --- /dev/null +++ b/packages/frontend/public/logos/connectors/ghost.svg @@ -0,0 +1 @@ +Ghost \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/gitbook.svg b/packages/frontend/public/logos/connectors/gitbook.svg new file mode 100644 index 0000000..53e26f6 --- /dev/null +++ b/packages/frontend/public/logos/connectors/gitbook.svg @@ -0,0 +1 @@ +GitBook \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/github.svg b/packages/frontend/public/logos/connectors/github.svg new file mode 100644 index 0000000..81920ca --- /dev/null +++ b/packages/frontend/public/logos/connectors/github.svg @@ -0,0 +1 @@ +GitHub \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/gls.svg b/packages/frontend/public/logos/connectors/gls.svg new file mode 100644 index 0000000..829afda --- /dev/null +++ b/packages/frontend/public/logos/connectors/gls.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/greenhouse.svg b/packages/frontend/public/logos/connectors/greenhouse.svg new file mode 100644 index 0000000..7a5e17d --- /dev/null +++ b/packages/frontend/public/logos/connectors/greenhouse.svg @@ -0,0 +1 @@ +Greenhouse \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/helpscout.svg b/packages/frontend/public/logos/connectors/helpscout.svg new file mode 100644 index 0000000..431a675 --- /dev/null +++ b/packages/frontend/public/logos/connectors/helpscout.svg @@ -0,0 +1 @@ +Help Scout \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/here.svg b/packages/frontend/public/logos/connectors/here.svg new file mode 100644 index 0000000..0e1156e --- /dev/null +++ b/packages/frontend/public/logos/connectors/here.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/immobilienscout24.svg b/packages/frontend/public/logos/connectors/immobilienscout24.svg new file mode 100644 index 0000000..16dc25f --- /dev/null +++ b/packages/frontend/public/logos/connectors/immobilienscout24.svg @@ -0,0 +1 @@ +IS24 diff --git a/packages/frontend/public/logos/connectors/intercom.svg b/packages/frontend/public/logos/connectors/intercom.svg new file mode 100644 index 0000000..50fe59d --- /dev/null +++ b/packages/frontend/public/logos/connectors/intercom.svg @@ -0,0 +1 @@ +Intercom \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/jira.svg b/packages/frontend/public/logos/connectors/jira.svg new file mode 100644 index 0000000..1bb9167 --- /dev/null +++ b/packages/frontend/public/logos/connectors/jira.svg @@ -0,0 +1 @@ +Jira \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/kenjo.svg b/packages/frontend/public/logos/connectors/kenjo.svg new file mode 100644 index 0000000..7447fcd --- /dev/null +++ b/packages/frontend/public/logos/connectors/kenjo.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/lemonsqueezy.svg b/packages/frontend/public/logos/connectors/lemonsqueezy.svg new file mode 100644 index 0000000..5c9a7fb --- /dev/null +++ b/packages/frontend/public/logos/connectors/lemonsqueezy.svg @@ -0,0 +1 @@ +Lemon Squeezy \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/line-messaging.svg b/packages/frontend/public/logos/connectors/line-messaging.svg new file mode 100644 index 0000000..67fcab8 --- /dev/null +++ b/packages/frontend/public/logos/connectors/line-messaging.svg @@ -0,0 +1 @@ +LINE \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/line.svg b/packages/frontend/public/logos/connectors/line.svg new file mode 100644 index 0000000..67fcab8 --- /dev/null +++ b/packages/frontend/public/logos/connectors/line.svg @@ -0,0 +1 @@ +LINE \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/linear.svg b/packages/frontend/public/logos/connectors/linear.svg new file mode 100644 index 0000000..9ac4481 --- /dev/null +++ b/packages/frontend/public/logos/connectors/linear.svg @@ -0,0 +1 @@ +Linear \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/linkedin.svg b/packages/frontend/public/logos/connectors/linkedin.svg new file mode 100644 index 0000000..0f32c3e --- /dev/null +++ b/packages/frontend/public/logos/connectors/linkedin.svg @@ -0,0 +1 @@ +LinkedIn \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/loops.svg b/packages/frontend/public/logos/connectors/loops.svg new file mode 100644 index 0000000..ebd382f --- /dev/null +++ b/packages/frontend/public/logos/connectors/loops.svg @@ -0,0 +1 @@ +Loops \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/magento.svg b/packages/frontend/public/logos/connectors/magento.svg new file mode 100644 index 0000000..fa22f98 --- /dev/null +++ b/packages/frontend/public/logos/connectors/magento.svg @@ -0,0 +1 @@ +Magento \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/mailchimp.svg b/packages/frontend/public/logos/connectors/mailchimp.svg new file mode 100644 index 0000000..cfd243e --- /dev/null +++ b/packages/frontend/public/logos/connectors/mailchimp.svg @@ -0,0 +1 @@ +MailChimp \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/mapbox.svg b/packages/frontend/public/logos/connectors/mapbox.svg new file mode 100644 index 0000000..8035d5b --- /dev/null +++ b/packages/frontend/public/logos/connectors/mapbox.svg @@ -0,0 +1 @@ +Mapbox \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/mastodon.svg b/packages/frontend/public/logos/connectors/mastodon.svg new file mode 100644 index 0000000..179de74 --- /dev/null +++ b/packages/frontend/public/logos/connectors/mastodon.svg @@ -0,0 +1 @@ +Mastodon \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/medium.svg b/packages/frontend/public/logos/connectors/medium.svg new file mode 100644 index 0000000..ab9e7df --- /dev/null +++ b/packages/frontend/public/logos/connectors/medium.svg @@ -0,0 +1 @@ +Medium \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/mercado-libre.svg b/packages/frontend/public/logos/connectors/mercado-libre.svg new file mode 100644 index 0000000..64411f4 --- /dev/null +++ b/packages/frontend/public/logos/connectors/mercado-libre.svg @@ -0,0 +1 @@ +Mercado Pago \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/microsoft-teams.svg b/packages/frontend/public/logos/connectors/microsoft-teams.svg new file mode 100644 index 0000000..2804d69 --- /dev/null +++ b/packages/frontend/public/logos/connectors/microsoft-teams.svg @@ -0,0 +1 @@ +Microsoft Teams \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/n26.svg b/packages/frontend/public/logos/connectors/n26.svg new file mode 100644 index 0000000..6050b0f --- /dev/null +++ b/packages/frontend/public/logos/connectors/n26.svg @@ -0,0 +1 @@ +N26 diff --git a/packages/frontend/public/logos/connectors/nina.svg b/packages/frontend/public/logos/connectors/nina.svg new file mode 100644 index 0000000..68b32cd --- /dev/null +++ b/packages/frontend/public/logos/connectors/nina.svg @@ -0,0 +1 @@ +NINA diff --git a/packages/frontend/public/logos/connectors/nominatim.svg b/packages/frontend/public/logos/connectors/nominatim.svg new file mode 100644 index 0000000..81f205a --- /dev/null +++ b/packages/frontend/public/logos/connectors/nominatim.svg @@ -0,0 +1 @@ +OpenStreetMap \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/notion.svg b/packages/frontend/public/logos/connectors/notion.svg new file mode 100644 index 0000000..69afef3 --- /dev/null +++ b/packages/frontend/public/logos/connectors/notion.svg @@ -0,0 +1 @@ +Notion \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/openplz.svg b/packages/frontend/public/logos/connectors/openplz.svg new file mode 100644 index 0000000..1e43d61 --- /dev/null +++ b/packages/frontend/public/logos/connectors/openplz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/openstreetmap.svg b/packages/frontend/public/logos/connectors/openstreetmap.svg new file mode 100644 index 0000000..81f205a --- /dev/null +++ b/packages/frontend/public/logos/connectors/openstreetmap.svg @@ -0,0 +1 @@ +OpenStreetMap \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/oxomi.svg b/packages/frontend/public/logos/connectors/oxomi.svg new file mode 100644 index 0000000..e34bae7 --- /dev/null +++ b/packages/frontend/public/logos/connectors/oxomi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/frontend/public/logos/connectors/personio.svg b/packages/frontend/public/logos/connectors/personio.svg new file mode 100644 index 0000000..27549a8 --- /dev/null +++ b/packages/frontend/public/logos/connectors/personio.svg @@ -0,0 +1 @@ +Personio \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/pinterest.svg b/packages/frontend/public/logos/connectors/pinterest.svg new file mode 100644 index 0000000..0998227 --- /dev/null +++ b/packages/frontend/public/logos/connectors/pinterest.svg @@ -0,0 +1 @@ +Pinterest \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/planradar.svg b/packages/frontend/public/logos/connectors/planradar.svg new file mode 100644 index 0000000..4167ac5 --- /dev/null +++ b/packages/frontend/public/logos/connectors/planradar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/postgres.svg b/packages/frontend/public/logos/connectors/postgres.svg new file mode 100644 index 0000000..931bdae --- /dev/null +++ b/packages/frontend/public/logos/connectors/postgres.svg @@ -0,0 +1 @@ +PostgreSQL \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/razorpay.svg b/packages/frontend/public/logos/connectors/razorpay.svg new file mode 100644 index 0000000..51d1ce0 --- /dev/null +++ b/packages/frontend/public/logos/connectors/razorpay.svg @@ -0,0 +1 @@ +Razorpay \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/reddit.svg b/packages/frontend/public/logos/connectors/reddit.svg new file mode 100644 index 0000000..34c37c0 --- /dev/null +++ b/packages/frontend/public/logos/connectors/reddit.svg @@ -0,0 +1 @@ +Reddit \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/s3.svg b/packages/frontend/public/logos/connectors/s3.svg new file mode 100644 index 0000000..14f63f1 --- /dev/null +++ b/packages/frontend/public/logos/connectors/s3.svg @@ -0,0 +1 @@ +Amazon S3 \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/sage-business-cloud.svg b/packages/frontend/public/logos/connectors/sage-business-cloud.svg new file mode 100644 index 0000000..ff7ec07 --- /dev/null +++ b/packages/frontend/public/logos/connectors/sage-business-cloud.svg @@ -0,0 +1 @@ +Sage \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/salesforce.svg b/packages/frontend/public/logos/connectors/salesforce.svg new file mode 100644 index 0000000..a5b6cc7 --- /dev/null +++ b/packages/frontend/public/logos/connectors/salesforce.svg @@ -0,0 +1 @@ +Salesforce \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/scopevisio.svg b/packages/frontend/public/logos/connectors/scopevisio.svg new file mode 100644 index 0000000..f777487 --- /dev/null +++ b/packages/frontend/public/logos/connectors/scopevisio.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/sendcloud.svg b/packages/frontend/public/logos/connectors/sendcloud.svg new file mode 100644 index 0000000..3823609 --- /dev/null +++ b/packages/frontend/public/logos/connectors/sendcloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/sendgrid.svg b/packages/frontend/public/logos/connectors/sendgrid.svg new file mode 100644 index 0000000..835fc7d --- /dev/null +++ b/packages/frontend/public/logos/connectors/sendgrid.svg @@ -0,0 +1 @@ +Mail.Ru \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/shipcloud.svg b/packages/frontend/public/logos/connectors/shipcloud.svg new file mode 100644 index 0000000..363cc07 --- /dev/null +++ b/packages/frontend/public/logos/connectors/shipcloud.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/shopify.svg b/packages/frontend/public/logos/connectors/shopify.svg new file mode 100644 index 0000000..525bd2b --- /dev/null +++ b/packages/frontend/public/logos/connectors/shopify.svg @@ -0,0 +1 @@ +Shopify \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/shopware.svg b/packages/frontend/public/logos/connectors/shopware.svg new file mode 100644 index 0000000..19062ec --- /dev/null +++ b/packages/frontend/public/logos/connectors/shopware.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/slack.svg b/packages/frontend/public/logos/connectors/slack.svg new file mode 100644 index 0000000..bb2957e --- /dev/null +++ b/packages/frontend/public/logos/connectors/slack.svg @@ -0,0 +1 @@ +Slack \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/snowflake.svg b/packages/frontend/public/logos/connectors/snowflake.svg new file mode 100644 index 0000000..dae8f55 --- /dev/null +++ b/packages/frontend/public/logos/connectors/snowflake.svg @@ -0,0 +1 @@ +Snowflake \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/sorare.svg b/packages/frontend/public/logos/connectors/sorare.svg new file mode 100644 index 0000000..b2e0772 --- /dev/null +++ b/packages/frontend/public/logos/connectors/sorare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/stripe.svg b/packages/frontend/public/logos/connectors/stripe.svg new file mode 100644 index 0000000..48272a2 --- /dev/null +++ b/packages/frontend/public/logos/connectors/stripe.svg @@ -0,0 +1 @@ +Stripe \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/substack.svg b/packages/frontend/public/logos/connectors/substack.svg new file mode 100644 index 0000000..0d2f651 --- /dev/null +++ b/packages/frontend/public/logos/connectors/substack.svg @@ -0,0 +1 @@ +Substack \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/surveymonkey.svg b/packages/frontend/public/logos/connectors/surveymonkey.svg new file mode 100644 index 0000000..1f6c5ed --- /dev/null +++ b/packages/frontend/public/logos/connectors/surveymonkey.svg @@ -0,0 +1 @@ +SurveyMonkey \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/teamviewer.svg b/packages/frontend/public/logos/connectors/teamviewer.svg new file mode 100644 index 0000000..c1555b5 --- /dev/null +++ b/packages/frontend/public/logos/connectors/teamviewer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/telegram-bot.svg b/packages/frontend/public/logos/connectors/telegram-bot.svg new file mode 100644 index 0000000..b637cb5 --- /dev/null +++ b/packages/frontend/public/logos/connectors/telegram-bot.svg @@ -0,0 +1 @@ +Telegram \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/telegram.svg b/packages/frontend/public/logos/connectors/telegram.svg new file mode 100644 index 0000000..b637cb5 --- /dev/null +++ b/packages/frontend/public/logos/connectors/telegram.svg @@ -0,0 +1 @@ +Telegram \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/ticktick.svg b/packages/frontend/public/logos/connectors/ticktick.svg new file mode 100644 index 0000000..f044de4 --- /dev/null +++ b/packages/frontend/public/logos/connectors/ticktick.svg @@ -0,0 +1 @@ +TickTick \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/todoist.svg b/packages/frontend/public/logos/connectors/todoist.svg new file mode 100644 index 0000000..b336722 --- /dev/null +++ b/packages/frontend/public/logos/connectors/todoist.svg @@ -0,0 +1 @@ +Todoist \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/trello.svg b/packages/frontend/public/logos/connectors/trello.svg new file mode 100644 index 0000000..d6d50d8 --- /dev/null +++ b/packages/frontend/public/logos/connectors/trello.svg @@ -0,0 +1 @@ +Trello \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/twilio.svg b/packages/frontend/public/logos/connectors/twilio.svg new file mode 100644 index 0000000..2392f4b --- /dev/null +++ b/packages/frontend/public/logos/connectors/twilio.svg @@ -0,0 +1 @@ +Twilio \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/typeform.svg b/packages/frontend/public/logos/connectors/typeform.svg new file mode 100644 index 0000000..c04c7c2 --- /dev/null +++ b/packages/frontend/public/logos/connectors/typeform.svg @@ -0,0 +1 @@ +Typeform \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/vercel-analytics.svg b/packages/frontend/public/logos/connectors/vercel-analytics.svg new file mode 100644 index 0000000..d0ebd32 --- /dev/null +++ b/packages/frontend/public/logos/connectors/vercel-analytics.svg @@ -0,0 +1 @@ +Vercel \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/vercel.svg b/packages/frontend/public/logos/connectors/vercel.svg new file mode 100644 index 0000000..d0ebd32 --- /dev/null +++ b/packages/frontend/public/logos/connectors/vercel.svg @@ -0,0 +1 @@ +Vercel \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/vies.svg b/packages/frontend/public/logos/connectors/vies.svg new file mode 100644 index 0000000..df5c3b8 --- /dev/null +++ b/packages/frontend/public/logos/connectors/vies.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + VAT + diff --git a/packages/frontend/public/logos/connectors/weclapp.svg b/packages/frontend/public/logos/connectors/weclapp.svg new file mode 100644 index 0000000..6ca54a2 --- /dev/null +++ b/packages/frontend/public/logos/connectors/weclapp.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/public/logos/connectors/whatsapp.svg b/packages/frontend/public/logos/connectors/whatsapp.svg new file mode 100644 index 0000000..529fdfb --- /dev/null +++ b/packages/frontend/public/logos/connectors/whatsapp.svg @@ -0,0 +1 @@ +WhatsApp \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/wise.svg b/packages/frontend/public/logos/connectors/wise.svg new file mode 100644 index 0000000..2789edc --- /dev/null +++ b/packages/frontend/public/logos/connectors/wise.svg @@ -0,0 +1 @@ +Wise \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/woocommerce.svg b/packages/frontend/public/logos/connectors/woocommerce.svg new file mode 100644 index 0000000..c98039e --- /dev/null +++ b/packages/frontend/public/logos/connectors/woocommerce.svg @@ -0,0 +1 @@ +WooCommerce \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/wordpress.svg b/packages/frontend/public/logos/connectors/wordpress.svg new file mode 100644 index 0000000..c3ccd1a --- /dev/null +++ b/packages/frontend/public/logos/connectors/wordpress.svg @@ -0,0 +1 @@ +WordPress \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/xentral.svg b/packages/frontend/public/logos/connectors/xentral.svg new file mode 100644 index 0000000..0500469 --- /dev/null +++ b/packages/frontend/public/logos/connectors/xentral.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/frontend/public/logos/connectors/youtube-data.svg b/packages/frontend/public/logos/connectors/youtube-data.svg new file mode 100644 index 0000000..9306b8e --- /dev/null +++ b/packages/frontend/public/logos/connectors/youtube-data.svg @@ -0,0 +1 @@ +YouTube \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/youtube.svg b/packages/frontend/public/logos/connectors/youtube.svg new file mode 100644 index 0000000..9306b8e --- /dev/null +++ b/packages/frontend/public/logos/connectors/youtube.svg @@ -0,0 +1 @@ +YouTube \ No newline at end of file diff --git a/packages/frontend/public/logos/connectors/zendesk.svg b/packages/frontend/public/logos/connectors/zendesk.svg new file mode 100644 index 0000000..98e36d9 --- /dev/null +++ b/packages/frontend/public/logos/connectors/zendesk.svg @@ -0,0 +1 @@ +Zendesk \ No newline at end of file diff --git a/packages/frontend/src/app/connectors/page.tsx b/packages/frontend/src/app/connectors/page.tsx index ad3dfb0..ee4d8e9 100644 --- a/packages/frontend/src/app/connectors/page.tsx +++ b/packages/frontend/src/app/connectors/page.tsx @@ -19,6 +19,41 @@ const TYPE_STYLES: Record = DATABASE: { text: 'Database', bg: 'bg-emerald-100 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-400', icon: 'DB' }, }; +/** + * Brand logo for a connector, with type-badge fallback. + * + * The backend enriches every connector with `icon` resolved from the source + * adapter (see `resolveAdapterIcon`). If the icon is set AND the file is + * present under /logos/connectors/.svg, render the brand mark. If the + * file 404s or the connector wasn't imported from an adapter, fall back to + * the language-tag badge (REST/GraphQL/SOAP/MCP/DB). + */ +function ConnectorLogo({ icon, type }: { icon?: string | null; type: string }) { + const [failed, setFailed] = useState(false); + if (icon && !failed) { + return ( + + {icon} setFailed(true)} + /> + + ); + } + const ts = + TYPE_STYLES[type] || { + text: type, + bg: 'bg-[var(--muted)] text-[var(--muted-foreground)]', + icon: '?', + }; + return ( + {ts.icon} + ); +} + const SUPPORTED_TYPES = [ { type: 'REST', label: 'REST APIs' }, { type: 'GRAPHQL', label: 'GraphQL' }, @@ -399,13 +434,12 @@ export default function ConnectorsPage() {
{filtered.map((c) => { - const ts = TYPE_STYLES[c.type] || { text: c.type, bg: 'bg-[var(--muted)] text-[var(--muted-foreground)]', icon: '?' }; return (
- {ts.icon} +

{c.name}

{c.isActive ? 'Active' : 'Inactive'}