Molnkopplingar

connector-cloud är en arkitekturplugin i OHarness, inte MCP. Cloud äger Composio-projektnyckeln och den godkända konfigurationen av appar och verktyg. Klienter använder sin OHarness-inloggning; OAuth-uppgifterna för Gmail stannar hos Composio, avgränsade till det serververifierade OHarness-användar-id:t. Inga nya Supabase-tabeller krävs.

Konfiguration

  • Körtidshemlighet för Cloud-webbplatsen: COMPOSIO_API_KEY. Aldrig NEXT_PUBLIC_ och aldrig i användarens config.json, plugins.json, webbläsarpaket eller modellkontext.
  • Aktiverade appar härleds från Auth Configs i Composio-projektet, inte från en fil. En Auth Config med en verktygsbegränsning är en aktiverad app och den begränsningen är dess tillåtelselista, så en ny integration är en åtgärd i dashboarden i stället för en driftsättning. Härledningen vägrar hellre än antar: en konfiguration som inte begränsar några verktyg hoppas över (Composio tolkar en saknad begränsning som alla verktyg som toolkit har), två aktiverade konfigurationer för samma toolkit aktiverar ingen av dem, och avstängda konfigurationer, oanvändbara id:n eller felformade verktygsnamn tar bort den appen. Taken på 20 appar och 40 verktyg är oförändrade. Mängden löses upp en gång per process, så starta om Cloud efter en ändring i dashboarden.
  • Cloud-filen website/connectors.json är nu valfri och kan bara smalna av: {"disabled": ["slug"]} håller inne en app utan att röra Composio. En fil som fortfarande innehåller toolkits behåller det äldre uttryckliga beteendet. Driftsättningen kan i stället peka OHARNESS_CONNECTORS_FILE mot en absolut monterad sökväg. Den är medvetet gitignorerad, så ta med eller montera den bara om du använder den.
  • Webbplatsens befintliga Supabase-miljö validerar OHarness-inloggningstokens.
  • Klientens cloud.json: valfritt { "siteUrl": "http://localhost:4000" } för lokal utveckling; standard är den publika Cloud-adressen. Att byta Cloud-ursprung kan kräva att du loggar in igen. OHARNESS_SITE_URL är ett alternativt sätt att åsidosätta.
  • Klientens plugins.json: standardpluginen kräver ingen post. För att stänga av: { "runtimePlugins": [{ "id": "connector-cloud", "enabled": false }] }.

Skapa Gmail-OAuth-konfigurationen (Auth Config) i Composio-dashboarden för samma projekt som API-nyckeln. Gå igenom dess scopes och använd endast läsbehörighet till Gmail för läsuppgifter; tillåtelselistan för körning ersätter inte OAuth-scopes med minsta möjliga behörighet. Exempelkonfigurationen innehåller platshållare, inte fungerande inloggningsuppgifter.

När du använder OHarness_Cloud/dev.sh sätter du Cloud-variablerna på website-processen (Next laddar website/.env.development.local). Harnessen behöver inte Composio-nyckeln. Peka den mot den lokala webbplatsen innan du startar den, till exempel OHARNESS_SITE_URL=http://localhost:4000 ./dev.sh up harness. up startar inte om processer som redan körs; använd restart website harness efter att du sparat arbete. En Cloud-ändring på localhost driftsätter inte API:et på den publika webbplatsen.

