Project Metadata API Documentation
Project metadata functionality allows organizations to collect structured information about their projects using customizable checklists. This feature is built on top of the core checklist system and provides a standardized way to gather project details, compliance information, and other metadata.
Overview
Project metadata uses the checklist system to enable organizations to:
- Define custom metadata collection forms for their projects
- Ensure consistent data collection across all projects
- Track completion status of metadata requirements
- Manage access controls for viewing and editing metadata
Configuration
Setting Up Project Metadata
- Create a Project Metadata Checklist
First, create a checklist with type PROJECT_METADATA
:
1 2 3 4 5 6 7 8 9 |
|
- Add Questions to the Checklist
1 2 3 4 5 6 7 8 9 10 11 |
|
- Assign Checklist to Customer
Assign the checklist to a customer to enable metadata collection for all their projects:
1 2 3 4 5 6 7 |
|
API Endpoints
All project metadata endpoints are available under the project resource:
Base URL Pattern
1 |
|
Available Actions
1. Get Project Metadata Checklist
Retrieves the metadata checklist for a project, including all questions and existing answers.
1 2 |
|
Permissions Required:
- Project member (admin, manager, or member)
- Customer owner
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
|
2. Get Completion Status
Retrieves only the completion status information for the project metadata.
1 2 |
|
Permissions Required:
- Project member (admin, manager, or member)
- Customer owner
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
3. Submit Metadata Answers
Submit or update answers to metadata questions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Permissions Required:
- Customer owner
- Project manager
Answer Data Formats:
Question Type | Format | Example |
---|---|---|
text_input |
String | "Short text answer" |
text_area |
String | "Long text answer with multiple lines" |
boolean |
Boolean | true or false |
number |
Number | 42 or 3.14 |
single_select |
Array with one UUID | ["option-uuid"] |
multi_select |
Array with multiple UUIDs | ["option-uuid-1", "option-uuid-2"] |
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Error Responses
Common Error Codes
400 Bad Request
1 2 3 |
|
403 Forbidden
1 2 3 |
|
404 Not Found
1 2 3 |
|
Validation Errors
When submitting invalid answers:
1 2 3 4 5 6 7 8 9 |
|
Permission Model
The project metadata system uses a granular permission model:
View Permissions (checklist, completion_status)
- Project Admin: Can view metadata for their projects
- Project Manager: Can view metadata for their projects
- Project Member: Can view metadata for their projects
- Customer Owner: Can view metadata for all projects in their organization
Update Permissions (submit_answers)
- Customer Owner: Can update metadata for all projects in their organization
- Project Manager: Can update metadata for their projects
Administrative Permissions (checklist management)
- Staff Users: Can create and manage checklists
- Customer Owners: Can assign checklists to their organization
Lifecycle Management
Automatic Checklist Completion Creation
When a customer has a project metadata checklist configured:
- New Project Creation: ChecklistCompletion is automatically created for new projects
- Existing Projects: ChecklistCompletion is created for all existing projects when checklist is assigned
- Checklist Removal: All associated ChecklistCompletions are automatically deleted
Data Integrity
- Answers are tied to the user who submitted them
- Multiple users can provide answers to the same checklist
- Answer history is maintained with creation and modification timestamps
- Completion status is calculated in real-time based on required questions
Best Practices
For API Consumers
- Check Completion Status: Always check if metadata is required before showing forms
- Handle Missing Checklists: Gracefully handle cases where no checklist is configured
- Validate Before Submit: Validate answer formats client-side to reduce API errors
- Show Progress: Use completion_percentage to show users their progress
- Cache Appropriately: Checklist structure changes infrequently, status changes often
For Administrators
- Plan Question Structure: Design questions before creating projects
- Use Clear Descriptions: Make question descriptions self-explanatory
- Set Appropriate Requirements: Mark essential questions as required
- Test Thoroughly: Test the complete flow before deploying to users
- Monitor Adoption: Track completion rates to ensure effective use