awslabs / awslabs/aws-deployment-framework

Proposal: Pipeline Management APIs

Open
#529 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
699
Forks
235
Avg merge
20h 53m
Merged PRs (30d)
7

Description

### What and Why
Expose the API management state machine behind an API Gateway.

This will allow for customers to interact with ADF without the need for configuring deployment maps in a central location, and allow for extensions (Such as CloudFormation Resource Providers, UIs etc) to be created. Bringing a new level of control for ADF Pipelines.

### How?
In the global.yml create a new nested application with a condition attached. (Allowing for customers to enable/disable the API provisioning depending on their own requirements)

The API Gateway will be created and use IAM authorisation to restrict access as required. (Requiring any consumers of the API to go via SIGv4 signing for Authentication)

The API itself will be straight forward to start with. Exposing CRUDL operations for pipelines.

When it comes to the identification of stale pipelines, historically this would have been a problem, because any pipelines that are defined via the API would not be represented in S3. However recent changes to how this work has created a logical segregation between pipelines defined in different locations. (S3, API etc).

#### Proposed API methods

##### /pipelines
**POST** : Creates a new pipeline, based on the same JSON schema as a deployment map.
**GET**: Returns the pipeline definitions on a page-by-page basis

##### /pipelines{pipeline-name}
**PUT**: Updates the pipeline, based on the deployment map provided
**DELETE**: Deletes the pipeline, but will not delete the code commit repository unless specified.
**GET**: Returns the pipeline definition and a summary of the last 10 executions.
**HEAD**: Validate pipeline exists

### TL;DR
APIs for executing pipeline management actions.

Contributor guide

Open the contributing guide

Research direction

Start by locating global.yml and the existing API management state machine and deployment-map pipeline handling. Define how the conditional API Gateway with IAM authorization exposes the proposed pipeline CRUDL operations, including pagination, execution summaries, and separation of API-defined pipelines from S3-defined pipelines.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws
Domain
api, cloud, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.