Options
All
  • Public
  • Public/Protected
  • All
Menu

The term capability refers to the Intention API of the SCION Microfrontend Platform.

A capability represents some functionality of a micro application that is available to qualified micro applications through the Intention API. A micro application declares its capabilities in its manifest. Qualified micro applications can then browse the capabilities, or interact with provided capabilities via intent.

A capability is formulated in an abstract way consisting of a type and optionally a qualifier. The type categorizes a capability in terms of its functional semantics. A capability may also define a qualifier to differentiate different capabilities of the same type.

A capability can have private or public visibility. If private, which is by default, the capability is not visible to other micro applications; thus, it can only be invoked or browsed by the providing micro application itself.

A capability can specify parameters which the intent issuer can/must pass along with the intent. Parameters are part of the contract between the intent publisher and the capability provider. They do not affect the intent routing, unlike the qualifier.

Metadata can be associated with a capability in its properties section. For example, if providing a microfrontend, the URL to the microfrontend can be added as property, or if the capability contributes an item to a menu, its label to be displayed.

Hierarchy

Index

Properties

description?: string

A short description to explain the capability.

optionalParams?: string[]

Specifies parameters which the intent issuer optionally can pass along with the intent. Parameters are part of the contract between the intent publisher and the capability provider. They do not affect the intent routing, unlike the qualifier.

deprecated

This API will be removed in a future release. Instead, declare parameters via Capability.params property.

params?: ParamDefinition[]

Specifies parameters which the intent issuer can/must pass along with the intent.

Parameters are part of the contract between the intent publisher and the capability provider. They do not affect the intent routing, unlike the qualifier.

private?: boolean

Controls if this capability is visible to other micro applications. If private, which is by default, the capability is not visible to other micro applications; thus, it can only be invoked or looked up by the providing micro application.

properties?: {}

Arbitrary metadata to be associated with the capability.

Type declaration

  • [key: string]: any
qualifier?: Qualifier

The qualifier is a dictionary of arbitrary key-value pairs to differentiate capabilities of the same type and is like an abstract description of the capability. It should include enough information to uniquely identify the capability.

Intents must exactly match the qualifier of the capability, if any. The capability qualifier allows using wildcards (such as * or ?) to match multiple intents simultaneously.

  • Asterisk wildcard character (*): Intents must contain such a property, but any value is allowed (except null or undefined). Use it like this: {property: '*'}
  • **Optional wildcard character (?):**
    Intents can contain such a property. Use it like this: {property: '?'}.
requiredParams?: string[]

Specifies parameters which the intent issuer must pass along with the intent. Parameters are part of the contract between the intent publisher and the capability provider. They do not affect the intent routing, unlike the qualifier.

deprecated

This API will be removed in a future release. Instead, declare parameters via Capability.params property.

type: string

Categorizes the capability in terms of its functional semantics (e.g., microfrontend if providing a microfrontend). It can be an arbitrary string literal and has no meaning to the platform.

Generated using TypeDoc