Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
217 changes: 215 additions & 2 deletions openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -2372,6 +2372,39 @@
]
}
},
"/api/v1/admin/storage-backends": {
"get": {
"tags": [
"admin"
],
"summary": "List available storage backends.",
"description": "Returns the names of all configured and available storage backends.\nRequires admin privileges.",
"operationId": "list_storage_backends",
"responses": {
"200": {
"description": "Available storage backends",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"403": {
"description": "Admin privileges required"
}
},
"security": [
{
"bearer_auth": []
}
]
}
},
"/api/v1/admin/storage-gc": {
"post": {
"tags": [
Expand Down Expand Up @@ -11963,6 +11996,97 @@
]
}
},
"/api/v1/repositories/{key}/test-upstream": {
"post": {
"tags": [
"repositories"
],
"summary": "Test connectivity to the upstream URL of a remote repository",
"operationId": "test_upstream",
"parameters": [
{
"name": "key",
"in": "path",
"description": "Repository key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Upstream reachable"
},
"400": {
"description": "Repository is not remote or has no upstream URL"
},
"401": {
"description": "Authentication required"
},
"404": {
"description": "Repository not found"
},
"502": {
"description": "Upstream unreachable"
}
},
"security": [
{
"bearer_auth": []
}
]
}
},
"/api/v1/repositories/{key}/upstream-auth": {
"put": {
"tags": [
"repositories"
],
"summary": "Set or remove upstream auth for a remote repository",
"operationId": "set_upstream_auth",
"parameters": [
{
"name": "key",
"in": "path",
"description": "Repository key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpstreamAuthRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Upstream auth updated"
},
"400": {
"description": "Invalid auth type or missing fields"
},
"401": {
"description": "Authentication required"
},
"404": {
"description": "Repository not found"
}
},
"security": [
{
"bearer_auth": []
}
]
}
},
"/api/v1/sbom": {
"get": {
"tags": [
Expand Down Expand Up @@ -19258,6 +19382,16 @@
"key": {
"type": "string"
},
"member_repos": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/components/schemas/CreateVirtualMemberInput"
},
"description": "Member repositories to add when creating a virtual repository.\nEach entry specifies a repository key and optional priority."
},
"name": {
"type": "string"
},
Expand All @@ -19271,11 +19405,39 @@
"repo_type": {
"type": "string"
},
"storage_backend": {
"type": [
"string",
"null"
],
"description": "Override the default storage backend for this repository.\nWhen omitted, the server's configured default is used.\nNon-admin users may only use the default backend."
},
"upstream_auth_type": {
"type": [
"string",
"null"
],
"description": "Upstream auth type: \"basic\" or \"bearer\". Only valid for remote repos."
},
"upstream_password": {
"type": [
"string",
"null"
],
"description": "Password (basic) or token (bearer). Write-only, never returned in responses."
},
"upstream_url": {
"type": [
"string",
"null"
]
},
"upstream_username": {
"type": [
"string",
"null"
],
"description": "Username for basic auth."
}
}
},
Expand Down Expand Up @@ -19608,6 +19770,21 @@
}
}
},
"CreateVirtualMemberInput": {
"type": "object",
"required": [
"repo_key"
],
"properties": {
"priority": {
"type": "integer",
"format": "int32"
},
"repo_key": {
"type": "string"
}
}
},
"CreateWebhookRequest": {
"type": "object",
"required": [
Expand Down Expand Up @@ -24967,6 +25144,7 @@
"repo_type",
"is_public",
"storage_used_bytes",
"upstream_auth_configured",
"created_at",
"updated_at"
],
Expand Down Expand Up @@ -25014,6 +25192,15 @@
"updated_at": {
"type": "string",
"format": "date-time"
},
"upstream_auth_configured": {
"type": "boolean"
},
"upstream_auth_type": {
"type": [
"string",
"null"
]
}
}
},
Expand Down Expand Up @@ -28138,6 +28325,32 @@
}
}
},
"UpstreamAuthRequest": {
"type": "object",
"required": [
"auth_type"
],
"properties": {
"auth_type": {
"type": "string",
"description": "Auth type: \"basic\", \"bearer\", or \"none\" to remove."
},
"password": {
"type": [
"string",
"null"
],
"description": "Password (basic) or token (bearer). Write-only, never returned."
},
"username": {
"type": [
"string",
"null"
],
"description": "Username for basic auth."
}
}
},
"UserListResponse": {
"type": "object",
"required": [
Expand Down Expand Up @@ -28248,10 +28461,10 @@
"VirtualMembersListResponse": {
"type": "object",
"required": [
"items"
"members"
],
"properties": {
"items": {
"members": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VirtualMemberResponse"
Expand Down
Loading