feat: implement final approval gate workflow and checklist
This commit is contained in:
@@ -2075,6 +2075,215 @@
|
||||
"title": "EvidenceUpdateRequest",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalApprovalChecklistItemSummary": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"blocker": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Blocker"
|
||||
},
|
||||
"completed": {
|
||||
"title": "Completed",
|
||||
"type": "boolean"
|
||||
},
|
||||
"key": {
|
||||
"minLength": 1,
|
||||
"title": "Key",
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"minLength": 1,
|
||||
"title": "Title",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"key",
|
||||
"title",
|
||||
"completed"
|
||||
],
|
||||
"title": "FinalApprovalChecklistItemSummary",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalApprovalChecklistResponse": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"article_id": {
|
||||
"format": "uuid",
|
||||
"title": "Article Id",
|
||||
"type": "string"
|
||||
},
|
||||
"blockers": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": "Blockers",
|
||||
"type": "array"
|
||||
},
|
||||
"can_approve": {
|
||||
"title": "Can Approve",
|
||||
"type": "boolean"
|
||||
},
|
||||
"completed_items": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": "Completed Items",
|
||||
"type": "array"
|
||||
},
|
||||
"draft_version": {
|
||||
"anyOf": [
|
||||
{
|
||||
"minimum": 1,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Draft Version"
|
||||
},
|
||||
"items": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/FinalApprovalChecklistItemSummary"
|
||||
},
|
||||
"title": "Items",
|
||||
"type": "array"
|
||||
},
|
||||
"requested_draft_version": {
|
||||
"anyOf": [
|
||||
{
|
||||
"minimum": 1,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Requested Draft Version"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"article_id",
|
||||
"can_approve"
|
||||
],
|
||||
"title": "FinalApprovalChecklistResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalApprovalPublishingSettings": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"author": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Author"
|
||||
},
|
||||
"content_path": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Content Path"
|
||||
},
|
||||
"frontmatter": {
|
||||
"anyOf": [
|
||||
{
|
||||
"additionalProperties": true,
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Frontmatter"
|
||||
},
|
||||
"publishing_mode": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Publishing Mode"
|
||||
}
|
||||
},
|
||||
"title": "FinalApprovalPublishingSettings",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalApprovalRequest": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"draft_version": {
|
||||
"anyOf": [
|
||||
{
|
||||
"minimum": 1,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Draft Version"
|
||||
},
|
||||
"publishing_settings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/FinalApprovalPublishingSettings"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"title": "FinalApprovalRequest",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalApprovalResponse": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"article": {
|
||||
"$ref": "#/components/schemas/ArticleSummary"
|
||||
},
|
||||
"checklist": {
|
||||
"$ref": "#/components/schemas/FinalApprovalChecklistResponse"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"article",
|
||||
"checklist"
|
||||
],
|
||||
"title": "FinalApprovalResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalReviewIssueSummary": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
@@ -2144,6 +2353,55 @@
|
||||
"title": "FinalReviewIssuesResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalRevisionRequest": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"draft_version": {
|
||||
"anyOf": [
|
||||
{
|
||||
"minimum": 1,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Draft Version"
|
||||
},
|
||||
"reason": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Reason"
|
||||
}
|
||||
},
|
||||
"title": "FinalRevisionRequest",
|
||||
"type": "object"
|
||||
},
|
||||
"FinalRevisionRequestResponse": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"article": {
|
||||
"$ref": "#/components/schemas/ArticleSummary"
|
||||
},
|
||||
"checklist": {
|
||||
"$ref": "#/components/schemas/FinalApprovalChecklistResponse"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"article",
|
||||
"checklist"
|
||||
],
|
||||
"title": "FinalRevisionRequestResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"HTTPValidationError": {
|
||||
"properties": {
|
||||
"detail": {
|
||||
@@ -5552,6 +5810,134 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/articles/{article_id}/final-approval": {
|
||||
"post": {
|
||||
"operationId": "post_article_final_approval_api_articles__article_id__final_approval_post",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "article_id",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"format": "uuid",
|
||||
"title": "Article Id",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "X-Demo-User-Email",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "X-Demo-User-Email"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/FinalApprovalRequest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/FinalApprovalResponse"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Successful Response"
|
||||
},
|
||||
"422": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/HTTPValidationError"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Validation Error"
|
||||
}
|
||||
},
|
||||
"summary": "Post Article Final Approval",
|
||||
"tags": [
|
||||
"final-approval"
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/articles/{article_id}/final-approval/checklist": {
|
||||
"get": {
|
||||
"operationId": "get_article_final_approval_checklist_api_articles__article_id__final_approval_checklist_get",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "article_id",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"format": "uuid",
|
||||
"title": "Article Id",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "X-Demo-User-Email",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "X-Demo-User-Email"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/FinalApprovalChecklistResponse"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Successful Response"
|
||||
},
|
||||
"422": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/HTTPValidationError"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Validation Error"
|
||||
}
|
||||
},
|
||||
"summary": "Get Article Final Approval Checklist",
|
||||
"tags": [
|
||||
"final-approval"
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/articles/{article_id}/final-review/issues": {
|
||||
"get": {
|
||||
"operationId": "get_article_final_review_issues_api_articles__article_id__final_review_issues_get",
|
||||
@@ -5611,6 +5997,75 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/articles/{article_id}/final-revision-request": {
|
||||
"post": {
|
||||
"operationId": "post_article_final_revision_request_api_articles__article_id__final_revision_request_post",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "path",
|
||||
"name": "article_id",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"format": "uuid",
|
||||
"title": "Article Id",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "X-Demo-User-Email",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "X-Demo-User-Email"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/FinalRevisionRequest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/FinalRevisionRequestResponse"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Successful Response"
|
||||
},
|
||||
"422": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/HTTPValidationError"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Validation Error"
|
||||
}
|
||||
},
|
||||
"summary": "Post Article Final Revision Request",
|
||||
"tags": [
|
||||
"final-approval"
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/articles/{article_id}/final/approve": {
|
||||
"post": {
|
||||
"operationId": "post_final_approve_api_articles__article_id__final_approve_post",
|
||||
|
||||
Reference in New Issue
Block a user