Konversationsflöde

  1. Agenten anropar cloud_app_tools för att lista appar eller upptäcka en apps exakta verktygsscheman och version. Verktyget är tillgängligt redan innan ett appkonto har anslutits.
  2. OHarness vanliga behörighetspolicy körs först. Om anropet godkänns men inte är bundet väntar det aktuella verktyget och webbchatten visar Anslut / Avbryt.
  3. Bara användarens klick på Anslut begär en hostad länk från Composio. Cloud sätter user_id från den validerade inloggningen, aldrig från modellens indata.
  4. Gränssnittet öppnar auktoriseringssidan. Den lokala förmedlaren pollar Cloud; Cloud kontrollerar kontots ägare, Auth Config, toolkit och att kontot är aktivt och inte avstängt hos Composio.
  5. Verifierat resultat löser det väntande verktyget i samma agenttur. Det upptäcker schemat och anropar sedan cloud_app_execute genom den vanliga behörighetsspärren. Ingen dubblerad fråga till användaren och ingen ny autonom uppgift skapas.

Ett gratiskonto kan ansluta och använda två appar; alla betalda planer — Plus inräknat, personlig eller ett teams, läst från sessionstokens ent-claim — har ingen gräns. Tilldelningen går till de appar som ansluts först: att länka en tredje, eller att köra ett verktyg i en app utöver de två första (till exempel efter att en plan löpt ut), avvisas med 402 plan_required, som harnessen gör om till ett meddelande som nämner prissidan. Att lista appar och kontrollera en anslutning begränsas aldrig. Webbplatsen anger antalet med OHARNESS_FREE_CONNECTOR_APPS; en egenhostad webbplats sätter OHARNESS_CONNECTORS_FREE=1 för att häva gränsen för alla inloggade konton.

Om ett tidigare anslutet konto återkallas returnerar körningen ett uttryckligt connection_required-nej före körningen, vilket startar samma flöde. Timeouter, leverantörsfel eller osäkra körningsfel spelas aldrig upp igen automatiskt. Laddar du om webbsidan spelas väntande korttillstånd upp igen så länge processen lever.

Säkerhet och gränser i V1

  • Bara fyra POST-endpoints för inbyggda klienter: katalog, status, länk och körning. Autentiseringslänkar stannar i gränssnittets svar, utanför modellens utdata och lagringen av transkript.
  • Väntande interaktioner låser den verifierade användaren och Cloud-ursprunget. Att byta inloggning kan inte återuppta en gammal användares auktoriseringsuppgift mot ett annat konto.
  • Metadata och körning använder samma konkreta verktygsversion. Om latest löses upp annorlunda efter en omstart av servern, gör en ny upptäckt i stället för att köra ett inaktuellt schema. Använd daterade versioner för reproducerbara driftsättningar.
  • Avbryt, avbrott av agenten, tio minuters timeout och nedstängning stoppar det väntande anropet. En avbruten uppgift ångrar inte ett OAuth-godkännande som slutförts oberoende av den.
  • Ingen fortsättning efter omstart av processen och ingen uppspelning av bakgrundsjobb. Starta en ny tur efter omstart; en redan slutförd Composio-bindning går fortfarande att upptäcka.
  • V1 utgår från ett aktivt konto per app, Auth Config och användare. Flera aktiva konton misslyckas stängt i väntan på att en administratör väljer. Inga delade konton och inget ACL-gränssnitt.
  • Korten renderas för närvarande i webbchatten (även skrivbordsappens webbyta), inte i terminal- eller headless-gränssnitt. De har inget kortgränssnitt; använd webben för den första bindningen, eller stäng av den här pluginen för obevakade körningar och headless-körningar.
  • Varje process har grundläggande anropsgränser. I produktion måste delade gränser i edge, policy för granskning och lagringstid läggas till, och Auth Configs för OAuth konfigureras med lämpligt avgränsade scopes.

Verifiering

npm run test:cloud-connectors täcker förmedlarens avbrytning, samtidighet, timeout, nekad behörighet och en riktig agent som fortsätter efter mockad auktorisering. Clouds npm run test:composio täcker ägarskap, tillåtelselista, version, återkallning och att inget görs om. node --conditions=oharness-source script/cloud-connector-ui-demo.ts startar en isolerad offlinedemo i webben; den når aldrig riktig Gmail. Riktig OAuth kräver fortfarande användarens samtycke i webbläsaren.