malv org
Manage organizations - create teams, invite members, and control access to published apps.
Usage
malv org <command> [args] [options]
Commands
| Command | Description |
|---|---|
create <name> |
Create a new organization |
list |
List your organizations |
info <name> |
Show organization details |
systems <name> |
List organization's published apps |
users <name> |
List organization members |
invite <name> <email> |
Invite a user |
join <name> |
Accept a pending invitation |
leave <name> |
Leave an organization |
kick <name> [user-id] |
Remove a member |
role <name> <user-id> <role> |
Change a member's role |
Creating Organizations
Create a new organization:
$ malv org create mycompany
✓ Created organization @mycompany
You are the owner.
Organization names:
- Must be lowercase
- Can contain letters, numbers, and hyphens
- Cannot start with a hyphen
- Are globally unique
Listing Organizations
See organizations you belong to:
$ malv org list
Your organizations:
@malv (member)
@mycompany (owner)
@acme (admin)
Organization Info
Get details about an organization:
$ malv org info mycompany
Organization: @mycompany
Created: January 15, 2024
Members: 5
Published apps: 3
Your role: owner
Published Apps
List apps published by an organization:
$ malv org systems mycompany
Apps published by @mycompany:
@mycompany/auth (v1.2.0) - public
@mycompany/notes (v2.0.0) - public
@mycompany/internal (v1.0.0) - private
Member Management
List Members
$ malv org users mycompany
Members of @mycompany:
[email protected] (owner) - usr_abc123
[email protected] (admin) - usr_def456
[email protected] (developer) - usr_ghi789
Invite Users
# Invite as default role (member)
malv org invite mycompany [email protected]
# Invite with specific role
malv org invite mycompany [email protected] --role admin
Output:
$ malv org invite mycompany [email protected] --role admin
✓ Invitation sent to [email protected]
Role: admin
They can accept with: malv org join mycompany
Accept Invitation
When you're invited to an organization:
$ malv org join mycompany
✓ Joined @mycompany as developer
Remove Members
Remove a member (interactive picker if no user ID provided):
# Interactive - shows list to choose from
malv org kick mycompany
# Direct - specify user ID
malv org kick mycompany usr_def456
Output:
$ malv org kick mycompany
? Select a member to remove:
❯ [email protected] (admin)
[email protected] (developer)
✓ Removed [email protected] from @mycompany
Change Roles
malv org role mycompany usr_def456 developer
Output:
✓ Changed [email protected]'s role to developer
Roles
| Role | Permissions |
|---|---|
owner |
Full control, can delete org, manage all members |
admin |
Manage members, publish apps, change settings |
developer |
Publish apps, view members |
member |
View apps and members only |
Leaving Organizations
Leave an organization you belong to:
$ malv org leave mycompany
? Are you sure you want to leave @mycompany? (y/N) y
✓ Left @mycompany
Skip confirmation:
malv org leave mycompany --yes
Owners cannot leave until they transfer ownership or delete the organization.
Examples
Setting Up a Team
# Create the organization
malv org create mycompany
# Invite team members
malv org invite mycompany [email protected] --role admin
malv org invite mycompany [email protected] --role developer
malv org invite mycompany [email protected] --role developer
# Check the team
malv org users mycompany
Publishing a Private App
# Publish as private to your org
cd packages/apps/internal-tool
malv publish --access private
# Team members can install it
malv install @mycompany/internal-tool
Onboarding a New Developer
# Invite them
malv org invite mycompany [email protected] --role developer
# They accept
malv org join mycompany
# They can now publish to @mycompany
cd their-app
malv publish
Authentication
All organization commands require authentication:
malv login
Related Commands
- malv login - Authenticate with the registry
- malv publish - Publish apps to organizations