Changeset 0.38.1 (#234)

Co-authored-by: gobha <jasafpro@gmail.com>
Co-committed-by: gobha <jasafpro@gmail.com>
This commit is contained in:
2026-03-25 11:13:12 +00:00
committed by xcaliber
parent 10acadc9d0
commit 6943c91f40
30 changed files with 2410 additions and 10 deletions

View File

@@ -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: