feat: Thêm định nghĩa schema cho yêu cầu truy cập, đánh giá truy cập, chính sách, báo cáo tuân thủ và phiên vào tài liệu Swagger.

This commit is contained in:
Ho Ngoc Hai
2026-01-04 13:56:12 +07:00
parent 7e7a7a5853
commit ccfb2a7fb2

View File

@@ -254,6 +254,93 @@ const options = {
organizationId: { type: 'string' },
},
},
AccessRequest: {
type: 'object',
properties: {
id: { type: 'string' },
resource: { type: 'string' },
action: { type: 'string' },
status: { type: 'string', enum: ['PENDING', 'APPROVED', 'REJECTED'] },
reason: { type: 'string' },
requesterId: { type: 'string' },
createdAt: { type: 'string', format: 'date-time' },
},
},
CreateAccessRequest: {
type: 'object',
properties: {
resource: { type: 'string' },
action: { type: 'string' },
reason: { type: 'string' },
expiresAt: { type: 'string', format: 'date-time' },
},
required: ['resource', 'action'],
},
AccessReview: {
type: 'object',
properties: {
id: { type: 'string' },
name: { type: 'string' },
status: { type: 'string' },
type: { type: 'string' },
startDate: { type: 'string', format: 'date-time' },
endDate: { type: 'string', format: 'date-time' },
},
},
CreateAccessReviewRequest: {
type: 'object',
properties: {
name: { type: 'string' },
type: { type: 'string', enum: ['PERIODIC', 'ADHOC'] },
startDate: { type: 'string', format: 'date-time' },
endDate: { type: 'string', format: 'date-time' },
},
required: ['name', 'type'],
},
Policy: {
type: 'object',
properties: {
id: { type: 'string' },
name: { type: 'string' },
type: { type: 'string' },
content: { type: 'object' },
isActive: { type: 'boolean' },
},
},
ComplianceReport: {
type: 'object',
properties: {
id: { type: 'string' },
type: { type: 'string' },
status: { type: 'string' },
generatedAt: { type: 'string', format: 'date-time' },
url: { type: 'string' },
},
},
GenerateComplianceReportRequest: {
type: 'object',
properties: {
type: { type: 'string' },
periodStart: { type: 'string', format: 'date-time' },
periodEnd: { type: 'string', format: 'date-time' },
},
required: ['type'],
},
Session: {
type: 'object',
properties: {
id: { type: 'string' },
userId: { type: 'string' },
deviceId: { type: 'string' },
deviceName: { type: 'string' },
ipAddress: { type: 'string' },
userAgent: { type: 'string' },
isActive: { type: 'boolean' },
expiresAt: { type: 'string', format: 'date-time' },
createdAt: { type: 'string', format: 'date-time' },
lastActivityAt: { type: 'string', format: 'date-time' },
},
},
Feature: {
type: 'object',
properties: {