API v1
Los recursos v1 cuelgan directamente del cliente: client.projects, client.workItems, client.cycles, etc.
Cada llamada con ámbito de workspace recibe primero el slug del workspace, y luego el id del proyecto donde la
URL tiene uno. A diferencia de v2, aquí project es el UUID del proyecto, y las clases más antiguas llaman al
método de eliminación delete o del (sigue la lista de métodos que muestre tu editor).
import { PlaneClient } from "@hoyasumii/plane";
const client = new PlaneClient({ apiKey: "your-api-key" });
const projects = await client.projects.list("workspace-slug");
const project = await client.projects.create("workspace-slug", {
name: "My Project",
description: "A new project",
});
const item = await client.workItems.create("workspace-slug", project.id, { name: "First task" });
await client.workItems.comments.create("workspace-slug", project.id, item.id, { comment_html: "<p>Hello</p>" });
// Un work item por su clave humana, en todo el workspace.
const byKey = await client.workItems.retrieveByIdentifier("workspace-slug", "ENG-12");
Recursos
- Projects: gestión y organización de proyectos
- WorkItems: gestión de tareas, con CRUD completo
- WorkItemTypes: definición y gestión de tipos de work item personalizados
- WorkItemProperties: propiedades personalizadas de work items
- Labels: categorización y etiquetado de tareas
- States: gestión de estados del flujo de trabajo
- Users: gestión de usuarios y perfiles
- Roles: definiciones de roles de workspace y proyecto (solo lectura)
- Estimates: estimaciones de proyecto y puntos de estimación
- Modules: organización de funcionalidades y gestión de módulos
- Cycles: gestión de sprints e iteraciones
- Customers: gestión y operaciones de clientes
- Pages: gestión de páginas de workspace y de proyecto
- Links: enlaces y relaciones de work items
- Workspace: operaciones a nivel de workspace
- Epics: gestión y organización de epics
- Intake: gestión de formularios y solicitudes de admisión
- Stickies: gestión de notas adhesivas (stickies)
- Teamspaces: gestión de teamspaces
- Milestones: seguimiento y gestión de hitos
- Initiatives: gestión de iniciativas
- WorkspaceTemplates: plantillas de work item, proyecto y página a nivel de workspace
- WorkspaceWorkItemTypes: gestión de tipos de work item a nivel de workspace, con vínculos de propiedades
- WorkspaceWorkItemProperties: gestión de propiedades personalizadas a nivel de workspace, con opciones
- WorkspaceProjectLabels: gestión de labels de proyecto a nivel de workspace
- WorkspaceProjectStates: gestión de estados de proyecto a nivel de workspace
- WorkItemRelationDefinitions: definiciones de tipos de relación de work item personalizados
- Releases: gestión de releases con tags, labels, labels de item, changelog, comentarios, enlaces y work items
- Collections: carpetas que agrupan páginas del workspace, con gestión de miembros y páginas
- AgentRuns: orquestación de ejecuciones de agentes de IA y seguimiento de actividad
- Workflows: gestión de workflows de proyecto, con adjuntos de estado, transiciones, hooks de transición, actividades y aprobaciones de work items
- ProjectTemplates: gestión de plantillas de work item y de página por proyecto
- Features: gestión de funcionalidades de workspace y de proyecto
- WorkspaceStates: estados de work item (catálogo) a nivel de workspace, bajo la gobernanza del workspace — lectura en modo dual, escritura solo bajo gobernanza
- WorkspaceWorkflows: catálogo de workflows a nivel de workspace, bajo la gobernanza del workspace, con cadena (estados), transiciones, uso, actividades y hooks de transición
- WorkItemTypeGovernance: gobierna qué workflows puede usar un tipo de work item a nivel de workspace (modos any/constrained/required), con anclajes por proyecto y los endpoints de selección/vista previa de fallback del lado del proyecto
- Instance: configuración y metadatos de la instancia (versión, edición, proveedores de autenticación,
SMTP, límites de subida) desde
GET /api/instances/
Los sub-recursos cuelgan de su padre: workItems.comments, workItems.attachments, workItems.activities,
workItems.relations, workItems.workLogs, customers.properties, customers.requests,
teamspaces.members, teamspaces.projects, initiatives.labels, initiatives.projects,
initiatives.epics, agentRuns.activities, workItemProperties.options, workItemProperties.values, etc.
Información de la instancia
const info = await client.instance.retrieve();
console.log(info.instance.current_version, info.config.is_smtp_configured);
Descargar adjuntos
workItems.attachments.download resuelve la URL firmada de un adjunto y lo descarga, sin enviar la clave de
API al host de almacenamiento. Con maxBytes, un archivo más grande se rechaza con AttachmentTooLargeError:
de entrada cuando el almacenamiento anuncia su Content-Length, o en cuanto el cuerpo supera el límite.
import { AttachmentTooLargeError } from "@hoyasumii/plane";
try {
const { data, contentType } = await client.workItems.attachments.download("acme", projectId, itemId, "asset-1", {
maxBytes: 20 * 1024 * 1024,
});
console.log(contentType, data.length);
} catch (error) {
if (error instanceof AttachmentTooLargeError) console.log("too large");
else throw error;
}
Errores
Una petición v1 fallida lanza HttpError, con el código de estado, el cuerpo de la respuesta y las cabeceras
de la respuesta (en minúsculas, así que headers["retry-after"] en un 429). Consulta Errores
para ver toda la jerarquía.