Skip to content

workspace sdk components

Andre Lafleur edited this page Mar 21, 2026 · 6 revisions

About components

Components are the extension points of the Workspace SDK. They allow modules to add functionality to Security Center client applications such as Security Desk and Config Tool. Each component type serves a specific purpose: rendering content in tiles, adding widgets to dashboards, extending maps, encoding credentials, and more.

Not all component types are available in both applications. Dashboard widgets require Security Desk. Other component types such as map components, credential components, and image extractors are available in both applications.

Shared components are a separate mechanism from Workspace.Components. Use Workspace.SharedComponents and Monitor.SharedComponents to consume built-in shared UI components. For details, see About shared components.

Component base class

All components inherit from a specialized abstract class such as ContentBuilder, TileWidgetBuilder, or DashboardWidgetBuilder. These classes inherit from the Component base class, which provides the shared registration and initialization infrastructure.

Do not inherit from Component directly. Each specialized component class seals the Type property to return a predefined identifier that the system uses to route the component to the correct consumer. Inheriting from Component directly produces a component that the system does not know how to use.

Component members

Member Kind Description
Name Property (abstract) Display name for the component.
UniqueId Property (abstract) Unique identifier for this component instance. Each component must return a distinct GUID.
Type Property (abstract) Component type identifier. Sealed by each specialized class. Do not override this yourself.
IsAvailable Property Whether the component is currently available. Defaults to false. Set to true after initialization.
Workspace Property The workspace instance. Available after Initialize(Workspace) is called.
Initialize(Workspace) Method Initializes the component with the workspace. Call this before registering the component.
Initialize() Method (protected virtual) Override to perform setup after Workspace is available. Called by Initialize(Workspace).

Registering components

Register and unregister components through Workspace.Components:

public class SampleModule : Module
{
    private MyContentBuilder m_component;

    public override void Load()
    {
        m_component = new MyContentBuilder();
        m_component.Initialize(Workspace);
        Workspace.Components.Register(m_component);
    }

    public override void Unload()
    {
        Workspace.Components.Unregister(m_component);
    }
}

ComponentCollection members

Member Description
Register(Component) Register a component with the workspace.
Unregister(Component) Remove a component from the workspace.
this[Guid type] Get all registered components of the specified type as a ReadOnlyCollection<Component>.
this[Guid type, Guid id] Get a specific component by type and unique identifier.
Count The number of registered components.

Component types

The SDK provides the following component types. Each type has a dedicated abstract class to inherit from.

Tile and content components

These components extend Security Desk's tile-based monitoring interface.

Component Base class Description
Content builder ContentBuilder Controls what appears inside tiles. Handles entity drag-and-drop, events, and alarms by producing ContentGroup and Content objects. The system calls builders in priority order and uses the first non-null result.
Tile widget TileWidgetBuilder Adds collapsible panels to the right-side controls area when a tile is selected. Displays supplementary information or controls related to the tile content.
Tile view TileViewBuilder Renders overlays and custom visualizations directly inside the tile area. Supports placement over video, below the toolbar, or as full-tile content.
Tile properties TilePropertiesBuilder Adds configuration tabs to the bottom of the right-side controls panel alongside the built-in "General" tab.

For content builder implementation details, see About content builders.

For tile widget, tile view, and tile properties implementation details, see Creating tile extensions.

Dashboard components

Component Base class Description
Dashboard widget DashboardWidgetBuilder Adds widgets to Security Desk dashboards. The builder creates DashboardWidget instances that provide visual content and configuration options.

For dashboard widget implementation details, see Creating dashboard widgets.

Map components

These components extend Security Center's mapping capabilities. Map components are available in both Security Desk and Config Tool.

Component Base class Description
Map panel MapPanelBuilder Adds panels to the map interface.
Map searcher MapSearcher Implements map search. Override Search(MapSearcherContext) to return IList<MapSearcherResult> with matching locations.
Map importer MapImporter Imports external map data. Returns MapImporterResult.
Map object provider MapObjectProvider Supplies custom objects for display on maps.
Map object view MapObjectViewBuilder Builds visual representations of custom map objects.
Map layer MapLayerBuilder Adds custom overlay layers to maps.
Map designer tool MapDesignerTool Adds tools to the map designer in Config Tool.
Map designer widget MapDesignerWidget Adds widgets to the map designer in Config Tool.

For map component implementation details, see Extending maps.

Credential components

These components extend cardholder and credential management. They are available in both Security Desk and Config Tool.

Component Base class Description
Badge printer BadgePrinter Implements badge printing through IBadgeService.
Credential encoder CredentialEncoder Encodes credential data to external hardware. Override Encode(CredentialEncoderData).
Credential reader CredentialReader Reads credential data from external hardware. CardholderCredentialReader provides a specialized variant for cardholder workflows.
Cardholder fields extractor CardholderFieldsExtractor Imports cardholder data from external sources such as HR systems, vCard files, or custom integrations. Extracts fields like name, email, photo, credentials, and group assignments.

