Skip to content

REST API skills handlers #3651

@JAORMX

Description

@JAORMX

Description

Extend the basic REST API skill handlers (from #3744) with full OCI-backed operations. Adds request/response types, richer filtering, and delegates to the full SkillService from #3650.

Note: #3744 delivers the initial handlers with basic storage CRUD (list, get, install-record, uninstall). This task extends those handlers with OCI install, build, push, client/group filtering, and structured request/response types.

Dependencies: #3744 (basic API handlers), #3650 (full SkillService)
Blocks: #3652 (HTTP client), #3655 (ServerBuilder wiring + E2E)

Acceptance Criteria

  • pkg/api/v1/skills.go handlers extended with full SkillService operations (builds on Skills API handlers #3744's basic CRUD)
  • GET /api/v1beta/skills — adds client, group filtering (extends basic scope filter from Skills API handlers #3744)
  • POST /api/v1beta/skills/install — installs from OCI reference via full service (extends metadata-only record from Skills API handlers #3744)
  • POST /api/v1beta/skills/build — build OCI artifact (replaces "not implemented" from Skills API handlers #3744)
  • POST /api/v1beta/skills/push — push to registry (replaces "not implemented" from Skills API handlers #3744)
  • Request/response types in pkg/api/v1/skills_types.go
  • Error handling with httperr.WithCode() (404 not found, 409 conflict for unmanaged, 422 validation errors)
  • Unit tests for handlers, SPDX headers

Code Pointers

  • pkg/api/v1/skills.go — basic handlers from Skills API handlers #3744 (to be extended)
  • pkg/api/v1/groups.go — handler pattern reference
  • pkg/api/v1/workload_types.go — request/response type conventions
  • pkg/api/errors/handler.go — error handler wrapper

References

Metadata

Metadata

Assignees

Labels

apiItems related to the APIenhancementNew feature or requestskillsSkills lifecycle managementtoolhive-platformToolHive Platform team

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions