backend-api

Extend the Bootc extension RPC contract for Podman Desktop backend workflows.

477|33|Updated Dec 19, 2023
One-click install
npx skills add https://github.com/podman-desktop/extension-bootc --skill backend-api-podman-desktop
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: backend-api
Source: https://github.com/podman-desktop/extension-bootc/tree/main/.agents/skills/backend-api
Command: npx skills add https://github.com/podman-desktop/extension-bootc --skill backend-api-podman-desktop

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you implement and extend the Bootc extension backend API so that new functionality is correctly exposed over the RPC contract and works reliably with the Podman Desktop runtime.

Core Features & Use Cases

  • Typed RPC method development: Add new abstract methods to the shared BootcAPI contract and implement them in the backend API implementation.
  • Backend→frontend messaging patterns: Send update events to the frontend using message IDs defined in the shared Messages module.
  • Operational safety for long tasks: Handle RPC timeouts by routing specific channels into the no-timeout list for long-running operations.

Quick Start

Use the backend-api skill to add a new BootcAPI method by editing packages/shared/src/BootcAPI.ts, implementing it in packages/backend/src/api-impl.ts, and then verifying any required message updates against packages/shared/src/messages/Messages.ts.

Frequently Asked Questions about backend-api

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new RPC method to the Podman Desktop Bootc backend?

To add a new RPC method, define the abstract method in the shared BootcAPI contract and implement it in the backend API implementation, ensuring both sides align.

How does frontend messaging work with the Bootc extension backend?

Frontend messaging works by dispatching update events from the backend using predefined message IDs located in the shared Messages module.

How do I handle RPC timeouts for long-running container operations?

Handle long-running container operations by routing their specific RPC channels into the no-timeout list using NoTimeoutChannels.ts to prevent premature termination.

When do I need to update the shared BootcAPI contract?

You need to update the shared BootcAPI contract whenever adding new RPC methods, orchestrating container and image operations, managing VM lifecycles, or implementing frontend-triggered backend workflows.

Does the Bootc backend API require TypeScript?

Yes, the Bootc backend API requires TypeScript to define typed abstract methods in the shared contract and implement them correctly in the backend API implementation.