umbraco-entity-actions

Umbraco Entity Actions

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "umbraco-entity-actions" with this command: npx skills add umbraco/umbraco-cms-backoffice-skills/umbraco-umbraco-cms-backoffice-skills-umbraco-entity-actions

Umbraco Entity Actions

What is it?

Entity Actions perform an action on a specific item in Umbraco. They provide a generic extension point for secondary functionality associated with entity types like documents, media, or custom entities. These actions appear in context menus throughout the backoffice and can be controlled by user permissions.

Documentation

Always fetch the latest docs before implementing:

Reference Examples

The Umbraco source includes working examples:

Permission Manipulation: /Umbraco-CMS/src/Umbraco.Web.UI.Client/examples/manipulate-document-property-value-permissions/

This example demonstrates entity actions that manipulate document property permissions.

User Permissions: /Umbraco-CMS/src/Umbraco.Web.UI.Client/examples/user-permission/

This example shows entity actions integrated with user permission controls.

Related Foundation Skills

Repository Pattern: When implementing actions that need data operations

  • Reference skill: umbraco-repository-pattern

Context API: When accessing workspace or other contexts from actions

  • Reference skill: umbraco-context-api

Conditions: When controlling action visibility based on permissions or state

  • Reference skill: umbraco-conditions

Workflow

  • Fetch docs - Use WebFetch on the URLs above

  • Ask questions - What entity type? What action to perform? Permissions needed?

  • Generate files - Create manifest + action class based on latest docs

  • Explain - Show what was created and how to test

Minimal Examples

Manifest (manifests.ts)

import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { MyEntityAction } from './my-entity-action.js';

const manifest: ManifestEntityAction = { type: 'entityAction', alias: 'My.EntityAction', name: 'My Entity Action', weight: 10, api: MyEntityAction, forEntityTypes: ['document'], meta: { icon: 'icon-alarm-clock', label: 'My Action', }, };

export const manifests = [manifest];

Action Implementation (my-entity-action.ts)

import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';

export class MyEntityAction extends UmbEntityActionBase<never> { constructor(host: UmbControllerHost, args: { unique: string; entityType: string }) { super(host, args); }

async execute() { // this.unique contains the entity's unique identifier console.log('Executing action on:', this.unique);

// Perform your action here
alert(`Action executed on ${this.unique}`);

} }

Action with Repository

import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';

export class MyEntityAction extends UmbEntityActionBase<MyRepository> { constructor(host: UmbControllerHost, args: { unique: string; entityType: string; repositoryAlias: string }) { super(host, args); }

async execute() { // Access repository via this.repository await this.repository?.myCustomMethod(this.unique); } }

Link-based Action (using getHref)

export class MyLinkAction extends UmbEntityActionBase<never> { async getHref() { return /some/path/${this.unique}; }

async execute() { // Not needed when using getHref } }

Common Entity Types

  • document

  • Content nodes

  • media

  • Media items

  • member

  • Members

  • data-type

  • Data types

  • document-type

  • Document types

  • media-type

  • Media types

That's it! Always fetch fresh docs, keep examples minimal, generate complete working code.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

umbraco-backoffice

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-dashboard

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-quickstart

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-extension-template

No summary provided by upstream source.

Repository SourceNeeds Review