feat: implement sensitive operation audit retention (TASK-WP6-04)
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 59s
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 59s
This commit is contained in:
@@ -70,6 +70,67 @@ export type PrivateContentNoticeAckRequest = Static<typeof PrivateContentNoticeA
|
||||
export type PrivateContentNoticeAckResponse = Static<typeof PrivateContentNoticeAckResponseSchema>;
|
||||
export type PrivateContentPromptResponse = Static<typeof PrivateContentPromptResponseSchema>;
|
||||
|
||||
export const AdminAuditQuerySchema = Type.Object(
|
||||
{
|
||||
cursor: Type.Optional(Type.String({ maxLength: 512, pattern: "^[A-Za-z0-9_-]+$" })),
|
||||
limit: Type.Optional(Type.Integer({ maximum: 100, minimum: 1 })),
|
||||
},
|
||||
{ additionalProperties: false, $id: "AdminAuditQuery" },
|
||||
);
|
||||
|
||||
export const AdminOperationAuditItemSchema = Type.Object(
|
||||
{
|
||||
actor_ref: Type.String({ pattern: safeReferencePattern }),
|
||||
actor_type: Type.Union([Type.Literal("system"), Type.Literal("super_admin")]),
|
||||
after_summary: Type.Union([Type.String({ maxLength: 2048 }), Type.Null()]),
|
||||
before_summary: Type.Union([Type.String({ maxLength: 2048 }), Type.Null()]),
|
||||
expires_at: Type.String({ pattern: isoTimestampPattern }),
|
||||
log_id: Type.String({ pattern: uuidPattern }),
|
||||
occurred_at: Type.String({ pattern: isoTimestampPattern }),
|
||||
operation_type: Type.String({ maxLength: 160, pattern: safeReferencePattern }),
|
||||
result: Type.Union([Type.Literal("succeeded"), Type.Literal("failed")]),
|
||||
target_ref: Type.String({ pattern: safeReferencePattern }),
|
||||
target_type: Type.String({ maxLength: 160, pattern: safeReferencePattern }),
|
||||
},
|
||||
{ additionalProperties: false, $id: "AdminOperationAuditItem" },
|
||||
);
|
||||
|
||||
export const AdminOperationAuditResponseSchema = Type.Object(
|
||||
{
|
||||
generated_at: Type.String({ pattern: isoTimestampPattern }),
|
||||
items: Type.Array(Type.Ref(AdminOperationAuditItemSchema), { maxItems: 100 }),
|
||||
next_cursor: Type.Union([Type.String({ maxLength: 512, pattern: "^[A-Za-z0-9_-]+$" }), Type.Null()]),
|
||||
},
|
||||
{ additionalProperties: false, $id: "AdminOperationAuditResponse" },
|
||||
);
|
||||
|
||||
export const PrivateContentAccessAuditItemSchema = Type.Object(
|
||||
{
|
||||
actor_ref: Type.String({ pattern: safeReferencePattern }),
|
||||
content_type: Type.Union([Type.Literal("image"), Type.Literal("prompt")]),
|
||||
expires_at: Type.String({ pattern: isoTimestampPattern }),
|
||||
log_id: Type.String({ pattern: uuidPattern }),
|
||||
occurred_at: Type.String({ pattern: isoTimestampPattern }),
|
||||
target_ref: Type.String({ pattern: safeReferencePattern }),
|
||||
},
|
||||
{ additionalProperties: false, $id: "PrivateContentAccessAuditItem" },
|
||||
);
|
||||
|
||||
export const PrivateContentAccessAuditResponseSchema = Type.Object(
|
||||
{
|
||||
generated_at: Type.String({ pattern: isoTimestampPattern }),
|
||||
items: Type.Array(Type.Ref(PrivateContentAccessAuditItemSchema), { maxItems: 100 }),
|
||||
next_cursor: Type.Union([Type.String({ maxLength: 512, pattern: "^[A-Za-z0-9_-]+$" }), Type.Null()]),
|
||||
},
|
||||
{ additionalProperties: false, $id: "PrivateContentAccessAuditResponse" },
|
||||
);
|
||||
|
||||
export type AdminAuditQuery = Static<typeof AdminAuditQuerySchema>;
|
||||
export type AdminOperationAuditItem = Static<typeof AdminOperationAuditItemSchema>;
|
||||
export type AdminOperationAuditResponse = Static<typeof AdminOperationAuditResponseSchema>;
|
||||
export type PrivateContentAccessAuditItem = Static<typeof PrivateContentAccessAuditItemSchema>;
|
||||
export type PrivateContentAccessAuditResponse = Static<typeof PrivateContentAccessAuditResponseSchema>;
|
||||
|
||||
export const AdminOverviewResponseSchema = Type.Object(
|
||||
{
|
||||
generated_at: Type.String({ pattern: isoTimestampPattern }),
|
||||
|
||||
Reference in New Issue
Block a user