M24: implement privacy governance

This commit is contained in:
NuklearRabbit
2026-08-10 15:56:03 +02:00
parent f0f1be83ae
commit 0935901f11
29 changed files with 920 additions and 11 deletions
+221
View File
@@ -139,6 +139,43 @@ paths:
additionalProperties: true
type: object
title: Response Demo Reset Api V1 Demo Reset Post
/api/v1/auth/oidc/status:
get:
tags:
- auth
summary: Oidc Status
operationId: oidc_status_api_v1_auth_oidc_status_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/OidcStatusOut'
/api/v1/auth/oidc/login:
get:
tags:
- auth
summary: Oidc Login
operationId: oidc_login_api_v1_auth_oidc_login_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
/api/v1/auth/oidc/callback:
get:
tags:
- auth
summary: Oidc Callback
operationId: oidc_callback_api_v1_auth_oidc_callback_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
/api/v1/auth/login:
post:
tags:
@@ -762,6 +799,43 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/audit/export.csv:
get:
tags:
- audit
summary: Export Audit Csv
operationId: export_audit_csv_api_v1_audit_export_csv_get
parameters:
- name: occurred_from
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Occurred From
- name: occurred_to
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Occurred To
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/audit:
get:
tags:
@@ -1969,6 +2043,76 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/privacy/retention:
get:
tags:
- privacy
summary: Retention Status
operationId: retention_status_api_v1_privacy_retention_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PrivacyRetentionOut'
/api/v1/privacy/customers/{public_ref}/export:
get:
tags:
- privacy
summary: Export Customer Data
operationId: export_customer_data_api_v1_privacy_customers__public_ref__export_get
parameters:
- name: public_ref
in: path
required: true
schema:
type: string
title: Public Ref
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/privacy/customers/{public_ref}/anonymize:
post:
tags:
- privacy
summary: Anonymize Customer
operationId: anonymize_customer_api_v1_privacy_customers__public_ref__anonymize_post
parameters:
- name: public_ref
in: path
required: true
schema:
type: string
title: Public Ref
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerAnonymizeRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerAnonymizeResult'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ApplyRecommendedStatusRequest:
@@ -2613,6 +2757,44 @@ components:
- display_name
- role
title: CurrentUser
CustomerAnonymizeRequest:
properties:
confirmation:
type: string
maxLength: 20
minLength: 1
title: Confirmation
reason:
type: string
maxLength: 500
minLength: 8
title: Reason
type: object
required:
- confirmation
- reason
title: CustomerAnonymizeRequest
CustomerAnonymizeResult:
properties:
public_ref:
type: string
title: Public Ref
anonymized_at:
type: string
format: date-time
title: Anonymized At
status:
type: string
enum:
- anonymized
- already_anonymized
title: Status
type: object
required:
- public_ref
- anonymized_at
- status
title: CustomerAnonymizeResult
CustomerOptionOut:
properties:
public_ref:
@@ -3554,6 +3736,20 @@ components:
- starts_at
- at_risk
title: NextBookingRisk
OidcStatusOut:
properties:
enabled:
type: boolean
title: Enabled
provider_name:
anyOf:
- type: string
- type: 'null'
title: Provider Name
type: object
required:
- enabled
title: OidcStatusOut
OperationsSummaryOut:
properties:
tenant:
@@ -3583,6 +3779,31 @@ components:
- email
- password
title: PasswordLoginRequest
PrivacyRetentionOut:
properties:
minimum_booking_retention_days:
type: integer
title: Minimum Booking Retention Days
audit_retention_days:
type: integer
title: Audit Retention Days
customers_total:
type: integer
title: Customers Total
customers_anonymized:
type: integer
title: Customers Anonymized
customers_eligible:
type: integer
title: Customers Eligible
type: object
required:
- minimum_booking_retention_days
- audit_retention_days
- customers_total
- customers_anonymized
- customers_eligible
title: PrivacyRetentionOut
ProcedureDocumentOut:
properties:
id: