feat: add platform deployment artifacts

This commit is contained in:
2026-03-13 16:01:40 +00:00
parent cae1f5b259
commit 5a03613090
8 changed files with 593 additions and 0 deletions

350
openapi.yaml Normal file
View File

@@ -0,0 +1,350 @@
openapi: 3.0.3
info:
title: test-siva-node-1
description: Modernized test-siva-node-1 service
version: 1.0.0
servers:
- url: https://test-siva-node-1.kyndemo.live
description: Production
- url: http://localhost:3000
description: Local development
paths:
/health:
get:
summary: Health check
operationId: getHealth
tags:
- System
responses:
'200':
description: Healthy
/api/articles:
get:
summary: GET /api/articles
operationId: getApi_articles
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
post:
summary: POST /api/articles
operationId: postApi_articles
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
requestBody:
required: true
content:
application/json:
schema:
type: object
/api/articles/feed:
get:
summary: GET /api/articles/feed
operationId: getApi_articles_feed
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
/api/articles/{slug}:
get:
summary: GET /api/articles/{slug}
operationId: getApi_articles_slug
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
put:
summary: PUT /api/articles/{slug}
operationId: putApi_articles_slug
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
delete:
summary: DELETE /api/articles/{slug}
operationId: deleteApi_articles_slug
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
/api/articles/{slug}/comments:
get:
summary: GET /api/articles/{slug}/comments
operationId: getApi_articles_slug_comments
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
post:
summary: POST /api/articles/{slug}/comments
operationId: postApi_articles_slug_comments
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
/api/articles/{slug}/comments/{id}:
delete:
summary: DELETE /api/articles/{slug}/comments/{id}
operationId: deleteApi_articles_slug_comments_id
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
/api/articles/{slug}/favorite:
post:
summary: POST /api/articles/{slug}/favorite
operationId: postApi_articles_slug_favorite
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
delete:
summary: DELETE /api/articles/{slug}/favorite
operationId: deleteApi_articles_slug_favorite
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: slug
in: path
required: true
schema:
type: string
/api/profiles/{username}:
get:
summary: GET /api/profiles/{username}
operationId: getApi_profiles_username
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: username
in: path
required: true
schema:
type: string
/api/profiles/{username}/follow:
post:
summary: POST /api/profiles/{username}/follow
operationId: postApi_profiles_username_follow
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: username
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
delete:
summary: DELETE /api/profiles/{username}/follow
operationId: deleteApi_profiles_username_follow
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
parameters:
- name: username
in: path
required: true
schema:
type: string
/api/tags:
get:
summary: GET /api/tags
operationId: getApi_tags
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
/api/user:
get:
summary: GET /api/user
operationId: getApi_user
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
put:
summary: PUT /api/user
operationId: putApi_user
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
requestBody:
required: true
content:
application/json:
schema:
type: object
/api/users:
post:
summary: POST /api/users
operationId: postApi_users
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
requestBody:
required: true
content:
application/json:
schema:
type: object
/api/users/login:
post:
summary: POST /api/users/login
operationId: postApi_users_login
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
requestBody:
required: true
content:
application/json:
schema:
type: object
/metrics:
get:
summary: Prometheus metrics
operationId: getMetrics
tags:
- System
responses:
'200':
description: text/plain; Prometheus exposition format