Changeset 0.38.1 (#234)
Co-authored-by: gobha <jasafpro@gmail.com> Co-committed-by: gobha <jasafpro@gmail.com>
This commit is contained in:
@@ -8820,6 +8820,213 @@ paths:
|
||||
$ref: '#/components/responses/Unauthorized'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
# ── Extension Connections (v0.38.1) ─────────────────────────────────
|
||||
/api/v1/connections:
|
||||
get:
|
||||
tags: [Extensions]
|
||||
summary: List personal connections
|
||||
security:
|
||||
- bearerAuth: []
|
||||
responses:
|
||||
'200':
|
||||
description: Personal connections (secrets masked)
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
data:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/ExtConnection'
|
||||
post:
|
||||
tags: [Extensions]
|
||||
summary: Create personal connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [type, package_id, name]
|
||||
properties:
|
||||
type: { type: string }
|
||||
package_id: { type: string }
|
||||
name: { type: string }
|
||||
config: { type: object }
|
||||
responses:
|
||||
'201':
|
||||
description: Created
|
||||
/api/v1/connections/{id}:
|
||||
get:
|
||||
tags: [Extensions]
|
||||
summary: Get personal connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ResourceID'
|
||||
responses:
|
||||
'200':
|
||||
description: Connection (secrets masked)
|
||||
put:
|
||||
tags: [Extensions]
|
||||
summary: Update personal connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ResourceID'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name: { type: string }
|
||||
config: { type: object }
|
||||
responses:
|
||||
'200':
|
||||
description: Updated
|
||||
delete:
|
||||
tags: [Extensions]
|
||||
summary: Delete personal connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ResourceID'
|
||||
responses:
|
||||
'200':
|
||||
description: Deleted
|
||||
/api/v1/connections/resolve:
|
||||
get:
|
||||
tags: [Extensions]
|
||||
summary: Resolve connection via scope chain (personal > team > global)
|
||||
description: |
|
||||
Returns a single connection with decrypted config, resolved via
|
||||
the scope chain. Requires `type` query parameter. Optional `name`
|
||||
for named resolution.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: type
|
||||
in: query
|
||||
required: true
|
||||
schema: { type: string }
|
||||
- name: name
|
||||
in: query
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200':
|
||||
description: Resolved connection with decrypted config
|
||||
'404':
|
||||
description: No matching connection found
|
||||
/api/v1/teams/{teamId}/connections:
|
||||
get:
|
||||
tags: [Teams, Extensions]
|
||||
summary: List team connections
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/TeamID'
|
||||
responses:
|
||||
'200':
|
||||
description: Team connections
|
||||
post:
|
||||
tags: [Teams, Extensions]
|
||||
summary: Create team connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/TeamID'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [type, package_id, name]
|
||||
properties:
|
||||
type: { type: string }
|
||||
package_id: { type: string }
|
||||
name: { type: string }
|
||||
config: { type: object }
|
||||
responses:
|
||||
'201':
|
||||
description: Created
|
||||
/api/v1/teams/{teamId}/connections/{id}:
|
||||
put:
|
||||
tags: [Teams, Extensions]
|
||||
summary: Update team connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/TeamID'
|
||||
- $ref: '#/components/parameters/ResourceID'
|
||||
responses:
|
||||
'200':
|
||||
description: Updated
|
||||
delete:
|
||||
tags: [Teams, Extensions]
|
||||
summary: Delete team connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/TeamID'
|
||||
- $ref: '#/components/parameters/ResourceID'
|
||||
responses:
|
||||
'200':
|
||||
description: Deleted
|
||||
/api/v1/admin/connections:
|
||||
get:
|
||||
tags: [Admin, Extensions]
|
||||
summary: List global connections
|
||||
security:
|
||||
- bearerAuth: []
|
||||
responses:
|
||||
'200':
|
||||
description: Global connections
|
||||
post:
|
||||
tags: [Admin, Extensions]
|
||||
summary: Create global connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [type, package_id, name]
|
||||
properties:
|
||||
type: { type: string }
|
||||
package_id: { type: string }
|
||||
name: { type: string }
|
||||
config: { type: object }
|
||||
responses:
|
||||
'201':
|
||||
description: Created
|
||||
/api/v1/admin/connections/{id}:
|
||||
put:
|
||||
tags: [Admin, Extensions]
|
||||
summary: Update global connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ResourceID'
|
||||
responses:
|
||||
'200':
|
||||
description: Updated
|
||||
delete:
|
||||
tags: [Admin, Extensions]
|
||||
summary: Delete global connection
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ResourceID'
|
||||
responses:
|
||||
'200':
|
||||
description: Deleted
|
||||
/api/v1/admin/workflows/{id}/export:
|
||||
get:
|
||||
tags:
|
||||
@@ -12059,6 +12266,36 @@ components:
|
||||
updated_at:
|
||||
type: string
|
||||
format: date-time
|
||||
ExtConnection:
|
||||
type: object
|
||||
description: "v0.38.1: Extension connection credential (secrets masked in list responses)"
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
format: uuid
|
||||
type:
|
||||
type: string
|
||||
description: Connection type identifier (e.g. "gitea", "github")
|
||||
package_id:
|
||||
type: string
|
||||
description: Declaring package ID (UI attribution)
|
||||
scope:
|
||||
type: string
|
||||
enum: [global, team, personal]
|
||||
name:
|
||||
type: string
|
||||
description: User label (e.g. "Work Gitea")
|
||||
is_active:
|
||||
type: boolean
|
||||
has_config:
|
||||
type: boolean
|
||||
description: Whether config fields are set (secrets never exposed in list)
|
||||
created_at:
|
||||
type: string
|
||||
format: date-time
|
||||
updated_at:
|
||||
type: string
|
||||
format: date-time
|
||||
Extension:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
Reference in New Issue
Block a user