Dynamic Secret Injection in Pipeline Integration Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud-based pipeline integration systems often break due to secrets management issues, as secrets change rapidly and the pipeline lacks visibility into these changes, leading to tedious and error-prone modifications in task definitions.

Innovation Solution

A pipeline integration system that dynamically discovers secrets during execution using a preparatory task to generate modified task definitions, allowing secrets to be injected into execution environments without modifying the pipeline itself, thereby decoupling the pipeline from job parameters and ensuring flexibility and security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the pipeline is closely coupled to task definitions and secrets are hard-coded in task definitions, then the pipeline can execute tasks with known secrets, but the pipeline breaks when secrets topology changes and requires tedious modifications

Engineering Contradiction:
Improvepipeline stabilityVSAvoidsecrets topology adaptability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system separates secrets management from pipeline task definitions by introducing a dedicated secrets management component. Secrets are stored in a separate secrets store and referenced by name in task definitions, rather than being hard-coded. This segmentation allows the pipeline structure to remain stable while secrets can be independently added, removed, or modified without breaking the pipeline.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary action by pre-registering secrets in the secrets store before the pipeline executes. When a secret is needed, the pipeline controller queries the secrets store to retrieve the secret value. This preliminary setup allows the pipeline to adapt to changing secrets topology without requiring modifications to task definitions, as secrets are resolved at runtime based on their registered names.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If secrets are managed centrally in a secrets management system, then secret values can be controlled and updated, but the pipeline lacks visibility into secret existence and cannot dynamically discover new secrets

Engineering Contradiction:
Improvesecrets management easeVSAvoidpipeline visibility of secrets
Core Design Contradiction:
Ease of manufactureVSLoss of information

Solution Approach 1:

The system implements feedback by having the pipeline controller query the secrets store to discover available secrets and their topologies. The secrets store provides feedback about which secrets exist and their relationships, allowing the pipeline controller to dynamically adjust task definitions based on the current secrets topology. This feedback mechanism ensures the pipeline has complete visibility into secret existence without compromising centralized secrets management.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The pipeline controller acts as an intermediary between the pipeline task definitions and the secrets store. It receives task definition requests, queries the secrets store to discover required secrets and their topologies, and then generates modified task definitions with the appropriate secrets injected. This intermediary role resolves the conflict between centralized secrets management and pipeline visibility by translating secret names into actual values while maintaining awareness of secrets topology.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If task definitions are modified to accommodate changing secrets topology, then the pipeline can execute with correct secrets, but the modification process is tedious and error-prone

Engineering Contradiction:
Improvesecrets correctnessVSAvoidpipeline configuration ease
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system implements self-service by enabling operators to add, remove, or modify secrets in the secrets store without requiring corresponding changes to pipeline task definitions. When secrets topology changes, the pipeline controller automatically discovers the new topology by querying the secrets store and generates updated task definitions automatically. This self-service capability eliminates the tedious and error-prone manual modification process while ensuring secrets correctness.

Inventive Principle:
Principle #25Self-service

4Device complexity

If the pipeline uses static task definitions, then the pipeline structure is simple and maintainable, but it cannot adapt to rapid changes in secrets without reconfiguration

Engineering Contradiction:
Improvepipeline structure complexityVSAvoidsecrets topology adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system introduces dynamics by making the pipeline task definitions flexible and adaptable at runtime. Instead of using completely static task definitions, the pipeline controller dynamically generates modified task definitions by querying the secrets store and injecting the appropriate secret values. This dynamic approach allows the pipeline structure to remain relatively simple while adapting to changing secrets topology without requiring reconfiguration of the underlying pipeline framework.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11263297B2Dynamic insertion of variablized secrets in a pipeline integration system
Publication Date: 2022.03.01 PIVOTAL SOFTWARE INC
  • US11263297B2 patent drawing
  • US11263297B2 patent drawing
  • US11263297B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for dynamically injecting secrets in a pipeline integration system. One of the methods includes receiving, by a pipeline controller, a job identifying a pipeline for executing a plurality of tasks. A preparatory task is invoked for the pipeline that obtains one or more original task definitions for the identified pipeline and generates one or more modified task definitions for the pipeline, wherein each modified task definition references one or more variablized secret names specified as the value of the reserved variable of the one or more configuration files. One or more subsequent execution tasks are invoked using each respective modified task definition. One or more retrieved secrets are injected into an execution environment for each particular execution task.