# Connect Global Apps **ID:** ORG-009 **Priority:** High **Status:** In Development **Phase:** 1 ## User Story As an organization owner, I want to connect and disconnect first-party apps (foss.global, task.vc, etc.) for my organization so that my team members can use these integrated services. ## Acceptance Criteria - [ ] View list of available global apps (foss.global, task.vc) - [ ] See connection status for each global app - [ ] Connect a global app to the organization - [ ] Disconnect a global app from the organization - [ ] View which user connected the app and when - [ ] See what scopes/permissions each app requires - [ ] Toggle does not require page reload ## Technical Notes - Global apps are pre-registered by the platform administrators - Uses `IAppConnection` to track org-to-app relationships - Connection creates OAuth authorization for the app - Apps access org data via granted scopes - No credentials shown to org owners (managed by platform) ## Data Model ```typescript interface IGlobalApp { id: string; type: 'global'; data: { name: string; description: string; logoUrl: string; appUrl: string; oauthCredentials: IOAuthCredentials; isActive: boolean; category: string; }; } interface IAppConnection { id: string; data: { organizationId: string; appId: string; appType: 'global' | 'partner' | 'custom_oidc'; status: 'active' | 'disconnected'; connectedAt: number; connectedByUserId: string; grantedScopes: string[]; }; } ``` ## UI Components - **AppsView** (`/account/org/:orgName/apps`) - Main tabbed interface - **Global Apps Tab** - List of global apps with toggle switches ## Related Stories - ORG-010: Browse and Install Partner Apps (AppStore) - ORG-011: Create Custom OIDC Apps - DEV-004: Proper App ID Initialization