Implement yao doc process list/inspect/validate and yao doc runtime list/inspect/validate commands. Validate uses engine addressing logic (process.Of) and checks dynamic-ID group registries (model, store, fs, task, schedule) to verify resources actually exist. - cmd/doc/: CLI command tree with process and runtime subcommands - cmd/root.go: wire docCmd into rootCmd - 27 process doc.yml + doc.go pairs across yao packages - cmd/doc/doc_test.go: integration tests Made-with: Cursor
264 lines
7.1 KiB
YAML
264 lines
7.1 KiB
YAML
group: user
|
|
type: process
|
|
entries:
|
|
# Profile
|
|
- name: profile.get
|
|
desc: Get the current user's profile information
|
|
args:
|
|
- name: options
|
|
type: object
|
|
required: false
|
|
desc: "Optional flags: {team: bool, member: bool, type: bool} to include team, member, or type info"
|
|
return:
|
|
type: object
|
|
desc: User profile data in OIDC format with optional team/member/type info
|
|
|
|
- name: profile.update
|
|
desc: Update the current user's profile information
|
|
args:
|
|
- name: data
|
|
type: object
|
|
required: true
|
|
desc: "Profile fields to update (name, given_name, family_name, nickname, picture, gender, locale, theme, metadata, etc.)"
|
|
return:
|
|
type: object
|
|
desc: "Object with user_id and message"
|
|
|
|
# Team Management
|
|
- name: team.list
|
|
desc: List teams owned by the current user with pagination and filtering
|
|
args:
|
|
- name: params
|
|
type: object
|
|
required: true
|
|
desc: "Query parameters: {status, name, page, pagesize}"
|
|
return:
|
|
type: object
|
|
desc: Paginated team list with data array and pagination info
|
|
|
|
- name: team.get
|
|
desc: Get details of a specific team the current user is a member of
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID to retrieve
|
|
return:
|
|
type: object
|
|
desc: Team details including name, description, logo, owner_id, status, settings
|
|
|
|
- name: team.create
|
|
desc: Create a new team with the current user as owner
|
|
args:
|
|
- name: data
|
|
type: object
|
|
required: true
|
|
desc: "Team data: {name, description, settings, ...}"
|
|
return:
|
|
type: object
|
|
desc: "Object with team_id of the created team"
|
|
|
|
- name: team.update
|
|
desc: Update an existing team owned by the current user
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID to update
|
|
- name: data
|
|
type: object
|
|
required: true
|
|
desc: "Fields to update: {name, description, settings, ...}"
|
|
return:
|
|
type: object
|
|
desc: "Object with message"
|
|
|
|
- name: team.delete
|
|
desc: Delete a team owned by the current user (removes all members first)
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID to delete
|
|
return:
|
|
type: object
|
|
desc: "Object with message"
|
|
|
|
# Team Member Management
|
|
- name: member.list
|
|
desc: List members of a team with advanced filtering and pagination
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: params
|
|
type: object
|
|
required: true
|
|
desc: "Query parameters: {page, pagesize, status, member_type, role_id, email, display_name, order, fields, locale}"
|
|
return:
|
|
type: object
|
|
desc: Paginated member list with data array and pagination info
|
|
|
|
- name: member.get
|
|
desc: Get details of a specific team member
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: memberID
|
|
type: string
|
|
required: true
|
|
desc: Member ID (business key)
|
|
return:
|
|
type: object
|
|
desc: Member details including role, status, display_name, robot config, etc.
|
|
|
|
- name: member.update
|
|
desc: Update a team member (owner only, for role/status changes)
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: memberID
|
|
type: string
|
|
required: true
|
|
desc: Member ID (business key)
|
|
- name: data
|
|
type: object
|
|
required: true
|
|
desc: "Fields to update: {role_id, status, settings, last_activity}"
|
|
return:
|
|
type: object
|
|
desc: "Object with message"
|
|
|
|
- name: member.profile.get
|
|
desc: Get a team member's profile (display_name, bio, avatar, email)
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: userID
|
|
type: string
|
|
required: true
|
|
desc: "User ID of the member (not member_id)"
|
|
return:
|
|
type: object
|
|
desc: Member profile data with user_id, team_id, display_name, bio, avatar, email
|
|
|
|
- name: member.profile.update
|
|
desc: Update a team member's own profile (display_name, bio, avatar, email)
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: userID
|
|
type: string
|
|
required: true
|
|
desc: "User ID of the member (not member_id)"
|
|
- name: data
|
|
type: object
|
|
required: true
|
|
desc: "Profile fields to update: {display_name, bio, avatar, email}"
|
|
return:
|
|
type: object
|
|
desc: "Object with user_id and message"
|
|
|
|
- name: member.delete
|
|
desc: Remove a member from a team (owner only)
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: memberID
|
|
type: string
|
|
required: true
|
|
desc: Member ID (business key)
|
|
return:
|
|
type: object
|
|
desc: "Object with message"
|
|
|
|
# Team Invitation Management
|
|
- name: team.invitation.list
|
|
desc: List pending invitations for a team with pagination
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: params
|
|
type: object
|
|
required: true
|
|
desc: "Query parameters: {status, page, pagesize}"
|
|
return:
|
|
type: object
|
|
desc: Paginated invitation list with data array and pagination info
|
|
|
|
- name: team.invitation.get
|
|
desc: Get details of a specific team invitation
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: invitationID
|
|
type: string
|
|
required: true
|
|
desc: Invitation ID (business key)
|
|
return:
|
|
type: object
|
|
desc: Invitation details including status, role, invited_by, expiry, etc.
|
|
|
|
- name: team.invitation.create
|
|
desc: Create a new team invitation (owner only)
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: data
|
|
type: object
|
|
required: true
|
|
desc: "Invitation data: {user_id, email, member_type, role_id, message, expiry, settings}"
|
|
return:
|
|
type: object
|
|
desc: "Object with invitation_id"
|
|
|
|
- name: team.invitation.resend
|
|
desc: Resend a pending team invitation with a new token and extended expiry
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: invitationID
|
|
type: string
|
|
required: true
|
|
desc: Invitation ID (business key)
|
|
- name: locale
|
|
type: string
|
|
required: false
|
|
desc: "Locale for email template (default: \"en\")"
|
|
return:
|
|
type: object
|
|
desc: "Object with message"
|
|
|
|
- name: team.invitation.delete
|
|
desc: Cancel a pending team invitation (owner only)
|
|
args:
|
|
- name: teamID
|
|
type: string
|
|
required: true
|
|
desc: Team ID
|
|
- name: invitationID
|
|
type: string
|
|
required: true
|
|
desc: Invitation ID (business key)
|
|
return:
|
|
type: object
|
|
desc: "Object with message"
|