Expand description
§MockForge Collaboration
Cloud collaboration features for MockForge including team workspaces, real-time synchronization, version control, and role-based access control.
§Features
- Team Workspaces: Shared environments for collaborative mock development
- Real-time Sync: WebSocket-based synchronization across team members
- Role-Based Access Control: Admin, Editor, and Viewer roles
- Version Control: Git-style history and versioned snapshots
- Self-Hosted Option: Run your own team collaboration server
- Conflict Resolution: Intelligent merging of concurrent changes
§Quick Start
§Creating a Collaborative Workspace
use mockforge_collab::{
CollabServer, CollabConfig, TeamWorkspace, UserRole,
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Create collaboration server
let config = CollabConfig::default();
let server = CollabServer::new(config).await?;
// Start the server
server.run("127.0.0.1:8080").await?;
Ok(())
}§Connecting to a Collaborative Workspace
use mockforge_collab::{CollabClient, ClientConfig};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let config = ClientConfig {
server_url: "ws://localhost:8080".to_string(),
auth_token: "your-token".to_string(),
};
let client = CollabClient::connect(config).await?;
// Subscribe to workspace changes
client.subscribe_to_workspace("workspace-id").await?;
Ok(())
}Re-exports§
pub use auth::AuthService;pub use auth::Credentials;pub use auth::Session;pub use auth::Token;pub use client::ClientConfig;pub use client::CollabClient;pub use client::ConnectionState;pub use config::CollabConfig;pub use conflict::ConflictResolution;pub use conflict::ConflictResolver;pub use conflict::MergeStrategy;pub use error::CollabError;pub use error::Result;pub use events::ChangeEvent;pub use events::ChangeType;pub use events::EventBus;pub use events::EventListener;pub use history::Commit;pub use history::History;pub use history::Snapshot;pub use history::VersionControl;pub use models::TeamWorkspace;pub use models::User;pub use models::UserRole;pub use models::WorkspaceMember;pub use permissions::Permission;pub use permissions::PermissionChecker;pub use permissions::RolePermissions;pub use server::CollabServer;pub use sync::SyncEngine;pub use sync::SyncMessage;pub use sync::SyncState;pub use workspace::WorkspaceManager;pub use workspace::WorkspaceService;
Modules§
- api
- REST API endpoints for collaboration
- auth
- Authentication and authorization
- client
- Collaboration client for connecting to servers
- config
- Configuration for collaboration server
- conflict
- Conflict resolution for concurrent edits
- error
- Error types for collaboration features
- events
- Event system for real-time updates
- history
- Version control and history tracking
- middleware
- Middleware for authentication and authorization
- models
- Core data models for collaboration
- permissions
- Permission checking and role-based access control
- server
- Collaboration server implementation
- sync
- Real-time synchronization engine
- user
- User management service
- websocket
- WebSocket handler for real-time collaboration
- workspace
- Workspace management and collaboration