Initial import with GitLab CI/CD and registry deploy flow

This commit is contained in:
Yera All
2026-04-02 17:05:45 +05:00
commit 5374c202d9
338 changed files with 81297 additions and 0 deletions
@@ -0,0 +1,60 @@
openapi: 3.0.3
info:
title: Stage 1 Contracts (Auth, Users, Health, Audit)
version: 1.0.0
paths:
/health:
get:
summary: Health check
responses:
'200':
description: OK
/auth/login:
post:
summary: Login
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [username, password]
properties:
username: { type: string }
password: { type: string }
responses:
'200':
description: Token response
/users:
get:
summary: List users
responses:
'200':
description: Users list
post:
summary: Create user
responses:
'200':
description: User created
/users/{user_id}:
get:
summary: Get user by id
parameters:
- in: path
name: user_id
required: true
schema: { type: string }
responses:
'200':
description: User data
/audit/events:
get:
summary: List audit events
responses:
'200':
description: Audit list
post:
summary: Create audit event
responses:
'200':
description: Event created
@@ -0,0 +1,68 @@
openapi: 3.0.3
info:
title: Stage 2 Contracts (Operator Core)
version: 1.0.0
paths:
/customers:
get: { summary: Search customers, responses: { '200': { description: OK } } }
post: { summary: Create customer, responses: { '200': { description: OK } } }
/customers/{customer_id}:
get:
summary: Get customer
parameters:
- in: path
name: customer_id
required: true
schema: { type: string }
responses:
'200': { description: OK }
/interactions:
get: { summary: List interactions, responses: { '200': { description: OK } } }
post: { summary: Create interaction, responses: { '200': { description: OK } } }
/interactions/{interaction_id}/assign:
patch:
summary: Assign interaction
parameters:
- in: path
name: interaction_id
required: true
schema: { type: string }
responses:
'200': { description: OK }
/interactions/{interaction_id}/status:
patch:
summary: Update interaction status
parameters:
- in: path
name: interaction_id
required: true
schema: { type: string }
responses:
'200': { description: OK }
/interactions/{interaction_id}/escalate:
post:
summary: Escalate interaction
parameters:
- in: path
name: interaction_id
required: true
schema: { type: string }
responses:
'200': { description: OK }
/queues:
get: { summary: List queues, responses: { '200': { description: OK } } }
post: { summary: Create queue, responses: { '200': { description: OK } } }
/queues/{queue_id}/rules:
patch:
summary: Update queue rules
parameters:
- in: path
name: queue_id
required: true
schema: { type: string }
responses:
'200': { description: OK }
/integrations/voice/events:
post: { summary: Ingest Asterisk event, responses: { '200': { description: OK } } }
/integrations/telegram/webhook:
post: { summary: Ingest Telegram update, responses: { '200': { description: OK } } }
@@ -0,0 +1,54 @@
openapi: 3.0.3
info:
title: Stage 3 Contracts (Supervisor, Reporting, KB-lite)
version: 1.0.0
paths:
/knowledge/categories:
get: { summary: List categories, responses: { '200': { description: OK } } }
post: { summary: Create category, responses: { '200': { description: OK } } }
/knowledge/articles:
post: { summary: Create localized article, responses: { '200': { description: OK } } }
/knowledge/articles/{article_id}:
get:
summary: Get article
parameters:
- in: path
name: article_id
required: true
schema: { type: string }
responses:
'200': { description: OK }
patch:
summary: Update article
parameters:
- in: path
name: article_id
required: true
schema: { type: string }
responses:
'200': { description: OK }
/knowledge/search:
get:
summary: Search localized articles
parameters:
- in: query
name: q
schema: { type: string }
- in: query
name: language
schema: { type: string, enum: [ru, kz] }
- in: query
name: article_group_id
schema: { type: string }
responses:
'200': { description: OK }
/reports/events:
post: { summary: Ingest KPI event, responses: { '200': { description: OK } } }
/reports/kpi:
get: { summary: KPI snapshot, responses: { '200': { description: OK } } }
/reports/export:
get: { summary: Export CSV, responses: { '200': { description: OK } } }
/supervisor/agent-states:
post: { summary: Update agent state, responses: { '200': { description: OK } } }
/supervisor/realtime:
get: { summary: Realtime supervisor view, responses: { '200': { description: OK } } }