test(project): achieve ≥70% package coverage across all internal packages
- store/sqlite: 75.4% (repos + db coverage) - host/sub2api: 80.8% (httptest mock server, pure function tests) - app: 74.2% (handler error paths, NewActionSet closures) - pack: 72.4% - provision: 75.2% - access: 77.3% - config: 94.7% (lookup mock tests) All tests pass: build, vet, race, coverage gates.
This commit is contained in:
265
docs/openapi.yaml
Normal file
265
docs/openapi.yaml
Normal file
@@ -0,0 +1,265 @@
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: sub2api-cn-relay-manager API
|
||||
version: 0.1.0
|
||||
servers:
|
||||
- url: /
|
||||
paths:
|
||||
/healthz:
|
||||
get:
|
||||
responses:
|
||||
'200':
|
||||
description: ok
|
||||
/api/packs/install:
|
||||
post:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/InstallPackRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: pack installed
|
||||
/api/import-batches/{batchID}:
|
||||
get:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: batchID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
format: int64
|
||||
responses:
|
||||
'200':
|
||||
description: batch detail
|
||||
/api/providers/{providerID}/status:
|
||||
get:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: providerID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- name: pack_id
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: provider runtime status
|
||||
/api/providers/{providerID}/resources:
|
||||
get:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: providerID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- name: pack_id
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: provider managed resources snapshot
|
||||
/api/providers/{providerID}/access/status:
|
||||
get:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: providerID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- name: pack_id
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: provider access closure status
|
||||
/api/providers/{providerID}/preview-import:
|
||||
post:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: providerID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PreviewProviderRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: preview summary
|
||||
/api/providers/{providerID}/import:
|
||||
post:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: providerID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ImportProviderRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: import summary
|
||||
/api/providers/{providerID}/rollback:
|
||||
post:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: providerID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RollbackProviderRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: rollback summary
|
||||
/api/providers/{providerID}/reconcile:
|
||||
post:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: providerID
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ReconcileProviderRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: reconcile summary
|
||||
components:
|
||||
securitySchemes:
|
||||
bearerAuth:
|
||||
type: http
|
||||
scheme: bearer
|
||||
schemas:
|
||||
InstallPackRequest:
|
||||
type: object
|
||||
required: [host_base_url, pack_path]
|
||||
properties:
|
||||
host_base_url:
|
||||
type: string
|
||||
host_api_key:
|
||||
type: string
|
||||
host_bearer_token:
|
||||
type: string
|
||||
pack_path:
|
||||
type: string
|
||||
PreviewProviderRequest:
|
||||
type: object
|
||||
required: [host_base_url, pack_path, keys]
|
||||
properties:
|
||||
host_base_url:
|
||||
type: string
|
||||
host_api_key:
|
||||
type: string
|
||||
host_bearer_token:
|
||||
type: string
|
||||
pack_path:
|
||||
type: string
|
||||
provider_id:
|
||||
type: string
|
||||
keys:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
mode:
|
||||
type: string
|
||||
ImportProviderRequest:
|
||||
type: object
|
||||
required: [host_base_url, pack_path, keys, access_api_key]
|
||||
properties:
|
||||
host_base_url:
|
||||
type: string
|
||||
host_api_key:
|
||||
type: string
|
||||
host_bearer_token:
|
||||
type: string
|
||||
pack_path:
|
||||
type: string
|
||||
provider_id:
|
||||
type: string
|
||||
keys:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
mode:
|
||||
type: string
|
||||
access_mode:
|
||||
type: string
|
||||
access_api_key:
|
||||
type: string
|
||||
subscription_users:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
subscription_days:
|
||||
type: integer
|
||||
RollbackProviderRequest:
|
||||
type: object
|
||||
required: [host_base_url, pack_path]
|
||||
properties:
|
||||
host_base_url:
|
||||
type: string
|
||||
host_api_key:
|
||||
type: string
|
||||
host_bearer_token:
|
||||
type: string
|
||||
pack_path:
|
||||
type: string
|
||||
provider_id:
|
||||
type: string
|
||||
ReconcileProviderRequest:
|
||||
type: object
|
||||
required: [host_base_url, pack_path]
|
||||
properties:
|
||||
host_base_url:
|
||||
type: string
|
||||
host_api_key:
|
||||
type: string
|
||||
host_bearer_token:
|
||||
type: string
|
||||
pack_path:
|
||||
type: string
|
||||
provider_id:
|
||||
type: string
|
||||
Reference in New Issue
Block a user