- 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.
266 lines
6.0 KiB
YAML
266 lines
6.0 KiB
YAML
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
|