feat: modernize application — source, platform artifacts, CI/CD
All checks were successful
Build and Publish TechDocs / build-and-publish (push) Successful in 55s

- chore: ingest source code

58 files from https://github.com/gothinkster/node-express-realworld-example-app
- feat: add platform deployment artifacts
- feat: add CI/CD workflow automation
This commit is contained in:
2026-08-03 21:13:27 +00:00
parent b80de68988
commit c740ad4b8d
12 changed files with 762 additions and 331 deletions

350
openapi.yaml Normal file
View File

@@ -0,0 +1,350 @@
openapi: 3.0.3
info:
title: reno-realworld-5
description: Modernized reno-realworld-5 service
version: 1.0.0
servers:
- url: https://reno-realworld-5.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