Problem Statement
Currently, Voult apps have a single owner (owner field in App model). This creates several limitations:
- No collaboration: Teams cannot work together on the same authentication configuration
- Single point of access: Only one developer has access to OAuth credentials and settings
- No delegation: Cannot delegate access or share responsibilities
- Not enterprise-ready: Not suitable for agencies, startups, or enterprise teams
💡 Proposed Solution
Implement a team-based access system that allows multiple developers to collaborate on apps with role-based permissions.
Key Features
-
Team Creation & Management
- Create teams with multiple members
- Team settings and configuration
- Team member roles (Owner, Admin, Developer, Viewer)
-
Invitation System
- Invite developers via email
- Token-based invitation acceptance
- Automatic expiration (7 days)
-
Role-Based Access Control
- Owner: Full control over team and apps
- Admin: Can manage apps and OAuth,但不能 manage team members
- Developer: Can create and edit apps, but cannot access OAuth credentials
- Viewer: Read-only access to apps
-
App Access Integration
- Apps can be assigned to teams
- Team members can collaborate on app configuration
- Backward compatibility with existing solo apps
📋 Implementation Checklist
Phase 1: Core Infrastructure (MVP)
Phase 2: App Integration
Phase 3: Advanced Features
🗂️ Files to Create/Modify
New Files
models/team.js
models/auditLog.js
controllers/api/team.js
controllers/web/team.js
routes/api/team.js
routes/web/team.js
middleware/requireTeamRole.js
services/teamInvitation.js
views/team/
Modified Files
models/app.js - Add team field
controllers/web/app.js - Add team permission checks
routes/web/app.js - Add team routes
routes/api/app.js - Add team permission checks
Security Considerations
- Use cryptographically secure invitation tokens
- Always verify team membership server-side
- Implement proper authorization on all endpoints
- Log all team membership and permission changes
- Rate limit invitation sending
Success Metrics
Problem Statement
Currently, Voult apps have a single owner (
ownerfield in App model). This creates several limitations:💡 Proposed Solution
Implement a team-based access system that allows multiple developers to collaborate on apps with role-based permissions.
Key Features
Team Creation & Management
Invitation System
Role-Based Access Control
App Access Integration
📋 Implementation Checklist
Phase 1: Core Infrastructure (MVP)
models/team.js)Phase 2: App Integration
middleware/requireTeamRole.js)Phase 3: Advanced Features
🗂️ Files to Create/Modify
New Files
models/team.js
models/auditLog.js
controllers/api/team.js
controllers/web/team.js
routes/api/team.js
routes/web/team.js
middleware/requireTeamRole.js
services/teamInvitation.js
views/team/
Modified Files
models/app.js - Add team field
controllers/web/app.js - Add team permission checks
routes/web/app.js - Add team routes
routes/api/app.js - Add team permission checks
Security Considerations
Success Metrics