Files
microdao-daarion/docs/contracts/clan-visibility-guard.openapi.yaml

165 lines
4.4 KiB
YAML

openapi: 3.1.0
info:
title: CLAN Visibility Guard API
version: 1.0.0
description: Visibility policy checks and sensitivity classification for CLAN/ZHOS.
servers:
- url: http://clan-visibility-guard:8112
tags:
- name: health
- name: visibility
paths:
/health:
get:
tags: [health]
summary: Service health check
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/HealthResponse"
/visibility/check_downgrade:
post:
tags: [visibility]
summary: Check if requested visibility downgrade is allowed
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/VisibilityCheckRequest"
responses:
"200":
description: Downgrade check result
content:
application/json:
schema:
$ref: "#/components/schemas/VisibilityCheckResponse"
"400":
description: Invalid visibility level
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/visibility/classify:
post:
tags: [visibility]
summary: Classify text sensitivity and recommend level
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ClassifyRequest"
responses:
"200":
description: Classification result
content:
application/json:
schema:
$ref: "#/components/schemas/ClassifyResponse"
/visibility/redact_for_level:
post:
tags: [visibility]
summary: Redact text for target visibility level
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/RedactRequest"
responses:
"200":
description: Redaction result
content:
application/json:
schema:
$ref: "#/components/schemas/RedactResponse"
"400":
description: Invalid visibility level
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
components:
schemas:
VisibilityLevel:
type: string
enum: [public, interclan, incircle, soulsafe, sacred]
HealthResponse:
type: object
required: [status, service]
properties:
status:
type: string
example: ok
service:
type: string
example: clan-visibility-guard
ErrorResponse:
type: object
required: [detail]
properties:
detail:
oneOf:
- type: string
- type: object
VisibilityCheckRequest:
type: object
required: [current_level, requested_level]
properties:
current_level:
$ref: "#/components/schemas/VisibilityLevel"
requested_level:
$ref: "#/components/schemas/VisibilityLevel"
VisibilityCheckResponse:
type: object
required: [allowed, reason, current_level, requested_level]
properties:
allowed:
type: boolean
reason:
type: string
enum: [ok, downgrade_requires_consent]
current_level:
$ref: "#/components/schemas/VisibilityLevel"
requested_level:
$ref: "#/components/schemas/VisibilityLevel"
ClassifyRequest:
type: object
required: [text]
properties:
text:
type: string
ClassifyResponse:
type: object
required: [recommended_level, sensitivity_flags]
properties:
recommended_level:
$ref: "#/components/schemas/VisibilityLevel"
sensitivity_flags:
type: array
items:
type: string
RedactRequest:
type: object
required: [text, target_level]
properties:
text:
type: string
target_level:
$ref: "#/components/schemas/VisibilityLevel"
RedactResponse:
type: object
required: [target_level, redacted_text, changed]
properties:
target_level:
$ref: "#/components/schemas/VisibilityLevel"
redacted_text:
type: string
changed:
type: boolean