umbraco-global-context

Umbraco Global Context

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-global-context" with this command: npx skills add umbraco/umbraco-cms-backoffice-skills/umbraco-umbraco-cms-backoffice-skills-umbraco-global-context

Umbraco Global Context

What is it?

Global contexts create a shared, type-safe layer of data and functions accessible throughout the backoffice. Unlike scoped contexts (like Workspace Contexts), global contexts persist for the entire backoffice session. Use them for sharing state between extensions, managing centralized services, or coordinating communication. Note: Prefer more specific context types when possible - Umbraco uses global contexts sparingly.

Documentation

Always fetch the latest docs before implementing:

Related Foundation Skills

Context API: For understanding context consumption patterns

  • Reference skill: umbraco-context-api

State Management: For reactive state within contexts

  • Reference skill: umbraco-state-management

Workflow

  • Fetch docs - Use WebFetch on the URLs above

  • Ask questions - What state to share? What services needed? Could a workspace context work instead?

  • Generate files - Create context token + implementation + manifest based on latest docs

  • Explain - Show what was created and how to consume the context

Minimal Examples

Context Token (my-global-context.token.ts)

import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { MyGlobalContext } from './my-global-context.js';

export const MY_GLOBAL_CONTEXT = new UmbContextToken<MyGlobalContext>( 'My.GlobalContext' );

Context Implementation (my-global-context.ts)

import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { MY_GLOBAL_CONTEXT } from './my-global-context.token.js';

export class MyGlobalContext extends UmbContextBase { #currentValue = '';

constructor(host: UmbControllerHost) { super(host, MY_GLOBAL_CONTEXT); }

getValue(): string { return this.#currentValue; }

setValue(value: string): void { this.#currentValue = value; } }

Manifest (umbraco-package.json)

{ "name": "My Global Context Package", "extensions": [ { "type": "globalContext", "alias": "My.GlobalContext", "name": "My Global Context", "js": "/App_Plugins/MyPackage/my-global-context.js" } ] }

Consuming the Context

import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; import { MY_GLOBAL_CONTEXT } from './my-global-context.token.js';

class MyElement extends UmbElementMixin(LitElement) { #myContext?: MyGlobalContext;

constructor() { super(); this.consumeContext(MY_GLOBAL_CONTEXT, (instance) => { this.#myContext = instance; }); } }

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