66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# 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
|