Data Source Types, Data Sources and Channels
1. Overview / Introduction
Data source types, data sources, and channels are fundamental building blocks of the SBE platform’s ingestion and interoperability architecture. Together, they represent the conceptual and technical framework that enables the integration of external systems with SBE's central model-driven infrastructure.
Data source types define templates for how data from external systems should be structured and handled.
Data sources are specific instantiations of those types, mapping to real-world data integrations.
Channels link these sources to SBE's internal data model, managing partitioning, branching, and commit histories.
These components are crucial for facilitating consistent, traceable, and secure data ingestion across heterogeneous environments.
2. Conceptual Role
To understand their conceptual roles, it is helpful to start with definitions:
Data source type is the representation of a tool that is connected to the SBE platform. It contains the template for the connection information between the platform and the external tool itself. This connection information is especially important for server-based adapters and is generally less significant for plugin-based adapters. Each data source type represents one external tool, such as Cameo, DOORS Next Generation, or Teamcenter.
Data source is a representation of a specific instance of a tool. For example, if there are multiple DOORS Next Generation servers in different environments (e.g., development, QA, production), each of those would be represented by a separate data source. Data sources are where users configure connection properties specific to that instance. For plugin-based adapters, which run locally on a user's machine, typically only one data source is needed per data source type.
Channel connects a specific branch in the SBE platform to a container of data inside an external tool. That container could be a project or a set of models. The channel defines the link between the external tool's data and a particular working branch inside SBE, enabling synchronization, versioning, and traceability of data.
Without these constructs, the SBE platform would lack a consistent and scalable method for managing multi-tool interoperability — a critical capability for enterprise customers with complex toolchains.
3. Design Rationale
The purpose behind the design of data source types, data sources, and channels was to have a modular system capable of connecting to multiple types of external systems through three distinct layers of abstraction:
Data source types provide reusable templates to define the structure and expected behavior of different categories of external tools.
Data sources capture and manage configuration for each specific instance of an external system, whether it is accessed through a server (e.g., via a web browser) or a desktop application.
Channels serve as the live, version-controlled connection between external tool data and a specific branch within the SBE platform.
This layered design enables users to connect any type of external system to the platform, while maintaining a clean separation between tool definitions, specific instance configurations, and active data synchronization.
Channels not only allow users to publish and refresh models between the platform and the external tools, but also support subscription workflows. Through subscriptions, users can pull models owned by other channels into their own local environments, keeping them up to date and enabling cross-team collaboration.
4. Relationship to Other Resources
Mappings consume data source information to align external artifacts with internal model elements.
Branches are tightly coupled with channels. Each channel connects to a specific branch in the platform, and that branch serves as the authoritative source of truth for the models from the connected external system.
Commits are tightly integrated with channels. Each channel maintains its own history of commit IDs. A new commit is generated whenever there is a material change to any data governed by the channel. This includes:
Changes from publishing new content
Edits made via the REST API or SBE user interfaces
Diffs applied to the models
Updates from the link charting process, where models from one channel reference another
Any user attempting to publish using a channel must have the latest commit. If not, they will be blocked from publishing until they refresh. This ensures data consistency and traceability across branches and users.Subscription creation or edits
5. Conceptual Usage Patterns
Data source types are created during initial connector setup.
Data sources are defined for each environment. For server-based adapters, each instance gets its own data source. For plugin-based adapters, a single data source per data source type usually suffices.
Channels are used to connect a specific set of data in an external system to a branch in SBE. The set of data that gets channeled in the external system is dependent on how each system organizes its data.
6. Common Pitfalls, Misunderstandings, and Troubleshooting
Branching misuse: Channels can only be connected to one branch, and branches can only be connected to one channel. A channel can never be connected to a different branch once it is set up, and a branch can never have a different channel connected to it.