fmea-api-mcp-server 1.1.13 → 1.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"POST:/api/v1/auth/login":{"path":"/api/v1/auth/login","method":"POST","operationId":"login","summary":"Authenticate User","description":"Validates credentials (userId/password) and issues an access token and refresh token. Returns the token pair along with user profile data. Use for user sign-in and session initiation. Throws AuthenticationException on failure.","tags":[],"parameters":[],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/CredentialsDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"POST:/api/v1/auth/logout":{"path":"/api/v1/auth/logout","method":"POST","operationId":"logout","summary":"Terminate Session","description":"Invalidates the provided refresh token and terminates the user's session. Ensures the refresh token cannot be used again. Does not immediately invalidate short-lived access tokens. Use for secure sign-out.","tags":[],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"POST:/api/v1/auth/refresh":{"path":"/api/v1/auth/refresh","method":"POST","operationId":"refresh","summary":"Refresh Access Token","description":"Issues a new access token using a valid refresh token. Use this to maintain a session after the access token expires without prompting for credentials. Returns a new access token.","tags":[],"parameters":[],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/TokenDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"POST:/api/v1/auth/change-password":{"path":"/api/v1/auth/change-password","method":"POST","operationId":"changePassword","summary":"Change User Password","description":"Updates the user's password. Requires current password verification and the new password in PasswordChangeDTO. Use for self-service password updates.","tags":[],"parameters":[],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PasswordChangeDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"POST:/api/v1/auth/password-reset-request":{"path":"/api/v1/auth/password-reset-request","method":"POST","operationId":"passwordResetRequest","summary":"Request Password Reset","description":"Initiates a password reset flow (e.g., sends an email with a reset link). Accepts userId or email in PasswordResetDTO. Use for 'Forgot Password' functionality.","tags":[],"parameters":[],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PasswordResetDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v1/oauth/callback/{service}":{"path":"/api/v1/oauth/callback/{service}","method":"GET","operationId":"callback","summary":"Handle OAuth authentication callback","description":"Processes the callback response from an OAuth provider (e.g., Google, GitHub) after user authorization. The {service} path parameter specifies the OAuth provider. This endpoint receives the authorization code or tokens from the provider, validates them, and issues FMEA system access and refresh tokens for the authenticated user. Use this endpoint to complete OAuth login flows, integrate third-party authentication, or enable social login functionality. Synonyms: OAuth redirect handler, third-party login callback, SSO callback, external authentication completion.","tags":[],"parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"query","schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v1/projects/{projectId}/blockdiagrams":{"path":"/api/v1/projects/{projectId}/blockdiagrams","method":"GET","operationId":"list","summary":"List block diagrams","description":"Retrieves all block diagrams associated with a specific project. Use this endpoint to fetch an overview or complete inventory of block diagrams within a project context. The response includes basic metadata for each block diagram, enabling users to browse, select, or reference existing diagrams for further operations such as viewing nodes, editing structure, or performing analysis.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"subTitle":{"type":"string"},"serial":{"type":"integer"},"description":{"type":"string"},"topNodeId":{"type":"string"}}}}}}}}},"GET:/api/v1/projects/{projectId}/blockdiagrams/search":{"path":"/api/v1/projects/{projectId}/blockdiagrams/search","method":"GET","operationId":"search","summary":"Search block diagrams","description":"Performs a targeted search across block diagrams using multiple filter criteria including model name, item identifier, division code, or block diagram title. This endpoint enables efficient discovery of specific diagrams when the exact ID is unknown or when filtering by business attributes. Users can query by partial matches across these fields to locate relevant diagrams for review, modification, or integration with other FMEA analysis components.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"model","in":"query","schema":{"type":"string"}},{"name":"item","in":"query","schema":{"type":"string"}},{"name":"divisionId","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"blockTitle","in":"query","schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"projectId":{"type":"string"},"secondTag":{"type":"string"},"tag":{"type":"string"},"title":{"type":"string"},"subTitle":{"type":"string"},"serial":{"type":"integer"},"project":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"isMaster":{"type":"string"},"isReferenced":{"type":"string"},"isActive":{"type":"string"},"projectClass":{"type":"string"},"systemFunction":{"type":"string"},"systemRequirement":{"type":"string"},"item":{"type":"string"},"model":{"type":"string"},"startDate":{"type":"string","format":"date"},"dueDate":{"type":"string","format":"date"},"completedDate":{"type":"string","format":"date"},"updateUntil":{"type":"string","format":"date"},"evaluationCriteria":{"type":"string"},"description":{"type":"string"},"needsApproval":{"type":"string"},"score":{"type":"integer"},"status":{"type":"string"},"syncProject":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}},"worksheetTemplate":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"fmeaType":{"type":"string"},"baseId":{"type":"integer"},"baseTitle":{"type":"string"},"order":{"type":"integer"},"selected":{"type":"integer"},"active":{"type":"integer"}}},"leader":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}},"completionReviewer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}},"approver":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}},"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}}},"reviewers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}}}}}}}}}}}}},"GET:/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes":{"path":"/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes","method":"GET","operationId":"findNodesByIds","summary":"Find nodes by IDs","description":"Fetches all nodes belonging to a specific block diagram identified by its block ID. Nodes represent individual elements, components, or connection points within the block diagram structure. Use this endpoint to retrieve the complete node configuration for visualization, analysis, or editing purposes. The response includes node properties, positions, relationships, and associated metadata required for rendering or processing the diagram structure.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"parentId":{"type":"string"},"originalId":{"type":"string"},"name":{"type":"string"},"function":{"type":"string"},"requirement":{"type":"string"},"depth":{"type":"integer"},"blockNodeType":{"type":"string","enum":["SUB_FUNCTION","NEW_CHANGE_ASSEMBLY","NEW_CHANGE_PART","TARGET"]},"sequence":{"type":"integer"}}}}}}}},"POST:/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes":{"path":"/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes","method":"POST","operationId":"saveNodes","summary":"Save nodes","description":"Creates or updates nodes within a block diagram. This endpoint accepts node data including coordinates, labels, properties, and interconnections, allowing users to persist diagram modifications. Requires NORMAL user level authentication. Use this operation to add new nodes to a diagram, update existing node configurations, or restructure the diagram layout. The service validates node data and returns the created resource URI upon successful persistence.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockNodeSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes/batch":{"path":"/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes/batch","method":"POST","operationId":"batchNodes","summary":"Batch create nodes","description":"Creates multiple nodes in a single batch operation for efficient bulk insertion into a block diagram. This endpoint is optimized for scenarios requiring the addition of numerous nodes simultaneously, such as importing diagram structures, cloning templates, or performing mass updates. Requires NORMAL user level authentication. The batch process accepts an array of node definitions and atomically persists all nodes, ensuring data consistency and improving performance over individual node creation calls.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BlockNodeBatchDTO"}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/divisions":{"path":"/api/v1/divisions","method":"GET","summary":"Find all divisions","operationId":"findAll","description":"Retrieves a complete list of all organizational divisions in the system. This ADMIN-ONLY endpoint returns all division records without pagination, enabling comprehensive overview of organizational structure. Use this endpoint to enumerate, list, or query all available divisions across the entire FMEA system. The response includes division metadata such as names, codes, and hierarchical information. Requires administrative privileges.","tags":[],"parameters":[{"name":"size","in":"query","schema":{"type":"integer","format":"int32","default":20},"required":false},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":1},"required":false}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}}}}}},"POST:/api/v1/divisions":{"path":"/api/v1/divisions","method":"POST","summary":"Save divisions","operationId":"save_1","description":"Creates multiple new division records in bulk within the FMEA system. This ADMIN-ONLY endpoint accepts an array of division objects and registers them simultaneously, enabling efficient batch creation of organizational units. Use this endpoint to establish new departments, sections, or business units when onboarding new organizational structures. The system associates created divisions with the authenticated administrator's user context for audit purposes. Requires administrative privileges. Alternative terms: bulk division creation, batch division setup, add multiple departments.","tags":[],"parameters":[],"requestBody":{"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DivisionSaveDTO"}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/divisions/{id}/accesses":{"path":"/api/v1/divisions/{id}/accesses","method":"GET","summary":"Find division accesses by ID","operationId":"findById_1","description":"Retrieves the complete access control list (ACL) and permission configuration for a specific division by its numeric ID. This ADMIN-ONLY endpoint provides visibility into which users, roles, or groups have access to the target division, along with their specific permission levels. Use this endpoint to audit division security, review access rights, check user permissions, or investigate who can access specific organizational units. The {id} parameter represents the unique division identifier. Requires administrative privileges. Alternative terms: get division permissions, access control list, division security, user access by division.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"authorizedDivisions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}}}}}}}},"GET:/api/v1/divisions/my":{"path":"/api/v1/divisions/my","method":"GET","summary":"Find divisions by user ID","operationId":"findByUserId","description":"Retrieves all divisions associated with the authenticated user's account. This user-context-aware endpoint automatically identifies divisions based on the current user's profile and permissions, returning a personalized list of organizational units they belong to or can access. Use this endpoint to discover user's division memberships, find available departments, query user's organizational scope, or display user-specific division selection options. No parameters required—the system extracts user context from the authentication token. Alternative terms: my divisions, user divisions, get my departments, current user divisions, accessible divisions.","tags":[],"parameters":[],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}}}}}},"GET:/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes/{nodeId}/failuremodes":{"path":"/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes/{nodeId}/failuremodes","method":"GET","operationId":"findByNodeId","summary":"Find Failure Modes","description":"Retrieves all failure modes associated with a specific node within a block diagram. This endpoint fetches the list of potential failure scenarios defined for the selected node (block diagram component). Use this to review existing failure modes, understand failure analysis context, or prepare for FMM (Failure Mode Mechanism) diagram generation. The response includes failure mode details such as descriptions, categories, and associated metadata for the specified node.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"projectId":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"nodeKind":{"type":"string"},"nodeId":{"type":"string"},"originalNodeId":{"type":"string"},"blockType":{"type":"string"},"worksheetId":{"type":"integer"},"referTag":{"type":"string"},"rank":{"type":"string"},"complete":{"type":"string"},"transferFmmObject":{"type":"integer"}}}}}}}}},"DELETE:/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes/{nodeId}/failuremodes":{"path":"/api/v1/projects/{projectId}/blockdiagrams/{blockId}/nodes/{nodeId}/failuremodes","method":"DELETE","operationId":"deleteByNodeId","summary":"Delete Failure Modes","description":"Removes one or more failure modes from a specific node in a block diagram. This endpoint allows bulk deletion of failure scenarios by providing a list of failure mode IDs in the request body. Use this to clean up incorrect failure modes, remove outdated analysis data, or reset failure mode definitions for a node. Requires NORMAL user level permissions. The operation returns HTTP 204 (No Content) upon successful deletion.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"*/*":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/projects/{projectId}/blockdiagrams/{blockId}/failuremodes/import-from-project":{"path":"/api/v1/projects/{projectId}/blockdiagrams/{blockId}/failuremodes/import-from-project","method":"POST","operationId":"importFromProject","summary":"Import Failure Modes from Project","description":"Imports failure mode definitions from another project into the current block diagram. This endpoint enables knowledge reuse by copying established failure mode analysis from source projects. Use this to leverage existing failure libraries, standardize failure modes across similar projects, or accelerate analysis setup by importing pre-defined failure scenarios. Requires specifying the source project ID and selecting which failure modes to import. Requires NORMAL user level permissions.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/FailureModeImportFromProjectDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/projects/{projectId}/blockdiagrams/{blockId}/failuremodes":{"path":"/api/v1/projects/{projectId}/blockdiagrams/{blockId}/failuremodes","method":"POST","operationId":"saveAll","summary":"Save All Failure Modes","description":"Creates or updates multiple failure modes for a block diagram in a single batch operation. This endpoint accepts a list of failure mode objects, enabling bulk creation or modification of failure scenarios across different nodes. Use this for rapid data entry, importing failure modes from external systems, or synchronizing analysis data. Each failure mode can include attributes such as name, description, severity, and node association. Requires NORMAL user level permissions and validates all inputs before saving.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FailureModeSaveDTO"}}}},"required":true},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/projects/{projectId}/failuremods/{fmmId}/fmmdiagram":{"path":"/api/v1/projects/{projectId}/failuremods/{fmmId}/fmmdiagram","method":"GET","operationId":"listFmmDiagram","summary":"List FMM Diagram","description":"Retrieves the complete FMM (Failure Mode Mechanism) diagram structure for a specific failure mode. This endpoint returns hierarchical tree data including cause nodes, effect nodes, and their relationships. Use this to visualize the failure propagation path, understand causal relationships, or display the FMM diagram in the UI. The response includes node types, connections, and metadata required to render the diagram structure.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"fmmId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/projects/{projectId}/failuremods/{topEventId}/fta":{"path":"/api/v1/projects/{projectId}/failuremods/{topEventId}/fta","method":"GET","operationId":"listFta","summary":"List FTA","description":"Retrieves the Fault Tree Analysis (FTA) diagram for a specific failure mode (top event). FTA is a deductive analysis method that explores all possible causes leading to the top event failure. This endpoint returns the complete fault tree structure including intermediate events, basic events, and logical gates (AND, OR). Use this to analyze root causes, understand failure propagation logic, or display the fault tree visualization.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"topEventId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/projects/{projectId}/failuremods/{topEventId}/fta":{"path":"/api/v1/projects/{projectId}/failuremods/{topEventId}/fta","method":"POST","operationId":"saveFta","summary":"Save FTA","description":"Creates or updates the Fault Tree Analysis (FTA) structure for a specific failure mode (top event). This endpoint accepts hierarchical tree data including events, logic gates, and their relationships. Use this to document failure causality, build fault tree models, or update existing FTA diagrams. The request body should contain the complete tree structure with node types, gate logic, and event definitions. Supports both initial creation and full replacement of the fault tree.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"topEventId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FTANodeSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/files/{uuid}":{"path":"/api/v1/files/{uuid}","method":"GET","operationId":"downloadFile","summary":"Download file by UUID","description":"Retrieves and downloads a previously uploaded file using its unique identifier (UUID). Supports multiple file formats including Excel (.xls, .xlsx), CSV, PDF, ZIP, PNG, JSON, TXT, and custom project files (.fmeapjt). The file is returned as an attachment with proper Content-Type headers and URL-encoded filename for safe browser download. Requires READER user level or higher. This endpoint is typically used after file upload operations to retrieve stored documents, reports, or export files.","tags":[],"parameters":[{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"*/*":{}}}},"x-dependency-warning":"REQUIRES PRIOR FILE UPLOAD via [POST /api/v2/files]. The {uuid} parameter is the file identifier returned by a previous upload operation."},"GET:/api/v1/knowledges/categories/{categoryId}":{"path":"/api/v1/knowledges/categories/{categoryId}","method":"GET","operationId":"findById_2","summary":"Find knowledge category by ID","description":"Retrieve a specific knowledge category by its unique identifier (Get category details / Fetch category by ID / View category information). Use this endpoint to access metadata and configuration details for a single knowledge category, including its name, description, and organizational structure.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"PUT:/api/v1/knowledges/categories/{categoryId}":{"path":"/api/v1/knowledges/categories/{categoryId}","method":"PUT","operationId":"updateById","summary":"Update knowledge category by ID","description":"Modify an existing knowledge category's properties (Edit category / Modify category settings / Change category details). Use this endpoint to update the name, description, or other attributes of a specific knowledge category. Requires administrative privileges.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeCategoryDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"DELETE:/api/v1/knowledges/categories/{categoryId}":{"path":"/api/v1/knowledges/categories/{categoryId}","method":"DELETE","operationId":"deleteById","summary":"Delete knowledge category by ID","description":"Remove a specific knowledge category from the system (Delete category / Remove category / Erase category). This operation permanently deletes the category and all associated knowledge entries within it. Use with caution as this action cannot be undone. Requires administrative privileges.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v1/knowledges/categories":{"path":"/api/v1/knowledges/categories","method":"GET","operationId":"findAll_1","summary":"Find all knowledge categories","description":"Retrieve all available knowledge categories in the system (List categories / Get all categories / Fetch category list). Use this endpoint to browse the complete catalog of knowledge categories, view their organizational structure, and identify which category to use for creating or accessing knowledge entries.","tags":[],"parameters":[],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/knowledges/categories":{"path":"/api/v1/knowledges/categories","method":"POST","operationId":"save_3","summary":"Create knowledge category","description":"Create a new knowledge category in the system (Add category / New category / Register category). Use this endpoint to establish a new organizational grouping for knowledge entries. Provide the category name and description to define its purpose. Returns the ID of the newly created category. Requires administrative privileges.","tags":[],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeCategoryDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/knowledges/{categoryId}/batch":{"path":"/api/v1/knowledges/{categoryId}/batch","method":"POST","operationId":"batch","summary":"Batch create knowledge entries","description":"Create multiple knowledge entries in a single request within a specific category (Bulk insert / Mass creation / Batch upload knowledge). Use this endpoint to efficiently add numerous knowledge entries at once, reducing API overhead compared to individual creation. The request body accepts an array of knowledge entry objects. Requires administrative privileges.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeCreationDTO"}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/knowledges/{categoryId}/{knowledgeId}":{"path":"/api/v1/knowledges/{categoryId}/{knowledgeId}","method":"GET","operationId":"findById_3","summary":"Find knowledge by ID","description":"Retrieve a specific knowledge entry by its unique identifiers (Get knowledge entry / Fetch knowledge details / View knowledge article). Access an individual knowledge entry within a category using both the category ID and knowledge entry ID. Returns complete entry information including title, content, and metadata.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"knowledgeId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"categoryId":{"type":"integer","format":"int64"},"item":{"type":"string"},"function":{"type":"string"},"designCause":{"type":"string"},"processCause":{"type":"string"},"stress":{"type":"string"},"failureMode":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}}}}},"PUT:/api/v1/knowledges/{categoryId}/{knowledgeId}":{"path":"/api/v1/knowledges/{categoryId}/{knowledgeId}","method":"PUT","operationId":"updateById_1","summary":"Update knowledge by ID","description":"Modify an existing knowledge entry's content and properties (Edit knowledge / Update knowledge article / Modify entry). Use this endpoint to revise the title, content, or metadata of a specific knowledge entry identified by both category ID and knowledge entry ID. Requires administrative privileges.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"knowledgeId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/KnowledgeUpdatingDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"DELETE:/api/v1/knowledges/{categoryId}/{knowledgeId}":{"path":"/api/v1/knowledges/{categoryId}/{knowledgeId}","method":"DELETE","operationId":"deleteById_1","summary":"Delete knowledge by ID","description":"Remove a specific knowledge entry from the system (Delete entry / Remove knowledge / Erase article). Permanently deletes the knowledge entry identified by both category ID and knowledge entry ID. This action cannot be undone, so use with caution. Requires administrative privileges.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"knowledgeId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v1/knowledges/{categoryId}":{"path":"/api/v1/knowledges/{categoryId}","method":"GET","operationId":"findAll_2","summary":"Find all knowledge by category","description":"Retrieve all knowledge entries belonging to a specific category (List entries / Get category knowledge / Fetch all articles in category). Use this endpoint to browse the complete collection of knowledge entries within a category, view their titles, and access detailed information. Essential for knowledge exploration and content discovery within organizational groupings.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"categoryId":{"type":"integer","format":"int64"},"item":{"type":"string"},"function":{"type":"string"},"designCause":{"type":"string"},"processCause":{"type":"string"},"stress":{"type":"string"},"failureMode":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}}}}}},"POST:/api/v1/knowledges/{categoryId}":{"path":"/api/v1/knowledges/{categoryId}","method":"POST","operationId":"save_4","summary":"Create knowledge entry","description":"Create a new knowledge entry within a specific category (Add entry / New knowledge article / Create content). Use this endpoint to add new knowledge content to the system by providing title, description, and other entry details within an existing category. Returns the ID of the newly created entry. Requires administrative privileges.","tags":[],"parameters":[{"name":"categoryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/KnowledgeCreationDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/projects":{"path":"/api/v1/projects","method":"POST","operationId":"save_5","summary":"Create new project","description":"Creates a new FMEA project with the specified configuration. Requires NORMAL user level. Accepts parameters defined in ProjectCreationDTO (e.g., name, description, settings). Returns the newly created project ID and URI location. Use this endpoint to initialize a new Failure Mode and Effects Analysis project, start a fresh quality assessment, or set up a new reliability study. (Create project / New project / Initialize project / Start analysis)","tags":[],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreationDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/projects/my":{"path":"/api/v1/projects/my","method":"GET","operationId":"findAllByUserId","summary":"Get current user's projects","description":"Retrieves all projects belonging to the authenticated user. Supports pagination through optional 'page' and 'size' parameters. Returns a paginated list of active and inactive projects accessible to the current user. Use this to list personal projects, browse user's analysis history, or fetch all assessable projects for the current session. (List projects / My projects / User projects / Get all projects / Project inventory)","tags":[],"parameters":[{"name":"size","in":"query","schema":{"type":"integer","format":"int32","default":20}},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":1}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/projects/{id}":{"path":"/api/v1/projects/{id}","method":"GET","operationId":"findById_4","summary":"Get project details","description":"Fetches comprehensive details of a specific project by its unique identifier. Returns complete project metadata including configuration, status, and associated settings. Use this endpoint to retrieve project specifications, view analysis settings, access project data, or inspect FMEA configuration details. Requires valid project ID. (Get project / Fetch project / Retrieve project / Project details / View project)","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"PUT:/api/v1/projects/{id}":{"path":"/api/v1/projects/{id}","method":"PUT","operationId":"update","summary":"Update project","description":"Modifies an existing project's information and settings. Accepts update data through ProjectUpdateDTO to change project name, description, or other configurable attributes. Returns the updated project object. Requires NORMAL user level and valid project ID. Use this to edit project details, rename analysis, modify project configuration, or update project metadata. (Edit project / Modify project / Change project / Update settings)","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdateDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"DELETE:/api/v1/projects/{id}":{"path":"/api/v1/projects/{id}","method":"DELETE","operationId":"delete","summary":"Delete project","description":"Permanently removes a project from the system using its unique identifier. This operation is irreversible and will delete all associated data (worksheets, failure modes, etc.). Requires NORMAL user level and valid project ID. Use this endpoint to remove unwanted projects, clean up completed analyses, or delete obsolete FMEA studies. Returns 204 No Content on success. (Remove project / Delete project / Project removal)","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/projects/{id}/export":{"path":"/api/v1/projects/{id}/export","method":"GET","operationId":"exportData","summary":"Export project data","description":"Generates a downloadable export file for the specified project, including all associated data such as worksheets, configurations, and metadata. This endpoint creates a serialized snapshot of the project (typically as a .fmeapjt file) that can be downloaded for backup, migration, or sharing purposes. The response contains a FileDownloadDTO with a download URI. Use this when you need to archive a project, transfer it to another environment, or create a template. Related terms: backup project, download project, serialize project, save project offline, project snapshot.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/projects/import":{"path":"/api/v1/projects/import","method":"POST","operationId":"importData","summary":"Import project data","description":"Creates a new project by importing data from a previously exported .fmeapjt file. This endpoint accepts a multipart/form-data file upload, validates the file format, and deserializes the project data to reconstruct the complete project structure including worksheets, settings, and all associated entities. Use this endpoint to restore backups, migrate projects between environments, or duplicate project templates. The import creates a new project with a unique ID, preserving all original data while allowing the imported project to coexist with the original. Requires authentication with NORMAL user level or higher. Related terms: restore project, upload project, load project from file, project migration, duplicate from backup.","tags":[],"parameters":[],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"$ref":"#/components/schemas/FormDataContentDisposition"}}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}},"x-dependency-warning":"REQUIRES A VALID .fmeapjt FILE. The file must be a previously exported project file from this system. Other file formats will be rejected with a 400 error. Ensure the file is obtained via [GET /api/v1/projects/{id}/export] before attempting import."},"PUT:/api/v1/projects/{id}/activate":{"path":"/api/v1/projects/{id}/activate","method":"PUT","operationId":"activateProject","summary":"Activate project","description":"Restores a deactivated project from the trash/bin back to active status. This endpoint reactivates the project by updating its active status flag to 'Y', making it accessible again in the user's project list. Use this to recover soft-deleted projects or undo a deactivation action. Requires NORMAL user level authentication. The project ID must be provided as a path parameter.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"PUT:/api/v1/projects/{id}/deactivate":{"path":"/api/v1/projects/{id}/deactivate","method":"PUT","operationId":"deactivateProject","summary":"Deactivate project","description":"Moves a project to inactive status by sending it to the trash/bin. This endpoint performs a soft-delete operation by updating the project's active status flag to 'N', effectively hiding it from the main project list without permanent deletion. Use this to archive projects you no longer need active while preserving the data. The project can be reactivated later using the activate endpoint. Requires NORMAL user level authentication and the project ID as a path parameter.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/projects/{id}/copy":{"path":"/api/v1/projects/{id}/copy","method":"POST","operationId":"copy","summary":"Copy project","description":"Creates a complete duplicate of an existing project as a new project. This endpoint clones all project data, settings, and configurations from the source project specified by the ID path parameter. The copy operation generates a new project ID and returns it in the response. Use this to quickly create similar projects, iterate on existing work, or backup project states. Requires NORMAL user level authentication. The endpoint returns the new project ID and URI location in the response.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/projects/recommendations":{"path":"/api/v1/projects/recommendations","method":"GET","operationId":"getProjects","summary":"Get all recommended actions (FMEA Action Items) across projects","description":"Retrieves a global list of recommended actions (corrective measures) derived from FMEA worksheets across all projects accessible to the user. This endpoint allows users to view their assigned action items or monitor the status of risk mitigation activities (e.g., specific tasks grouped in worksheet columns) without navigating to individual projects. Useful for 'My Tasks' dashboards or high-level risk management monitoring.","tags":[],"parameters":[],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/projects/{id}/recommendations":{"path":"/api/v1/projects/{id}/recommendations","method":"GET","operationId":"getRecommendationsByProjectId","summary":"Get FMEA recommended actions for a specific project","description":"Fetches the list of recommended actions (risk reduction measures) defined in the FMEA worksheets (table structure) of a specific project. These actions are the grouped columns in the worksheet intended to mitigate identified failure modes. Supports filtering by status (e.g., 'NotCompleted', 'In-Progress') to track the implementation of safety mechanisms or process improvements. Use this endpoint to audit the progress of FMEA activities for a specific project.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","schema":{"pattern":"NotCompleted|In-Progress|Delay|Completed|All","type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"columnHeaders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"readOnly":{"type":"string"},"width":{"type":"integer"},"valign":{"type":"integer"},"halign":{"type":"integer"},"children":{"type":"array","items":{"type":"object","description":"(circular: ColumnHeader)"}}}}},"rows":{"type":"array","items":{"type":"object","properties":{"reportNo":{"type":"string"},"fmmId":{"type":"string"},"wsId":{"type":"integer"},"status":{"type":"string","enum":["UNKNOWN","COMPLETED","IN_PROGRESS","DELAY"]}}}}}}}}}}},"GET:/api/v1/synonyms/{synonymId}":{"path":"/api/v1/synonyms/{synonymId}","method":"GET","operationId":"findById_5","summary":"Find synonym by ID","description":"Retrieve a specific synonym group by its unique identifier. This endpoint fetches detailed information about a single synonym collection, including all related terms and mappings. Use this when you need to view, verify, or reference an existing synonym configuration. (Synonym lookup / Get synonym group / Retrieve synonym collection / Fetch synonym data)","tags":[],"parameters":[{"name":"synonymId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"serial":{"type":"integer"},"value":{"type":"string"}}}}}}}}},"PUT:/api/v1/synonyms/{synonymId}":{"path":"/api/v1/synonyms/{synonymId}","method":"PUT","operationId":"updateById_2","summary":"Update synonym by ID","description":"Modify an existing synonym group by replacing its content with new terms. This operation completely updates the synonym collection at the specified ID with the provided list of synonym entries. Requires ADMIN privileges. Use this to edit, correct, or expand synonym mappings for FMEA analysis. (Edit synonyms / Modify synonym group / Replace synonym collection / Update synonym mapping)","tags":[],"parameters":[{"name":"synonymId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SynonymDTO"}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"serial":{"type":"integer"},"value":{"type":"string"}}}}}}}}},"DELETE:/api/v1/synonyms/{synonymId}":{"path":"/api/v1/synonyms/{synonymId}","method":"DELETE","operationId":"deleteById_2","summary":"Delete synonym by ID","description":"Permanently remove a synonym group from the system using its unique identifier. This action deletes the entire synonym collection and cannot be undone. Requires ADMIN privileges. Use this to eliminate obsolete or incorrect synonym mappings. (Remove synonyms / Delete synonym group / Eliminate synonym collection)","tags":[],"parameters":[{"name":"synonymId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v1/synonyms/export":{"path":"/api/v1/synonyms/export","method":"GET","operationId":"exportData_1","summary":"Export synonyms","description":"Generate and download a file containing all synonym groups or a filtered subset based on search criteria. This endpoint creates an export file (typically Excel or CSV) that can be used for backup, analysis, or migration purposes. The optional search parameter allows filtering specific synonym sets. Requires ADMIN privileges. (Download synonyms / Backup synonym data / Extract synonym mappings / Export synonym groups)","tags":[],"parameters":[{"name":"search","in":"query","schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/synonyms":{"path":"/api/v1/synonyms","method":"GET","operationId":"findAll_3","summary":"Find all synonyms","description":"Retrieve complete list of all synonym groups in the system. This endpoint returns all synonym collections with their IDs and term mappings. Use this to review the entire synonym library, audit existing mappings, or load synonym data for analysis and processing. (List all synonyms / Get synonym library / Retrieve synonym collections / Fetch all synonym groups)","tags":[],"parameters":[],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"serial":{"type":"integer"},"value":{"type":"string"}}}}}}}}},"POST:/api/v1/synonyms":{"path":"/api/v1/synonyms","method":"POST","operationId":"save_6","summary":"Save synonyms","description":"Create a new synonym group by submitting a list of synonym entries. This endpoint establishes a new synonym collection with multiple related terms and returns the newly created ID. Requires ADMIN privileges. Use this to add new synonym mappings for standardizing terminology in FMEA analysis. (Create synonyms / Add synonym group / Register new synonym collection / Insert synonym mapping)","tags":[],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SynonymDTO"}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v1/synonyms/import":{"path":"/api/v1/synonyms/import","method":"POST","operationId":"importProject","summary":"Import synonyms","description":"Upload and process synonym data from a file (typically Excel or CSV). This endpoint accepts a file along with parsing parameters (rowStart, columnStart, columnEnd) to define the data extraction range. The system parses the file and creates synonym groups based on the content. Requires ADMIN privileges. (Upload synonyms / Bulk import synonym data / Load synonym file / Batch create synonyms)","tags":[],"parameters":[],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"object"},"rowStart":{"type":"integer","format":"int32"},"columnStart":{"type":"integer","format":"int32"},"columnEnd":{"type":"integer","format":"int32"}}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/terms/{type}/{nodeId}":{"path":"/api/v1/terms/{type}/{nodeId}","method":"GET","operationId":"findTreeByTypeCodeAndId","summary":"Find term tree by type and node ID","description":"Retrieves a hierarchical term tree structure for a specific node within a term type. Use this endpoint to fetch the complete subtree rooted at the given node ID, including all child terms and their descendants. The response returns a nested tree structure representing the term hierarchy. This is useful for displaying the full taxonomy or classification tree starting from a specific term node. Supports filtering by term type (e.g., categories, classifications, taxonomies) to retrieve contextual term relationships.","tags":[],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"parentId":{"type":"string"},"title":{"type":"string"},"typeCode":{"type":"integer"},"serial":{"type":"integer"},"depth":{"type":"integer"},"order":{"type":"integer"}}}}}}}}},"PUT:/api/v1/terms/{type}/{nodeId}":{"path":"/api/v1/terms/{type}/{nodeId}","method":"PUT","operationId":"updateByTypeCodeAndId","summary":"Update term by type and node ID","description":"Modifies an existing term node within a specific term type hierarchy. Use this endpoint to update term properties such as name, description, or metadata while preserving its position in the tree structure. The endpoint requires administrator privileges and accepts a TermDTO object containing the updated term information. This operation maintains the term's parent-child relationships and does not affect the hierarchical structure. Common use cases include renaming terms, updating definitions, or modifying term attributes in classification systems, taxonomies, or category hierarchies.","tags":[],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TermDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"parentId":{"type":"string"},"title":{"type":"string"},"typeCode":{"type":"integer"},"serial":{"type":"integer"},"depth":{"type":"integer"},"order":{"type":"integer"}}}}}}}},"POST:/api/v1/terms/{type}/{nodeId}":{"path":"/api/v1/terms/{type}/{nodeId}","method":"POST","operationId":"addChild","summary":"Add child term","description":"Creates a new child term node under the specified parent term within a term type hierarchy. This endpoint allows expansion of classification trees, taxonomies, or category structures by adding subordinate terms. The operation requires administrator privileges and accepts a TermDTO object containing the new term's properties. Upon successful creation, the endpoint returns the parent node ID, confirming the child term has been added to the hierarchy. Use this to build nested term structures, create sub-categories, or establish parent-child relationships in organizational systems, knowledge bases, or classification schemas.","tags":[],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TermDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"DELETE:/api/v1/terms/{type}/{nodeId}":{"path":"/api/v1/terms/{type}/{nodeId}","method":"DELETE","operationId":"deleteById_3","summary":"Delete term by type and node ID","description":"Permanently removes a term node from a specific term type hierarchy. This endpoint requires administrator privileges and deletes the specified term along with all its descendant child terms in the subtree. Use with caution as this operation is irreversible and will remove the entire branch of the taxonomy tree rooted at the given node ID. Common use cases include removing obsolete categories, pruning classification trees, or deleting outdated terminology from knowledge management systems. The endpoint returns a 204 No Content status upon successful deletion, indicating the term has been completely removed from the hierarchy.","tags":[],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v1/terms/{type}":{"path":"/api/v1/terms/{type}","method":"GET","operationId":"findTreeByTypeCode","summary":"Find term tree by type code","description":"Retrieves the complete hierarchical tree structure for all terms of a specific type. Use this endpoint to fetch the entire taxonomy, classification system, or category hierarchy as a nested tree structure. The response includes all root-level terms and their descendants, providing a comprehensive view of the term relationships within the specified type. This is ideal for initializing tree views, building navigation menus, displaying complete classification systems, or loading full taxonomic structures for filtering and organization. Supports various term types such as product categories, organizational hierarchies, knowledge domains, or classification schemas.","tags":[],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"parentId":{"type":"string"},"title":{"type":"string"},"typeCode":{"type":"integer"},"serial":{"type":"integer"},"depth":{"type":"integer"},"order":{"type":"integer"}}}}}}}}},"PUT:/api/v1/admin/users/{userId}/activate":{"path":"/api/v1/admin/users/{userId}/activate","method":"PUT","operationId":"activateUser","summary":"Activate User Account","description":"Re-enables a deactivated user account, allowing system access. Checks license constraints before activation. Use this to restore access for suspended users or valid new accounts. Returns updated license counts."},"POST:/api/v1/admin/users/register":{"path":"/api/v1/admin/users/register","method":"POST","operationId":"create","summary":"Register New User","description":"Creates a single new user account. Validates user data (username, email, password) against UserSaveDTO and license limits. Returns the newly created User ID. Use for individual user onboarding."},"PUT:/api/v1/admin/users/{userId}/deactivate":{"path":"/api/v1/admin/users/{userId}/deactivate","method":"PUT","operationId":"deactivateUser","summary":"Deactivate User Account","description":"Suspends a user account, preventing login. This action frees up a license seat but preserves user data. Use this for employee departure or temporary suspension. Returns updated license counts."},"DELETE:/api/v1/admin/users/{userId}":{"path":"/api/v1/admin/users/{userId}","method":"DELETE","operationId":"deleteUser","summary":"Delete User Account","description":"Permanently deletes a user account and associated data. This operation is destructive and cannot be undone. Use with caution for data cleanup or removing invalid accounts. Returns 204 No Content."},"GET:/api/v1/admin/users/{id}":{"path":"/api/v1/admin/users/{id}","method":"GET","operationId":"findById","summary":"Get User Details (Admin)","description":"Retrieves comprehensive details for any user by ID. Returns full profile, role, and status information. Use this for admin auditing, user lookup, or support troubleshooting.","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"englishName":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}},"userLevel":{"type":"string","enum":["ADMIN","NORMAL","READER"]},"creationDate":{"type":"string","format":"date-time"},"lastPasswordChangeDate":{"type":"string","format":"date-time"},"useAccessibleDivisions":{"type":"integer"},"accessibleDivisions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}},"encryptedPassword":{"type":"string"}}}}}}}},"POST:/api/v1/admin/users":{"path":"/api/v1/admin/users","method":"POST","operationId":"save","summary":"Bulk Create/Update Users","description":"Processes a list of user objects for bulk creation or updates. Takes a JSON array of UserSaveDTOs. Validates all entries and license constraints. Ideal for mass onboarding or syncing user data from external directories."},"GET:/api/v1/users/my":{"path":"/api/v1/users/my","method":"GET","operationId":"findById_6","summary":"Get Current User Profile","description":"Retrieves the authenticated user's own profile information. Returns full user data (username, email, role, settings) based on the current session token. Use this to display profile details, populate user settings forms, or identify the current user context. No ID parameter is required as it uses the authenticated session.","tags":["User Management"],"parameters":[],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"englishName":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}},"userLevel":{"type":"string","enum":["ADMIN","NORMAL","READER"]},"creationDate":{"type":"string","format":"date-time"},"lastPasswordChangeDate":{"type":"string","format":"date-time"},"useAccessibleDivisions":{"type":"integer"},"accessibleDivisions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}},"encryptedPassword":{"type":"string"}}}}}}}},"PUT:/api/v1/users":{"path":"/api/v1/users","method":"PUT","operationId":"update_1","summary":"Update Current User Profile","description":"Modifies the authenticated user's own profile fields (e.g., name, email, password, preferences). Validates input via UserUpdateDTO and updates the user record. Use this for self-service profile management, changing passwords, or updating contact information.","tags":["User Management"],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/worksheet-templates":{"path":"/api/v1/worksheet-templates","method":"GET","summary":"Find Worksheet Templates","description":"Retrieves available worksheet templates, optionally filtered by FMEA type (via WorksheetTemplateSearchDTO). Use this to list templates (e.g., Design FMEA, Process FMEA) before creating a new worksheet.","tags":[],"parameters":[{"name":"fmeaType","in":"query","required":false,"schema":{"type":"string","pattern":"Design|Process|Equipment|FA"}}],"operationId":"findByFmeaType","responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v1/worksheet-templates/{id}":{"path":"/api/v1/worksheet-templates/{id}","method":"GET","summary":"Get Worksheet Template by ID","description":"Fetches detailed information about a specific worksheet template configuration. Returns column definitions and structure for the given template ID.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"operationId":"findById_7","responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"DELETE:/api/v2/admin/api-keys/{id}":{"path":"/api/v2/admin/api-keys/{id}","method":"DELETE","operationId":"deactivate","summary":"Deactivate API key","description":"Administrators can forcibly deactivate (disable) any API key in the system using its unique ID. This operation immediately invalidates the key, preventing any further API requests authenticated with it. Use this endpoint to revoke compromised keys, enforce security policies, or manage user access. Unlike user-initiated deletion, this is an administrative override that requires ADMIN privileges and standard session authentication (API key authentication is explicitly blocked). The key is soft-deactivated and may be retained for audit purposes. Related actions include bulk deactivation by user ID and viewing audit logs of administrative actions.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"DELETE:/api/v2/admin/api-keys/user/{userid}":{"path":"/api/v2/admin/api-keys/user/{userid}","method":"DELETE","operationId":"deactivateByUserId","summary":"Deactivate API keys by user ID","description":"Administrators can bulk deactivate (revoke) all API keys belonging to a specific user in a single operation. This is useful for immediately revoking all API access when a user is disabled, leaves the organization, or has their credentials compromised. The endpoint returns a count of deactivated keys. Requires ADMIN privileges and standard session authentication (API key authentication is explicitly blocked for security reasons). Unlike individual key deactivation, this targets all keys associated with the specified user ID. For targeted deactivation of specific keys, use the individual key deactivation endpoint. This action is logged in the admin audit trail for compliance and security monitoring.","tags":[],"parameters":[{"name":"userid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/admin/api-keys/stats":{"path":"/api/v2/admin/api-keys/stats","method":"GET","operationId":"getStats","summary":"Get API key statistics","description":"Retrieves system-wide statistics and metrics about API keys for administrative monitoring and reporting. Provides aggregate data including total key count, active vs inactive keys, expired keys, and usage patterns. Use this endpoint for dashboard displays, capacity planning, security auditing, and compliance reporting. Requires ADMIN privileges and standard session authentication (API key authentication is blocked). Statistics are calculated in real-time from the current database state. Complementary to this endpoint, use the admin list endpoint for detailed key information with filters, and the audit logs endpoint for tracking administrative actions on keys.","tags":[],"parameters":[],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/admin/api-keys":{"path":"/api/v2/admin/api-keys","method":"GET","operationId":"list_3","summary":"List API keys (Admin)","description":"Administrators can retrieve a comprehensive, paginated list of all API keys across the system with powerful filtering capabilities. Supports filtering by user ID, activation status (active/inactive), and expiration status (expired keys only). Use this endpoint for security audits, compliance reporting, user management, and monitoring API key distribution across the organization. Returns detailed key metadata including owner, creation date, expiration, and status. Requires ADMIN privileges and standard session authentication (API key authentication is blocked). Page size is limited to 100 items per request for performance. This is the administrative counterpart to the user-specific list endpoint, providing visibility into all keys rather than just the authenticated user's keys.","tags":[],"parameters":[{"name":"userid","in":"query","schema":{"type":"string"}},{"name":"isActive","in":"query","schema":{"type":"boolean"}},{"name":"expiredOnly","in":"query","schema":{"type":"boolean"}},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","schema":{"type":"integer","format":"int32","default":20}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/admin/apikeys/logs":{"path":"/api/v2/admin/apikeys/logs","method":"GET","operationId":"getAuditLogs","summary":"Get API key audit logs","description":"Retrieves administrative audit logs tracking all management actions performed on API keys, providing a complete trail for security monitoring and compliance. Logs include deactivations, bulk revocations, and other administrative operations with timestamps, acting admin, target users, and action types. Supports filtering by administrator user ID, target user ID, action type, and date ranges (start/end dates). Use this endpoint for forensic analysis, security incident response, compliance auditing, and investigating unauthorized access attempts. Requires ADMIN privileges and standard session authentication (API key authentication is blocked). Results are paginated with a maximum of 100 items per page. This differs from user-facing usage logs which track API requests made using keys, whereas this tracks administrative management actions on keys themselves.","tags":[],"parameters":[{"name":"adminUserid","in":"query","schema":{"type":"string"}},{"name":"targetUserid","in":"query","schema":{"type":"string"}},{"name":"action","in":"query","schema":{"type":"string"}},{"name":"startDate","in":"query","schema":{"type":"string"}},{"name":"endDate","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","schema":{"type":"integer","format":"int32","default":20}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/api-keys":{"path":"/api/v2/api-keys","method":"GET","operationId":"list_4","summary":"List API keys","description":"Retrieves all API keys belonging to the currently authenticated user, providing a comprehensive view of their personal API access credentials. Returns key metadata including key identifier, name, creation date, expiration date, activation status, and last used timestamp. Use this endpoint to manage your API keys, review active credentials, monitor key usage, and identify expired or inactive keys that can be cleaned up. Requires READER level authentication or higher. This is the user-facing counterpart to the administrative list endpoint, which shows all keys across the system. Users can only view their own keys for security isolation. For detailed usage analytics on individual keys, use the logs and log summary endpoints with a specific key ID.","tags":[],"parameters":[],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v2/api-keys":{"path":"/api/v2/api-keys","method":"POST","operationId":"create_1","summary":"Create API key","description":"Generates and issues a new API key for the authenticated user, enabling programmatic access to the FMEA API. The request must specify a descriptive name for the key and an optional expiration date. Upon creation, the full API key value is returned in the response (this is the only time it will be displayed in plain text, so store it securely). Use this endpoint to create keys for API integrations, automated scripts, third-party applications, or CI/CD pipelines. Requires READER level authentication or higher. Each key is unique, cryptographically secure, and associated with the creating user's identity for audit purposes. Keys can be managed (listed, deleted, regenerated) through the other endpoints in this API. If a key is compromised, use the regenerate endpoint to create a new secret without changing the key ID, or delete it entirely.","tags":[],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateRequest"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"DELETE:/api/v2/api-keys/{id}":{"path":"/api/v2/api-keys/{id}","method":"DELETE","operationId":"delete_1","summary":"Delete API key","description":"Permanently deletes (removes) an API key belonging to the authenticated user. This operation immediately invalidates the key, preventing any further API requests authenticated with it. Use this endpoint to revoke compromised credentials, clean up unused keys, or remove keys that are no longer needed for security best practices. Requires READER level authentication or higher. Users can only delete their own keys for security isolation. The deletion is permanent and cannot be undone, so ensure the key is not in active use before deletion. For temporary revocation where you might want to reactivate later, consider using administrative deactivation instead (requires admin privileges). This endpoint returns no content on success (HTTP 204). Always verify you are deleting the correct key ID, as the action is irreversible.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/api-keys/{id}/logs":{"path":"/api/v2/api-keys/{id}/logs","method":"GET","operationId":"getLogs","summary":"Get API key usage logs","description":"Retrieves detailed usage logs for a specific API key owned by the authenticated user, showing all API requests made using that key. Each log entry includes timestamp, endpoint path, HTTP method, response status code, and request metadata. Supports filtering by date range (start/end dates), specific endpoint, and HTTP status code for targeted analysis. Results are paginated with a maximum of 100 items per page. Use this endpoint for security monitoring, debugging integration issues, tracking API usage patterns, and identifying suspicious activity. Requires READER level authentication or higher. Users can only view logs for their own keys. This provides granular request-level detail, while the summary endpoint offers aggregated statistics. The log retention period applies, so very old logs may not be available.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"startDate","in":"query","schema":{"type":"string"}},{"name":"endDate","in":"query","schema":{"type":"string"}},{"name":"endpoint","in":"query","schema":{"type":"string"}},{"name":"statusCode","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","schema":{"type":"integer","format":"int32","default":20}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/api-keys/{id}/logs/summary":{"path":"/api/v2/api-keys/{id}/logs/summary","method":"GET","operationId":"getLogsSummary","summary":"Get API key logs summary","description":"Retrieves aggregated usage statistics and summary analytics for a specific API key owned by the authenticated user. Provides high-level metrics including total request count, success rate (2xx/3xx vs 4xx/5xx), most frequently used endpoints, error breakdown, and activity timeline within the specified date range. Use this endpoint for usage analytics, quota monitoring, identifying integration health, and generating usage reports without processing individual log entries. Requires READER level authentication or higher. Users can only view summaries for their own keys. Supports optional date range filtering to analyze specific time periods. This complements the detailed logs endpoint by providing pre-aggregated insights for quick assessment of API key performance and usage patterns.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"startDate","in":"query","schema":{"type":"string"}},{"name":"endDate","in":"query","schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v2/api-keys/{id}/regenerate":{"path":"/api/v2/api-keys/{id}/regenerate","method":"POST","operationId":"regenerate","summary":"Regenerate API key","description":"Regenerates (replaces the secret value of) an existing API key while preserving its ID and metadata. This operation creates a new cryptographically secure key value, immediately invalidating the old secret. The full new API key value is returned in the response (store it securely, as this is the only time it will be displayed). Optionally accepts a new expiration date. Use this endpoint to rotate credentials for security compliance, respond to potential key exposure, or implement periodic key rotation policies without changing integration configuration. Requires READER level authentication or higher. Users can only regenerate their own keys. The old key becomes invalid immediately upon regeneration, so update all applications using the key promptly. This differs from deletion + recreation in that the key ID remains stable, making it easier to update integrations.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyRegenerateRequest"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/projects/{projectId}/block-diagrams":{"path":"/api/v2/projects/{projectId}/block-diagrams","method":"GET","operationId":"list_5","summary":"List Project Block Diagrams (v2)","description":"Retrieves all block diagrams associated with a specific project. Use this endpoint to fetch a complete list of block diagrams within a project context, including metadata such as diagram IDs, names, and creation details. This is the primary method for browsing available block diagrams before accessing specific nodes or performing operations like Excel export. The response supports filtering and navigation to individual diagrams for further analysis or editing. Suitable for dashboard displays, diagram selection interfaces, and project overview scenarios.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["FUNCTION","STRUCTURE","FUNCTION_STRUCTURE","STRUCTURE_FUNCTION","PROCESS","SUPER_SYSTEM","FUNCTION_ANALYSIS"]},"alias":{"type":"string"},"order":{"type":"integer"},"description":{"type":"string"},"numberFormat":{"type":"string"}}}}}}}}},"GET:/api/v2/projects/{projectId}/block-diagrams/{blockId}/nodes":{"path":"/api/v2/projects/{projectId}/block-diagrams/{blockId}/nodes","method":"GET","operationId":"getNodes","summary":"Get Block Diagram Nodes (v2)","description":"Fetches all nodes within a specific block diagram. Nodes represent individual components, elements, or blocks in the diagram structure. Use this endpoint to retrieve node data including IDs, labels, positions, properties, and hierarchical relationships. This is essential for rendering visual diagrams, editing node configurations, analyzing system architecture, and understanding component interconnections. The response provides comprehensive node details required for frontend visualization tools and diagram management interfaces. Supports both flat and hierarchical node structures depending on diagram complexity.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"parentId":{"type":"string"},"referencedId":{"type":"string"},"function":{"type":"string"},"item":{"type":"string"},"requirement":{"type":"string"},"type":{"type":"string","enum":["SUB_FUNCTION","NEW_CHANGE_ASSEMBLY","NEW_CHANGE_PART","TARGET"]},"order":{"type":"integer"},"processNumber":{"type":"string"},"processFlowChartName":{"type":"string"},"processFlowChartSymbol":{"type":"string"}}}}}}}}},"PUT:/api/v2/projects/{projectId}/block-diagrams/{blockId}/nodes":{"path":"/api/v2/projects/{projectId}/block-diagrams/{blockId}/nodes","method":"PUT","operationId":"saveNodes_1","summary":"Save Block Diagram Nodes (v2)","description":"Updates or replaces all nodes within a block diagram. Use this endpoint to save node configurations after modifications, including position changes, property updates, label edits, and structural reorganization. This operation requires normal user privileges and project member role, ensuring only authorized users can modify diagram structures. The endpoint accepts a complete array of node objects, making it suitable for bulk updates and synchronization operations. Automatically associates changes with the authenticated user for audit tracking. Ideal for visual diagram editors, drag-and-drop interfaces, and automated node layout tools.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BlockNodeSaveDTO"}}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/projects/{projectId}/block-diagrams/{blockId}/nodes/tree":{"path":"/api/v2/projects/{projectId}/block-diagrams/{blockId}/nodes/tree","method":"GET","operationId":"getNodesTree","summary":"Get Block Diagram Nodes Tree (v2)","description":"Retrieves nodes in a hierarchical tree structure, representing parent-child relationships within the block diagram. Use this endpoint when you need to visualize or analyze the nested architecture of system components, including subsystems, assemblies, and subassemblies. The tree format is ideal for rendering collapsible tree views, organizational charts, and hierarchical navigation interfaces. Unlike the flat node list, this response emphasizes structural relationships and containment hierarchies, making it easier to understand component dependencies and system topology. Essential for BOM (Bill of Materials) generation, impact analysis, and multi-level system breakdowns.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/projects/{projectId}/block-diagrams-excel/{blockId}":{"path":"/api/v2/projects/{projectId}/block-diagrams-excel/{blockId}","method":"GET","operationId":"getDownloadLink","summary":"Generate Block Diagram Excel Download Link (v2)","description":"Creates a downloadable Excel file containing the complete block diagram data, including all nodes, properties, and structural relationships. Use this endpoint to export block diagrams for offline analysis, reporting, data migration, or sharing with stakeholders who require spreadsheet format. The generated Excel file maintains diagram hierarchy and metadata, supporting both human readability and automated processing. This is the standard export mechanism for archiving diagrams, creating backups, or integrating with external tools that consume Excel data. The response contains a download URL that can be used to retrieve the file. Requires reader-level access privileges.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/projects/{projectId}/block-diagrams-excel/{uuid}/data":{"path":"/api/v2/projects/{projectId}/block-diagrams-excel/{uuid}/data","method":"GET","operationId":"getData","x-dependency-warning":"REQUIRES PRIOR FILE UPLOAD via [POST /api/v2/files]. The {uuid} parameter is the file ID returned by the upload endpoint.","summary":"Extract Block Diagram Excel Data (v2)","description":"Parses and extracts structured data from an uploaded Excel file containing block diagram information. Use this endpoint to import block diagram data from Excel spreadsheets, enabling bulk data entry, migration from legacy systems, or offline editing workflows. The endpoint accepts a file UUID from a prior upload operation, validates the Excel structure, and returns the parsed node data in JSON format. This is the standard import mechanism for populating block diagrams from external Excel sources. The response includes all nodes, properties, and relationships found in the spreadsheet, ready for display or further processing. Essential for data migration workflows and bulk diagram creation.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}},{"name":"startRowNumber","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"level","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"item","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"function","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"requirement","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"type","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"processNumber","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"processFlowChartSymbol","in":"query","schema":{"type":"integer","format":"int32"}},{"name":"processFlowChartName","in":"query","schema":{"type":"integer","format":"int32"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/projects/{projectId}/block-diagrams/{blockDiagramId}/failure-modes/{failureModeId}":{"path":"/api/v2/projects/{projectId}/block-diagrams/{blockDiagramId}/failure-modes/{failureModeId}","method":"GET","operationId":"get","summary":"Get Failure Mode from Block Diagram (v2)","description":"Retrieves detailed information about a specific failure mode associated with a block diagram node or component. Use this endpoint to access failure mode analysis data, including failure descriptions, severity ratings, occurrence probabilities, detection methods, and risk priority numbers (RPN). This is essential for FMEA (Failure Mode and Effects Analysis) workflows, risk assessment, and reliability engineering. The response provides comprehensive failure mode details linked to specific block diagram elements, enabling engineers to analyze potential failures at the component level. Supports integration with risk management processes and quality assurance procedures. Critical for identifying and mitigating system vulnerabilities.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockDiagramId","in":"path","required":true,"schema":{"type":"string"}},{"name":"failureModeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"DELETE:/api/v2/projects/{projectId}/block-diagrams/{blockDiagramId}/failure-modes/{failureModeId}":{"path":"/api/v2/projects/{projectId}/block-diagrams/{blockDiagramId}/failure-modes/{failureModeId}","method":"DELETE","operationId":"deleteFailureMode_1","summary":"Delete Failure Mode from Block Diagram (v2)","description":"Deletes a predefined failure mode from a specific block diagram within a project. This destructive operation permanently removes the failure mode and any associated FMM diagram structural data from the component. Use this endpoint to clean up incorrect entries, remove obsolete failure definitions, or restructure the block diagram's failure analysis. Since this action is irreversible, it should be called only after user confirmation. It is essential for maintaining accurate and up-to-date Failure Mode and Effects Analysis (FMEA) records.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockDiagramId","in":"path","required":true,"schema":{"type":"string"}},{"name":"failureModeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/template/block-diagrams/{blockDiagramType}/sheet-headers":{"path":"/api/v2/template/block-diagrams/{blockDiagramType}/sheet-headers","method":"GET","operationId":"getBlockDiagramSheetHeaders","summary":"Get Block Diagram Excel Sheet Headers (v2)","description":"Retrieves the standardized Excel sheet headers and column definitions for a specific block diagram type. Use this endpoint to obtain the expected column structure, field names, and data format requirements when creating or validating Excel files for block diagram import. This is essential for ensuring Excel uploads conform to the correct schema, preventing import errors and data validation failures. The response defines all required and optional columns, data types, and formatting rules. Supports dynamic template generation and client-side Excel validation. Critical for building import interfaces, spreadsheet validation tools, and documentation generation. Use before attempting Excel data import operations.","tags":[],"parameters":[{"name":"blockDiagramType","in":"path","required":true,"schema":{"type":"string","enum":["FUNCTION","STRUCTURE","FUNCTION_STRUCTURE","STRUCTURE_FUNCTION","PROCESS","SUPER_SYSTEM","FUNCTION_ANALYSIS"]}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"POST:/api/v2/projects/{projectId}/block-diagrams/{blockDiagramId}/failure-modes":{"path":"/api/v2/projects/{projectId}/block-diagrams/{blockDiagramId}/failure-modes","method":"POST","summary":"Create Failure Modes from Block Diagram","description":"Batch generates and creates multiple failure modes simultaneously, specifically linking them to a defined block diagram and its underlying components. Use this powerful bulk operation to quickly populate an FMEA worksheet, translate block diagram vulnerabilities into formal failure modes, and accelerate risk assessment initialization. (Generate Failure Modes / Batch Create Failures / Link Flaws to Diagram / Bulk Add).","tags":[],"operationId":"create_2","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockDiagramId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/divisions":{"path":"/api/v2/divisions","method":"GET","summary":"Search divisions","operationId":"list_6","description":"Returns paged divisions filtered by division name.","tags":["Division"],"parameters":[{"name":"search","in":"query","description":"Division name keyword","schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number (starts from 1)","schema":{"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","description":"Page size (max 100, default 50)","schema":{"type":"integer","format":"int32","default":50}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}},"page":{"type":"integer"},"size":{"type":"integer"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"}}}}}}}},"GET:/api/v2/divisions/{divisionId}":{"path":"/api/v2/divisions/{divisionId}","method":"GET","summary":"Get division (Organization) by ID","operationId":"get_1","description":"Retrieves detailed information for a specific division (organizational unit, department, business unit) using its unique identifier. Returns the complete division profile including metadata, hierarchy, and configuration settings. Use this endpoint when you need to fetch division details for display, editing, or as a reference in other operations. Common use cases include: populating division dropdowns, validating division access permissions, retrieving division context for projects or PFMEA records, and displaying organizational structure information.","tags":[],"parameters":[{"name":"divisionId","in":"path","description":"Division ID to retrieve","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}}}}}},"GET:/api/v2/projects/{projectId}/documents/categories/{documentCategory}":{"path":"/api/v2/projects/{projectId}/documents/categories/{documentCategory}","method":"GET","operationId":"listByCategory","summary":"List documents by category","description":"Retrieves all documents belonging to a specific category within a project (Filter / Query by type). Use this endpoint when you need to fetch documents filtered by their document category type, such as input files, output reports, analysis results, or reference materials. The category parameter allows you to narrow down the document list to a specific classification, enabling targeted document retrieval and organization.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"documentCategory","in":"path","required":true,"schema":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["UPLOAD"]},"value":{"type":"string"},"path":{"type":"string"},"fileSize":{"type":"string"},"uploadDate":{"type":"string","format":"date"},"category":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}}}}}}}}},"POST:/api/v2/projects/{projectId}/documents/categories/{documentCategory}":{"path":"/api/v2/projects/{projectId}/documents/categories/{documentCategory}","method":"POST","operationId":"add_1","summary":"Add document to category","description":"Creates and registers a new document entry within a specific category for a project (Upload / Create / Attach file). Use this endpoint to add documents such as analysis reports, input data files, or reference materials to the project. The document will be classified under the specified category, enabling organized storage and retrieval. Requires project member role with NORMAL user level permissions.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"documentCategory","in":"path","required":true,"schema":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentAddDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["UPLOAD"]},"value":{"type":"string"},"path":{"type":"string"},"fileSize":{"type":"string"},"uploadDate":{"type":"string","format":"date"},"category":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}}}}}}}},"GET:/api/v2/projects/{projectId}/documents/{documentId}":{"path":"/api/v2/projects/{projectId}/documents/{documentId}","method":"GET","operationId":"get_6","summary":"Get document by ID","description":"Fetches detailed information for a specific document using its unique identifier (Retrieve / Fetch / View document details). Use this endpoint to obtain complete document metadata including name, category, path, creation timestamp, and associated file information. This is essential when you need to display document details, verify document existence, or access specific document properties before performing further operations like download or deletion.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"documentId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["UPLOAD"]},"value":{"type":"string"},"path":{"type":"string"},"fileSize":{"type":"string"},"uploadDate":{"type":"string","format":"date"},"category":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}}}}}}}},"DELETE:/api/v2/projects/{projectId}/documents/{documentId}":{"path":"/api/v2/projects/{projectId}/documents/{documentId}","method":"DELETE","operationId":"delete_5","summary":"Delete document","description":"Permanently removes a document from the project using its unique identifier (Remove / Erase document). This operation deletes the document record and disassociates it from the project. Use with caution as this action cannot be undone. Requires project member role with NORMAL user level permissions. Ensure you have the correct document ID before initiating deletion to avoid accidental data loss.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"documentId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/projects/{projectId}/documents/{documentId}/download":{"path":"/api/v2/projects/{projectId}/documents/{documentId}/download","method":"GET","operationId":"getDownloadLink_2","summary":"Get document download link","description":"Generates a secure download URL for accessing the actual file associated with a document (Download file / Get file URL). Use this endpoint to obtain a temporary, authenticated link that allows users to download the document file. The link includes necessary security tokens to ensure only authorized users can access the file. This is the standard method for retrieving document files after you have identified the document ID through listing or search operations.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"documentId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"fileName":{"type":"string"},"downloadUri":{"type":"string"}}}}}}}},"GET:/api/v2/projects/{projectId}/documents":{"path":"/api/v2/projects/{projectId}/documents","method":"GET","operationId":"list_10","summary":"List all Documents","description":"Retrieves a comprehensive list of all documents associated with a specific project (Get all files / Fetch project documents / Query document library). Use this endpoint when you need to view, browse, or display the complete collection of documents within a project, including all categories and types. The response includes document metadata such as names, categories, paths, and timestamps, enabling users to navigate and manage the project document repository effectively.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["UPLOAD"]},"value":{"type":"string"},"path":{"type":"string"},"fileSize":{"type":"string"},"uploadDate":{"type":"string","format":"date"},"category":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}}}}}}}}},"GET:/api/v2/projects/{projectId}/documents/categories/{documentCategory}/path/{documentPath}":{"path":"/api/v2/projects/{projectId}/documents/categories/{documentCategory}/path/{documentPath}","method":"GET","operationId":"listByCategoryAndPath","summary":"List documents by category and path","description":"Fetches documents matching both a specific category and file path within a project (Filter by type and location / Query documents in folder). Use this endpoint for precise document filtering when you need to retrieve documents from a specific directory or subfolder within a category. The path parameter enables hierarchical navigation, allowing you to access documents organized in nested folder structures. This is particularly useful for browsing documents within specific subdirectories or locations.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"documentCategory","in":"path","required":true,"schema":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}},{"name":"documentPath","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["UPLOAD"]},"value":{"type":"string"},"path":{"type":"string"},"fileSize":{"type":"string"},"uploadDate":{"type":"string","format":"date"},"category":{"type":"string","enum":["SYSTEM_DEFINITION","WORKSHEET","BLOCK_DIAGRAM","FMM_DIAGRAM"]}}}}}}}}},"GET:/api/v2/excel/{uuid}":{"path":"/api/v2/excel/{uuid}","method":"GET","summary":"Parse all sheets in Excel file","description":"Extracts and returns ALL worksheets from an uploaded Excel file (.xlsx, .xls). Use this endpoint when you need complete workbook data including multiple sheets. The endpoint parses every tab/worksheet in the Excel file and returns them as a structured list with sheet metadata, row data, and cell values. This is ideal for bulk data extraction, complete workbook analysis, or when the sheet structure is unknown beforehand. Returns a list of POISheet objects containing sheet names, indices, and grid data. Requires valid file UUID from prior upload.","tags":["excel"],"operationId":"parseAll","x-dependency-warning":"REQUIRES PRIOR FILE UPLOAD via [POST /api/v2/files]. The {uuid} parameter is the file ID returned by the upload endpoint.","parameters":[{"name":"uuid","in":"path","required":true,"schema":{"type":"string"},"description":"UUID of the uploaded Excel file"},{"name":"startRowNumber","in":"query","required":false,"schema":{"type":"integer","format":"int32"},"description":"Starting row number for parsing (1-based index)"},{"name":"reindexFromZero","in":"query","required":false,"schema":{"type":"boolean","default":true},"description":"Whether to reindex rows starting from zero"}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/excel/{uuid}/sheets/{sheetIndex}":{"path":"/api/v2/excel/{uuid}/sheets/{sheetIndex}","method":"GET","summary":"Parse specific sheet in Excel file","description":"Extracts and returns a SINGLE worksheet from an uploaded Excel file by its zero-based index. Use this endpoint for targeted data retrieval when you know which specific tab/worksheet you need. More efficient than parsing all sheets when working with large workbooks or when only specific sheet data is required. The endpoint returns a POISheet object containing the sheet name, index, and complete grid data with cell values. Ideal for incremental processing, specific tab extraction, or reducing payload size. Sheet index starts at 0 (first sheet). Requires valid file UUID from prior upload.","tags":["excel"],"operationId":"parseSheet","x-dependency-warning":"REQUIRES PRIOR FILE UPLOAD via [POST /api/v2/files]. The {uuid} parameter is the file ID returned by the upload endpoint.","parameters":[{"name":"uuid","in":"path","required":true,"schema":{"type":"string"},"description":"UUID of the uploaded Excel file"},{"name":"sheetIndex","in":"path","required":true,"schema":{"type":"integer","format":"int32"},"description":"Zero-based index of the sheet to parse"},{"name":"startRowNumber","in":"query","required":false,"schema":{"type":"integer","format":"int32"},"description":"Starting row number for parsing (1-based index)"},{"name":"reindexFromZero","in":"query","required":false,"schema":{"type":"boolean","default":true},"description":"Whether to reindex rows starting from zero"}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v2/excel/generate":{"path":"/api/v2/excel/generate","method":"POST","summary":"Generate Excel File","description":"Generates a downloadable Excel (.xlsx) file programmatically based on user-provided column definitions and grid data payloads. Use this endpoint to dynamically construct custom spreadsheet reports, export tabular analysis results, or create structured Excel files from raw JSON arrays. Ideal for custom FMEA reporting, bulk data compilation, and on-the-fly spreadsheet generation. (Create Excel / Export to XLSX / Build Spreadsheet / Generate Report).","tags":[],"operationId":"generate","parameters":[],"requestBody":{"content":{"application/json":{}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"PUT:/api/v2/projects/{projectId}/failure-modes/{failureModeId}/fmm-diagram":{"path":"/api/v2/projects/{projectId}/failure-modes/{failureModeId}/fmm-diagram","method":"PUT","operationId":"updateFMMDiagram","summary":"Update FMM Diagram","description":"Updates and saves the Functional Mock-up Interface (FMM) diagram data for a specific failure mode. This endpoint allows you to modify diagram objects, mark objects for deletion, change diagram types, and update completion status. The request accepts a structured payload containing block diagram ID, FMM diagram type, block diagram type, FMEA type, completion flag, list of diagram objects to create or update, and list of object IDs to delete. Returns a list of client ID mappings for tracking server-side identifiers. This is the primary method for persisting FMM diagram changes made in the client interface.","tags":["FMM Diagram"],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"failureModeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FMMDiagramUpdateDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v2/projects/{projectId}/failure-modes/{failureModeId}/fmm-diagram":{"path":"/api/v2/projects/{projectId}/failure-modes/{failureModeId}/fmm-diagram","method":"POST","summary":"Create FMM Diagram","description":"Initializes and creates a new Functional Mock-up Interface (FMM) diagram structure for a targeted failure mode within a specific project context. Use this endpoint to begin visual failure mapping, establish a new causal chain diagram, or set up the visual canvas for root cause analysis (RCA). Returns the newly created diagram metadata and ID. Crucial for converting flat failure mode text into interactive visual models. (New FMM / Initialize Diagram / Create Failure Model / Build Causal Tree).","tags":["FMM Diagram"],"operationId":"createDiagram","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"failureModeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v2/files":{"path":"/api/v2/files","method":"POST","operationId":"upload","summary":"Upload files","description":"Initiates file upload by accepting one or more files via multipart/form-data and storing them in a temporary system folder. Returns a list of upload information objects, each containing a unique UUID identifier, original filename, and file size. The returned UUID serves as a temporary file reference that must be used in subsequent processing endpoints (e.g., Excel import, document attachment, data analysis workflows). This is the mandatory first step for any operation requiring file input. Supports batch upload of multiple files in a single request. Alternative terms: file transmission, document submission, attachment upload, bulk file transfer.","tags":[],"parameters":[],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/FormDataBodyPart"}}}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}},"x-dependency-warning":"This endpoint is an INITIATOR. Subsequent file processing endpoints (e.g., Excel import, data analysis) require the UUID returned by this endpoint. Store the returned UUIDs and pass them to consumer endpoints that accept {uuid} path parameters."},"GET:/api/v2/fourm":{"path":"/api/v2/fourm","method":"GET","operationId":"list","summary":"List 4M analysis items","description":"Retrieves all 4M (Man, Machine, Material, Environment) analysis items with optional filtering. Supports querying by project ID (projectId) and single or double tags (tag, secondTag) for targeted searches. Use this endpoint to browse, filter, or search for existing 4M analysis records within a project context. Returns a comprehensive list of analysis entries that can be further processed or displayed.","tags":[],"parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string"}},{"name":"tag","in":"query","required":false,"schema":{"type":"string"}},{"name":"secondTag","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"POST:/api/v2/fourm":{"path":"/api/v2/fourm","method":"POST","operationId":"create_3","summary":"Create 4M analysis item","description":"Creates a new 4M (Man, Machine, Material, Environment) analysis item in the system. Accepts analysis data including categorization by the four M dimensions (Man/Personnel, Machine/Equipment, Material/Resources, Environment/Conditions). Use this endpoint to initiate a new 4M analysis, register factors for quality or risk assessment, or document production variables. Returns the complete created object with system-generated ID.","tags":[],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourMCreationDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/fourm/{id}":{"path":"/api/v2/fourm/{id}","method":"GET","operationId":"get","summary":"Get 4M analysis item by ID","description":"Retrieves a specific 4M analysis item by its unique identifier (id). Use this endpoint to fetch full details of an existing analysis record for viewing, editing preparation, or detailed examination. Returns complete object including all four M dimensions (Man, Machine, Material, Environment) and associated metadata. Ideal for drill-down operations, detailed inspection, or populating edit forms.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"PUT:/api/v2/fourm/{id}":{"path":"/api/v2/fourm/{id}","method":"PUT","operationId":"update","summary":"Update 4M analysis item","description":"Modifies an existing 4M analysis item identified by its ID. Accepts partial or complete updates to the analysis data including changes to categorization, descriptions, or any of the four M dimensions (Man, Machine, Material, Environment). Use this endpoint to correct, enhance, or evolve analysis records over time. Returns the updated object reflecting all changes applied.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourMUpdateDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"DELETE:/api/v2/fourm/{id}":{"path":"/api/v2/fourm/{id}","method":"DELETE","operationId":"delete","summary":"Delete 4M analysis item","description":"Permanently removes a 4M analysis item from the system using its unique identifier. This operation is irreversible and will eliminate all associated data including the four M dimension classifications (Man, Machine, Material, Environment). Use with caution for removing obsolete or incorrect analysis records. Returns no content upon successful deletion (204 status).","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/projects":{"path":"/api/v2/projects","method":"GET","operationId":"list_8","summary":"List project summaries","description":"If divisionId is provided, returns division-scoped projects. Otherwise returns accessible projects.","tags":["Project"],"parameters":[{"name":"divisionId","in":"query","description":"Division ID","schema":{"type":"integer","format":"int32"}},{"name":"includeRelated","in":"query","description":"Whether to include mapped related divisions when divisionId is provided","schema":{"type":"boolean"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["DESIGN","PROCESS","EQUIPMENT","FA","FTA","CPLAN"]},"master":{"type":"boolean"},"name":{"type":"string"},"item":{"type":"string"},"model":{"type":"string"},"description":{"type":"string"},"leaderName":{"type":"string"},"startDate":{"type":"string","format":"date"},"dueDate":{"type":"string","format":"date"},"status":{"type":"string","enum":["IN_PROGRESS","REFUSED","SELF_COMPLETED"]},"completedDate":{"type":"string","format":"date"},"updateDueDate":{"type":"string","format":"date"},"divisionName":{"type":"string"},"divisionScope":{"type":"string"},"worksheetTemplateName":{"type":"string"}}}}}}}}},"GET:/api/v2/projects/{projectId}":{"path":"/api/v2/projects/{projectId}","method":"GET","operationId":"get_3","summary":"Retrieve project details","description":"Fetches complete project information including metadata, configuration, and current status. Use this endpoint to retrieve detailed project data for viewing, editing, or auditing purposes. Supports retrieving any project the authenticated user has access to.","tags":[],"parameters":[{"name":"projectId","in":"path","description":"Project ID to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["DESIGN","PROCESS","EQUIPMENT","FA","FTA","CPLAN"]},"master":{"type":"boolean"},"label":{"type":"boolean"},"active":{"type":"boolean"},"projectClass":{"type":"string"},"systemFunction":{"type":"string"},"systemRequirement":{"type":"string"},"item":{"type":"string"},"model":{"type":"string"},"startDate":{"type":"string","format":"date"},"dueDate":{"type":"string","format":"date"},"completedDate":{"type":"string","format":"date"},"updateDueDate":{"type":"string","format":"date"},"evaluationCriteria":{"type":"string"},"description":{"type":"string"},"members":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}}},"role":{"type":"string","enum":["LEADER","MEMBER","REVIEWER","APPROVAL","COMPLETION_REVIEWER","NONE"]}}}},"useApproval":{"type":"boolean"},"score":{"type":"integer"},"status":{"type":"string","enum":["IN_PROGRESS","REFUSED","SELF_COMPLETED"]},"divisionId":{"type":"integer"},"worksheetTemplateId":{"type":"integer"}}}}}}}},"GET:/api/v2/projects/my":{"path":"/api/v2/projects/my","method":"GET","operationId":"getSummaryList","summary":"List accessible projects","description":"Retrieves a summary list of all projects accessible to the current user, including projects they own or are a member of. Returns lightweight project summaries suitable for dashboard views, project selectors, or navigation menus. Filtered by user's authentication context and permissions.","tags":[],"parameters":[{"name":"search","in":"query","description":"Unified keyword (project, title, model, item)","schema":{"type":"string"}},{"name":"fmeaType","in":"query","description":"FMEA type filter (DESIGN, PROCESS, EQUIPMENT, FA, FTA, CPLAN)","schema":{"type":"string","enum":["Design","Process","Equipment","FA","FTA","CPlan"]}},{"name":"status","in":"query","description":"Project status filter","schema":{"type":"string","enum":["IN_PROGRESS","REFUSED","SELF_COMPLETED","REVIEW","APPROVE","SCORE","COMPLETED","ASK_MODIFY_REVIEW","ASK_MODIFY_APPROVE","DELAY","NA"]}},{"name":"sort","in":"query","description":"Sort format: (project|name|type|status):(asc|desc)","schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number (starts from 1)","schema":{"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","description":"Page size (max 100)","schema":{"type":"integer","format":"int32","default":20}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["DESIGN","PROCESS","EQUIPMENT","FA","FTA","CPLAN"]},"master":{"type":"boolean"},"name":{"type":"string"},"item":{"type":"string"},"model":{"type":"string"},"description":{"type":"string"},"leaderName":{"type":"string"},"startDate":{"type":"string","format":"date"},"dueDate":{"type":"string","format":"date"},"status":{"type":"string","enum":["IN_PROGRESS","REFUSED","SELF_COMPLETED"]},"completedDate":{"type":"string","format":"date"},"updateDueDate":{"type":"string","format":"date"},"divisionName":{"type":"string"},"divisionScope":{"type":"string"},"worksheetTemplateName":{"type":"string"}}}},"page":{"type":"integer"},"size":{"type":"integer"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"}}}}}}}},"GET:/api/v2/projects/{projectId}/summary":{"path":"/api/v2/projects/{projectId}/summary","method":"GET","operationId":"getSummary","summary":"Retrieve project overview","description":"Fetches a condensed overview of project information including key metrics, status, and essential metadata. Use this for quick project previews, dashboard widgets, or when full project details are not required. Optimized for performance with minimal data transfer.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["DESIGN","PROCESS","EQUIPMENT","FA","FTA","CPLAN"]},"master":{"type":"boolean"},"name":{"type":"string"},"item":{"type":"string"},"model":{"type":"string"},"description":{"type":"string"},"leaderName":{"type":"string"},"startDate":{"type":"string","format":"date"},"dueDate":{"type":"string","format":"date"},"status":{"type":"string","enum":["IN_PROGRESS","REFUSED","SELF_COMPLETED"]},"completedDate":{"type":"string","format":"date"},"updateDueDate":{"type":"string","format":"date"},"divisionName":{"type":"string"},"divisionScope":{"type":"string"},"worksheetTemplateName":{"type":"string"}}}}}}}},"GET:/api/v2/projects/{projectId}/members":{"path":"/api/v2/projects/{projectId}/members","method":"GET","operationId":"getMembers","summary":"List project team members","description":"Retrieves the complete list of project members including their roles, permissions, and user information. Use this endpoint to view team composition, manage project access, verify permissions, or display member directories. Returns member data with associated roles such as Owner, Admin, or Member.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}}},"role":{"type":"string","enum":["LEADER","MEMBER","REVIEWER","APPROVAL","COMPLETION_REVIEWER","NONE"]}}}}}}}}},"GET:/api/v2/projects/{projectId}/join-requests":{"path":"/api/v2/projects/{projectId}/join-requests","method":"GET","operationId":"getJoinRequestsByProjectId","summary":"List pending join requests","description":"Fetches all pending join requests for a specific project. Use this endpoint to review, approve, or reject users requesting access to the project. Requires project member role. Returns request details including requester information, request status, and timestamps for workflow management.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"integer"},"projectId":{"type":"string"},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","APPROVED","REJECTED"]},"revisions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"menuCode":{"type":"string","enum":["PROJECT","BLOCK","FMM","WORKSHEET","ATTACHED_FILE","WORKSHEET_UNIT","CONTROL_PLAN"]},"actionCode":{"type":"string","enum":["F","W","F","W"]},"projectId":{"type":"string"},"userId":{"type":"string"},"userName":{"type":"string"},"reportNo":{"type":"string"},"refId":{"type":"string"},"updatedDateTime":{"type":"string","format":"date-time"},"description":{"type":"string"},"updatingStatus":{"type":"integer"},"revisionNumber":{"type":"integer"}}}}}}}}}}}},"POST:/api/v2/projects/{projectId}/join-requests":{"path":"/api/v2/projects/{projectId}/join-requests","method":"POST","operationId":"createJoinRequest","summary":"Request project access","description":"Submits a new request to join a project. Use this endpoint when a user wants to request access to a restricted project. The request will be reviewed by existing project members who can approve or reject it. Requires no existing project membership. Returns the created request ID for tracking.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProjectJoinRequestCreationDTO"}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"PUT:/api/v2/projects/{projectId}/join-requests":{"path":"/api/v2/projects/{projectId}/join-requests","method":"PUT","operationId":"updateJoinRequests","summary":"Bulk approve/reject join requests","description":"Batch updates multiple join requests simultaneously to approve or reject project access requests. Use this endpoint for efficient workflow management when processing multiple pending requests at once. Requires project member role. Accepts a list of request IDs with their approval status and optional messages.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProjectJoinRequestBatchUpdateDTO"}}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"PUT:/api/v2/projects/{projectId}/join-requests/{requestId}":{"path":"/api/v2/projects/{projectId}/join-requests/{requestId}","method":"PUT","operationId":"updateJoinRequest","summary":"Approve/reject single join request","description":"Updates a specific join request to approve or reject a user's project access request. Use this endpoint for individual request processing when you need to review and respond to one request at a time. Requires project member role. Supports approval with optional response messages or rejection with reasons.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"requestId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectJoinRequestUpdateDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/projects/{projectId}/high-items":{"path":"/api/v2/projects/{projectId}/high-items","method":"GET","operationId":"list_11","summary":"Retrieve high-priority items","description":"Fetches high-priority items flagged within a project for focused attention and risk management. Use this endpoint to identify critical items requiring immediate review, action, or analysis. Returns prioritized items based on risk scores, severity ratings, or other project-specific criteria.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/open/metrics/{apType}/constants":{"path":"/api/v2/open/metrics/{apType}/constants","method":"GET","summary":"Get metric constants","description":"Retrieves metric scoring constants (Severity, Occurrence, Detection, Action Priorities) for the specified Analysis Type. Supports two FMEA methodologies: 'aiag' (AIAG/VDA standard) and 'msr' (Machinery Safety Regulation). Use this endpoint to fetch valid rating scales and calculation parameters required for risk assessment analysis. Commonly used when initializing FMEA worksheets, validating metric values, or configuring dropdown options. The {apType} parameter is case-insensitive but must match supported types. Returns 400 error if type is invalid.","tags":[],"operationId":"getMetricConstants","parameters":[{"name":"apType","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/system/context-version":{"path":"/api/v2/system/context-version","method":"GET","summary":"Get Context Version","description":"Fetches the current application version, deployment semantic tag, and build metadata associated with the specific API context path. Historically replaces legacy health-check endpoints. Use this modern endpoint to verify proper API deployment, check version compatibility before complex operations, or display software version in the UI footer. (Check Version / Get Release Tag / Context Information / API Revision).","tags":[],"operationId":"checkContext","parameters":[{"name":"contextPath","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/system/health":{"path":"/api/v2/system/health","method":"GET","summary":"System Health","description":"Performs a lightweight diagnostic check and retrieves the basic operational health status of the FMEA system. Use this endpoint for load balancer pinging, uptime monitoring services (e.g., Datadog, Pingdom), or ensuring backend connectivity before user authentication. Returns a simple success payload if the core services and database connections are operational. (Health Check / System Status / Ping API / Service Heartbeat).","tags":[],"operationId":"health","parameters":[],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/template/action-status":{"path":"/api/v2/template/action-status","method":"GET","operationId":"getAll","summary":"Get all action status templates","description":"Retrieves a complete list of all action status templates available in the system. Action status templates define the possible states for improvement actions (e.g., 'Open', 'In Progress', 'Completed', 'Closed'). Use this endpoint when you need to populate dropdown menus, display available status options, or validate status references. The response includes the template ID and title for each action status. Synonyms: list action statuses, get all action states, retrieve status options, fetch action status catalog.","tags":[],"parameters":[],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"}}}}}}}}},"POST:/api/v2/template/action-status":{"path":"/api/v2/template/action-status","method":"POST","operationId":"create_4","summary":"Create action status template","description":"Creates a new action status template with a custom title. This endpoint is used to define additional states for improvement actions beyond the default options (e.g., 'Under Review', 'On Hold', 'Cancelled'). Requires ADMIN user level privileges. The request body must contain a 'title' field specifying the status name. Upon successful creation, returns the location URI of the new resource. Use this endpoint when you need to extend the available action status options for your organization's workflow. Synonyms: add action status, create new action state, define status template, add status option.","tags":[],"parameters":[],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ActionStatusSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/template/action-status/{id}":{"path":"/api/v2/template/action-status/{id}","method":"GET","operationId":"getById","summary":"Get action status template by ID","description":"Retrieves a specific action status template by its unique identifier. Use this endpoint when you need to view detailed information about a particular action status, validate an ID reference, or fetch the title of a specific status. Returns 404 Not Found if the specified ID does not exist. The response includes the template ID and title fields. This is useful for displaying current status information or verifying status existence before updates. Synonyms: get action status by ID, fetch specific action state, retrieve status template details, find action status.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"PUT:/api/v2/template/action-status/{id}":{"path":"/api/v2/template/action-status/{id}","method":"PUT","operationId":"update_3","summary":"Update action status template","description":"Updates an existing action status template's information. This endpoint allows administrators to modify the title of an action status template. Use this endpoint when you need to rename a status, correct typos, or standardize status terminology. Requires ADMIN user level privileges. The request body must contain a 'title' field with the new status name. The path parameter specifies the ID of the status template to update. Returns the updated DTO in the response. Synonyms: modify action status, edit action state, change status title, rename action status.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/ActionStatusSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"DELETE:/api/v2/template/action-status/{id}":{"path":"/api/v2/template/action-status/{id}","method":"DELETE","operationId":"delete_3","summary":"Delete action status template","description":"Permanently removes an action status template from the system. This endpoint is used to delete obsolete or unused action status options. Requires ADMIN user level privileges. The path parameter specifies the ID of the status template to delete. Use with caution as this operation cannot be undone. Returns 204 No Content on successful deletion. Consider whether any existing actions reference this status before deletion to avoid data integrity issues. Synonyms: remove action status, delete action state, eliminate status template, remove status option.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"default response","content":{"*/*":{}}}}},"GET:/api/v2/users":{"path":"/api/v2/users","method":"GET","summary":"Search users","description":"Returns paged users filtered by search, dept, and level.","operationId":"list_9","tags":["User"],"parameters":[{"name":"search","in":"query","description":"Unified keyword (id, name, englishName, email, department)","schema":{"type":"string"}},{"name":"dept","in":"query","description":"Department exact-match filter","schema":{"type":"string"}},{"name":"level","in":"query","description":"User level filter (ADMIN, NORMAL, READER)","schema":{"type":"string","enum":["A","N","R"]}},{"name":"page","in":"query","description":"Page number (starts from 1)","schema":{"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","description":"Page size (max 100)","schema":{"type":"integer","format":"int32","default":20}}],"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}}}},"page":{"type":"integer"},"size":{"type":"integer"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"}}}}}}}},"GET:/api/v2/users/{userId}":{"path":"/api/v2/users/{userId}","method":"GET","operationId":"get_4","summary":"Get User by ID","description":"Retrieves detailed user profile information by user ID. Use this endpoint to fetch user account details, profile data, or user metadata for display purposes. This is commonly used when you need to show user information in UI components, validate user existence, or retrieve user context for other operations. The endpoint returns the complete user DTO including all available user attributes. Requires NORMAL user level or higher authentication.","tags":["User Management"],"parameters":[{"name":"userId","in":"path","description":"User ID to retrieve","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}}}}}}}},"GET:/api/v2/users/my/project-join-requests":{"path":"/api/v2/users/my/project-join-requests","method":"GET","operationId":"listMyProjectJoinRequests","summary":"List My Project Join Requests","description":"Retrieves all project join requests submitted by the currently authenticated user. Use this endpoint to list pending invitations, access requests, or project membership requests that you have submitted. The response includes the status of each request (pending, approved, rejected) and associated project details. This is useful for showing users their request history, checking request status, or managing pending access requests. The endpoint automatically filters results based on the authenticated user's identity from the session context. Requires READER user level or higher authentication. Supports optional filtering by specific project ID via the projectId query parameter.","tags":["User Management"],"parameters":[{"name":"projectId","in":"query","description":"Optional project ID filter","required":false,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"integer"},"projectId":{"type":"string"},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"department":{"type":"string"},"division":{"type":"object","properties":{"id":{"type":"integer"},"no":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"},"relatedDivisions":{"type":"array","items":{"type":"object","description":"(circular: DivisionDTO)"}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","APPROVED","REJECTED"]},"revisions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"menuCode":{"type":"string","enum":["PROJECT","BLOCK","FMM","WORKSHEET","ATTACHED_FILE","WORKSHEET_UNIT","CONTROL_PLAN"]},"actionCode":{"type":"string","enum":["F","W","F","W"]},"projectId":{"type":"string"},"userId":{"type":"string"},"userName":{"type":"string"},"reportNo":{"type":"string"},"refId":{"type":"string"},"updatedDateTime":{"type":"string","format":"date-time"},"description":{"type":"string"},"updatingStatus":{"type":"integer"},"revisionNumber":{"type":"integer"}}}}}}}}}}}},"GET:/api/v2/projects/{projectId}/worksheets":{"path":"/api/v2/projects/{projectId}/worksheets","method":"GET","summary":"Get worksheet summaries","description":"Retrieves a list of all worksheet summaries within a project. This endpoint provides a high-level overview (summary/directory) of available worksheets, excluding detailed content. Use this to browse, list, or enumerate worksheets before fetching specific worksheet details. The response contains basic metadata such as report numbers and titles. Ideal for dashboard views, worksheet selection interfaces, or getting a quick inventory of all worksheets in a project. No authentication required for read access.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"operationId":"getSummaries","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"reportNo":{"type":"string"},"name":{"type":"string"},"item":{"type":"string"},"analysisLevel":{"type":"string"},"blockDiagramType":{"type":"string","enum":["FUNCTION","STRUCTURE","FUNCTION_STRUCTURE","STRUCTURE_FUNCTION","PROCESS","SUPER_SYSTEM","FUNCTION_ANALYSIS"]},"templateName":{"type":"string"},"description":{"type":"string"},"improvementMetrics":{"type":"object","properties":{"before":{"type":"object","properties":{"count":{"type":"integer"},"total":{"type":"integer"},"average":{"type":"integer"}}},"after":{"type":"object","properties":{"count":{"type":"integer"},"total":{"type":"integer"},"average":{"type":"integer"}}}}},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}}}}}}}},"POST:/api/v2/projects/{projectId}/worksheets":{"path":"/api/v2/projects/{projectId}/worksheets","method":"POST","summary":"Create worksheet","description":"Creates a new worksheet within the specified project. Use this endpoint to initialize a blank worksheet, set up a new analysis document, or establish a fresh worksheet structure. The request accepts worksheet creation parameters via WorksheetCreationDTO. Upon successful creation, returns the report number (reportNoSimple) of the newly created worksheet. Requires NORMAL user level and PROJECT MEMBER role. This is the initiating action for any worksheet-based workflow. Common use cases include: starting a new FMEA analysis, creating additional worksheets for different subsystems, or generating worksheet templates.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorksheetCreationDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}},"operationId":"create_5"},"GET:/api/v2/projects/{projectId}/worksheets/{reportNoSimple}":{"path":"/api/v2/projects/{projectId}/worksheets/{reportNoSimple}","method":"GET","summary":"Get worksheet by report number","description":"Fetches the complete details of a specific worksheet identified by its report number. The reportNoSimple parameter accepts formats like '3' or '3-1' (handling sub-worksheets via ReportNoSetDTO). Returns the full worksheet data including all rows, columns, headers, and cell values. Use this endpoint after listing summaries to retrieve detailed content for editing or analysis. Requires NORMAL user level. Common scenarios include: loading a worksheet for editing, viewing worksheet content, exporting worksheet data, or fetching worksheet structure for UI rendering. This is the primary read operation for full worksheet content.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"reportNoSimple","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ReportNoSetDTO"}}],"operationId":"get_5","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"analysisLevel":{"type":"string"},"reportNo":{"type":"string"},"serial":{"type":"integer"},"blockDiagram":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["FUNCTION","STRUCTURE","FUNCTION_STRUCTURE","STRUCTURE_FUNCTION","PROCESS","SUPER_SYSTEM","FUNCTION_ANALYSIS"]},"alias":{"type":"string"},"order":{"type":"integer"},"description":{"type":"string"},"numberFormat":{"type":"string"}}},"worksheetTemplateId":{"type":"integer"},"description":{"type":"string"}}}}}}}},"PUT:/api/v2/projects/{projectId}/worksheets/{reportNoSimple}":{"path":"/api/v2/projects/{projectId}/worksheets/{reportNoSimple}","method":"PUT","summary":"Update worksheet","description":"Updates and saves changes to an existing worksheet identified by its report number. Accepts WorksheetSaveDTO containing modified worksheet data including cell values, structure changes, and metadata updates. The reportNoSimple parameter supports both simple numbers ('3') and sub-worksheet notation ('3-1'). All changes are persisted to the database. Requires NORMAL user level and PROJECT MEMBER role with write permissions. Common use cases: saving worksheet edits, updating cell values, modifying worksheet structure, applying bulk changes, or synchronizing client-side modifications. This is the primary write operation for worksheets and should be called after any user modifications to persist data.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"reportNoSimple","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ReportNoSetDTO"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorksheetSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}},"operationId":"save_7"},"DELETE:/api/v2/projects/{projectId}/worksheets/{reportNoSimple}":{"path":"/api/v2/projects/{projectId}/worksheets/{reportNoSimple}","method":"DELETE","summary":"Delete worksheet","description":"Permanently removes a worksheet from the project using its report number identifier. The reportNoSimple parameter accepts formats like '3' or '3-1' for sub-worksheets. This operation is irreversible and will delete all worksheet data including rows, columns, cell values, and associated metadata. Requires NORMAL user level and PROJECT MEMBER role. Use with caution as deleted worksheets cannot be recovered without database restore. Common scenarios: removing obsolete worksheets, cleaning up test data, deleting unused analysis documents, or managing worksheet lifecycle. Consider archiving instead of deleting if the worksheet might be needed for future reference.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"reportNoSimple","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ReportNoSetDTO"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorksheetSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}},"operationId":"delete_4"},"PUT:/api/v2/projects/{projectId}/worksheet-excel/{uuid}":{"path":"/api/v2/projects/{projectId}/worksheet-excel/{uuid}","method":"PUT","summary":"Update worksheet Excel","description":"Updates an existing worksheet by importing data from an uploaded Excel file (.xlsx, .xls). Use this endpoint to modify worksheet contents, replace existing data, or refresh worksheet records with new Excel data. The endpoint parses the uploaded Excel file and updates the corresponding worksheet record. This is the primary method for editing worksheet data through Excel import. Requires project member role.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorksheetExcelSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}},"operationId":"update_4","x-dependency-warning":"REQUIRES PRIOR FILE UPLOAD via [POST /api/v2/files]. The {uuid} parameter is the file ID returned by the upload endpoint."},"POST:/api/v2/projects/{projectId}/worksheet-excel/{uuid}":{"path":"/api/v2/projects/{projectId}/worksheet-excel/{uuid}","method":"POST","summary":"Add worksheet Excel","description":"Creates a new worksheet by importing data from an uploaded Excel file (.xlsx, .xls). Use this endpoint to add a new worksheet record, create worksheet entries from Excel, or import worksheet data from spreadsheet files. The endpoint parses the uploaded Excel file and creates a new worksheet with the data. Returns the created worksheet's report number for reference. Requires project member role.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorksheetExcelSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}},"operationId":"add","x-dependency-warning":"REQUIRES PRIOR FILE UPLOAD via [POST /api/v2/files]. The {uuid} parameter is the file ID returned by the upload endpoint."},"GET:/api/v2/projects/{projectId}/worksheet-excel/{reportNoSimple}":{"path":"/api/v2/projects/{projectId}/worksheet-excel/{reportNoSimple}","method":"GET","summary":"Get worksheet Excel download link","description":"Generates a download link for a worksheet Excel file by report number. Use this endpoint to export worksheet data, download worksheet as Excel, or retrieve the spreadsheet file for offline editing. The link provides access to the Excel file associated with the specified worksheet report number. Requires reader-level access or higher.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"reportNoSimple","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ReportNoSetDTO"}}],"operationId":"getDownloadLink_1","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"fileName":{"type":"string"},"downloadUri":{"type":"string"}}}}}}}},"GET:/api/v2/projects/{projectId}/worksheet-excel/{uuid}/metadata":{"path":"/api/v2/projects/{projectId}/worksheet-excel/{uuid}/metadata","method":"GET","summary":"Get worksheet Excel metadata","description":"Extracts metadata from an uploaded Excel file without processing the full data. Use this endpoint to preview file information, validate Excel structure, inspect worksheet contents, or retrieve file properties before saving. Returns metadata including sheet names, column headers, and data structure. Useful for pre-validating Excel files before add/update operations. Requires project member role.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"schema":{"type":"string"}}],"operationId":"getMetadata","x-dependency-warning":"REQUIRES PRIOR FILE UPLOAD via [POST /api/v2/files]. The {uuid} parameter is the file ID returned by the upload endpoint.","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string"},"reportNo":{"type":"string"},"templateId":{"type":"integer"},"idsByFailureMode":{"type":"array","items":{"type":"integer"}},"latestModified":{"type":"string","format":"date-time"},"targetModified":{"type":"string","format":"date-time"}}}}}}}},"GET:/api/v2/projects/{projectId}/worksheet-excel/{reportNoSimple}/sheets":{"path":"/api/v2/projects/{projectId}/worksheet-excel/{reportNoSimple}/sheets","method":"GET","summary":"Get Excel Sheets List","description":"Fetches a complete list of available Excel worksheets/tabs associated with a specific previously generated or uploaded Excel report. Ideal for previewing workbook structure, selecting specific sheets for analysis, or retrieving metadata before detailed extraction. (List sheets / View Excel tabs / Get available worksheets).","tags":[],"operationId":"getSheets","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"reportNoSimple","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":null,"responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","description":"(file not found: com.gdnps.fmea.poisheet.model.POISheet)"}}}}}}},"GET:/api/v2/projects/{projectId}/worksheets/failuremode/{failureModeId}":{"path":"/api/v2/projects/{projectId}/worksheets/failuremode/{failureModeId}","method":"GET","summary":"Get worksheet by failure mode","description":"Fetches the complete worksheet data associated with a specific failure mode within a project. Use this endpoint to retrieve, load, or view detailed failure mode analysis worksheets including RPN calculations, risk assessments, and mitigation strategies. This is essential for reviewing existing failure mode documentation, conducting quality audits, or preparing data for editing operations. The endpoint returns structured worksheet content that can be used for analysis, reporting, or further modification through the update endpoint.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"failureModeId","in":"path","required":true,"schema":{"type":"string"}}],"operationId":"getByFailureMode","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"reportNo":{"type":"string"},"failureModeId":{"type":"string"},"order":{"type":"integer"}}}}}}}},"POST:/api/v2/projects/{projectId}/worksheets/failuremode/{failureModeId}":{"path":"/api/v2/projects/{projectId}/worksheets/failuremode/{failureModeId}","method":"POST","summary":"Create worksheet by failure mode","description":"Generates a new worksheet for a specific failure mode within a project. Use this endpoint to initialize, set up, or create failure mode analysis worksheets. This operation establishes a structured worksheet template linked to the identified failure mode, optionally associating it with a block diagram via the blockDiagramId query parameter. Essential for starting new failure mode analyses, initiating risk assessment workflows, or expanding project documentation coverage. The created worksheet provides a framework for capturing RPN calculations, failure effects, causes, and recommended actions.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"failureModeId","in":"path","required":true,"schema":{"type":"string"}},{"name":"blockDiagramId","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"createByFailureMode","responses":{"default":{"description":"default response","content":{"application/json":{}}}}},"GET:/api/v2/projects/{projectId}/worksheets/{reportNo}/headers":{"path":"/api/v2/projects/{projectId}/worksheets/{reportNo}/headers","method":"GET","summary":"Get worksheet headers","description":"Retrieves the column headers and metadata structure for a specific worksheet identified by its report number. Use this endpoint to fetch, access, or query the schema definition including column names, data types, and field configurations. This is particularly useful for dynamic form generation, table rendering, understanding worksheet structure before data entry, or validating data imports. The headers provide the framework for how worksheet data is organized and displayed, enabling proper data mapping and UI generation for frontend applications.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"reportNo","in":"path","required":true,"schema":{"type":"string"}}],"operationId":"getHeaders","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"columnId":{"type":"integer"},"columnKey":{"type":"string"},"dataType":{"type":"string","enum":["INTEGER","BOOLEAN","TEXT","DATE","REFER"]},"parentId":{"type":"integer"},"groupHeader":{"type":"boolean"},"name":{"type":"string"},"width":{"type":"integer"},"readOnly":{"type":"boolean"},"mergeGroup":{"type":"integer"},"order":{"type":"integer"},"vAlign":{"type":"integer"},"hAlign":{"type":"integer"},"style":{"type":"string"},"description":{"type":"string"}}}}}}}}},"PUT:/api/v2/projects/{projectId}/worksheets/{reportNo}/{failureModeId}":{"path":"/api/v2/projects/{projectId}/worksheets/{reportNo}/{failureModeId}","method":"PUT","summary":"Save worksheet by failure mode","description":"Updates and persists worksheet data for a specific failure mode within a designated report. Use this endpoint to save, modify, edit, or update failure mode analysis content including severity ratings, occurrence probabilities, detection rankings, RPN calculations, recommended actions, and status tracking. This operation overwrites existing data with the provided FailureModeWorksheetSaveDTO payload, ensuring data persistence and version control. Essential for recording analysis progress, updating risk assessments after reviews, documenting corrective actions, or maintaining live risk evaluation data. Requires project member role authentication and supports iterative refinement of failure mode analyses throughout the project lifecycle.","tags":[],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"reportNo","in":"path","required":true,"schema":{"type":"string"}},{"name":"failureModeId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailureModeWorksheetSaveDTO"}}}},"responses":{"default":{"description":"default response","content":{"*/*":{}}}},"operationId":"saveByFailureMode"},"GET:/api/v2/worksheet-templates/{id}/headers":{"path":"/api/v2/worksheet-templates/{id}/headers","method":"GET","summary":"Get worksheet template headers","description":"Retrieves the column headers and metadata structure for a specific worksheet template identified by its ID. Use this endpoint to fetch, access, or query the template schema definition including column names, data types, and field configurations. This is particularly useful for understanding the template structure before creating new worksheets, dynamic form generation, table rendering, or validating data imports against template requirements. The headers provide the framework for how worksheet data is organized when instantiated from this template, enabling proper data mapping and UI generation for frontend applications. Synonyms: get template schema, fetch template structure, retrieve template columns, list template fields.","tags":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"operationId":"getHeaders_1","responses":{"default":{"description":"default response","content":{"application/json":{}}}}}}