Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions fern/openapi/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5750,6 +5750,11 @@ paths:
required: false
schema:
type: integer
- description: "Filter members by organization role. Accepts single role or comma-separated list of roles. \n\n**Format:**\n- Single role: `?role=RE`\n- Multiple roles: `?role=AN,RE` (users with ANY of these roles)\n\n**Role Codes:**\n- `OW` = Owner\n- `AD` = Administrator\n- `MA` = Manager\n- `RE` = Reviewer\n- `AN` = Annotator\n- `NO` = Not Activated\n- `DI` = Disabled\n"
in: query
name: role
schema:
type: string
- description: A search term.
in: query
name: search
Expand Down Expand Up @@ -7057,6 +7062,11 @@ paths:
name: search
schema:
type: string
- description: Filter current_state by exact match
in: query
name: state
schema:
type: string
- description: Filter title by contains (case-insensitive)
in: query
name: title
Expand Down Expand Up @@ -7160,6 +7170,11 @@ paths:
name: search
schema:
type: string
- description: Filter current_state by exact match
in: query
name: state
schema:
type: string
- description: Filter title by contains (case-insensitive)
in: query
name: title
Expand Down Expand Up @@ -8582,6 +8597,14 @@ paths:
</p>
</Card>
Retrieve the members for a specific project.

**Response Fields:**
- `implicit_member` (boolean): Indicates if the user is an implicit member.
- `true`: User has access via workspace membership or organization role (Administrator/Owner)
- `false`: User is an explicit project member (added directly to the project)
- `project_role` (string|null): Project-specific role override if assigned, null otherwise

**Note:** Users can have both explicit membership AND implicit access. The `implicit_member` field is `false` if the user has an explicit ProjectMember entry, regardless of whether they also have implicit access via workspace or org role.
operationId: api_projects_members_paginated_list
parameters:
- in: path
Expand All @@ -8599,11 +8622,30 @@ paths:
name: implicit
schema:
type: boolean
- description: Filter by last activity time (ISO 8601 datetime). Returns users with last activity greater than or equal to this time.
in: query
name: last_activity__gte
schema:
format: date-time
type: string
- description: Exclude annotators from the results
in: query
name: no_annotators
schema:
type: boolean
- description: |-
Ordering field. Prefix with "-" for descending order. Allowed fields: id, email, first_name, last_name, username, last_activity, role, date_joined

**Note on role ordering:**
When ordering by "role", the system uses the effective role:
- Project-specific role if assigned (takes precedence)
- Organization role if no project role is assigned

Roles are sorted alphabetically by their code: AD (Administrator), AN (Annotator), DI (Disabled), MA (Manager), NO (Not Activated), OW (Owner), RE (Reviewer)
in: query
name: ordering
schema:
type: string
- description: A page number within the paginated result set.
in: query
name: page
Expand All @@ -8616,6 +8658,30 @@ paths:
required: false
schema:
type: integer
- description: |-
Filter members by role. Accepts single role or comma-separated list of roles.

**Format:**
- Single role: `?role=RE`
- Multiple roles: `?role=AN,RE` (users with ANY of these roles)

**Role Codes:**
- `OW` = Owner
- `AD` = Administrator
- `MA` = Manager
- `RE` = Reviewer
- `AN` = Annotator

**Matching Logic:**
Returns users who have any of the specified roles either:
1. As their **project-specific role** (from project role assignments), OR
2. As their **organization role** (if they have no project-specific role override)

**Note:** Project-specific roles take precedence. If a user has a project role assigned, their organization role is ignored for filtering purposes.
in: query
name: role
schema:
type: string
- description: Search term for filtering members by name, email, or username
in: query
name: search
Expand Down Expand Up @@ -19453,6 +19519,9 @@ components:
description: Start model training after any annotations are submitted or updated
readOnly: true
type: boolean
state:
readOnly: true
type: string
task_number:
description: Total task number in project
readOnly: true
Expand Down Expand Up @@ -19507,6 +19576,7 @@ components:
- reviewer_queue_total
- skipped_annotations_number
- start_training_on_annotation_update
- state
- task_number
- total_annotations_number
- total_predictions_number
Expand Down Expand Up @@ -24505,6 +24575,9 @@ components:
description: Start model training after any annotations are submitted or updated
readOnly: true
type: boolean
state:
readOnly: true
type: string
task_data_login:
description: 'Task data credentials: login'
maxLength: 256
Expand Down Expand Up @@ -24564,6 +24637,7 @@ components:
- reviewer_queue_total
- skipped_annotations_number
- start_training_on_annotation_update
- state
- task_number
- total_annotations_number
- total_predictions_number
Expand Down Expand Up @@ -24785,6 +24859,9 @@ components:
description: Start model training after any annotations are submitted or updated
readOnly: true
type: boolean
state:
readOnly: true
type: string
task_data_login:
description: 'Task data credentials: login'
maxLength: 256
Expand Down Expand Up @@ -24832,6 +24909,7 @@ components:
- queue_total
- skipped_annotations_number
- start_training_on_annotation_update
- state
- task_number
- total_annotations_number
- total_predictions_number
Expand Down Expand Up @@ -25204,6 +25282,9 @@ components:
description: Start model training after any annotations are submitted or updated
readOnly: true
type: boolean
state:
readOnly: true
type: string
task_data_login:
description: 'Task data credentials: login'
maxLength: 256
Expand Down Expand Up @@ -25267,6 +25348,7 @@ components:
- reviewer_queue_total
- skipped_annotations_number
- start_training_on_annotation_update
- state
- task_number
- total_annotations_number
- total_predictions_number
Expand Down Expand Up @@ -25474,6 +25556,9 @@ components:
description: Start model training after any annotations are submitted or updated
readOnly: true
type: boolean
state:
readOnly: true
type: string
task_data_login:
description: 'Task data credentials: login'
maxLength: 256
Expand Down Expand Up @@ -25527,6 +25612,7 @@ components:
- review_settings
- skipped_annotations_number
- start_training_on_annotation_update
- state
- task_number
- total_annotations_number
- total_predictions_number
Expand Down Expand Up @@ -28031,6 +28117,9 @@ components:
id:
readOnly: true
type: integer
implicit_member:
readOnly: true
type: boolean
initials:
default: '?'
readOnly: true
Expand Down Expand Up @@ -28072,6 +28161,7 @@ components:
- active_organization_meta
- avatar
- id
- implicit_member
- initials
- last_activity
- lse_fields
Expand Down Expand Up @@ -30370,6 +30460,9 @@ components:
description: Start model training after any annotations are submitted or updated
readOnly: true
type: boolean
state:
readOnly: true
type: string
task_data_login:
description: 'Task data credentials: login'
maxLength: 256
Expand Down Expand Up @@ -30415,6 +30508,7 @@ components:
- queue_total
- skipped_annotations_number
- start_training_on_annotation_update
- state
- task_number
- total_annotations_number
- total_predictions_number
Expand Down