Pipeline groups provide centralized control and compliance in large-scale pipeline ecosystems. Administrators can enforce critical security and operational standards on the global level, such as security and cost allocation, while enabling development teams to build their own pipelines. Pipeline groups prevent misconfiguration, support regulatory requirements, and simplify operational oversight.
Pipeline groups let central platform and SRE teams manage ingest configuration for multiple pipelines at once. A pipeline group defines a shared configuration—composition—for a set of pipelines—member pipelines. The configuration can restrict or mandate stages.
Administrators own and manage the group, as well as its compositions and which stages are enabled or disabled for the member pipelines. Development teams own their member pipelines which operate within the group's boundaries.
A composition enables administrators to enforce consistency without blocking team autonomy. It defines what must happen across all pipelines in the group and how execution flows between composition and member stages.
A composition:
Compositions are configured via one or multiple composition pipelines owned by administrators. Composition pipelines can be custom (created by administrators) or ready‑made (provided by extensions).
Member pipelines implement team-specific logic within the group boundaries, allowing teamas to focus on domain‑specific transformations without compromising global standards.
Member pipelines inherit restrictions and mandatory stages from the pipeline group. Teams can add optional stages after mandated ones but can't override restricted stages.
A member pipeline:
Mandating a stage ensures it's executed and in the correct order between composition and member stages. This guarantes data is consistently processed.
Example: An administrator mandates the Permissions stage to run before any departmental definition. Global rules are applied first, preventing premature or conflicting permission changes.
"isPipelinePlaceholder": false,"pipelineId": "<pipeline-id>","stages": {"type": "include","include": ["securityContext"]}
Restricting a stage prevents modification of critical stages. This is essential to protect sensitive or compliance-relevant configurations, such as permissions or bucket assignment.
It ensures that member pipelines can't override or redefine a stage as restricted stages are unavailable to member pipelines. If the composition pipeline contains the stage, records are processed only by the composition stage.
Example: An administrator restricts the Permissions stage for all pipelines in the group. Teams can't modify dt.security_context, which ensures consistent access control across the organization.
"memberStages": {"type": "exclude","exclude": ["securityContext"]}
Pipeline groups are available exclusively through the Settings API.
Pipeline groups introduce two new parameters in your existing pipeline schemas:
groupRole: Identifies whether a pipeline can be a memberPipeline or a compositionPipeline. This field doesn't indicate whether the pipeline is currently part of a group. The group role affects routing.
routing: Specifies if the pipeline supports routing. Composition pipelines are typically notRoutable, except for standalone ready‑made pipelines from extensions. The following table summarizes which pipelines support routing, depending on their group role and pipeline type.
| Pipeline type | Group role | Is in a pipeline group | Supports routing |
|---|---|---|---|
| Custom | Member | No | Yes |
| Ready-made | Composition | No | Yes |
| Custom | Member | Yes | Yes |
| Custom | Composition | Yes | No |
| Ready-made | Composition | Yes | No |
Pipeline group schemas include the following parameters:
isPipelinePlaceholder
true: Identifies the execution of the member pipeline.false: Identifies the execution as a composition pipeline.type parameter (memberStages) referes to which member stages are executed. It supports the follwoing values:
include: Executes specified member stages.exclude: Doesn't execute specified member stages.includeAll: Executes all member stages, without specifing them.