docs: add node1 runbooks, consolidation artifacts, and maintenance scripts
This commit is contained in:
308
docs/contracts/clan-consent-adapter.openapi.yaml
Normal file
308
docs/contracts/clan-consent-adapter.openapi.yaml
Normal file
@@ -0,0 +1,308 @@
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: CLAN Consent Adapter API
|
||||
version: 1.0.0
|
||||
description: API for Consent Events and Testimony Drafts for CLAN/ZHOS flow.
|
||||
servers:
|
||||
- url: http://clan-consent-adapter:8111
|
||||
security:
|
||||
- BearerAuth: []
|
||||
tags:
|
||||
- name: health
|
||||
- name: consent
|
||||
- name: testimony
|
||||
paths:
|
||||
/health:
|
||||
get:
|
||||
tags: [health]
|
||||
summary: Service health check
|
||||
security: []
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/HealthResponse"
|
||||
/consent/events:
|
||||
post:
|
||||
tags: [consent]
|
||||
summary: Create consent event
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ConsentCreate"
|
||||
responses:
|
||||
"200":
|
||||
description: Consent event created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ConsentCreateResponse"
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
/consent/events/{event_id}:
|
||||
get:
|
||||
tags: [consent]
|
||||
summary: Get consent event by id
|
||||
parameters:
|
||||
- name: event_id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: Consent event
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ConsentEvent"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"404":
|
||||
description: Not found
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ErrorResponse"
|
||||
/testimony/drafts:
|
||||
post:
|
||||
tags: [testimony]
|
||||
summary: Create testimony draft
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/TestimonyDraftCreate"
|
||||
responses:
|
||||
"200":
|
||||
description: Testimony draft created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/TestimonyCreateResponse"
|
||||
"400":
|
||||
$ref: "#/components/responses/BadRequest"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
/testimony/drafts/{testimony_id}:
|
||||
get:
|
||||
tags: [testimony]
|
||||
summary: Get testimony draft by id
|
||||
parameters:
|
||||
- name: testimony_id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: Testimony draft
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/TestimonyDraft"
|
||||
"401":
|
||||
$ref: "#/components/responses/Unauthorized"
|
||||
"404":
|
||||
description: Not found
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ErrorResponse"
|
||||
|
||||
components:
|
||||
securitySchemes:
|
||||
BearerAuth:
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: API key
|
||||
responses:
|
||||
BadRequest:
|
||||
description: Invalid input
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ErrorResponse"
|
||||
Unauthorized:
|
||||
description: Unauthorized
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ErrorResponse"
|
||||
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-consent-adapter
|
||||
ErrorResponse:
|
||||
type: object
|
||||
required: [detail]
|
||||
properties:
|
||||
detail:
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: object
|
||||
ConsentCreate:
|
||||
type: object
|
||||
required: [circle, subject]
|
||||
properties:
|
||||
circle:
|
||||
type: string
|
||||
subject:
|
||||
type: string
|
||||
description: decision/testimony/bridge/rights
|
||||
method:
|
||||
type: string
|
||||
default: live_presence
|
||||
signers:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
default: []
|
||||
caveats:
|
||||
type: string
|
||||
nullable: true
|
||||
visibility_level:
|
||||
$ref: "#/components/schemas/VisibilityLevel"
|
||||
provenance:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
ConsentCreateResponse:
|
||||
type: object
|
||||
required: [consent_event_id, status, visibility_level]
|
||||
properties:
|
||||
consent_event_id:
|
||||
type: string
|
||||
format: uuid
|
||||
status:
|
||||
type: string
|
||||
example: confirmed
|
||||
visibility_level:
|
||||
$ref: "#/components/schemas/VisibilityLevel"
|
||||
ConsentEvent:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- circle
|
||||
- subject
|
||||
- method
|
||||
- signers
|
||||
- visibility_level
|
||||
- provenance
|
||||
- created_at
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
format: uuid
|
||||
circle:
|
||||
type: string
|
||||
subject:
|
||||
type: string
|
||||
method:
|
||||
type: string
|
||||
signers:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
caveats:
|
||||
type: string
|
||||
nullable: true
|
||||
visibility_level:
|
||||
$ref: "#/components/schemas/VisibilityLevel"
|
||||
provenance:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
created_at:
|
||||
type: string
|
||||
format: date-time
|
||||
TestimonyDraftCreate:
|
||||
type: object
|
||||
required: [title, circle]
|
||||
properties:
|
||||
title:
|
||||
type: string
|
||||
circle:
|
||||
type: string
|
||||
visibility_level:
|
||||
$ref: "#/components/schemas/VisibilityLevel"
|
||||
content:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
status:
|
||||
type: string
|
||||
enum: [draft, needs_confirmation, confirmed]
|
||||
default: draft
|
||||
provenance:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
consent_event_id:
|
||||
type: string
|
||||
nullable: true
|
||||
TestimonyCreateResponse:
|
||||
type: object
|
||||
required: [testimony_id, status, visibility_level]
|
||||
properties:
|
||||
testimony_id:
|
||||
type: string
|
||||
format: uuid
|
||||
status:
|
||||
type: string
|
||||
enum: [draft, needs_confirmation, confirmed]
|
||||
visibility_level:
|
||||
$ref: "#/components/schemas/VisibilityLevel"
|
||||
TestimonyDraft:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- title
|
||||
- circle
|
||||
- visibility_level
|
||||
- content
|
||||
- status
|
||||
- provenance
|
||||
- created_at
|
||||
- updated_at
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
format: uuid
|
||||
title:
|
||||
type: string
|
||||
circle:
|
||||
type: string
|
||||
visibility_level:
|
||||
$ref: "#/components/schemas/VisibilityLevel"
|
||||
content:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
status:
|
||||
type: string
|
||||
enum: [draft, needs_confirmation, confirmed]
|
||||
provenance:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
consent_event_id:
|
||||
type: string
|
||||
nullable: true
|
||||
created_at:
|
||||
type: string
|
||||
format: date-time
|
||||
updated_at:
|
||||
type: string
|
||||
format: date-time
|
||||
Reference in New Issue
Block a user