For badge printer implementation details, see About badge printers.

For credential encoder implementation details, see About credential encoders.

For credential reader implementation details, see About credential readers.

For cardholder fields extractor implementation details, see About cardholder fields extractors.

Image and media components

Component Base class Description
Image extractor ImageExtractor Captures images from external sources for cardholder photos, custom fields, and entity thumbnails. Available in both Security Desk and Config Tool.
Timeline provider TimelineProviderBuilder Provides data for timeline visualizations. The TimelineProvider class inherits from DependencyObject, not Component. Register providers through TimelineProviderBuilder.

For image extractor implementation details, see About image extractors.

For timeline provider implementation details, see About timeline providers.

Other components

Component Base class Description
Pinnable content builder PinnableContentBuilder Creates visual content for pinnable popups (floating panels) in monitor windows.
Logon provider LogonProvider Customizes sign-in behavior for Security Center client applications.
Custom action CustomActionBuilder Adds custom actions to the event-to-action system. The builder creates CustomActionView instances for configuring the action.
Incident IncidentBuilder Adds custom incident types to the incident management system. The builder creates IncidentView instances for editing incident data.

For pinnable content builder implementation details, see About pinnable content builders.

For logon provider implementation details, see About logon providers.

For custom action implementation details, see About custom actions.

For incident implementation details, see About incidents.

Security Center SDK

  • Security Center SDK Developer Guide Overview of the SDK framework and how to build integrations with Security Center.

    • Platform SDK

      • Overview Introduction to the Platform SDK and core concepts.
      • Connecting to Security Center Step-by-step guide for connecting and authenticating with the SDK.
      • SDK Certificates Details certificates, licensing, and connection validation.
      • Referencing SDK Assemblies Best practices for referencing assemblies and resolving them at runtime.
      • SDK Compatibility Guide Understanding backward compatibility and versioning in the SDK.
      • Entity Guide Explains the core entity model, inheritance, and how to work with entities.
      • Entity Cache Guide Describes the engine's local entity cache and synchronization.
      • Transactions Covers batching operations for performance and consistency.
      • Events Subscribing to real-time system events.
      • Actions Sending actions to Security Center.
      • Security Desk Displaying content on monitors, reading tiles, sending tasks, and messaging operators.
      • Custom Events Defining, raising, and subscribing to custom events.
      • ReportManager Querying entities and activity data from Security Center.
      • ReportManager Query Reference Complete reference of query types, parameters, and response formats.
      • Privileges Checking, querying, and setting user privileges.
      • Partitions Entity organization and access control through partitions.
      • Logging How to configure logging, diagnostics, and debug methods.
    • Plugin SDK

    • Workspace SDK

    • Macro SDK

      • Overview How macros work, creating and configuring macro entities, automation, and monitoring.
      • Developer Guide Developing macro code with the UserMacro class and Security Center SDK.

Web SDK Developer Guide

  • Getting Started Setup, authentication, and basic configuration for the Web SDK.
  • Referencing Entities Entity discovery, search capabilities, and parameter formats.
  • Entity Operations CRUD operations, multi-value fields, and method execution.
  • About access control in the Web SDK Concepts, relationships, and common access-control operations.
  • About video in the Web SDK Concepts, relationships, configuration, and common video operations.
  • Users and user groups Creating users, managing group membership, and assigning privileges.
  • Partitions Managing partitions, entity membership, and user access control.
  • Custom Fields Creating, reading, writing, and filtering custom entity fields.
  • Custom Card Formats Managing custom credential card format definitions.
  • Actions Control operations for doors, cameras, macros, and notifications.
  • Events and Alarms Real-time event monitoring, alarm monitoring, and custom events.
  • Incidents Incident management, creation, and attachment handling.
  • Reports Activity reports, entity queries, and historical data retrieval.
  • Tasks Listing and executing saved report tasks.
  • Macros Monitoring currently running macros.
  • Custom Entity Types Listing, retrieving, and deleting custom entity type descriptors.
  • System Endpoints License usage, web tokens, and exception handling.
  • Performance Guide Optimization tips and best practices for efficient API usage.
  • Reference Entity GUIDs, EntityType enumeration, and EventType enumeration.
  • Under the Hood Technical architecture, query reflection, and SDK internals.
  • Troubleshooting Common error resolution and debugging techniques.

Media Gateway Developer Guide


Web Player Developer Guide

  • Developer Guide Complete guide to integrating GWP for live and playback video streaming.
  • API Reference Full API documentation with interfaces, methods, properties, and events.
  • Sample Application Comprehensive demo showcasing all GWP features with timeline and PTZ controls.
  • Multiplexing Sample Multi-camera grid demo using a shared WebSocket connection.

Clone this wiki locally